[GRASS5] Re: [bug #4155] (grass) d.m will not display remotely

Scott Mitchell smitch at mac.com
Tue Mar 14 11:05:51 EST 2006


On 14-Mar-06, at 07:11, Kirk R. Wythers wrote:

> Thanks for your thoughts on this issue Glynn. Here is the answer  
> (for the purposes of the archives).
>
> On OS X (Tiger 10.4) use ssh -Y, (which enables trusted  
> forwarding). and the Wish shell (built on X11 forwards fine).
>

Thanks for that post, Kirk - I am chagrined to realize that I used to  
know this, then managed to forget it for a few months.  So I have  
been needlessly limiting myself to only running GRASS locally/non- 
graphically until I could find time to delve into it, but you have  
fixed it for me!

> Panther and earlier used a version of ssh that only used the -X  
> option for X forwarding. This should probably go somewhere in the  
> wiki as well. I will write it up if someone can suggest a location  
> that makes sense.
>

Perhaps the tips & tricks section of the Wiki?  I don't see any other  
platform-specific stuff in there, but then again I don't see any  
elsewhere either.

I've also added a paragraph to the "platform notes" page at http:// 
grass.itc.it/platforms/macgrass.php

Any alteration/addition/clarification suggestions are most welcome.

Here's the paragraph at the moment:

<P>There is one other issue regarding Tcl/Tk under OS X.  The release  
of Tiger (OS 10.4) changed the default configuration of SSH, and it  
has implications for the use of GRASS between hosts on a network  
(i.e. running it on one machine but displaying it on another).  If  
you are interacting with GRASS on a Mac, but actually running it on a  
remote machine that you connect to with SSH, you will need to use the  
"trusted forwarding" mode of SSH in order for the Tcl/Tk generated  
graphics (d.m, the GUI version of the initial mapset selection, plus  
the GUI versions of each GRASS module) to make it through your  
connection.  This can be done using the -Y flag when you start the  
ssh session:
  <tt>ssh -Y remotehost</tt>
  Using the -X flag, or simply turning on X11Forwarding in the SSH  
configuration files, is not enough:  the symptoms in this case are  
that a d.mon window will function fine, but none of the Tcl/Tk  
dialogues will work, failing with an error message complaining either  
about Wish not behaving as expected, or a "Bad Atom". </P>



Cheers,
Scott


> Kirk
>
> On Mar 11, 2006, at 7:34 PM, Glynn Clements wrote:
>
>>
>> Kirk R. Wythers wrote:
>>
>>>> The problem applies to running wish (the Tcl/Tk interpreter),  
>>>> and will
>>>> affect all Tcl/Tk programs. There isn't anything that d.m or  
>>>> gis.m can
>>>> do to work around it.
>>>
>>> Can you enlighten me as why with wish shell would work fine locally,
>>> but not remotely. I want to think this through because I am guessing
>>> that there is some odd OS X thing going on here.
>>
>> There are two possibilities that I can think of, but both are really
>> just wild guesses.
>>
>> 1. Your version of Tk relies upon additional pre-defined atoms which
>> are specific to the MacOSX X server.
>>
>> 2. It is communicating with both local and remote X servers, and  
>> using
>> XIDs obtained from one on the other.
>>
>> It's conceivable that the latter might come about due to some form of
>> integration between Aqua and X, e.g. clipboard integration. If  
>> Aqua is
>> trying to pass XIDs from the local X server to wish, and wish is
>> passing them to the remote X server, that isn't going to work.
>>
>> Some background:
>>
>> An atom is a "registered" string which can be referenced by an  
>> integer
>> XID. There are a set of pre-defined atoms (listed in the X11/Xatom.h
>> header file), but applications can register additional atoms using
>> XInternAtom[s]. Atoms are shared by all X clients on a given server.
>>
>> Atoms are used for inter-client communication. Rather than passing
>> strings such as "CLIPBOARD", clients obtain the XID corresponding to
>> that string then pass the XID. This reduces traffic and simplifies
>> comparisons (integer comparison rather than string comparison).
>>
>> Apart from the pre-defined atoms, the X server allocates atoms in
>> order, so the XID for a given atom will depend upon when it was
>> created. Consequently, the XIDs will vary between server instances.
>>
>> If an application can have connections to multiple X servers (XEmacs
>> supports this), it has to remember separate XIDs for each X server.
>> E.g. the XEmacs instance I'm using to compose this message is running
>> on a Linux box, with connections to both the local X server and a
>> remote X server on a Windows box. On the local X server, the XID for
>> the CLIPBOARD atom is 372, while on the remote X server it is 218.
>>
>> -- 
>> Glynn Clements <glynn at gclements.plus.com>
>>
>> _______________________________________________
>> grass5 mailing list
>> grass5 at grass.itc.it
>> http://grass.itc.it/mailman/listinfo/grass5
>
> _______________________________________________
> grass5 mailing list
> grass5 at grass.itc.it
> http://grass.itc.it/mailman/listinfo/grass5




More information about the grass-dev mailing list