[GRASS-dev] WinGRASS Wiki Hacking

Glynn Clements glynn at gclements.plus.com
Fri Jun 27 17:19:26 EDT 2008


Marco Pasetti wrote:

> I'm stretched in time (electronic systems exam ongoing) , but I try to join 
> the thread a bit;
> 
> > FWIW, I've just built GRASS (SVN head) under MSys/MinGW, and the only
> > libraries which I needed to compile from source were XDR, PROJ, GDAL
> > and Tcl/Tk[1]. For the others, I used either the project's own
> > binaries, or those from GnuWin32.
> 
> good to know; probably something has changed since I tried the first time to 
> use them.
> in the past I had problems to build GDAL with external libs and enabling 
> jpeg support in libtiff, using libjpeg from gnuwin32, obviously.

In this case, I built GDAL without any external libraries. The only
formats which are supported are those for which GDAL includes
"internal" support.

That's enough to compile GRASS. Once GRASS is compiled, you should be
able to replace GDAL if you decide you need additional formats. But
right now, I'm solely interested in GRASS development.

> > [1] I had to commit a fix to NVIZ to get it to compile; the previous
> > change neglected to conditionalise some X11-specific code.
> 
> it compiles without changes for me

Note: I'm building the SVN trunk (7.x). The change in question (the X
error handler) didn't make it into 6.3.0, but it is in 6.4-svn (which
won't compile on Windows until the fix is back-ported).

> > [2] I had to copy libfftw3-3.dll to libfftw3.dll. I suppose that we
> > could extend the configure check to try -lfftw3-3.
> 
> it works as libfftw3-3 for me, but I compiled it by myself; IIRC the 
> gnuwin32 build has been configured differently than mine... but I'm not sure 
> about that

Note: FFTW is from fftw.org, not GnuWin32.

> > [4] Actually, I haven't tried using a pre-compiled Tcl/Tk binary. I'm
> > not sure that we should recommend the ActiveState version due to the
> > licensing terms.
> 
> since it's very fast to compile, also on MinGW, I would higly prefer to 
> build from source, as I currently do

The main problem with building from source is ending up with multiple
(possibly conflicting) versions of a package, aka "DLL hell". In the
long run, it's better for users to only have one copy of everything
(or, if they have multiple copies, for them all to be identical).

For that reason, I'd rather not provide a different version of
anything which a user might already have on their system. If we're
going to bundle dependencies, it's better if we can bundle the exact
versions which a user is most likely to already have.

> > I suppose that wxPython is probably the most important omission. The
> > main issue here is the lack of python-config on Windows.
> 
> I didn't spent much time on it (I tried only few times to let it work 
> without success, but I really didn't seriously try...), but I guess that the 
> soultion would be here: http://wxconfig.googlepages.com/

Okay, I'll try that later.

> > In the meantime, can we put the binaries for XDR, PROJ, GDAL and
> > Tcl/Tk on the GRASS site? We really shouldn't be forcing people to
> > compile these themselves before they can even start trying to compile
> > GRASS. Especially XDR, PROJ, and GDAL, which are mandatory
> > dependencies.
> 
> I'm currently providing a MSYS build environment, with all the libs/bins I 
> build from source for GRASS, but they are "all together"; I could provide 
> "divided" binaries for each library, if you prefer.
> On this w-e I'll send to Markus an updated version of the MSYS build env, 
> with some upgrades and the add of the jpeg lib and support. Along with it 
> I'll upload (to release) a new winGRASS binary release (the fourth for 
> 6.3.0)

I'm not so concerned about one bundle versus multiple bundles,
although I do think that we should bundle GRASS itself separately. I
just don't want to install yet another version of zlib etc.

There's also the issue that we have to include source along with any
[L]GPL binaries.

FWIW, the exact files used were:

MinGW:

f66f542f299973aa7129832373aff73b  4088853  http://dl.sourceforge.net/sourceforge/mingw/MSYS-1.0.11-2004.04.30-1.exe
8e5966819e4a2cc89900d410a47d1855   138705  http://dl.sourceforge.net/sourceforge/mingw/MinGW-5.1.3.exe
b53fdf670f33d2e901749f4792e659f2  1623353  w32api-3.8.tar.gz
e1c21f8c4ece49d8bd9fef9e1b0e44a7   426259  mingw-runtime-3.11.tar.gz

[AFAICT, the last two were downloaded by the MinGW installer.]

GnuWin32:

94066c30feb93f20bc5b9b726b89e1c0   585372  http://dl.sourceforge.net/sourceforge/gnuwin32/bison-2.1-bin.zip
3a4470dbbd2fa854ac544ccfd9bc160f   708206  http://dl.sourceforge.net/sourceforge/gnuwin32/bison-2.1-dep.zip
0e6dfc5bb7b80924e9f20c653199890e   202802  http://dl.sourceforge.net/sourceforge/gnuwin32/flex-2.5.4a-1-bin.zip
8acf07e5c6aeb6e081faf47aa41e9daf  1148532  http://dl.sourceforge.net/sourceforge/gnuwin32/freetype-2.3.5-1-setup.exe
3582198c137c5316ea7152b8ede004e0  4090445  http://dl.sourceforge.net/sourceforge/gnuwin32/gettext-0.14.4.exe
bd00c5cca8d6e4e13564bdefc17038e7   600395  http://dl.sourceforge.net/sourceforge/gnuwin32/jpeg-6b-4.exe
e0217c09792beec74578516d9fff55ce   969371  http://dl.sourceforge.net/sourceforge/gnuwin32/libiconv-1.9.2-1.exe
8e729b97a93f754a259a698b73c735dc   845687  http://dl.sourceforge.net/sourceforge/gnuwin32/libpng-1.2.24-setup.exe
fae475f8590b9cd764e9aa8d62633926   397557  http://dl.sourceforge.net/sourceforge/gnuwin32/pdcurses-2.6.exe
9a9170a1601b07135a9a4d672c866226  2304259  http://dl.sourceforge.net/sourceforge/gnuwin32/readline-5.0-1-setup.exe
8bb847bf16de631f1ac39c79cd33e196  1776865  http://dl.sourceforge.net/sourceforge/gnuwin32/tiff-3.8.2-1.exe
66431e67d6b921d4eda7e88b56ee11fb   407462  http://dl.sourceforge.net/sourceforge/gnuwin32/zlib-1.2.3.exe

FFTW:

a9778f072a339735c2d8bcbf42c8188a  1811339  ftp://ftp.fftw.org/pub/fftw/fftw-3.1.2-dll.zip

Cairo:

cb16355c5ef1ae3b600b54cac70f5654   282220  http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/cairo-1.6.4-2.zip
e7a800f467751f68725a3ee5d2be822c   235237  http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/cairo-dev-1.6.4-2.zip

-- 
Glynn Clements <glynn at gclements.plus.com>


More information about the grass-dev mailing list