[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xinit: Changes to 'upstream-unstable'



 Makefile.am                                         |    7 -
 configure.ac                                        |   13 --
 org.x.startx.plist.cpp                              |    5 
 privileged_startx/20-font_cache.cpp                 |    4 
 privileged_startx/Makefile.am                       |    9 +
 privileged_startx/client.c                          |    6 +
 privileged_startx/org.x.privileged_startx.plist.cpp |   19 ++-
 privileged_startx/server.c                          |   68 ++++++++++--
 startx.cpp                                          |  111 +++++++++++---------
 xinit.c                                             |   40 ++++++-
 10 files changed, 195 insertions(+), 87 deletions(-)

New commits:
commit 46d641fdd020d07a9b4bd0364cf126643342a7e3
Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
Date:   Wed Dec 17 15:19:38 2008 -0800

    xinit 1.1.1

diff --git a/configure.ac b/configure.ac
index 86bd1f2..78b8827 100644
--- a/configure.ac
+++ b/configure.ac
@@ -21,7 +21,7 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ([2.57])
-AC_INIT(xinit,[1.1.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],xinit)
+AC_INIT(xinit,[1.1.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],xinit)
 AM_INIT_AUTOMAKE([dist-bzip2])
 AM_MAINTAINER_MODE
 

commit c340932db548d1a3d4fc5bbc682b7730e5b2cf4a
Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
Date:   Wed Dec 17 13:00:23 2008 -0800

    Apple: Allow defaults option that maps to a -dpi server command line in startx

diff --git a/startx.cpp b/startx.cpp
index 529366d..8a44965 100644
--- a/startx.cpp
+++ b/startx.cpp
@@ -128,6 +128,10 @@ if [ x`defaults read $X11_PREFS_DOMAIN nolisten_tcp` = x1 ] ; then
     defaultserverargs="$defaultserverargs -nolisten tcp"
 fi
 
+if defaults read $X11_PREFS_DOMAIN dpi >& /dev/null ; then
+    defaultserverargs="$defaultserverargs -dpi `defaults read $X11_PREFS_DOMAIN dpi`"
+fi
+
 for ((d=0; ; d++)) ; do
     [[ -e /tmp/.X$d-lock ]] || break
 done

commit 89c1675d128da3477cac6858c4249b839ec68346
Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
Date:   Sat Dec 13 00:14:54 2008 -0800

    OSX: Don't use login/bash -c hack anymore for org.x.startx LaunchAgent

diff --git a/org.x.startx.plist.cpp b/org.x.startx.plist.cpp
index 4bcedcf..4f3ce74 100644
--- a/org.x.startx.plist.cpp
+++ b/org.x.startx.plist.cpp
@@ -6,9 +6,6 @@
 		<string>org.x.startx</string>
 	<key>ProgramArguments</key>
 		<array>
-			<string>/bin/bash</string>
-			<string>--login</string>
-			<string>-c</string>
 			<string>__bindir__/startx</string>
 		</array>
 	<key>Sockets</key>

commit 13accec7614960965470f17894bc9212842ea6d7
Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
Date:   Tue Dec 9 21:15:13 2008 -0800

    OSX: More prefix fixes

diff --git a/startx.cpp b/startx.cpp
index fb23f18..529366d 100644
--- a/startx.cpp
+++ b/startx.cpp
@@ -103,12 +103,12 @@ fi
 
 XCOMM First, start caching fonts
 if [ x`defaults read $X11_PREFS_DOMAIN cache_fonts` = x1 ] ; then
-    if [ -x /usr/X11/bin/font_cache ] ; then
-        /usr/X11/bin/font_cache &
-    elif [ -x /usr/X11/bin/font_cache.sh ] ; then
-        /usr/X11/bin/font_cache.sh &
-    elif [ -x /usr/X11/bin/fc-cache ] ; then
-        /usr/X11/bin/fc-cache &
+    if [ -x $bindir/font_cache ] ; then
+        $bindir/font_cache &
+    elif [ -x $bindir/font_cache.sh ] ; then
+        $bindir/font_cache.sh &
+    elif [ -x $bindir/fc-cache ] ; then
+        $bindir/fc-cache &
     fi
 fi
 

commit e06ebf63e2c91e590fc1091e5ea2e49bab835526
Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
Date:   Wed Dec 3 11:19:48 2008 -0800

    OSX: Fixed bad prefix

diff --git a/privileged_startx/20-font_cache.cpp b/privileged_startx/20-font_cache.cpp
index c13384b..6d43e10 100755
--- a/privileged_startx/20-font_cache.cpp
+++ b/privileged_startx/20-font_cache.cpp
@@ -27,9 +27,9 @@ XCOMM promote the sale, use or other dealings in this Software without
 XCOMM prior written authorization.
 
 if [ -x BINDIR/font_cache ] ; then
-	BINDIR/font_cache &
+	BINDIR/font_cache -s &
 elif [ -x BINDIR/font_cache.sh ] ; then
 	BINDIR/font_cache.sh -s &
-elif [ -x /usr/X11/bin/fc-cache ] ; then
+elif [ -x BINDIR/fc-cache ] ; then
 	BINDIR/fc-cache &
 fi

commit 4ee72a6f1fc5d045adb71260107ca605ec68a84a
Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
Date:   Tue Dec 2 20:56:11 2008 -0800

    OSX Tiger: Fix discovery of mach port

diff --git a/privileged_startx/server.c b/privileged_startx/server.c
index bfe7ca4..6dd4f2b 100644
--- a/privileged_startx/server.c
+++ b/privileged_startx/server.c
@@ -153,10 +153,6 @@ int server_main(const char *dir) {
 
     mp = launch_data_get_machport(svc);
 #else
-    kr = bootstrap_check_in(bootstrap_port, "org.x.X11", &mp);
-    if (kr == KERN_SUCCESS)
-        return mp;
-
     mp = checkin_or_register("org.x.privileged_startx");
 #endif
 

commit ca9cb9750d2dd480240a37cdbd94fdba0a34da4c
Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
Date:   Tue Dec 2 20:31:10 2008 -0800

    Apple: Honor X11_PREFS_DOMAIN if it's set (1.4.2-apple26 and later)

diff --git a/startx.cpp b/startx.cpp
index 5ff62a0..fb23f18 100644
--- a/startx.cpp
+++ b/startx.cpp
@@ -84,21 +84,25 @@ serverargs=""
 
 #ifdef __APPLE__
 
+if [ "x$X11_PREFS_DOMAIN" = x ] ; then
+    X11_PREFS_DOMAIN="org.x.X11"
+fi
+
 XCOMM Initialize defaults (this will cut down on "safe" error messages)
-if ! defaults read org.x.X11 cache_fonts >& /dev/null ; then
-    defaults write org.x.X11 cache_fonts -bool true
+if ! defaults read $X11_PREFS_DOMAIN cache_fonts >& /dev/null ; then
+    defaults write $X11_PREFS_DOMAIN cache_fonts -bool true
 fi
 
-if ! defaults read org.x.X11 no_auth >& /dev/null ; then
-    defaults write org.x.X11 no_auth -bool false
+if ! defaults read $X11_PREFS_DOMAIN no_auth >& /dev/null ; then
+    defaults write $X11_PREFS_DOMAIN no_auth -bool false
 fi
 
-if ! defaults read org.x.X11 nolisten_tcp >& /dev/null ; then
-    defaults write org.x.X11 nolisten_tcp -bool true
+if ! defaults read $X11_PREFS_DOMAIN nolisten_tcp >& /dev/null ; then
+    defaults write $X11_PREFS_DOMAIN nolisten_tcp -bool true
 fi
 
 XCOMM First, start caching fonts
-if [ x`defaults read org.x.X11 cache_fonts` = x1 ] ; then
+if [ x`defaults read $X11_PREFS_DOMAIN cache_fonts` = x1 ] ; then
     if [ -x /usr/X11/bin/font_cache ] ; then
         /usr/X11/bin/font_cache &
     elif [ -x /usr/X11/bin/font_cache.sh ] ; then
@@ -114,13 +118,13 @@ if [ -x XINITDIR/privileged_startx ] ; then
 	XINITDIR/privileged_startx
 fi
 
-if [ x`defaults read org.x.X11 no_auth` = x0 ] ; then
+if [ x`defaults read $X11_PREFS_DOMAIN no_auth` = x0 ] ; then
     enable_xauth=1
 else
     enable_xauth=0
 fi
 
-if [ x`defaults read org.x.X11 nolisten_tcp` = x1 ] ; then
+if [ x`defaults read $X11_PREFS_DOMAIN nolisten_tcp` = x1 ] ; then
     defaultserverargs="$defaultserverargs -nolisten tcp"
 fi
 

commit 754efe651165ea7dd034f6b0ce75ef785deab826
Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
Date:   Fri Nov 28 23:23:14 2008 -0800

    OSX Tiger: Hopefully the last fix for Tiger users...

diff --git a/privileged_startx/client.c b/privileged_startx/client.c
index 2a24a70..a33dd02 100644
--- a/privileged_startx/client.c
+++ b/privileged_startx/client.c
@@ -34,6 +34,8 @@
 #include <stdlib.h>
 #include <stdbool.h>
 
+#include <AvailabilityMacros.h>
+
 #include "privileged_startx.h"
 
 int client_main(void) {
@@ -42,7 +44,11 @@ int client_main(void) {
     
     kr = bootstrap_look_up(bootstrap_port, BOOTSTRAP_NAME, &mp);
     if (kr != KERN_SUCCESS) {
+#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
         fprintf(stderr, "bootstrap_look_up(): %s\n", bootstrap_strerror(kr));
+#else
+        fprintf(stderr, "bootstrap_look_up(): %ul\n", (unsigned long)kr);
+#endif
         exit(EXIT_FAILURE);
     }
     

commit f04db53e71c681379ec49494c9ab727bc5269b30
Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
Date:   Fri Nov 28 11:20:25 2008 -0800

    OSX Tiger: More compilation fixes...

diff --git a/privileged_startx/server.c b/privileged_startx/server.c
index d0356b5..bfe7ca4 100644
--- a/privileged_startx/server.c
+++ b/privileged_startx/server.c
@@ -153,7 +153,7 @@ int server_main(const char *dir) {
 
     mp = launch_data_get_machport(svc);
 #else
-    kr = bootstrap_check_in(bootstrap_port, bname, &mp);
+    kr = bootstrap_check_in(bootstrap_port, "org.x.X11", &mp);
     if (kr == KERN_SUCCESS)
         return mp;
 
@@ -209,8 +209,10 @@ kern_return_t do_privileged_startx(mach_port_t test_port __attribute__((unused))
 
     const char * path_argv[2] = {script_dir, NULL};
 
+#ifdef LAUNCH_JOBKEY_MACHSERVICES
     /* Store that we were called, so the idle timer will reset */
     gettimeofday(&idle_globals.lastmsg, NULL);
+#endif
 
     /* script_dir contains a set of files to run with root privs when X11 starts */
     ftsp = fts_open(path_argv, FTS_PHYSICAL, ftscmp);

commit ed6dc88f5cbaaad08a282c44ae333a938f6f4216
Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
Date:   Thu Nov 27 00:47:31 2008 -0800

    OSX: Create privleged_startx on Tiger
    
    Launchd in Tiger doesn't support OnDemand loading, so this is
    a KeepAlive idle daemon on Tiger.

diff --git a/configure.ac b/configure.ac
index 2d09cad..86bd1f2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -102,18 +102,17 @@ AC_ARG_WITH(launchdaemons-dir,  AS_HELP_STRING([--with-launchdaemons-dir=PATH],
 
 if test "x$LAUNCHD" = "xauto"; then
 	unset LAUNCHD
-	case $host_os in
-		darwin8*)
-			LAUNCHD=no
-		;;
-		*)
-			AC_CHECK_PROG(LAUNCHD, [launchd], [yes], [no])
-		;;
-	esac
+	AC_CHECK_PROG(LAUNCHD, [launchd], [yes], [no])
 fi
 
+TIGER_LAUNCHD=no
 if test "x$LAUNCHD" = "xyes" ; then
 	AC_DEFINE(HAVE_LAUNCHD, 1, [launchd support available])
+	case $host_os in
+		darwin8*)
+			TIGER_LAUNCHD=yes
+		;;
+	esac
 else
         launchagentsdir=""
         launchdaemonsdir=""
@@ -121,6 +120,7 @@ fi
 AC_SUBST([launchagentsdir])
 AC_SUBST([launchdaemonsdir])
 AM_CONDITIONAL(LAUNCHD, [test "x$LAUNCHD" = "xyes"])
+AM_CONDITIONAL(TIGER_LAUNCHD, [test "x$TIGER_LAUNCHD" = "xyes"])
 
 # Checks for pkg-config packages
 PKG_CHECK_MODULES(XINIT, x11)
diff --git a/privileged_startx/Makefile.am b/privileged_startx/Makefile.am
index f561bf4..2d68544 100644
--- a/privileged_startx/Makefile.am
+++ b/privileged_startx/Makefile.am
@@ -34,9 +34,12 @@ xinitrc_PROGRAMS = privileged_startx
 privstartx_SCRIPTS = 10-tmpdirs 20-font_cache
 
 AM_CPPFLAGS = -DXINITDIR=\"$(xinitrcdir)\" -DSCRIPTDIR=\"$(privstartxdir)\" -DBINDIR=\"$(bindir)\"
-
 CPP_FILES_FLAGS = -DXINITDIR="$(xinitrcdir)" -DSCRIPTDIR="$(privstartxdir)" -DBINDIR="$(bindir)"
 
+if TIGER_LAUNCHD
+CPP_FILES_FLAGS += -DTIGER_LAUNCHD
+endif
+
 dist_privileged_startx_SOURCES = \
 	server.c \
 	client.c \
diff --git a/privileged_startx/org.x.privileged_startx.plist.cpp b/privileged_startx/org.x.privileged_startx.plist.cpp
index fd87478..7400cc4 100644
--- a/privileged_startx/org.x.privileged_startx.plist.cpp
+++ b/privileged_startx/org.x.privileged_startx.plist.cpp
@@ -4,20 +4,25 @@
 <dict>
 	<key>Label</key>
 		<string>org.x.privileged_startx</string>
-	<key>MachServices</key>
-		<dict>
-			<key>org.x.privileged_startx</key>
-				<true/>
-		</dict>
 	<key>ProgramArguments</key>
 		<array>
 			<string>XINITDIR/privileged_startx</string>
 			<string>-d</string>
 			<string>SCRIPTDIR</string>
 		</array>
+#ifdef TIGER_LAUNCHD
+	<key>KeepAlive</key>
+		<true/>
+#else
+	<key>MachServices</key>
+		<dict>
+			<key>org.x.privileged_startx</key>
+				<true/>
+		</dict>
 	<key>TimeOut</key>
 		<integer>120</integer>
 	<key>EnableTransactions</key>
 		<true/>
+#endif
 </dict>
 </plist>
diff --git a/privileged_startx/server.c b/privileged_startx/server.c
index 7afd424..d0356b5 100644
--- a/privileged_startx/server.c
+++ b/privileged_startx/server.c
@@ -40,7 +40,6 @@
 #include <sys/time.h>
 #include <launch.h>
 #include <asl.h>
-#include <pthread.h>
 #include <errno.h>
 
 #include "privileged_startx.h"
@@ -51,6 +50,10 @@ union MaxMsgSize {
     union __ReplyUnion__privileged_startx_subsystem rep; 
 };
 
+#ifdef LAUNCH_JOBKEY_MACHSERVICES
+#include <pthread.h>
+static void* idle_thread(void* param __attribute__((unused)));
+
 /* globals to trigger idle exit */
 #define DEFAULT_IDLE_TIMEOUT 60 /* 60 second timeout, then the server exits */
 
@@ -61,6 +64,7 @@ struct idle_globals {
 };
 
 struct idle_globals idle_globals;
+#endif
 
 #ifndef SCRIPTDIR
 #define SCRIPTDIR="/usr/X11/lib/X11/xinit/privileged_startx.d"
@@ -69,13 +73,46 @@ struct idle_globals idle_globals;
 /* Default script dir */
 const char *script_dir = SCRIPTDIR;
 
-static void* idle_thread(void* param __attribute__((unused)));
+#ifndef LAUNCH_JOBKEY_MACHSERVICES
+static mach_port_t checkin_or_register(char *bname) {
+    kern_return_t kr;
+    mach_port_t mp;
+    
+    /* If we're started by launchd or the old mach_init */
+    kr = bootstrap_check_in(bootstrap_port, bname, &mp);
+    if (kr == KERN_SUCCESS)
+        return mp;
+    
+    /* We probably were not started by launchd or the old mach_init */
+    kr = mach_port_allocate(mach_task_self(), MACH_PORT_RIGHT_RECEIVE, &mp);
+    if (kr != KERN_SUCCESS) {
+        fprintf(stderr, "mach_port_allocate(): %s\n", mach_error_string(kr));
+        exit(EXIT_FAILURE);
+    }
+    
+    kr = mach_port_insert_right(mach_task_self(), mp, mp, MACH_MSG_TYPE_MAKE_SEND);
+    if (kr != KERN_SUCCESS) {
+        fprintf(stderr, "mach_port_insert_right(): %s\n", mach_error_string(kr));
+        exit(EXIT_FAILURE);
+    }
+    
+    kr = bootstrap_register(bootstrap_port, bname, mp);
+    if (kr != KERN_SUCCESS) {
+        fprintf(stderr, "bootstrap_register(): %s\n", mach_error_string(kr));
+        exit(EXIT_FAILURE);
+    }
+    
+    return mp;
+}
+#endif
 
 int server_main(const char *dir) {
     mach_msg_size_t mxmsgsz = sizeof(union MaxMsgSize) + MAX_TRAILER_SIZE;
     mach_port_t mp;
     kern_return_t kr;
+#ifdef LAUNCH_JOBKEY_MACHSERVICES
     long idle_timeout = DEFAULT_IDLE_TIMEOUT;
+#endif
 
     launch_data_t config = NULL, checkin = NULL;
     checkin = launch_data_new_string(LAUNCH_KEY_CHECKIN);
@@ -85,6 +122,13 @@ int server_main(const char *dir) {
         exit(EXIT_FAILURE);
     }
 
+    if(dir) {
+        script_dir = dir;
+        asl_log(NULL, NULL, ASL_LEVEL_DEBUG,
+                "script directory set: %s", script_dir);
+    }
+
+#ifdef LAUNCH_JOBKEY_MACHSERVICES
     launch_data_t tmv;
     tmv = launch_data_dict_lookup(config, LAUNCH_JOBKEY_TIMEOUT);
     if (tmv) {
@@ -93,12 +137,6 @@ int server_main(const char *dir) {
                 "idle timeout set: %ld seconds", idle_timeout);
     }
 
-    if(dir) {
-        script_dir = dir;
-        asl_log(NULL, NULL, ASL_LEVEL_DEBUG,
-                "script directory set: %s", script_dir);
-    }
-
     launch_data_t svc;
     svc = launch_data_dict_lookup(config, LAUNCH_JOBKEY_MACHSERVICES);
     if (!svc) {
@@ -114,6 +152,14 @@ int server_main(const char *dir) {
     }
 
     mp = launch_data_get_machport(svc);
+#else
+    kr = bootstrap_check_in(bootstrap_port, bname, &mp);
+    if (kr == KERN_SUCCESS)
+        return mp;
+
+    mp = checkin_or_register("org.x.privileged_startx");
+#endif
+
     if (mp == MACH_PORT_NULL) {
         asl_log(NULL, NULL, ASL_LEVEL_ERR, "NULL mach service: %s",
                 BOOTSTRAP_NAME);
@@ -129,12 +175,14 @@ int server_main(const char *dir) {
         exit(EXIT_FAILURE);
     }
 
+#ifdef LAUNCH_JOBKEY_MACHSERVICES
     /* spawn a thread to monitor our idle timeout */
     pthread_t thread;
     idle_globals.mp = mp;
     idle_globals.timeout = idle_timeout;
     gettimeofday(&idle_globals.lastmsg, NULL);
     pthread_create(&thread, NULL, &idle_thread, NULL);
+#endif
 
     /* Main event loop */
     kr = mach_msg_server(privileged_startx_server, mxmsgsz, mp, 0);
@@ -222,6 +270,7 @@ kern_return_t do_privileged_startx(mach_port_t test_port __attribute__((unused))
 }
 
 kern_return_t do_idle_exit(mach_port_t test_port __attribute__((unused))) {
+#ifdef LAUNCH_JOBKEY_MACHSERVICES
     struct timeval now;
     gettimeofday(&now, NULL);
 
@@ -231,8 +280,12 @@ kern_return_t do_idle_exit(mach_port_t test_port __attribute__((unused))) {
     }
 
     return KERN_SUCCESS;
+#else
+    return KERN_FAILURE;
+#endif
 }
 
+#ifdef LAUNCH_JOBKEY_MACHSERVICES
 static void *idle_thread(void* param __attribute__((unused))) {
     for(;;) {
         struct timeval now;
@@ -248,3 +301,4 @@ static void *idle_thread(void* param __attribute__((unused))) {
     }
     return NULL;
 }
+#endif

commit 9f761b5a8512a8ad8b1475a3684e1a23d953916f
Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
Date:   Sat Nov 22 10:52:35 2008 -0800

    Apple: Use AvailabilityMacros.h for Tiger compatability

diff --git a/xinit.c b/xinit.c
index da155fd..d25de9d 100644
--- a/xinit.c
+++ b/xinit.c
@@ -61,7 +61,7 @@ in this Software without prior written authorization from The Open Group.
 #include <stdarg.h>
 
 #ifdef __APPLE__
-#include <Availability.h>
+#include <AvailabilityMacros.h>
 #if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1060
 #include <vproc.h>
 #endif

commit 0c0b73812efe75496e154730787402538a268bac
Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
Date:   Thu Aug 28 19:10:59 2008 -0700

    Apple: Make VPATH builds work on darwin
    
    Patch from Peter O'Gorman <peter@pogma.com>

diff --git a/privileged_startx/Makefile.am b/privileged_startx/Makefile.am
index 6a143ca..f561bf4 100644
--- a/privileged_startx/Makefile.am
+++ b/privileged_startx/Makefile.am
@@ -70,5 +70,5 @@ EXTRA_DIST = \
 	privileged_startx.defs \
 	privileged_startx_types.h
 
-$(BUILT_SOURCES): privileged_startx.defs
-	mig -sheader privileged_startxServer.h privileged_startx.defs
+$(BUILT_SOURCES): $(srcdir)/privileged_startx.defs
+	mig -sheader privileged_startxServer.h $(srcdir)/privileged_startx.defs

commit 0753882b89a451c9bdd053c2915a80fbcdbb0b77
Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
Date:   Tue Aug 5 14:58:48 2008 -0700

    Apple: sleep() to avoid innocent error message spew

diff --git a/xinit.c b/xinit.c
index 0336a7b..da155fd 100644
--- a/xinit.c
+++ b/xinit.c
@@ -490,15 +490,23 @@ waitforserver(void)
 	int	ncycles	 = 120;		/* # of cycles to wait */
 	int	cycles;			/* Wait cycle count */
 
+#ifdef __APPLE__
+	/* For Apple, we don't get signaled by the server when it's ready, so we just
+	 * want to sleep now since we're going to sleep later anyways and this allows us
+	 * to avoid the awkard, "why is there an error message in the log" questions
+	 * from users.
+         */
+
+	sleep(2);
+#endif
+
 	for (cycles = 0; cycles < ncycles; cycles++) {
 		if ((xd = XOpenDisplay(displayNum))) {
 			return(TRUE);
 		}
 		else {
-#define MSG "X server to begin accepting connections"
-		    if (!processTimeout (1, MSG)) 
+		    if (!processTimeout (1, "X server to begin accepting connections")) 
 		      break;
-#undef MSG
 		}
 	}
 

commit 79871c9b9daa1fad1b84af8f7eb54fced7526b2e
Author: Alan Coopersmith <alan.coopersmith@sun.com>
Date:   Tue Aug 5 14:11:24 2008 -0700

    Fix build of startx & xinitrc with Solaris make
    
    For some reason, having the dependencies explictly listed
    causes it to ignore the suffix implicit rule for .cpp.

diff --git a/Makefile.am b/Makefile.am
index 78ae154..0d831f3 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -67,9 +67,6 @@ endif
 
 DIST_SUBDIRS = privileged_startx
 
-xinitrc: xinitrc.cpp Makefile
-startx: startx.cpp Makefile
-
 xinitrc_DATA = xinitrc
 
 CLEANFILES = xinitrc startx $(appman_DATA) $(launchagents_DATA)

commit 9cc39e441b8741b4b0b878d00e09f0366ff36146
Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
Date:   Mon Aug 4 14:40:49 2008 -0700

    Support the instant-off API in SnowLeopard.

diff --git a/org.x.startx.plist.cpp b/org.x.startx.plist.cpp
index 42c9f70..4bcedcf 100644
--- a/org.x.startx.plist.cpp
+++ b/org.x.startx.plist.cpp
@@ -21,5 +21,7 @@
 		</dict>
 	<key>ServiceIPC</key>
 		<true/>
+	<key>EnableTransactions</key>
+		<true/>
 </dict>
 </plist>
diff --git a/privileged_startx/org.x.privileged_startx.plist.cpp b/privileged_startx/org.x.privileged_startx.plist.cpp
index d0e41a6..fd87478 100644
--- a/privileged_startx/org.x.privileged_startx.plist.cpp
+++ b/privileged_startx/org.x.privileged_startx.plist.cpp
@@ -17,5 +17,7 @@
 		</array>
 	<key>TimeOut</key>
 		<integer>120</integer>
+	<key>EnableTransactions</key>
+		<true/>
 </dict>
 </plist>
diff --git a/xinit.c b/xinit.c
index 523cfd5..0336a7b 100644
--- a/xinit.c
+++ b/xinit.c
@@ -60,6 +60,13 @@ in this Software without prior written authorization from The Open Group.
 #include <setjmp.h>
 #include <stdarg.h>
 
+#ifdef __APPLE__
+#include <Availability.h>
+#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1060
+#include <vproc.h>
+#endif
+#endif
+
 #if !defined(SIGCHLD) && defined(SIGCLD)
 #define SIGCHLD SIGCLD
 #endif
@@ -250,6 +257,11 @@ main(int argc, char *argv[], char *envp[])
 	int client_args_given = 0, server_args_given = 0;
 	int start_of_client_args, start_of_server_args;
 	struct sigaction sa;
+#ifdef __APPLE__
+#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1060
+	vproc_transaction_t vt;
+#endif
+#endif
 
 #ifdef __UNIXOS2__
 	envsave = envp;	/* circumvent an EMX problem */
@@ -426,6 +438,13 @@ main(int argc, char *argv[], char *envp[])
 
 	signal(SIGALRM, sigAlarm);
 	signal(SIGUSR1, sigUsr1);
+
+#ifdef __APPLE__
+#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1060
+	vt = vproc_transaction_begin(NULL);
+#endif
+#endif
+
 	if (startServer(server) > 0
 	 && startClient(client) > 0) {
 		pid = -1;
@@ -434,6 +453,13 @@ main(int argc, char *argv[], char *envp[])
 			)
 			pid = wait(NULL);
 	}
+
+#ifdef __APPLE__
+#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1060
+	vproc_transaction_end(NULL, vt);
+#endif
+#endif
+
 	signal(SIGTERM, SIG_IGN);
 	signal(SIGQUIT, SIG_IGN);
 	signal(SIGINT, SIG_IGN);

commit 7d41013b0e295ec0444c2f9099679bb6018c812f
Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
Date:   Wed Jul 2 16:36:24 2008 -0700

    Apple: Using eval to protect people who have spaces in their home path.

diff --git a/startx.cpp b/startx.cpp
index 8950feb..5ff62a0 100644
--- a/startx.cpp
+++ b/startx.cpp
@@ -271,7 +271,11 @@ if [ x"$enable_xauth" = x1 ] ; then
     xauth -q -f "$xserverauthfile" << EOF
 add :$dummy . $mcookie
 EOF
+#ifdef __APPLE__
+    serverargs=${serverargs}" -auth '"${xserverauthfile}"'"
+#else
     serverargs=${serverargs}" -auth "${xserverauthfile}
+#endif
 
     XCOMM now add the same credentials to the client authority file
     XCOMM if '$displayname' already exists do not overwrite it as another
@@ -300,9 +304,15 @@ else
         XINIT "$client" $clientargs -- "$server" $display $serverargs
 fi
 #else
+
+#ifdef __APPLE__
+eval XINIT \"$client\" $clientargs -- \"$server\" $display $serverargs
+#else
 XINIT "$client" $clientargs -- "$server" $display $serverargs
 #endif
 
+#endif
+
 if [ x"$enable_xauth" = x1 ] ; then
     if [ x"$removelist" != x ]; then
         XAUTH remove $removelist

commit 9632367abd03108f3636b05e9f2fd92f5c28dabe
Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
Date:   Sun Jun 29 18:24:13 2008 -0700

    startx.cpp: Made some things a little more friendly for people who have spaces in pathnames.

diff --git a/startx.cpp b/startx.cpp
index 8ffdc70..8950feb 100644
--- a/startx.cpp
+++ b/startx.cpp
@@ -133,19 +133,6 @@ defaultdisplay=":$d"
 enable_xauth=1
 #endif
 
-
-if [ -f $userclientrc ]; then
-    defaultclientargs=$userclientrc
-elif [ -f $sysclientrc ]; then
-    defaultclientargs=$sysclientrc
-#if defined(__SCO__) || defined(__UNIXWARE__)
-elif [ -f $scouserclientrc ]; then
-    defaultclientargs=$scouserclientrc
-elif [ -f $scosysclientrc ]; then
-    defaultclientargs=$scosysclientrc
-#endif
-fi
-
 #if defined(__SCO__) || defined(__UNIXWARE__)
 
 XCOMM SCO -t option: do not start an X server
@@ -202,11 +189,23 @@ done
 
 XCOMM process client arguments
 if [ x"$client" = x ]; then
+    client=$defaultclient
+
     XCOMM if no client arguments either, use rc file instead
     if [ x"$clientargs" = x ]; then
-	client="$defaultclientargs"
-    else
-	client=$defaultclient
+        if [ -f "$userclientrc" ]; then
+            client=$userclientrc
+        elif [ -f "$sysclientrc" ]; then
+            client=$sysclientrc
+#if defined(__SCO__) || defined(__UNIXWARE__)
+        elif [ -f "$scouserclientrc" ]; then
+            client=$scouserclientrc
+        elif [ -f "$scosysclientrc" ]; then
+            client=$scosysclientrc
+#endif
+        fi
+
+        clientargs=$defaultclientargs
     fi
 fi
 
@@ -217,9 +216,9 @@ if [ x"$server" = x ]; then
     XCOMM if no server arguments or display either, use defaults
     if [ x"$serverargs" = x -a x"$display" = x ]; then
 	XCOMM For compatibility reasons, only use xserverrc if there were no server command line arguments
-	if [ -f $userserverrc ]; then
+	if [ -f "$userserverrc" ]; then
 	    server=$userserverrc
-	elif [ -f $sysserverrc ]; then
+	elif [ -f "$sysserverrc" ]; then
 	    server=$sysserverrc
 	fi
 
@@ -268,8 +267,8 @@ if [ x"$enable_xauth" = x1 ] ; then
 
     XCOMM create a file with auth information for the server. ':0' is a dummy.
     xserverauthfile=$HOME/.serverauth.$$
-    trap "rm -f $xserverauthfile" HUP INT QUIT ILL TRAP KILL BUS TERM
-    xauth -q -f $xserverauthfile << EOF
+    trap "rm -f '$xserverauthfile'" HUP INT QUIT ILL TRAP KILL BUS TERM
+    xauth -q -f "$xserverauthfile" << EOF
 add :$dummy . $mcookie
 EOF
     serverargs=${serverargs}" -auth "${xserverauthfile}
@@ -287,7 +286,7 @@ EOF
         removelist="$displayname $removelist"
         else
             dummy=$(($dummy+1));
-            XAUTH -q -f $xserverauthfile << EOF
+            XAUTH -q -f "$xserverauthfile" << EOF
 add :$dummy . $authcookie
 EOF
         fi
@@ -298,10 +297,10 @@ fi
 if [ "$REMOTE_SERVER" = "TRUE" ]; then
         exec SHELL_CMD ${client}
 else
-        XINIT $client $clientargs -- $server $display $serverargs
+        XINIT "$client" $clientargs -- "$server" $display $serverargs
 fi
 #else
-XINIT $client $clientargs -- $server $display $serverargs
+XINIT "$client" $clientargs -- "$server" $display $serverargs
 #endif
 
 if [ x"$enable_xauth" = x1 ] ; then
@@ -309,7 +308,7 @@ if [ x"$enable_xauth" = x1 ] ; then
         XAUTH remove $removelist
     fi
     if [ x"$xserverauthfile" != x ]; then
-        rm -f $xserverauthfile
+        rm -f "$xserverauthfile"
     fi
 fi
 

commit c5bd51b3a31b3b290dec9f978779a56161308bb4
Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
Date:   Sun Jun 29 17:50:44 2008 -0700

    Apple: privleged_startx: Increase the timeout so slower machines don't get a stray process warning in their system log.

diff --git a/privileged_startx/org.x.privileged_startx.plist.cpp b/privileged_startx/org.x.privileged_startx.plist.cpp
index e878dc3..d0e41a6 100644
--- a/privileged_startx/org.x.privileged_startx.plist.cpp
+++ b/privileged_startx/org.x.privileged_startx.plist.cpp
@@ -16,6 +16,6 @@
 			<string>SCRIPTDIR</string>
 		</array>
 	<key>TimeOut</key>
-		<integer>60</integer>
+		<integer>120</integer>
 </dict>
 </plist>

commit a5a8ea7c8452908c2c4c9c822f5b4f7382c03630
Author: Adam Jackson <ajax@redhat.com>
Date:   Thu Jun 12 15:27:11 2008 -0400

    xinit 1.1.0

diff --git a/configure.ac b/configure.ac
index 6f6bf6c..2d09cad 100644
--- a/configure.ac
+++ b/configure.ac
@@ -21,7 +21,7 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ([2.57])
-AC_INIT(xinit,[1.0.9], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],xinit)
+AC_INIT(xinit,[1.1.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],xinit)
 AM_INIT_AUTOMAKE([dist-bzip2])
 AM_MAINTAINER_MODE
 

commit 44e2ee01b456deb2630d21786d19ee2734d2f40a
Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
Date:   Wed May 28 12:01:35 2008 -0700

    Apple: Don't use launchd on Tiger since it doesn't support the features we need.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=15893

diff --git a/Makefile.am b/Makefile.am
index c778487..78ae154 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -27,10 +27,6 @@ bin_SCRIPTS = startx
 xinit_CFLAGS = $(XINIT_CFLAGS) -DXINITDIR=\"$(XINITDIR)\" -DBINDIR=\"$(bindir)\"
 xinit_LDADD = $(XINIT_LIBS)
 
-if APPLE_LEOPARD
-xinit_LDFLAGS = -framework CoreServices
-endif
-
 xinit_SOURCES =	\
         xinit.c
 
diff --git a/configure.ac b/configure.ac
index 42c3b60..6f6bf6c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -102,22 +102,19 @@ AC_ARG_WITH(launchdaemons-dir,  AS_HELP_STRING([--with-launchdaemons-dir=PATH],
 
 if test "x$LAUNCHD" = "xauto"; then
 	unset LAUNCHD
-	AC_CHECK_PROG(LAUNCHD, [launchd], [yes], [no])
-fi
-
-if test "x$LAUNCHD" = "xyes" ; then
-	AC_DEFINE(HAVE_LAUNCHD, 1, [launchd support available])
-
 	case $host_os in
-		darwin9*|darwin1*)
-			AM_CONDITIONAL(APPLE_LEOPARD, true)
+		darwin8*)
+			LAUNCHD=no
 		;;
 		*)
-			AM_CONDITIONAL(APPLE_LEOPARD, false)
+			AC_CHECK_PROG(LAUNCHD, [launchd], [yes], [no])
 		;;
 	esac
+fi
+
+if test "x$LAUNCHD" = "xyes" ; then
+	AC_DEFINE(HAVE_LAUNCHD, 1, [launchd support available])
 else
-	AM_CONDITIONAL(APPLE_LEOPARD,false)
         launchagentsdir=""
         launchdaemonsdir=""
 fi

commit d315445cb85876cda56f46cb657167d4eb906ba0
Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
Date:   Wed May 28 11:54:22 2008 -0700

    Properly handle using xserverrc

diff --git a/startx.cpp b/startx.cpp
index 9266341..8ffdc70 100644
--- a/startx.cpp
+++ b/startx.cpp
@@ -161,12 +161,6 @@ case $1 in
 esac
 #endif
 
-if [ -f $userserverrc ]; then
-    defaultserverargs=$userserverrc
-elif [ -f $sysserverrc ]; then
-    defaultserverargs=$sysserverrc
-fi
-
 whoseargs="client"
 while [ x"$1" != x ]; do
     case "$1" in


Reply to: