[GRASS5] Debian and d.m/d.zoom bug - /etc/ld.so.conf

Glynn Clements glynn at gclements.plus.com
Wed Dec 1 05:40:28 EST 2004


Markus Neteler wrote:

> > > Any suggestions how to proceed? Maybe the xterm doesn't work as
> > > desired under Debian (why does it then with strace)?
> > 
> > Maybe it is a security reason, because xtrem has the s bit set. I am not
> > quite sure about that, but isnt it that $LD_LIBRARY_PATH is unloaded
> > for s-bittet programms?!
> > 
> >
> > See former posting from Glynn Clements on a similar problem:
> > http://grass.itc.it/pipermail/grass5/2004-September/015409.html
> 
> OK, now in CVS:
> 
> grass57/tools/grass-run.sh

This should go elsewhere, e.g. lib/init. AIUI, the tools directory is
meant for things which aren't installed, e.g. tools for building or
maintaining GRASS rather than for using it.

BTW, we shouldn't need tools/getModtime any more; man/Makefile has
been fixed to use make's built in functionality instead.

> Howver, the proposed xterm line causes problems:
> 
>  can't read "env(GISBASE)": no such variable
> 
> Not sure how to implement it correctly:
> 
> diff -u -r1.27 d.m.tcl
> --- d.m.tcl     14 Sep 2004 16:48:38 -0000      1.27
> +++ d.m.tcl     1 Dec 2004 09:00:14 -0000
> @@ -85,7 +85,7 @@
> 
>  ###############################################################################
>  proc term {cmd args} {
> -    eval exec -- xterm -e $cmd $args &
> +    eval exec -- xterm -e $env(GISBASE)/etc/grass-run.sh $cmd $args &
>  }

Tcl doesn't have "global" variables like most languages. It has
"top-level" variables, but these aren't normally visible within
procedures. You need to use "global" to make it visible, i.e.:

	proc term {cmd args} {
	    global env
	    eval exec -- xterm -e $env(GISBASE)/etc/grass-run.sh $cmd $args &
	}

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




More information about the grass-dev mailing list