[42996] trunk/dports/x11/xinit
jeremyhu at macports.org
jeremyhu at macports.org
Tue Dec 2 20:59:43 PST 2008
Revision: 42996
http://trac.macports.org/changeset/42996
Author: jeremyhu at macports.org
Date: 2008-12-02 20:59:42 -0800 (Tue, 02 Dec 2008)
Log Message:
-----------
xinit: Version bump to 1.1.0 plus latest git updates for better Tiger support
Modified Paths:
--------------
trunk/dports/x11/xinit/Portfile
Added Paths:
-----------
trunk/dports/x11/xinit/files/
trunk/dports/x11/xinit/files/tiger_support.patch
trunk/dports/x11/xinit/files/xinitrc.d/
trunk/dports/x11/xinit/files/xinitrc.d/10-fontdir.sh
trunk/dports/x11/xinit/files/xinitrc.d/98-user.sh
trunk/dports/x11/xinit/files/xinitrc.d/99-quartz-wm.sh
Modified: trunk/dports/x11/xinit/Portfile
===================================================================
--- trunk/dports/x11/xinit/Portfile 2008-12-03 04:52:51 UTC (rev 42995)
+++ trunk/dports/x11/xinit/Portfile 2008-12-03 04:59:42 UTC (rev 42996)
@@ -3,10 +3,10 @@
PortSystem 1.0
name xinit
-version 1.0.8
+version 1.1.0
categories x11
platforms darwin
-maintainers bbyer at macports.org
+maintainers jeremyhu
description X11 startup script processor
long_description xinit is responsible for configuring the initial environment \
when X11 starts up.
@@ -14,14 +14,35 @@
homepage http://www.x.org
master_sites ${homepage}/pub/individual/app/
-checksums sha1 0102d2fdc0df3d24077ba826cf57640da46140af
+checksums md5 9144097186c3d2454beffe8ac3b53c6e \
+ sha1 c4d3d8314ddd94c4950349d23a3e387af65186da \
+ rmd160 d2631bd7eea0ce702b2b4d380e28365dab4fef83
use_bzip2 yes
+use_parallel_build yes
-depends_lib lib:libX11:xorg-libX11
+depends_build port:pkgconfig \
+ port:xorg-util-macros
+depends_lib lib:libX11.6:xorg-libX11
+
configure.pkg_config_path ${x11prefix}/lib/pkgconfig
-configure.args --mandir=${prefix}/share/man
-livecheck.check regex
-livecheck.url ${master_sites}
-#livecheck.regex "${name}\\.tar\\.gz -> ${name}-(\\d+)\\.tgz"
+patchfiles tiger_support.patch
+
+pre-configure {
+ system "cd ${worksrcpath} && autoreconf -fvi"
+ reinplace "s|org.x|org.macports|" ${worksrcpath}/org.x.startx.plist.cpp
+ reinplace "s|org.x|org.macports|" ${worksrcpath}/privileged_startx/org.x.privileged_startx.plist.cpp
+ reinplace "s|org.x|org.macports|" ${worksrcpath}/privileged_startx/privileged_startx_types.h
+ reinplace "s|org.x|org.macports|" ${worksrcpath}/privileged_startx/server.c
+ reinplace "s|org.x|org.macports|" ${worksrcpath}/startx.cpp
+}
+
+post-destroot {
+ system "mv ${destroot}/Library/LaunchAgents/org.x.startx.plist ${destroot}/Library/LaunchAgents/org.macports.startx.plist"
+ system "mv ${destroot}/Library/LaunchDaemons/org.x.privileged_startx.plist ${destroot}/Library/LaunchDaemons/org.macports.privileged_startx.plist"
+
+ system "mkdir ${destroot}/${prefix}/lib/X11/xinit/xinitrc.d"
+ system "cp ${filespath}/xinitrc.d/*.sh ${destroot}/${prefix}/lib/X11/xinit/xinitrc.d"
+ system "chmod 755 ${destroot}/${prefix}/lib/X11/xinit/xinitrc.d/*.sh"
+}
Added: trunk/dports/x11/xinit/files/tiger_support.patch
===================================================================
--- trunk/dports/x11/xinit/files/tiger_support.patch (rev 0)
+++ trunk/dports/x11/xinit/files/tiger_support.patch 2008-12-03 04:59:42 UTC (rev 42996)
@@ -0,0 +1,572 @@
+diff --git a/Makefile.am b/Makefile.am
+index 78ae154..0d831f3 100644
+--- Makefile.am
++++ 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)
+diff --git a/configure.ac b/configure.ac
+index 2d09cad..86bd1f2 100644
+--- configure.ac
++++ 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/org.x.startx.plist.cpp b/org.x.startx.plist.cpp
+index 42c9f70..4bcedcf 100644
+--- org.x.startx.plist.cpp
++++ 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/Makefile.am b/privileged_startx/Makefile.am
+index 6a143ca..2d68544 100644
+--- privileged_startx/Makefile.am
++++ 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 \
+@@ -70,5 +73,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
+diff --git a/privileged_startx/client.c b/privileged_startx/client.c
+index 2a24a70..a33dd02 100644
+--- privileged_startx/client.c
++++ 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);
+ }
+
+diff --git a/privileged_startx/org.x.privileged_startx.plist.cpp b/privileged_startx/org.x.privileged_startx.plist.cpp
+index e878dc3..7400cc4 100644
+--- privileged_startx/org.x.privileged_startx.plist.cpp
++++ privileged_startx/org.x.privileged_startx.plist.cpp
+@@ -4,18 +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>60</integer>
++ <integer>120</integer>
++ <key>EnableTransactions</key>
++ <true/>
++#endif
+ </dict>
+ </plist>
+diff --git a/privileged_startx/server.c b/privileged_startx/server.c
+index 7afd424..6dd4f2b 100644
+--- privileged_startx/server.c
++++ 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,10 @@ int server_main(const char *dir) {
+ }
+
+ mp = launch_data_get_machport(svc);
++#else
++ 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 +171,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);
+@@ -161,8 +205,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);
+@@ -222,6 +268,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 +278,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 +299,4 @@ static void *idle_thread(void* param __attribute__((unused))) {
+ }
+ return NULL;
+ }
++#endif
+diff --git a/startx.cpp b/startx.cpp
+index 8ffdc70..fb23f18 100644
+--- startx.cpp
++++ 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
+
+@@ -133,19 +137,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 +193,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 +220,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,11 +271,15 @@ 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
++#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
+@@ -287,7 +294,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 +305,16 @@ 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
++
++#ifdef __APPLE__
++eval XINIT \"$client\" $clientargs -- \"$server\" $display $serverargs
++#else
++XINIT "$client" $clientargs -- "$server" $display $serverargs
++#endif
++
+ #endif
+
+ if [ x"$enable_xauth" = x1 ] ; then
+@@ -309,7 +322,7 @@ if [ x"$enable_xauth" = x1 ] ; then
+ XAUTH remove $removelist
+ fi
+ if [ x"$xserverauthfile" != x ]; then
+- rm -f $xserverauthfile
++ rm -f "$xserverauthfile"
+ fi
+ fi
+
+diff --git a/xinit.c b/xinit.c
+index 523cfd5..d25de9d 100644
+--- xinit.c
++++ 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 <AvailabilityMacros.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);
+@@ -464,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
+ }
+ }
+
Added: trunk/dports/x11/xinit/files/xinitrc.d/10-fontdir.sh
===================================================================
--- trunk/dports/x11/xinit/files/xinitrc.d/10-fontdir.sh (rev 0)
+++ trunk/dports/x11/xinit/files/xinitrc.d/10-fontdir.sh 2008-12-03 04:59:42 UTC (rev 42996)
@@ -0,0 +1,11 @@
+if [ -x /usr/X11/bin/xset ] ; then
+ fontpath="/usr/X11/lib/X11/fonts/misc/,/usr/X11/lib/X11/fonts/TTF/,/usr/X11/lib/X11/fonts/OTF,/usr/X11/lib/X11/fonts/Type1/,/usr/X11/lib/X11/fonts/75dpi/:unscaled,/usr/X11/lib/X11/fonts/100dpi/:unscaled,/usr/X11/lib/X11/fonts/75dpi/,/usr/X11/lib/X11/fonts/100dpi/"
+
+ [ -e "$HOME"/.fonts/fonts.dir ] && fontpath="$fontpath,$HOME/.fonts"
+ [ -e "$HOME"/Library/Fonts/fonts.dir ] && fontpath="$fontpath,$HOME/Library/Fonts"
+ [ -e /Library/Fonts/fonts.dir ] && fontpath="$fontpath,/Library/Fonts"
+ [ -e /System/Library/Fonts/fonts.dir ] && fontpath="$fontpath,/System/Library/Fonts"
+
+ /usr/X11/bin/xset fp= "$fontpath"
+ unset fontpath
+fi
Property changes on: trunk/dports/x11/xinit/files/xinitrc.d/10-fontdir.sh
___________________________________________________________________
Added: svn:executable
+ *
Added: trunk/dports/x11/xinit/files/xinitrc.d/98-user.sh
===================================================================
--- trunk/dports/x11/xinit/files/xinitrc.d/98-user.sh (rev 0)
+++ trunk/dports/x11/xinit/files/xinitrc.d/98-user.sh 2008-12-03 04:59:42 UTC (rev 42996)
@@ -0,0 +1,7 @@
+if [ -d "${HOME}/.xinitrc.d" ] ; then
+ for f in "${HOME}"/.xinitrc.d/*.sh ; do
+ [ -x "$f" ] && . "$f"
+ done
+ unset f
+fi
+
Property changes on: trunk/dports/x11/xinit/files/xinitrc.d/98-user.sh
___________________________________________________________________
Added: svn:executable
+ *
Added: trunk/dports/x11/xinit/files/xinitrc.d/99-quartz-wm.sh
===================================================================
--- trunk/dports/x11/xinit/files/xinitrc.d/99-quartz-wm.sh (rev 0)
+++ trunk/dports/x11/xinit/files/xinitrc.d/99-quartz-wm.sh 2008-12-03 04:59:42 UTC (rev 42996)
@@ -0,0 +1,4 @@
+[ -n "${USERWM}" -a -x "${USERWM}" ] && exec "${USERWM}"
+[ -x /usr/bin/quartz-wm ] && exec /usr/bin/quartz-wm
+[ -x /usr/X11/bin/quartz-wm ] && exec /usr/X11/bin/quartz-wm
+[ -x /usr/X11R6/bin/quartz-wm ] && exec /usr/X11R6/bin/quartz-wm
Property changes on: trunk/dports/x11/xinit/files/xinitrc.d/99-quartz-wm.sh
___________________________________________________________________
Added: svn:executable
+ *
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20081202/1443211e/attachment-0001.html>
More information about the macports-changes
mailing list