Re: [Xquartz-dev] MacPorts XQuartz 2.3.2 (xorg-server 1.4.2-apple32) has problems with $PATH
Am 18.02.2009 um 16:00 schrieb Jeremy Huddleston:
Here's how X11.app starts on Tiger (or on Leopard if you aren't using the launchd start):
X11.app inherits its environment from environment.plist just like any other app launched by ApplicationServices. X11.app runs a shell script on startup that gets an environment from your login shell before launching the X11 binary. The X11 binary fork/execs startx startx fork/execs xinit xinit fork execs xinitrc and X X tells X11.app how to star the server (command line arguments passed over mach IPC) xinitrc runs your initial clients (like quartz-wm)
Thus xinitrc inherits your environment.plist on Tiger.
With pstree I see: -+= 00001 root /sbin/launchd -v \-+= 00481 windowse /System/Library/Frameworks/ ApplicationServices.framework/Frameworks/CoreGraphics.framework/ Resources/WindowServer -daemon \-+- 06548 pete /Applications/MacPorts/X11.app/Contents/MacOS/ X11.bin -psn_0_36306945 \-+- 06569 pete /bin/sh /opt/local/bin/startx \-+- 06606 pete xinit /Users/pete/.xinitrc -- /opt/local/bin/ X :0 -nolisten tcp -dpi 100 -auth /Users/pete/.serverauth.6569 \-+= 06609 pete /bin/sh /Users/pete/.xinitrc \-+- 06630 pete /usr/local/bin/emacs-23.0.90 -geometry 100x57+696+145 -T 23.0.90 --debug-init So it seems that theory and practise meet. Examining with ps the processes' environments I get these PATH values: • 00001 root /sbin/launchd -v does not seem to have any • 00481 WindowServer has PATH=/usr/bin:/bin:/usr/sbin:/sbin • 06548 X11.bin has PATH=/Users/pete/bin:/usr/bin:/bin:/usr/sbin:/ sbin:/usr/X11R6/bin:/usr/local/sbin:/usr/local/bin:/sw/bin:/usr/local/ bin:/usr/texbin:/Users/pete/bin/FDK/Tools/osx • all other programmes in the chain ínherit this (no quartz-wm running) This is a path that is not derived from any of my supported shells (sh, bash, csh, tcsh). And it isn't root's path, not even when I (root) copy my ~/.MacOSX directory to /var/root. When I change /etc/csh.login to contain /usr/local/texlive/2008/bin/ universal-darwin instead of Mac TeX's silly /usr/texbin, the latter is substituted with /usr/local/texlive/2008/bin/universal-darwin. Nevertheless elements from my shell's path value, coming directly from ~/.MacOSX/environment.plist, are not part of X11.bin's environment. They're included in all other Aqua clients, for example Carbon Emacs or Emacs.app or ... -- Greetings Pete They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety. -Benjamin Franklin, Historical Review of Pennsylvania.
On Feb 19, 2009, at 03:05, Peter Dyballa wrote:
With pstree I see:
-+= 00001 root /sbin/launchd -v \-+= 00481 windowse /System/Library/Frameworks/ ApplicationServices.framework/Frameworks/CoreGraphics.framework/ Resources/WindowServer -daemon \-+- 06548 pete /Applications/MacPorts/X11.app/Contents/MacOS/ X11.bin -psn_0_36306945 \-+- 06569 pete /bin/sh /opt/local/bin/startx \-+- 06606 pete xinit /Users/pete/.xinitrc -- /opt/local/bin/ X :0 -nolisten tcp -dpi 100 -auth /Users/pete/.serverauth.6569 \-+= 06609 pete /bin/sh /Users/pete/.xinitrc \-+- 06630 pete /usr/local/bin/emacs-23.0.90 -geometry 100x57+696+145 -T 23.0.90 --debug-init
So it seems that theory and practise meet. Examining with ps the processes' environments I get these PATH values:
• 00001 root /sbin/launchd -v does not seem to have any • 00481 WindowServer has PATH=/usr/bin:/bin:/usr/sbin:/sbin • 06548 X11.bin has PATH=/Users/pete/bin:/usr/bin:/bin:/usr/sbin:/ sbin:/usr/X11R6/bin:/usr/local/sbin:/usr/local/bin:/sw/bin:/usr/ local/bin:/usr/texbin:/Users/pete/bin/FDK/Tools/osx • all other programmes in the chain ínherit this (no quartz-wm running)
This is a path that is not derived from any of my supported shells (sh, bash, csh, tcsh). And it isn't root's path, not even when I (root) copy my ~/.MacOSX directory to /var/root.
When I change /etc/csh.login to contain /usr/local/texlive/2008/bin/ universal-darwin instead of Mac TeX's silly /usr/texbin, the latter is substituted with /usr/local/texlive/2008/bin/universal-darwin. Nevertheless elements from my shell's path value, coming directly from ~/.MacOSX/environment.plist, are not part of X11.bin's environment. They're included in all other Aqua clients, for example Carbon Emacs or Emacs.app or ...
I'd put in some debugging stuff into your ~/.tcshrc or whatever that saves the $PATH to a file before and after setting, so you can see what's going on... similarly, maybe put something in /Applications/MacPorts/X11.app/ Contents/MacOS/X11 that does the same thing... then you can maybe start narrowing down what's happening.
participants (2)
-
Jeremy Huddleston
-
Peter Dyballa