[GRASS5] 5.7 - GIS manager - zoom and pan - change term to execute in d.m.tcl

Glynn Clements glynn.clements at virgin.net
Thu Sep 23 07:06:54 EDT 2004


Moritz Lennert wrote:

> > See if this fixes the problem. If so, I can easily make a generic change
> > to
> > all the buttons as they all use this format.
> 
> No, this doesn't make a difference for me...
> 
> When I try to launch 'xterm -e d.zoom' from the GRASS command line, I have
> the same problem. When I launch xterm from the GRASS command line I get an
> xterm, but when I enter d.zoom in there, I get:
> 
> d.zoom: error while loading shared libraries: libgrass_display.so: cannot
> open shared object file: No such file or directory

This usually occurs because xterm is setuid/setgid. For security
reasons, the loader unsets certain environment variables (e.g. 
LD_LIBRARY_PATH) when running setuid/setgid programs.

You need to add the full path for $GISBASE/lib to /etc/ld.so.conf then
run ldconfig. This will allow the GRASS shared libraries to be found
when LD_LIBRARY_PATH is unset.

However, this isn't a solution if you are using multiple versions of
GRASS. Simply adding all of the lib directories won't work. As the
shared libraries aren't versioned, the loader will load the first
matching library which it finds, which won't necessarily be the
correct one.

We need to install a script along the lines of:

	#!/bin/sh
	LD_LIBRARY_PATH="$GISBASE/lib"
	export LD_LIBRARY_PATH
	exec "$@"

(except that the exact variable name is platform-specific) and use
that when runing programs via xterm, i.e.:

	exec xterm -e $env(GISBASE)/etc/grass-run.sh d.zoom

-- 
Glynn Clements <glynn.clements at virgin.net>




More information about the grass-dev mailing list