xserver: Branch 'xorg-server-1.4-apple'

Jeremy Huddleston jeremyhu at kemper.freedesktop.org
Fri Nov 28 01:46:41 PST 2008


 hw/xquartz/X11Controller.m            |   15 +--------------
 hw/xquartz/mach-startup/Makefile.am   |    3 ++-
 hw/xquartz/mach-startup/bundle-main.c |   27 ++++++++++++++++++++++++++-
 3 files changed, 29 insertions(+), 16 deletions(-)

New commits:
commit cbae2b447357b3fed6ff19414c60dd3792045600
Author: Jeremy Huddleston <jeremyhu at freedesktop.org>
Date:   Fri Nov 28 01:45:37 2008 -0800

    XQuarz: Setup our PATH and PWD earlier, so our initial client benefits from it as well...

diff --git a/hw/xquartz/X11Controller.m b/hw/xquartz/X11Controller.m
index 233fd4f..67a80d3 100644
--- a/hw/xquartz/X11Controller.m
+++ b/hw/xquartz/X11Controller.m
@@ -34,8 +34,6 @@
 #include <dix-config.h>
 #endif
 
-#define DEFAULT_PATH "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11/bin"
-
 #include "quartzCommon.h"
 
 #import "X11Controller.h"
@@ -362,18 +360,7 @@ BOOL xquartz_resetenv_display = NO;
     snprintf(buf, sizeof(buf), ":%s", display);
 	setenv("DISPLAY", buf, TRUE);
       }
-	
-      temp = getenv("PATH");
-      if (temp == NULL || temp[0] == 0) 
-	setenv ("PATH", DEFAULT_PATH, TRUE);
-      else if (strnstr(temp, "/usr/X11/bin", sizeof(temp)) == NULL) {
-	snprintf(buf, sizeof(buf), "%s:/usr/X11/bin", temp);            
-	setenv("PATH", buf, TRUE);      
-      }
-      /* cd $HOME */
-      temp = getenv("HOME");
-      if (temp != NULL && temp[0]!=0) chdir(temp);
-	
+
       execvp(argv[0], (char **const) argv);
 	
       _exit(2);
diff --git a/hw/xquartz/mach-startup/Makefile.am b/hw/xquartz/mach-startup/Makefile.am
index 889da80..927f5e4 100644
--- a/hw/xquartz/mach-startup/Makefile.am
+++ b/hw/xquartz/mach-startup/Makefile.am
@@ -1,6 +1,7 @@
 AM_CPPFLAGS = \
 	-DBUILD_DATE=\"$(BUILD_DATE)\" \
-	-DXSERVER_VERSION=\"$(VERSION)\"
+	-DXSERVER_VERSION=\"$(VERSION)\" \
+	-DX11BINDIR=\"$(bindir)\"
 
 x11appdir = $(APPLE_APPLICATIONS_DIR)/X11.app/Contents/MacOS
 x11app_PROGRAMS = X11
diff --git a/hw/xquartz/mach-startup/bundle-main.c b/hw/xquartz/mach-startup/bundle-main.c
index e58277a..2fcd35b 100644
--- a/hw/xquartz/mach-startup/bundle-main.c
+++ b/hw/xquartz/mach-startup/bundle-main.c
@@ -419,6 +419,28 @@ int startup_trigger(int argc, char **argv, char **envp) {
     return execute(command_from_prefs("startx_script", DEFAULT_STARTX));
 }
 
+/** Setup the environment we want our child processes to inherit */
+static void setup_env() {
+    char buf[1024], *temp;
+
+    /* Make sure /usr/X11/bin is in the $PATH */
+    temp = getenv("PATH");
+    if(temp == NULL || temp[0] == 0) {
+        snprintf(buf, sizeof(buf), "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:%s", X11BINDIR);
+        setenv("PATH", buf, TRUE);
+    } else if(strnstr(temp, X11BINDIR, sizeof(temp)) == NULL) {
+        snprintf(buf, sizeof(buf), "%s:%s", temp, X11BINDIR);
+        setenv("PATH", buf, TRUE);
+    }
+
+    fprintf(stderr, "PATH: %s\n", getenv("PATH"));
+    
+    /* cd $HOME */
+    temp = getenv("HOME");
+    if(temp != NULL && temp[0] != '\0')
+        chdir(temp);
+}
+
 /*** Main ***/
 int main(int argc, char **argv, char **envp) {
     Bool listenOnly = FALSE;
@@ -427,7 +449,10 @@ int main(int argc, char **argv, char **envp) {
     mach_port_t mp;
     kern_return_t kr;
 
-    // The server must not run the PanoramiX operations.
+    /* Setup our environment for our children */
+    setup_env();
+    
+    /* The server must not run the PanoramiX operations. */
     noPanoramiXExtension = TRUE;
 
     /* Setup the initial crasherporter info */


More information about the xorg-commit mailing list