WinGRASS 6 Current Status: Difference between revisions
(cosmetics) |
(some updates) |
||
Line 7: | Line 7: | ||
== Compilation == | == Compilation == | ||
(based on work from Paul Kelly - [http://lists.osgeo.org/pipermail/grass-dev/2006-December/028097.html his message]) | (based on work from Paul Kelly - [http://lists.osgeo.org/pipermail/grass-dev/2006-December/028097.html his message], but no more need to modify GRASS XDR in recent GRASS 6.3) | ||
=== Requirements === | |||
XDR, Zlib, libpng, PROJ.4, GDAL. | |||
* To compile winGRASS natively, you need the following additional libraries: ''XDR, Zlib, libpng, PROJ.4, GDAL''. They are available in a gzipped tar file (to get started quickly): http://www.stjohnspoint.co.uk/grass/ (get wingrass-extralibs.tar.gz). | |||
* Additionally, you need [http://www.mingw.org/download.shtml Msys & MingW] with [http://www.mingw.org/MinGWiki/index.php/bison bison] and [http://www.mingw.org/MinGWiki/index.php/flex flex] (or get [http://sourceforge.net/projects/gnuwin32/ gnuwin32]). | |||
== winGRASS on MingW compilation == | |||
The prefix where you untar that file you will need to supply to the GRASS configure as: | The prefix where you untar that file you will need to supply to the GRASS configure as: | ||
--with-includes=prefix --with-libs=prefix | --with-includes=prefix --with-libs=prefix | ||
Before compilation, you need to set your path in msys in order to add the path to the lib/ and bin/ directories of Paul's tarball before compiling. You might also need to edit the first few lines of the gdal-config script in the bin/ directory, to reflect the path where it is actually installed. | |||
Before compilation, you need to set your path in msys in order to | |||
add the path to the lib/ and bin/ directories of Paul's tarball before | |||
compiling. You might also need to edit the first few lines of the gdal-config script in the bin/ directory, to reflect the path where it is actually installed. | |||
You also have to erase $(MANDIR) $(MANPAGES) from line 13 of man/Makefile, i.e. 'default: $(MANDIR) $(MANPAGES)' -> 'default:'. | You also have to erase $(MANDIR) $(MANPAGES) from line 13 of man/Makefile, i.e. 'default: $(MANDIR) $(MANPAGES)' -> 'default:'. | ||
Line 37: | Line 36: | ||
After compiling you should copy libxdr.dll, libproj.dll, libpng.dll, libgdal-1.dll and libz.dll.1.2.3 into the GRASS lib directory and all the GDAL and PROJ .exe files in the bin directory into the GRASS bin directory, and then you have a more or less self-contained GRASS distribution. | After compiling you should copy libxdr.dll, libproj.dll, libpng.dll, libgdal-1.dll and libz.dll.1.2.3 into the GRASS lib directory and all the GDAL and PROJ .exe files in the bin directory into the GRASS bin directory, and then you have a more or less self-contained GRASS distribution. | ||
You can also install Activestate Tcl/Tk 8.4.13 (in c:\tcl). | You can also install [http://www.activestate.com/downloads/ Activestate Tcl/Tk] 8.4.13 (in c:\tcl). | ||
== What is missing? == | == What is missing? == |
Revision as of 14:24, 19 November 2007
This page describes the current status of winGRASS development:
Compilation
(based on work from Paul Kelly - his message, but no more need to modify GRASS XDR in recent GRASS 6.3)
Requirements
- To compile winGRASS natively, you need the following additional libraries: XDR, Zlib, libpng, PROJ.4, GDAL. They are available in a gzipped tar file (to get started quickly): http://www.stjohnspoint.co.uk/grass/ (get wingrass-extralibs.tar.gz).
- Additionally, you need Msys & MingW with bison and flex (or get gnuwin32).
winGRASS on MingW compilation
The prefix where you untar that file you will need to supply to the GRASS configure as:
--with-includes=prefix --with-libs=prefix
Before compilation, you need to set your path in msys in order to add the path to the lib/ and bin/ directories of Paul's tarball before compiling. You might also need to edit the first few lines of the gdal-config script in the bin/ directory, to reflect the path where it is actually installed.
You also have to erase $(MANDIR) $(MANPAGES) from line 13 of man/Makefile, i.e. 'default: $(MANDIR) $(MANPAGES)' -> 'default:'.
If you get an error such as 'cannot open file `/msys/share/bison/m4sugar/m4sugar.m4': No such file or directory', one solution is to move around the msys bison installation a bit, so that m4sugar.m4 is available in the indicated path.
A working configure line is:
./configure --prefix=c:/grass --bindir=c:/grass/bin \ --with-includes=/c/grass/forgrass/include \ --with-libs=/c/grass/forgrass/lib --with-cxx --without-jpeg --without-tiff \ --without-postgres --with-opengl=windows --without-fftw --without-x \ --enable-x11=no --enable-shared=yes --with-tcltk-includes=/c/tcl/include \ --with-tcltk-libs=/c/tcl/bin
After compiling you should copy libxdr.dll, libproj.dll, libpng.dll, libgdal-1.dll and libz.dll.1.2.3 into the GRASS lib directory and all the GDAL and PROJ .exe files in the bin directory into the GRASS bin directory, and then you have a more or less self-contained GRASS distribution.
You can also install Activestate Tcl/Tk 8.4.13 (in c:\tcl).
What is missing?
Vector
v.digit: implement as pure tcl(Glynn)Vector-DB connection:- This has been solved for now by compiling XDRlib as a static library
- M Lennert: I had hoped that Radim's patch for dbmi_client (http://grass.itc.it/pipermail/grass5/2006-December/028118.html) might solve the issue I've had with the db protocol errors, but apparently this is not the case. When I push the 'show the attribute columns' in a vector panel, I still get
******* Displaying column types/names for database connection of layer 1: dbmi: Protocol error Cannot open table <streams> ******** and a 'v.db.select' on the same map gives me: ******** 'vector/streams' was found in more mapsets (also found in user1). dbmi: Protocol error Cannot open select cursor *********
- P Kelly: I can confirm similar problems. I tried to import a Shapefile with v.in.ogr. I went quite deep into debugging it and got nowhere at all, although I should have taken better notes. I did confirm though that compiling the library with -mwindows as Radim suggested on the list made no difference either. I think trying with a different database, PostgreSQL perhaps is the next big step to debugging this. See if the behaviour is the same as with dbf and if not we can isolate it a bit more.
- Moritz: followup on DB issue: ... using db.select as the test case, the error seems to happen around a call to xdr_int() in lib/db/dbmi_base/xdrstring.c....
- Moritz: followup 2 on DB issue
- Moritz: followup 3 on DB issue
- Paul: followup 4 on DB issue
- Glynn: followup 5 on DB issue
- Glynn: followup 6 on DB issue
+ Moritz: followup X on DB issue (now looks good!)
Display
- Display drivers: socket
- Use gis.m instead of monitors.
- Make gis.m Output window more like xterm. No need to hit Run.
- Is there any way that the Map Display in gis.m can interact with console commands? IPC? File Alteration Monitor?
Imagery
- i.class: SIGALRM, SIGTSTP (are these signals important?)
- wait() in:
- i.ortho.photo/photo.2image: wait()
- i.ortho.photo/photo.2target: wait()
- i.points: wait()
- i.vpoints: wait()
- Note: also in lib/gis/popen.c and lib/gis/system.c (use those implementations?)
Raster
- r.terraflow: getrusage()
- check this octave patch email thread (check thread msgs)
Known problems
- metacharacter escape in "sh -c '$cmd'"
- modules not working: r.proj (v.proj too?), r.surf.rst, v.neighbors, v.kernel, r.cost
- Cannot open Help pages.
- Have to add c:\mingw\bin to PATH on some systems.
- You should have typed c:/mingw instead of c:\mingw when asked by the MinGW installer.
- Have to type "exit" in the console to save ~/.grassrc file. Then, close gis.m to finish the session.
- A previous installation of grass under cygwin is likely to cause problems with WinGrass. Follow the directions to remove cygwin at http://cygwin.com/faq/faq-nochunks.html#faq.setup.uninstall-all
The following items cannot be fixed in the near future:
- Cannot display a thematic layer.
- d.vect.thematic requires PNG driver, which is not available in winGRASS.
- can't read "_data(.gronsole.gronsole,4,donecmd)": no such element in array error
- Aqua TclTk solution: http://intevation.de/rt/webrt?serial_num=5096&display=History
TclTk issues
- cannot run shell scripts: only .com, .exe, .bat
- sh -c '$cmd'
- var=val style argument is not valid for batch files: equal sign is a separator like a space. http://support.microsoft.com/?kbid=71247 http://www.gatago.com/alt/msdos/batch/17358926.html
need .exe wrapper for shell scripts? grass-xterm-wrapper.exe- We now have .bat wrappers for each shell script, which run the shell specified by the GRASS_SH environment variable and pass the full path to the script to it
- file command returns bad code (catch is needed): http://sources.redhat.com/ml/insight/2003-q1/msg00079.html
- catch {file copy}
- catch {file delete}
- catch {file rename -force} does not work. Delete old file first: catch {file delete}; catch {file rename}
file redirection (>@stdout, 2>@stderr) does not work: http://wiki.tcl.tk/672- Worked around by using a small C-program (grocat.exe) to combine stdout and stderr
- exec a batch file doing redirection (>&2, 2>&1)
- no -permissions file attributes
- catch {file attributes -permissions}
Other libraries
GDAL
- lib/gis/OBJ.*/fmode.o is needed for any GRASS related modules.
- modified ltmain.sh to install binary files from wrapper scripts.