XQuarz: Setup our PATH and PWD earlier, so our initial client benefits from it as well...
(cherry picked from commit cbae2b4473
)
This commit is contained in:
parent
ef4179f43a
commit
a9796c7bc4
|
@ -34,8 +34,6 @@
|
||||||
#include <dix-config.h>
|
#include <dix-config.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define DEFAULT_PATH "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11/bin"
|
|
||||||
|
|
||||||
#include "quartzCommon.h"
|
#include "quartzCommon.h"
|
||||||
|
|
||||||
#import "X11Controller.h"
|
#import "X11Controller.h"
|
||||||
|
@ -362,18 +360,7 @@ BOOL xquartz_resetenv_display = NO;
|
||||||
snprintf(buf, sizeof(buf), ":%s", display);
|
snprintf(buf, sizeof(buf), ":%s", display);
|
||||||
setenv("DISPLAY", buf, TRUE);
|
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);
|
execvp(argv[0], (char **const) argv);
|
||||||
|
|
||||||
_exit(2);
|
_exit(2);
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
AM_CPPFLAGS = \
|
AM_CPPFLAGS = \
|
||||||
-DBUILD_DATE=\"$(BUILD_DATE)\" \
|
-DBUILD_DATE=\"$(BUILD_DATE)\" \
|
||||||
-DXSERVER_VERSION=\"$(VERSION)\"
|
-DXSERVER_VERSION=\"$(VERSION)\" \
|
||||||
|
-DX11BINDIR=\"$(bindir)\"
|
||||||
|
|
||||||
x11appdir = $(APPLE_APPLICATIONS_DIR)/X11.app/Contents/MacOS
|
x11appdir = $(APPLE_APPLICATIONS_DIR)/X11.app/Contents/MacOS
|
||||||
x11app_PROGRAMS = X11
|
x11app_PROGRAMS = X11
|
||||||
|
|
|
@ -419,6 +419,28 @@ int startup_trigger(int argc, char **argv, char **envp) {
|
||||||
return execute(command_from_prefs("startx_script", DEFAULT_STARTX));
|
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 ***/
|
/*** Main ***/
|
||||||
int main(int argc, char **argv, char **envp) {
|
int main(int argc, char **argv, char **envp) {
|
||||||
Bool listenOnly = FALSE;
|
Bool listenOnly = FALSE;
|
||||||
|
@ -427,7 +449,10 @@ int main(int argc, char **argv, char **envp) {
|
||||||
mach_port_t mp;
|
mach_port_t mp;
|
||||||
kern_return_t kr;
|
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;
|
noPanoramiXExtension = TRUE;
|
||||||
|
|
||||||
/* Setup the initial crasherporter info */
|
/* Setup the initial crasherporter info */
|
||||||
|
|
Loading…
Reference in New Issue
Block a user