[GRASS-dev] debugging nviz with TclTk 8.5 aqua

William Kyngesburye woklist at kyngchaos.com
Sun Jul 27 00:36:24 EDT 2008


On Jul 26, 2008, at 8:26 PM, Michael Barton wrote:

> AFAICT, the only things of TclTk that actually get into the Mac  
> binary for GRASS proper are the ancient BWidgets folder, which goes  
> into all GRASS distributions, a copy of tclsh8.4 that doesn't seem  
> to get used for anything, and copies of wish. Currently, my GRASS 7  
> binary, using TclTk aqua 8.5 has wish8.5 and wish8.4; GRASS_WISH is  
> set to one or the other of these by grass.sh in $GISBASE. If I put  
> in the x11 version of wish8.4 and change the settings for GRASS_WISH  
> in grass.sh, I can get an x11 version of the GUI.
>
> There are tcl and tk directories in in %GISBASE/lib, along with  
> libtcl8.4.dylib and libtk8.4.dylib. There are also some tcltk *.h  
> files in $GISBASE/include. AFAICT, these are complete unused at  
> least on my Mac. I can throw them away with no effect, regardless of  
> whether I switch to wish 8.5 aqua or 8.4 x11. Are these used by any  
> other system? While my aqua version of TclTk 8.5 is visible to my  
> system, 8.4 for x11 is hidden away in /usr/local/tcltk and not in my  
> path--in GRASS or outside of it. So I don't see how GRASS can find  
> any files in that directory.
>
This is all from my OSX app default bundling, which I'm thinking about  
how to simplify, considering Glynn's comments and the new  
compatibility with Tcltk 8.5 and Tcltk Aqua.

> In sum, the GRASS TclTk GUI seems to ONLY need wish of one flavor or  
> another to run. So all that is needed is to include all 3 wish  
> versions, default to one and have a Mac script that will let the  
> user change to another one if desired. This is easy for all of GRASS  
> except NVIZ.
>
As a compile & install on a single system, really no bundling of tcltk  
is needed.  I'll probably drop that from the OSX app makefile.

For packaging for distribution, I'll leave it up to the packager,  
using the bundle.make fragment.

> NVIZ seems to use its own version of wish that must be coded into a  
> C module somewhere. I certainly can't find it. But must be finding  
> wish somewhere. If that path could be redirected to whatever  
> GRASS_WISH is, then both GRASS and NVIZ could be in sync. The only  
> fly in this ointment would be if Togl must have the same version of  
> wish available (somewhere) that it was compiled against AND needs  
> other TclTk files in addition to wish.
>
That's probably some application API thing in tcltk.  NVIZ just needs  
the tcl and tk libraries that it was compiled with.

-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/

All generalizations are dangerous, even this one.




More information about the grass-dev mailing list