Xquartz: Xquartz stub now can send Mach IPC to start the server.
(cherry picked from commit 55a3bca8ea42f8677897f94bf0a429bdc08c6696)
This commit is contained in:
parent
93c082a060
commit
adc62f62b9
|
@ -1,6 +1,7 @@
|
||||||
AM_CPPFLAGS = \
|
AM_CPPFLAGS = \
|
||||||
-DBUILD_DATE=\"$(BUILD_DATE)\" \
|
-DBUILD_DATE=\"$(BUILD_DATE)\" \
|
||||||
-DXSERVER_VERSION=\"$(VERSION)\"
|
-DXSERVER_VERSION=\"$(VERSION)\"
|
||||||
|
# -DNEW_LAUNCH_METHOD -DNEW_LAUNCH_METHOD_2
|
||||||
|
|
||||||
x11appdir = $(APPLE_APPLICATIONS_DIR)/X11.app/Contents/MacOS
|
x11appdir = $(APPLE_APPLICATIONS_DIR)/X11.app/Contents/MacOS
|
||||||
x11app_PROGRAMS = X11
|
x11app_PROGRAMS = X11
|
||||||
|
|
|
@ -165,10 +165,11 @@ int main(int argc, char **argv, char **envp) {
|
||||||
mach_port_t mp;
|
mach_port_t mp;
|
||||||
kern_return_t kr;
|
kern_return_t kr;
|
||||||
|
|
||||||
|
fprintf(stderr, "X11.app: main(): argc=%d\n", argc);
|
||||||
for(i=1; i < argc; i++) {
|
for(i=1; i < argc; i++) {
|
||||||
|
fprintf(stderr, "\targv[%u] = %s\n", (unsigned)i, argv[i]);
|
||||||
if(!strcmp(argv[i], "--listenonly")) {
|
if(!strcmp(argv[i], "--listenonly")) {
|
||||||
listenOnly = TRUE;
|
listenOnly = TRUE;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -221,10 +222,12 @@ int main(int argc, char **argv, char **envp) {
|
||||||
const char *s;
|
const char *s;
|
||||||
|
|
||||||
size_t i;
|
size_t i;
|
||||||
|
#ifndef NEW_LAUNCH_METHOD
|
||||||
fprintf(stderr, "X11.app: main(): argc=%d\n", argc);
|
fprintf(stderr, "X11.app: main(): argc=%d\n", argc);
|
||||||
for(i=0; i < argc; i++) {
|
for(i=0; i < argc; i++) {
|
||||||
fprintf(stderr, "\targv[%u] = %s\n", (unsigned)i, argv[i]);
|
fprintf(stderr, "\targv[%u] = %s\n", (unsigned)i, argv[i]);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Take care of the case where we're called like a normal DDX */
|
/* Take care of the case where we're called like a normal DDX */
|
||||||
if(argc > 1 && argv[1][0] == ':') {
|
if(argc > 1 && argv[1][0] == ':') {
|
||||||
|
|
|
@ -115,6 +115,7 @@ int main(int argc, char **argv, char **envp) {
|
||||||
mach_port_t mp;
|
mach_port_t mp;
|
||||||
string_array_t newenvp;
|
string_array_t newenvp;
|
||||||
string_array_t newargv;
|
string_array_t newargv;
|
||||||
|
size_t i;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(argc == 2 && !strcmp(argv[1], "-version")) {
|
if(argc == 2 && !strcmp(argv[1], "-version")) {
|
||||||
|
@ -127,7 +128,6 @@ int main(int argc, char **argv, char **envp) {
|
||||||
#ifdef NEW_LAUNCH_METHOD_2
|
#ifdef NEW_LAUNCH_METHOD_2
|
||||||
kr = bootstrap_look_up(bootstrap_port, SERVER_BOOTSTRAP_NAME, &mp);
|
kr = bootstrap_look_up(bootstrap_port, SERVER_BOOTSTRAP_NAME, &mp);
|
||||||
if(kr != KERN_SUCCESS) {
|
if(kr != KERN_SUCCESS) {
|
||||||
int i;
|
|
||||||
set_x11_path();
|
set_x11_path();
|
||||||
|
|
||||||
/* This forking is ugly and will be cleaned up later */
|
/* This forking is ugly and will be cleaned up later */
|
||||||
|
@ -142,19 +142,20 @@ int main(int argc, char **argv, char **envp) {
|
||||||
_argv[0] = x11_path;
|
_argv[0] = x11_path;
|
||||||
_argv[1] = "--listenonly";
|
_argv[1] = "--listenonly";
|
||||||
_argv[2] = NULL;
|
_argv[2] = NULL;
|
||||||
|
fprintf(stderr, "Starting X server: %s --listenonly\n", x11_path);
|
||||||
return execvp(x11_path, _argv);
|
return execvp(x11_path, _argv);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Try connecting for 10 seconds */
|
/* Try connecting for 10 seconds */
|
||||||
for(i=0; i < 20; i++) {
|
for(i=0; i < 40; i++) {
|
||||||
usleep(500);
|
usleep(250000);
|
||||||
kr = bootstrap_look_up(bootstrap_port, SERVER_BOOTSTRAP_NAME, &mp);
|
kr = bootstrap_look_up(bootstrap_port, SERVER_BOOTSTRAP_NAME, &mp);
|
||||||
if(kr == KERN_SUCCESS)
|
if(kr == KERN_SUCCESS)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(kr != KERN_SUCCESS) {
|
if(kr != KERN_SUCCESS) {
|
||||||
fprintf(stderr, "bootstrap_look_up(): %s\n", bootstrap_strerror(kr));
|
fprintf(stderr, "bootstrap_look_up(): Timed out: %s\n", bootstrap_strerror(kr));
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue