Update to xinit 1.3.1

This commit is contained in:
matthieu 2011-10-31 14:00:14 +00:00
parent 69d22764ba
commit 84d60d9bd5
33 changed files with 3304 additions and 1941 deletions

View File

@ -1,3 +1,292 @@
commit 6543a881708a2a410b51bb5644d9123c847a2908
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date: Sun Jul 24 17:15:10 2011 -0700
configure.ac: Bump version to 1.3.1
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
commit b0b9c21b752faab43241665f8fd12e10973e739c
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Fri Jun 17 13:49:11 2011 -0400
DIST_SUBDIRS is not required when using AM_CONDITIONALs
LAUNCHD is an Automake conditional which means that Automake will
traverse the launchd directory when running the dist target.
http://www.gnu.org/software/automake/manual/automake.html
One less variables to maintain.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 120a58116f2e3a223dbb78e0b33d3755eeb8ad5a
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Fri Jun 17 13:39:27 2011 -0400
Move man pages in the man directory
Now that the cpp tool is no longer needed, normalize the man pages build.
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit a81fab654085239ffcc4981b6bdab9fc18ec3d08
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Fri Jun 17 11:15:12 2011 -0400
Use XORG_MANPAGE_SECTIONS rather than cpprules.in to build man pages
As for all other manpages, use sed rather than the C preprocessor
from the Imake days.
Use SCOMAN Automake variable and groff .if for conditional text
We can therefore remove ARCHMANDEFS
Remove man page related code from cpprules.in
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 8e6cc68283518bba2820ff0d919aee9d49e3eb59
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date: Sat May 14 14:11:13 2011 -0700
launchd: Fix an array-index-out-of-bounds crasher
Found-by: GuardMalloc
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
commit 3b53d7aecb2f3a729c57f2831a3d4b6e1ff1901f
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date: Thu May 12 20:27:55 2011 -0700
launchd: Update console redirection to work with libdispatch
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
commit e6187b0d47722ec364372926d78dfe4e5637bd6c
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date: Thu May 12 20:08:09 2011 -0700
launchd Set the correct id for privileged_startx
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
commit a8de1219942e78db2cd193ffe745535d3c2d84b0
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date: Wed May 11 17:29:25 2011 -0700
configure.ac: Fix support for the deprecated --with-launchd-id-prefix
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
commit 2771fbf28d6ee6cce09df0f245322d60e21795af
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date: Wed May 11 00:32:51 2011 -0700
launchd: syslog: Use facility org.x rather than user
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
commit 4ca120d2d2a73d8a1595f15e04fc365a4ae20e78
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date: Wed May 11 00:29:03 2011 -0700
launchd: include config.h
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
commit c8b40e87f69f5be881725388418d703116af8e5f
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date: Wed May 11 00:24:45 2011 -0700
Rename launchd-id-prefix to bundle-id-prefix
It's used many other places than just for launchd.
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
commit 50f1172349dc900da4016c243734ae50691eab6c
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date: Wed Apr 27 18:10:45 2011 -0700
launchd: Silence clang static analyzer
../console_redirect.c:67:5: warning: Value stored to 'n' is never read
n = kevent(kq, ev, 2, NULL, 0, NULL);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
commit 2f15ccc30479d98012e3ddd595fa13c2f58d4a87
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date: Wed Apr 27 18:08:50 2011 -0700
privileged_startx: Prefer /usr/bin/mktemp
This will avoid accidentally tripping over an incompatible,
user-provided GNU flavor mktemp.
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
commit 4d0f9d2290bde45c0e844ce40f1caa7fb4baae0f
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date: Tue Apr 26 23:15:13 2011 -0700
launchd: Brownbag fix string compare
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
commit 933f0b2980b375cadc58b2ef5669bc34475a7be6
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date: Tue Apr 26 13:34:57 2011 -0700
launchd: console_redirect: Actually read and log the remaining data when we get EV_EOF
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
commit 0881b1f2082b26995c24212e1e54ac4391d23fcd
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date: Tue Apr 26 13:04:21 2011 -0700
launchd: Remove dead EXTRA_DIST
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
commit 2dd7a4b5ac19c0b2be5cc078756d43e42f39231c
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date: Tue Apr 26 13:01:24 2011 -0700
launchd: Fix make dist
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
commit 5f5390886004f785b4338fcff27f287c9aa6cd8c
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date: Mon Apr 25 23:09:03 2011 -0700
launchd: Enable stdout/stderr redirection to ASL
Don't rely on launchd to do our logging for us.
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
Reviewed-by: Daniel A. Steffen <dsteffen@apple.com>
commit c6a7f895c8c90b85ed4fd08927c47b0d17ed067a
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date: Mon Apr 25 22:26:02 2011 -0700
launchd: Log messages to ASL rather than fprintf
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
commit 567f59d3f8189b92bc46e2af1260f9340f462bdb
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date: Mon Apr 25 22:17:25 2011 -0700
launchd: Reorganized layout of launchd sources
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
commit 75a969b884296439fb84ca2be8f77d718d7da1e6
Author: Cyril Brulebois <kibi@debian.org>
Date: Sun Mar 6 01:59:13 2011 +0100
Fix minor typos in startx's comments.
Signed-off-by: Cyril Brulebois <kibi@debian.org>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 2d88aba7a84d153c2fc3226eece751395990edc7
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Fri Jan 28 18:50:20 2011 -0800
Merge adjacent if (timeout) blocks
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Dirk Wallenstein <halsmit@t-online.de>
commit 622a5500e8b19d603592bb1e871633323a3c09da
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Thu Jan 13 11:15:47 2011 -0500
man: remove trailing spaces and tabs
Using s/[ \t]*$//
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 7119d9109ac7fc85b8e97af83aa6d98f9941a998
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Wed Jan 12 15:33:42 2011 -0500
config: remove the workaround for the deprecated AC_HELP_STRING
With Autoconf version 2.60, AS_HELP_STRING is always available.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit f4d2e3972e8f1c14cefa649e2da9bb83a06363c6
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Wed Jan 12 15:12:08 2011 -0500
config: remove unrequired AC_SUBST([*_LIBS])
This macro is called by PKG_CHECK_MODULES
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 7264d4132b8520069f6f8855cc3847805057d39b
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Wed Jan 12 13:33:48 2011 -0500
config: remove unrequired AC_SUBST([*_CFLAGS])
This macro is called by PKG_CHECK_MODULES
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit b2b1cc02fdb141cae7ee18034a6ab5d571b7eb6b
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Fri Jan 7 19:21:20 2011 -0800
config: replace deprecated AM_CONFIG_HEADER with AC_CONFIG_HEADERS
Regroup AC statements under the Autoconf initialization section.
Regroup AM statements under the Automake initialization section.
Add missing AC_CONFIG_SRCDIR
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit e6e427bbf6f3c9472dcbff1028fded459c803d6e
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Fri Jan 7 19:19:22 2011 -0800
config: Replace obsolete usage of AC_OUTPUT with AC_CONFIG_FILES
Stops configure from running the output generation routines twice
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 6e44c0f269a5f2dced84e7ab3c496605d827ec11
Author: Tom Doherty <tom@singlesecond.com>
Date: Mon Nov 22 21:27:13 2010 +0100
Minor typo.
Signed-off-by: Matthieu Herrb <matthieu.herrb@laas.fr>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit c371f43b69b223ba68e00125e6aa56621a23109b
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sat Oct 30 17:16:16 2010 -0700
Add usual set of URLs to README
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit cc92823c61f9f4d31a25d107017198d1e16d4fcf
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sat Oct 30 16:44:22 2010 -0700

View File

@ -19,6 +19,11 @@
# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
SUBDIRS = man
if LAUNCHD
SUBDIRS += launchd
endif
bin_PROGRAMS = xinit
bin_SCRIPTS = startx
@ -29,14 +34,6 @@ xinit_LDADD = $(XINIT_LIBS)
xinit_SOURCES = \
xinit.c
appmandir = $(APP_MAN_DIR)
appman_PRE = \
startx.man \
xinit.man
appman_DATA = $(appman_PRE:man=@APP_MAN_SUFFIX@)
include $(top_srcdir)/cpprules.in
xinitrcdir = $(XINITDIR)
@ -58,26 +55,14 @@ CPP_FILES_FLAGS = \
-DSHELL_CMD=$(SHELL_CMD) $(STARTX_COOKIE_FLAGS) \
-D__libexecdir__="$(libexecdir)" \
-D__bindir__="$(bindir)" \
-DLAUNCHD_ID_PREFIX="$(launchdidprefix)"
if LAUNCHD
$(launchdidprefix).startx.plist.cpp: org.x.startx.plist.cpp
cp $< $@
launchagents_PRE = $(launchdidprefix).startx.plist.cpp
launchagents_DATA = $(launchagents_PRE:plist.cpp=plist)
SUBDIRS = privileged_startx
endif
DIST_SUBDIRS = privileged_startx
-DBUNDLE_ID_PREFIX="$(bundleidprefix)"
xinitrc_DATA = xinitrc
MAINTAINERCLEANFILES = ChangeLog INSTALL
CLEANFILES = xinitrc startx $(appman_DATA) $(launchagents_DATA)
CLEANFILES = xinitrc startx $(launchagents_DATA)
EXTRA_DIST = xinitrc.cpp startx.cpp org.x.startx.plist.cpp $(appman_PRE) \
EXTRA_DIST = xinitrc.cpp startx.cpp \
autogen.sh
.PHONY: ChangeLog INSTALL

View File

@ -53,9 +53,9 @@ pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
install_sh_DATA = ${SHELL} $(install_sh) -c -m 644
install_sh_PROGRAM = ${SHELL} $(install_sh) -c
install_sh_SCRIPT = ${SHELL} $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
@ -66,6 +66,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
@LAUNCHD_TRUE@am__append_1 = launchd
bin_PROGRAMS = xinit$(EXEEXT)
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
@ -83,7 +84,6 @@ mkinstalldirs = $(SHELL) $(install_sh) -d
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" \
"$(DESTDIR)$(appmandir)" "$(DESTDIR)$(launchagentsdir)" \
"$(DESTDIR)$(xinitrcdir)"
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(bin_PROGRAMS)
@ -114,12 +114,11 @@ am__vpath_adj = case $$p in \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
appmanDATA_INSTALL = $(INSTALL_DATA)
launchagentsDATA_INSTALL = $(INSTALL_DATA)
xinitrcDATA_INSTALL = $(INSTALL_DATA)
DATA = $(appman_DATA) $(launchagents_DATA) $(xinitrc_DATA)
DATA = $(xinitrc_DATA)
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = man launchd
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
@ -140,7 +139,6 @@ AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
APP_MAN_DIR = @APP_MAN_DIR@
APP_MAN_SUFFIX = @APP_MAN_SUFFIX@
ARCHMANDEFS = @ARCHMANDEFS@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
@ -198,11 +196,13 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
RAWCPP = @RAWCPP@
RAWCPPFLAGS = @RAWCPPFLAGS@
SCOMAN = @SCOMAN@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SHELL_CMD = @SHELL_CMD@
STARTX_COOKIE_FLAGS = @STARTX_COOKIE_FLAGS@
STRICT_CFLAGS = @STRICT_CFLAGS@
STRIP = @STRIP@
TIGER_LAUNCHD_FALSE = @TIGER_LAUNCHD_FALSE@
TIGER_LAUNCHD_TRUE = @TIGER_LAUNCHD_TRUE@
@ -238,6 +238,7 @@ build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
bundleidprefix = @bundleidprefix@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
@ -254,7 +255,6 @@ infodir = @infodir@
install_sh = @install_sh@
launchagentsdir = @launchagentsdir@
launchdaemonsdir = @launchdaemonsdir@
launchdidprefix = @launchdidprefix@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
@ -270,6 +270,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
SUBDIRS = man $(am__append_1)
bin_SCRIPTS = startx
AM_CFLAGS = $(CWARNFLAGS) $(XINIT_CFLAGS)
AM_CPPFLAGS = -DXINITDIR=\"$(XINITDIR)\" -DBINDIR=\"$(bindir)\"
@ -277,12 +278,6 @@ xinit_LDADD = $(XINIT_LIBS)
xinit_SOURCES = \
xinit.c
appmandir = $(APP_MAN_DIR)
appman_PRE = \
startx.man \
xinit.man
appman_DATA = $(appman_PRE:man=@APP_MAN_SUFFIX@)
CPP_SED_MAGIC = $(SED) -e '/^\# *[0-9][0-9]* *.*$$/d' \
-e '/^\#line *[0-9][0-9]* *.*$$/d' \
-e '/^[ ]*XCOMM$$/s/XCOMM/\#/' \
@ -291,24 +286,7 @@ CPP_SED_MAGIC = $(SED) -e '/^\# *[0-9][0-9]* *.*$$/d' \
-e '/XSLASHGLOB/s/XSLASHGLOB/\/\*/' \
-e '/\@\@$$/s/\@\@$$/\\/'
# Strings to replace in man pages
XORGRELSTRING = @PACKAGE_STRING@
XORGMANNAME = X Version 11
MANDEFS = \
-D__xorgversion__="\"$(XORGRELSTRING)\" \"$(XORGMANNAME)\"" \
-D__appmansuffix__=$(APP_MAN_SUFFIX) \
-D__filemansuffix__=$(FILE_MAN_SUFFIX) \
-D__libmansuffix__=$(LIB_MAN_SUFFIX) \
-D__miscmansuffix__=$(MISC_MAN_SUFFIX) \
-D__XSERVERNAME__='$(XSERVERNAME)' \
-D__XCONFIGFILE__='$(XCONFIGFILE)' \
-D__XCONFIGFILEMAN__='$(XCONFIGFILEMAN)' \
-D__xinitdir__=$(XINITDIR) \
-D__bindir__=$(bindir) \
-DSHELL_CMD=$(SHELL_CMD) $(ARCHMANDEFS)
SUFFIXES = .$(APP_MAN_SUFFIX) .man .cpp
SUFFIXES = .cpp
xinitrcdir = $(XINITDIR)
PROGCPPDEFS = \
-DXRDB=@XRDB@ \
@ -327,23 +305,19 @@ CPP_FILES_FLAGS = \
-DSHELL_CMD=$(SHELL_CMD) $(STARTX_COOKIE_FLAGS) \
-D__libexecdir__="$(libexecdir)" \
-D__bindir__="$(bindir)" \
-DLAUNCHD_ID_PREFIX="$(launchdidprefix)"
-DBUNDLE_ID_PREFIX="$(bundleidprefix)"
@LAUNCHD_TRUE@launchagents_PRE = $(launchdidprefix).startx.plist.cpp
@LAUNCHD_TRUE@launchagents_DATA = $(launchagents_PRE:plist.cpp=plist)
@LAUNCHD_TRUE@SUBDIRS = privileged_startx
DIST_SUBDIRS = privileged_startx
xinitrc_DATA = xinitrc
MAINTAINERCLEANFILES = ChangeLog INSTALL
CLEANFILES = xinitrc startx $(appman_DATA) $(launchagents_DATA)
EXTRA_DIST = xinitrc.cpp startx.cpp org.x.startx.plist.cpp $(appman_PRE) \
CLEANFILES = xinitrc startx $(launchagents_DATA)
EXTRA_DIST = xinitrc.cpp startx.cpp \
autogen.sh
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
.SUFFIXES:
.SUFFIXES: .$(APP_MAN_SUFFIX) .man .cpp .c .o .obj
.SUFFIXES: .cpp .c .o .obj
am--refresh:
@:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/cpprules.in $(am__configure_deps)
@ -462,40 +436,6 @@ distclean-compile:
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
uninstall-info-am:
install-appmanDATA: $(appman_DATA)
@$(NORMAL_INSTALL)
test -z "$(appmandir)" || $(mkdir_p) "$(DESTDIR)$(appmandir)"
@list='$(appman_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(appmanDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(appmandir)/$$f'"; \
$(appmanDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(appmandir)/$$f"; \
done
uninstall-appmanDATA:
@$(NORMAL_UNINSTALL)
@list='$(appman_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(appmandir)/$$f'"; \
rm -f "$(DESTDIR)$(appmandir)/$$f"; \
done
install-launchagentsDATA: $(launchagents_DATA)
@$(NORMAL_INSTALL)
test -z "$(launchagentsdir)" || $(mkdir_p) "$(DESTDIR)$(launchagentsdir)"
@list='$(launchagents_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(launchagentsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(launchagentsdir)/$$f'"; \
$(launchagentsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(launchagentsdir)/$$f"; \
done
uninstall-launchagentsDATA:
@$(NORMAL_UNINSTALL)
@list='$(launchagents_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(launchagentsdir)/$$f'"; \
rm -f "$(DESTDIR)$(launchagentsdir)/$$f"; \
done
install-xinitrcDATA: $(xinitrc_DATA)
@$(NORMAL_INSTALL)
test -z "$(xinitrcdir)" || $(mkdir_p) "$(DESTDIR)$(xinitrcdir)"
@ -795,7 +735,7 @@ check: check-recursive
all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(DATA) config.h
installdirs: installdirs-recursive
installdirs-am:
for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(appmandir)" "$(DESTDIR)$(launchagentsdir)" "$(DESTDIR)$(xinitrcdir)"; do \
for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(xinitrcdir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-recursive
@ -845,8 +785,7 @@ info: info-recursive
info-am:
install-data-am: install-appmanDATA install-launchagentsDATA \
install-xinitrcDATA
install-data-am: install-xinitrcDATA
install-exec-am: install-binPROGRAMS install-binSCRIPTS
@ -875,9 +814,8 @@ ps: ps-recursive
ps-am:
uninstall-am: uninstall-appmanDATA uninstall-binPROGRAMS \
uninstall-binSCRIPTS uninstall-info-am \
uninstall-launchagentsDATA uninstall-xinitrcDATA
uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \
uninstall-info-am uninstall-xinitrcDATA
uninstall-info: uninstall-info-recursive
@ -888,29 +826,21 @@ uninstall-info: uninstall-info-recursive
distclean-compile distclean-generic distclean-hdr \
distclean-recursive distclean-tags distcleancheck distdir \
distuninstallcheck dvi dvi-am html html-am info info-am \
install install-am install-appmanDATA install-binPROGRAMS \
install-binSCRIPTS install-data install-data-am install-exec \
install-exec-am install-info install-info-am \
install-launchagentsDATA install-man install-strip \
install install-am install-binPROGRAMS install-binSCRIPTS \
install-data install-data-am install-exec install-exec-am \
install-info install-info-am install-man install-strip \
install-xinitrcDATA installcheck installcheck-am installdirs \
installdirs-am maintainer-clean maintainer-clean-generic \
maintainer-clean-recursive mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-recursive pdf pdf-am ps ps-am \
tags tags-recursive uninstall uninstall-am \
uninstall-appmanDATA uninstall-binPROGRAMS \
uninstall-binSCRIPTS uninstall-info-am \
uninstall-launchagentsDATA uninstall-xinitrcDATA
uninstall-binPROGRAMS uninstall-binSCRIPTS uninstall-info-am \
uninstall-xinitrcDATA
.cpp:
$(AM_V_GEN)$(RAWCPP) $(RAWCPPFLAGS) $(CPP_FILES_FLAGS) < $< | $(CPP_SED_MAGIC) > $@
.man.$(APP_MAN_SUFFIX):
$(AM_V_GEN)$(RAWCPP) $(RAWCPPFLAGS) $(MANDEFS) $(EXTRAMANDEFS) < $< | $(CPP_SED_MAGIC) > $@
@LAUNCHD_TRUE@$(launchdidprefix).startx.plist.cpp: org.x.startx.plist.cpp
@LAUNCHD_TRUE@ cp $< $@
.PHONY: ChangeLog INSTALL
INSTALL:

View File

@ -1,5 +1,29 @@
The xinit program is used to start the X Window System server and a first
client program on systems that are not using a display manager such as xdm.
The xinit is not intended for naive users. Instead, site administrators should
design user-friendly scripts that present the desired interface when starting
up X. The startx script is one such example.
Note that the sample xinitrc file is NOT installed by default.
All questions regarding this software should be directed at the
Xorg mailing list:
http://lists.freedesktop.org/mailman/listinfo/xorg
Please submit bug reports to the Xorg bugzilla:
https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
The master development code repository can be found at:
git://anongit.freedesktop.org/git/xorg/app/xinit
http://cgit.freedesktop.org/xorg/app/xinit
For patch submission instructions, see:
http://www.x.org/wiki/Development/Documentation/SubmittingPatches
For more information on the git code manager, see:
http://wiki.x.org/wiki/GitPage

426
app/xinit/aclocal.m4 vendored
View File

@ -498,18 +498,6 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
])
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 8
# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS.
AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
# Do all the work for Automake. -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
@ -1034,7 +1022,7 @@ dnl DEALINGS IN THE SOFTWARE.
# See the "minimum version" comment for each macro you use to see what
# version you require.
m4_defun([XORG_MACROS_VERSION],[
m4_define([vers_have], [1.11.0])
m4_define([vers_have], [1.15.0])
m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.])))
m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.])))
m4_if(m4_cmp(maj_have, maj_needed), 0,,
@ -1061,7 +1049,7 @@ AC_PATH_PROGS(RAWCPP, [cpp], [${CPP}],
# which is not the best choice for supporting other OS'es, but covers most
# of the ones we need for now.
AC_MSG_CHECKING([if $RAWCPP requires -undef])
AC_LANG_CONFTEST([Does cpp redefine unix ?])
AC_LANG_CONFTEST([AC_LANG_SOURCE([[Does cpp redefine unix ?]])])
if test `${RAWCPP} < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then
AC_MSG_RESULT([no])
else
@ -1079,7 +1067,7 @@ fi
rm -f conftest.$ac_ext
AC_MSG_CHECKING([if $RAWCPP requires -traditional])
AC_LANG_CONFTEST([Does cpp preserve "whitespace"?])
AC_LANG_CONFTEST([AC_LANG_SOURCE([[Does cpp preserve "whitespace"?]])])
if test `${RAWCPP} < conftest.$ac_ext | grep -c 'preserve \"'` -eq 1 ; then
AC_MSG_RESULT([no])
else
@ -1429,6 +1417,123 @@ AM_CONDITIONAL([HAVE_XMLTO_TEXT], [test $have_xmlto_text = yes])
AM_CONDITIONAL([HAVE_XMLTO], [test "$have_xmlto" = yes])
]) # XORG_WITH_XMLTO
# XORG_WITH_XSLTPROC([MIN-VERSION], [DEFAULT])
# --------------------------------------------
# Minimum version: 1.12.0
# Minimum version for optional DEFAULT argument: 1.12.0
#
# XSLT (Extensible Stylesheet Language Transformations) is a declarative,
# XML-based language used for the transformation of XML documents.
# The xsltproc command line tool is for applying XSLT stylesheets to XML documents.
# It is used under the cover by xmlto to generate html files from DocBook/XML.
# The XSLT processor is often used as a standalone tool for transformations.
# It should not be assumed that this tool is used only to work with documnetation.
# When DEFAULT is not specified, --with-xsltproc assumes 'auto'.
#
# Interface to module:
# HAVE_XSLTPROC: used in makefiles to conditionally generate documentation
# XSLTPROC: returns the path of the xsltproc program found
# returns the path set by the user in the environment
# --with-xsltproc: 'yes' user instructs the module to use xsltproc
# 'no' user instructs the module not to use xsltproc
# have_xsltproc: returns yes if xsltproc found in PATH or no
#
# If the user sets the value of XSLTPROC, AC_PATH_PROG skips testing the path.
#
AC_DEFUN([XORG_WITH_XSLTPROC],[
AC_ARG_VAR([XSLTPROC], [Path to xsltproc command])
# Preserves the interface, should it be implemented later
m4_ifval([$1], [m4_warn([syntax], [Checking for xsltproc MIN-VERSION is not implemented])])
m4_define([_defopt], m4_default([$2], [auto]))
AC_ARG_WITH(xsltproc,
AS_HELP_STRING([--with-xsltproc],
[Use xsltproc for the transformation of XML documents (default: ]_defopt[)]),
[use_xsltproc=$withval], [use_xsltproc=]_defopt)
m4_undefine([_defopt])
if test "x$use_xsltproc" = x"auto"; then
AC_PATH_PROG([XSLTPROC], [xsltproc])
if test "x$XSLTPROC" = "x"; then
AC_MSG_WARN([xsltproc not found - cannot transform XML documents])
have_xsltproc=no
else
have_xsltproc=yes
fi
elif test "x$use_xsltproc" = x"yes" ; then
AC_PATH_PROG([XSLTPROC], [xsltproc])
if test "x$XSLTPROC" = "x"; then
AC_MSG_ERROR([--with-xsltproc=yes specified but xsltproc not found in PATH])
fi
have_xsltproc=yes
elif test "x$use_xsltproc" = x"no" ; then
if test "x$XSLTPROC" != "x"; then
AC_MSG_WARN([ignoring XSLTPROC environment variable since --with-xsltproc=no was specified])
fi
have_xsltproc=no
else
AC_MSG_ERROR([--with-xsltproc expects 'yes' or 'no'])
fi
AM_CONDITIONAL([HAVE_XSLTPROC], [test "$have_xsltproc" = yes])
]) # XORG_WITH_XSLTPROC
# XORG_WITH_PERL([MIN-VERSION], [DEFAULT])
# ----------------------------------------
# Minimum version: 1.15.0
#
# PERL (Practical Extraction and Report Language) is a language optimized for
# scanning arbitrary text files, extracting information from those text files,
# and printing reports based on that information.
#
# When DEFAULT is not specified, --with-perl assumes 'auto'.
#
# Interface to module:
# HAVE_PERL: used in makefiles to conditionally scan text files
# PERL: returns the path of the perl program found
# returns the path set by the user in the environment
# --with-perl: 'yes' user instructs the module to use perl
# 'no' user instructs the module not to use perl
# have_perl: returns yes if perl found in PATH or no
#
# If the user sets the value of PERL, AC_PATH_PROG skips testing the path.
#
AC_DEFUN([XORG_WITH_PERL],[
AC_ARG_VAR([PERL], [Path to perl command])
# Preserves the interface, should it be implemented later
m4_ifval([$1], [m4_warn([syntax], [Checking for perl MIN-VERSION is not implemented])])
m4_define([_defopt], m4_default([$2], [auto]))
AC_ARG_WITH(perl,
AS_HELP_STRING([--with-perl],
[Use perl for extracting information from files (default: ]_defopt[)]),
[use_perl=$withval], [use_perl=]_defopt)
m4_undefine([_defopt])
if test "x$use_perl" = x"auto"; then
AC_PATH_PROG([PERL], [perl])
if test "x$PERL" = "x"; then
AC_MSG_WARN([perl not found - cannot extract information and report])
have_perl=no
else
have_perl=yes
fi
elif test "x$use_perl" = x"yes" ; then
AC_PATH_PROG([PERL], [perl])
if test "x$PERL" = "x"; then
AC_MSG_ERROR([--with-perl=yes specified but perl not found in PATH])
fi
have_perl=yes
elif test "x$use_perl" = x"no" ; then
if test "x$PERL" != "x"; then
AC_MSG_WARN([ignoring PERL environment variable since --with-perl=no was specified])
fi
have_perl=no
else
AC_MSG_ERROR([--with-perl expects 'yes' or 'no'])
fi
AM_CONDITIONAL([HAVE_PERL], [test "$have_perl" = yes])
]) # XORG_WITH_PERL
# XORG_WITH_ASCIIDOC([MIN-VERSION], [DEFAULT])
# ----------------
# Minimum version: 1.5.0
@ -1674,10 +1779,11 @@ AM_CONDITIONAL([HAVE_GROFF_MM], [test "$groff_mm_works" = yes])
AM_CONDITIONAL([HAVE_GROFF_HTML], [test "$have_groff_html" = yes])
]) # XORG_WITH_GROFF
# XORG_WITH_FOP([DEFAULT])
# ----------------
# XORG_WITH_FOP([MIN-VERSION], [DEFAULT])
# ---------------------------------------
# Minimum version: 1.6.0
# Minimum version for optional DEFAULT argument: 1.11.0
# Minimum version for optional MIN-VERSION argument: 1.15.0
#
# Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the
@ -1697,7 +1803,7 @@ AM_CONDITIONAL([HAVE_GROFF_HTML], [test "$have_groff_html" = yes])
#
AC_DEFUN([XORG_WITH_FOP],[
AC_ARG_VAR([FOP], [Path to fop command])
m4_define([_defopt], m4_default([$1], [auto]))
m4_define([_defopt], m4_default([$2], [auto]))
AC_ARG_WITH(fop,
AS_HELP_STRING([--with-fop],
[Use fop to regenerate documentation (default: ]_defopt[)]),
@ -1726,6 +1832,22 @@ elif test "x$use_fop" = x"no" ; then
else
AC_MSG_ERROR([--with-fop expects 'yes' or 'no'])
fi
# Test for a minimum version of fop, if provided.
m4_ifval([$1],
[if test "$have_fop" = yes; then
# scrape the fop version
AC_MSG_CHECKING([for fop minimum version])
fop_version=`$FOP -version 2>/dev/null | cut -d' ' -f3`
AC_MSG_RESULT([$fop_version])
AS_VERSION_COMPARE([$fop_version], [$1],
[if test "x$use_fop" = xauto; then
AC_MSG_WARN([fop version $fop_version found, but $1 needed])
have_fop=no
else
AC_MSG_ERROR([fop version $fop_version found, but $1 needed])
fi])
fi])
AM_CONDITIONAL([HAVE_FOP], [test "$have_fop" = yes])
]) # XORG_WITH_FOP
@ -1808,12 +1930,12 @@ AM_CONDITIONAL([HAVE_PS2PDF], [test "$have_ps2pdf" = yes])
# parm1: specify the default value, yes or no.
#
AC_DEFUN([XORG_ENABLE_DOCS],[
m4_define([default], m4_default([$1], [yes]))
m4_define([docs_default], m4_default([$1], [yes]))
AC_ARG_ENABLE(docs,
AS_HELP_STRING([--enable-docs],
[Enable building the documentation (default: ]default[)]),
[build_docs=$enableval], [build_docs=]default)
m4_undefine([default])
[Enable building the documentation (default: ]docs_default[)]),
[build_docs=$enableval], [build_docs=]docs_default)
m4_undefine([docs_default])
AM_CONDITIONAL(ENABLE_DOCS, [test x$build_docs = xyes])
AC_MSG_CHECKING([whether to build documentation])
AC_MSG_RESULT([$build_docs])
@ -1885,6 +2007,194 @@ AC_MSG_CHECKING([whether to build functional specifications])
AC_MSG_RESULT([$build_specs])
]) # XORG_ENABLE_SPECS
# XORG_ENABLE_UNIT_TESTS (enable_unit_tests=auto)
# ----------------------------------------------
# Minimum version: 1.13.0
#
# This macro enables a builder to enable/disable unit testing
# It makes no assumption about the test cases implementation
# Test cases may or may not use Automake "Support for test suites"
# They may or may not use the software utility library GLib
#
# When used in conjunction with XORG_WITH_GLIB, use both AM_CONDITIONAL
# ENABLE_UNIT_TESTS and HAVE_GLIB. Not all unit tests may use glib.
# The variable enable_unit_tests is used by other macros in this file.
#
# Interface to module:
# ENABLE_UNIT_TESTS: used in makefiles to conditionally build tests
# enable_unit_tests: used in configure.ac for additional configuration
# --enable-unit-tests: 'yes' user instructs the module to build tests
# 'no' user instructs the module not to build tests
# parm1: specify the default value, yes or no.
#
AC_DEFUN([XORG_ENABLE_UNIT_TESTS],[
AC_BEFORE([$0], [XORG_WITH_GLIB])
AC_BEFORE([$0], [XORG_LD_WRAP])
m4_define([_defopt], m4_default([$1], [auto]))
AC_ARG_ENABLE(unit-tests, AS_HELP_STRING([--enable-unit-tests],
[Enable building unit test cases (default: ]_defopt[)]),
[enable_unit_tests=$enableval], [enable_unit_tests=]_defopt)
m4_undefine([_defopt])
AM_CONDITIONAL(ENABLE_UNIT_TESTS, [test "x$enable_unit_tests" != xno])
AC_MSG_CHECKING([whether to build unit test cases])
AC_MSG_RESULT([$enable_unit_tests])
]) # XORG_ENABLE_UNIT_TESTS
# XORG_WITH_GLIB([MIN-VERSION], [DEFAULT])
# ----------------------------------------
# Minimum version: 1.13.0
#
# GLib is a library which provides advanced data structures and functions.
# This macro enables a module to test for the presence of Glib.
#
# When used with ENABLE_UNIT_TESTS, it is assumed GLib is used for unit testing.
# Otherwise the value of $enable_unit_tests is blank.
#
# Interface to module:
# HAVE_GLIB: used in makefiles to conditionally build targets
# with_glib: used in configure.ac to know if GLib has been found
# --with-glib: 'yes' user instructs the module to use glib
# 'no' user instructs the module not to use glib
#
AC_DEFUN([XORG_WITH_GLIB],[
AC_REQUIRE([PKG_PROG_PKG_CONFIG])
m4_define([_defopt], m4_default([$2], [auto]))
AC_ARG_WITH(glib, AS_HELP_STRING([--with-glib],
[Use GLib library for unit testing (default: ]_defopt[)]),
[with_glib=$withval], [with_glib=]_defopt)
m4_undefine([_defopt])
have_glib=no
# Do not probe GLib if user explicitly disabled unit testing
if test "x$enable_unit_tests" != x"no"; then
# Do not probe GLib if user explicitly disabled it
if test "x$with_glib" != x"no"; then
m4_ifval(
[$1],
[PKG_CHECK_MODULES([GLIB], [glib-2.0 >= $1], [have_glib=yes], [have_glib=no])],
[PKG_CHECK_MODULES([GLIB], [glib-2.0], [have_glib=yes], [have_glib=no])]
)
fi
fi
# Not having GLib when unit testing has been explicitly requested is an error
if test "x$enable_unit_tests" = x"yes"; then
if test "x$have_glib" = x"no"; then
AC_MSG_ERROR([--enable-unit-tests=yes specified but glib-2.0 not found])
fi
fi
# Having unit testing disabled when GLib has been explicitly requested is an error
if test "x$enable_unit_tests" = x"no"; then
if test "x$with_glib" = x"yes"; then
AC_MSG_ERROR([--enable-unit-tests=yes specified but glib-2.0 not found])
fi
fi
# Not having GLib when it has been explicitly requested is an error
if test "x$with_glib" = x"yes"; then
if test "x$have_glib" = x"no"; then
AC_MSG_ERROR([--with-glib=yes specified but glib-2.0 not found])
fi
fi
AM_CONDITIONAL([HAVE_GLIB], [test "$have_glib" = yes])
]) # XORG_WITH_GLIB
# XORG_LD_WRAP
# ------------
# Minimum version: 1.13.0
#
# Check if linker supports -wrap, passed via compiler flags
#
# When used with ENABLE_UNIT_TESTS, it is assumed -wrap is used for unit testing.
# Otherwise the value of $enable_unit_tests is blank.
#
AC_DEFUN([XORG_LD_WRAP],[
XORG_CHECK_LINKER_FLAGS([-Wl,-wrap,exit],[have_ld_wrap=yes],[have_ld_wrap=no])
# Not having ld wrap when unit testing has been explicitly requested is an error
if test "x$enable_unit_tests" = x"yes"; then
if test "x$have_ld_wrap" = x"no"; then
AC_MSG_ERROR([--enable-unit-tests=yes specified but ld -wrap support is not available])
fi
fi
AM_CONDITIONAL([HAVE_LD_WRAP], [test "$have_ld_wrap" = yes])
#
]) # XORG_LD_WRAP
# XORG_CHECK_LINKER_FLAGS
# -----------------------
# SYNOPSIS
#
# XORG_CHECK_LINKER_FLAGS(FLAGS, [ACTION-SUCCESS], [ACTION-FAILURE])
#
# DESCRIPTION
#
# Check whether the given linker FLAGS work with the current language's
# linker, or whether they give an error.
#
# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
# success/failure.
#
# NOTE: Based on AX_CHECK_COMPILER_FLAGS.
#
# LICENSE
#
# Copyright (c) 2009 Mike Frysinger <vapier@gentoo.org>
# Copyright (c) 2009 Steven G. Johnson <stevenj@alum.mit.edu>
# Copyright (c) 2009 Matteo Frigo
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation, either version 3 of the License, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
# scripts that are the output of Autoconf when processing the Macro. You
# need not follow the terms of the GNU General Public License when using
# or distributing such scripts, even though portions of the text of the
# Macro appear in them. The GNU General Public License (GPL) does govern
# all other use of the material that constitutes the Autoconf Macro.
#
# This special exception to the GPL applies to versions of the Autoconf
# Macro released by the Autoconf Archive. When you make and distribute a
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.#
AC_DEFUN([XORG_CHECK_LINKER_FLAGS],
[AC_MSG_CHECKING([whether the linker accepts $1])
dnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname:
AS_LITERAL_IF([$1],
[AC_CACHE_VAL(AS_TR_SH(xorg_cv_linker_flags_[$1]), [
ax_save_FLAGS=$LDFLAGS
LDFLAGS="$1"
AC_LINK_IFELSE([AC_LANG_PROGRAM()],
AS_TR_SH(xorg_cv_linker_flags_[$1])=yes,
AS_TR_SH(xorg_cv_linker_flags_[$1])=no)
LDFLAGS=$ax_save_FLAGS])],
[ax_save_FLAGS=$LDFLAGS
LDFLAGS="$1"
AC_LINK_IFELSE([AC_LANG_PROGRAM()],
eval AS_TR_SH(xorg_cv_linker_flags_[$1])=yes,
eval AS_TR_SH(xorg_cv_linker_flags_[$1])=no)
LDFLAGS=$ax_save_FLAGS])
eval xorg_check_linker_flags=$AS_TR_SH(xorg_cv_linker_flags_[$1])
AC_MSG_RESULT($xorg_check_linker_flags)
if test "x$xorg_check_linker_flags" = xyes; then
m4_default([$2], :)
else
m4_default([$3], :)
fi
]) # XORG_CHECK_LINKER_FLAGS
# XORG_CHECK_MALLOC_ZERO
# ----------------------
# Minimum version: 1.0.0
@ -1901,18 +2211,16 @@ AC_ARG_ENABLE(malloc0returnsnull,
AC_MSG_CHECKING([whether malloc(0) returns NULL])
if test "x$MALLOC_ZERO_RETURNS_NULL" = xauto; then
AC_RUN_IFELSE([
char *malloc();
char *realloc();
char *calloc();
main() {
AC_RUN_IFELSE([AC_LANG_PROGRAM([
#include <stdlib.h>
],[
char *m0, *r0, *c0, *p;
m0 = malloc(0);
p = malloc(10);
r0 = realloc(p,0);
c0 = calloc(0);
exit(m0 == 0 || r0 == 0 || c0 == 0 ? 0 : 1);
}],
c0 = calloc(0,10);
exit((m0 == 0 || r0 == 0 || c0 == 0) ? 0 : 1);
])],
[MALLOC_ZERO_RETURNS_NULL=yes],
[MALLOC_ZERO_RETURNS_NULL=no],
[MALLOC_ZERO_RETURNS_NULL=yes])
@ -2038,6 +2346,23 @@ AM_CONDITIONAL(MAKE_LINT_LIB, [test x$make_lint_lib != xno])
]) # XORG_LINT_LIBRARY
# XORG_COMPILER_BRAND
# -------------------
# Minimum version: 1.14.0
#
# Checks for various brands of compilers and sets flags as appropriate:
# GNU gcc - relies on AC_PROG_CC (via AC_PROG_CC_C99) to set GCC to "yes"
# clang compiler - sets CLANGCC to "yes"
# Intel compiler - sets INTELCC to "yes"
# Sun/Oracle Solaris Studio cc - sets SUNCC to "yes"
#
AC_DEFUN([XORG_COMPILER_BRAND], [
AC_REQUIRE([AC_PROG_CC_C99])
AC_CHECK_DECL([__clang__], [CLANGCC="yes"], [CLANGCC="no"])
AC_CHECK_DECL([__INTEL_COMPILER], [INTELCC="yes"], [INTELCC="no"])
AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
]) # XORG_COMPILER_BRAND
# XORG_CWARNFLAGS
# ---------------
# Minimum version: 1.2.0
@ -2046,6 +2371,7 @@ AM_CONDITIONAL(MAKE_LINT_LIB, [test x$make_lint_lib != xno])
#
AC_DEFUN([XORG_CWARNFLAGS], [
AC_REQUIRE([AC_PROG_CC_C99])
AC_REQUIRE([XORG_COMPILER_BRAND])
if test "x$GCC" = xyes ; then
CWARNFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \
-Wmissing-declarations -Wnested-externs -fno-strict-aliasing \
@ -2056,7 +2382,6 @@ if test "x$GCC" = xyes ; then
;;
esac
else
AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
if test "x$SUNCC" = "xyes"; then
CWARNFLAGS="-v"
fi
@ -2068,28 +2393,43 @@ AC_SUBST(CWARNFLAGS)
# -----------------------
# Minimum version: 1.3.0
#
# Add configure option to enable strict compilation
# Add configure option to enable strict compilation flags, such as treating
# warnings as fatal errors.
# If --enable-strict-compilation is passed to configure, adds strict flags to
# $CWARNFLAGS.
#
# Starting in 1.14.0 also exports $STRICT_CFLAGS for use in other tests or
# when strict compilation is unconditionally desired.
AC_DEFUN([XORG_STRICT_OPTION], [
# If the module's configure.ac calls AC_PROG_CC later on, CC gets set to C89
AC_REQUIRE([AC_PROG_CC_C99])
AC_REQUIRE([XORG_COMPILER_BRAND])
AC_REQUIRE([XORG_CWARNFLAGS])
AC_ARG_ENABLE(strict-compilation,
AS_HELP_STRING([--enable-strict-compilation],
[Enable all warnings from compiler and make them errors (default: disabled)]),
[STRICT_COMPILE=$enableval], [STRICT_COMPILE=no])
if test "x$STRICT_COMPILE" = "xyes"; then
AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
AC_CHECK_DECL([__INTEL_COMPILER], [INTELCC="yes"], [INTELCC="no"])
if test "x$GCC" = xyes ; then
STRICT_CFLAGS="-pedantic -Werror"
elif test "x$SUNCC" = "xyes"; then
STRICT_CFLAGS="-errwarn"
elif test "x$INTELCC" = "xyes"; then
STRICT_CFLAGS="-Werror"
fi
if test "x$GCC" = xyes ; then
STRICT_CFLAGS="-pedantic -Werror"
# Add -Werror=attributes if supported (gcc 4.2 & later)
AC_MSG_CHECKING([if $CC supports -Werror=attributes])
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $STRICT_CFLAGS -Werror=attributes"
AC_COMPILE_IFELSE([AC_LANG_SOURCE([return 0;])],
[STRICT_CFLAGS="$STRICT_CFLAGS -Werror=attributes"
AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])])
CFLAGS="$save_CFLAGS"
elif test "x$SUNCC" = "xyes"; then
STRICT_CFLAGS="-errwarn"
elif test "x$INTELCC" = "xyes"; then
STRICT_CFLAGS="-Werror"
fi
CWARNFLAGS="$CWARNFLAGS $STRICT_CFLAGS"
if test "x$STRICT_COMPILE" = "xyes"; then
CWARNFLAGS="$CWARNFLAGS $STRICT_CFLAGS"
fi
AC_SUBST([STRICT_CFLAGS])
AC_SUBST([CWARNFLAGS])
]) # XORG_STRICT_OPTION

View File

@ -1,11 +1,17 @@
/* config.h.in. Generated from configure.ac by autoheader. */
/* Prefix to use for launchd identifiers */
#undef BUNDLE_ID_PREFIX
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* launchd support available */
#undef HAVE_LAUNCHD
/* Define to 1 if you have the libdispatch (GCD) available */
#undef HAVE_LIBDISPATCH
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
@ -30,9 +36,6 @@
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Prefix to use for launchd identifiers */
#undef LAUNCHD_ID_PREFIX
/* Name of package */
#undef PACKAGE

2035
app/xinit/configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -20,9 +20,14 @@ dnl PERFORMANCE OF THIS SOFTWARE.
dnl
dnl Process this file with autoconf to create configure.
# Initialize Autoconf
AC_PREREQ([2.60])
AC_INIT([xinit], [1.3.0],
AC_INIT([xinit], [1.3.1],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xinit])
AC_CONFIG_SRCDIR([Makefile.am])
AC_CONFIG_HEADERS([config.h])
# Initialize Automake
AM_INIT_AUTOMAKE([foreign dist-bzip2])
AM_MAINTAINER_MODE
@ -32,14 +37,9 @@ m4_ifndef([XORG_MACROS_VERSION],
XORG_MACROS_VERSION(1.8)
XORG_DEFAULT_OPTIONS
AM_CONFIG_HEADER(config.h)
XORG_PROG_RAWCPP
AC_CANONICAL_HOST
m4_ifdef([AS_HELP_STRING], , [m4_define([AS_HELP_STRING], m4_defn([AC_HELP_STRING]))])
# Build options
DEFAULT_XRDB=xrdb
DEFAULT_XMODMAP=xmodmap
@ -115,9 +115,11 @@ AC_ARG_WITH(launchagents-dir, AS_HELP_STRING([--with-launchagents-dir=PATH], [
AC_ARG_WITH(launchdaemons-dir, AS_HELP_STRING([--with-launchdaemons-dir=PATH], [Path to launchd's LaunchDaemonss directory (default: /Library/LaunchDaemons)]),
[ launchdaemonsdir="${withval}" ],
[ launchdaemonsdir="/Library/LaunchDaemons" ])
AC_ARG_WITH(launchd-id-prefix, AS_HELP_STRING([--with-launchd-id-prefix=PATH], [Prefix to use for launchd identifiers (default: org.x)]),
[ launchdidprefix="${withval}" ],
[ launchdidprefix="org.x" ])
AC_ARG_WITH(launchd-id-prefix, AS_HELP_STRING([--with-launchd-id-prefix=PATH], [Deprecated: Use --with-bundle-id-prefix.]),
[ bundleidprefix="${withval}" ],
[ bundleidprefix="org.x" ])
AC_ARG_WITH(bundle-id-prefix, AS_HELP_STRING([--with-bundle-id-prefix=PATH], [Prefix to use for bundle identifiers (default: org.x)]),
[ bundleidprefix="${withval}" ])
if test "x$LAUNCHD" = "xauto"; then
unset LAUNCHD
@ -132,15 +134,18 @@ if test "x$LAUNCHD" = "xyes" ; then
TIGER_LAUNCHD=yes
;;
esac
AC_CHECK_FUNC(dispatch_async,
AC_DEFINE([HAVE_LIBDISPATCH], 1, [Define to 1 if you have the libdispatch (GCD) available]),
[])
else
launchagentsdir=""
launchdaemonsdir=""
fi
AC_DEFINE_UNQUOTED(LAUNCHD_ID_PREFIX, "$launchdidprefix", [Prefix to use for launchd identifiers])
AC_DEFINE_UNQUOTED(BUNDLE_ID_PREFIX, "$bundleidprefix", [Prefix to use for launchd identifiers])
AC_SUBST([launchagentsdir])
AC_SUBST([launchdaemonsdir])
AC_SUBST([launchdidprefix])
AC_SUBST([bundleidprefix])
AM_CONDITIONAL(LAUNCHD, [test "x$LAUNCHD" = "xyes"])
AM_CONDITIONAL(TIGER_LAUNCHD, [test "x$TIGER_LAUNCHD" = "xyes"])
@ -153,8 +158,6 @@ case $host_os in
;;
esac
AC_SUBST(XINIT_CFLAGS)
AC_SUBST(XINIT_LIBS)
AC_PATH_PROGS(MCOOKIE, [mcookie], [$MCOOKIE],
[$PATH:/bin:/usr/bin:/usr/lib:/usr/libexec:/usr/local/bin])
@ -174,11 +177,10 @@ fi
AC_SUBST(STARTX_COOKIE_FLAGS)
# Additional substitutions in startx, xinitrc & man pages
ARCHMANDEFS=""
SHELL_CMD="/bin/sh"
XSERVERNAME="Xorg"
XCONFIGFILE="xorg.conf"
XCONFIGFILEMAN='${XCONFIGFILE} (__filemansuffix__)'
XCONFIGFILEMAN='${XCONFIGFILE} (${FILE_MAN_SUFFIX})'
case $host_os in
cygwin*)
XSERVERNAME="XWin"
@ -194,11 +196,11 @@ case $host_os in
;;
*sco*)
SHELL_CMD="/bin/ksh"
ARCHMANDEFS="-D__SCOMAN__"
SCOMAN=1
;;
esac
AC_SUBST(SHELL_CMD)
AC_SUBST(ARCHMANDEFS)
AC_SUBST(SCOMAN)
AC_SUBST(XSERVERNAME)
AC_SUBST(XCONFIGFILE)
AC_SUBST(XCONFIGFILEMAN)
@ -216,5 +218,9 @@ AC_SUBST(XCONSOLE)
AC_SUBST(XINITDIR)
AC_OUTPUT([Makefile])
AC_OUTPUT([privileged_startx/Makefile])
AC_CONFIG_FILES([Makefile
man/Makefile
launchd/Makefile
launchd/privileged_startx/Makefile
launchd/user_startx/Makefile])
AC_OUTPUT

View File

@ -13,27 +13,7 @@ CPP_SED_MAGIC = $(SED) -e '/^\# *[0-9][0-9]* *.*$$/d' \
-e '/XSLASHGLOB/s/XSLASHGLOB/\/\*/' \
-e '/\@\@$$/s/\@\@$$/\\/'
# Strings to replace in man pages
XORGRELSTRING = @PACKAGE_STRING@
XORGMANNAME = X Version 11
MANDEFS = \
-D__xorgversion__="\"$(XORGRELSTRING)\" \"$(XORGMANNAME)\"" \
-D__appmansuffix__=$(APP_MAN_SUFFIX) \
-D__filemansuffix__=$(FILE_MAN_SUFFIX) \
-D__libmansuffix__=$(LIB_MAN_SUFFIX) \
-D__miscmansuffix__=$(MISC_MAN_SUFFIX) \
-D__XSERVERNAME__='$(XSERVERNAME)' \
-D__XCONFIGFILE__='$(XCONFIGFILE)' \
-D__XCONFIGFILEMAN__='$(XCONFIGFILEMAN)' \
-D__xinitdir__=$(XINITDIR) \
-D__bindir__=$(bindir) \
-DSHELL_CMD=$(SHELL_CMD) $(ARCHMANDEFS)
SUFFIXES = .$(APP_MAN_SUFFIX) .man .cpp
SUFFIXES = .cpp
.cpp:
$(AM_V_GEN)$(RAWCPP) $(RAWCPPFLAGS) $(CPP_FILES_FLAGS) < $< | $(CPP_SED_MAGIC) > $@
.man.$(APP_MAN_SUFFIX):
$(AM_V_GEN)$(RAWCPP) $(RAWCPPFLAGS) $(MANDEFS) $(EXTRAMANDEFS) < $< | $(CPP_SED_MAGIC) > $@

View File

@ -0,0 +1,3 @@
SUBDIRS = privileged_startx user_startx
EXTRA_DIST = console_redirect.h

View File

@ -0,0 +1,500 @@
# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = ${SHELL} $(install_sh) -c -m 644
install_sh_PROGRAM = ${SHELL} $(install_sh) -c
install_sh_SCRIPT = ${SHELL} $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = launchd
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-exec-recursive install-info-recursive \
install-recursive installcheck-recursive installdirs-recursive \
pdf-recursive ps-recursive uninstall-info-recursive \
uninstall-recursive
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ADMIN_MAN_DIR = @ADMIN_MAN_DIR@
ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
APP_MAN_DIR = @APP_MAN_DIR@
APP_MAN_SUFFIX = @APP_MAN_SUFFIX@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CHANGELOG_CMD = @CHANGELOG_CMD@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CWARNFLAGS = @CWARNFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DRIVER_MAN_DIR = @DRIVER_MAN_DIR@
DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
GREP = @GREP@
INSTALL_CMD = @INSTALL_CMD@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LAUNCHD = @LAUNCHD@
LAUNCHD_FALSE = @LAUNCHD_FALSE@
LAUNCHD_TRUE = @LAUNCHD_TRUE@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIB_MAN_DIR = @LIB_MAN_DIR@
LIB_MAN_SUFFIX = @LIB_MAN_SUFFIX@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MAN_SUBSTS = @MAN_SUBSTS@
MCOOKIE = @MCOOKIE@
MISC_MAN_DIR = @MISC_MAN_DIR@
MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
RAWCPP = @RAWCPP@
RAWCPPFLAGS = @RAWCPPFLAGS@
SCOMAN = @SCOMAN@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SHELL_CMD = @SHELL_CMD@
STARTX_COOKIE_FLAGS = @STARTX_COOKIE_FLAGS@
STRICT_CFLAGS = @STRICT_CFLAGS@
STRIP = @STRIP@
TIGER_LAUNCHD_FALSE = @TIGER_LAUNCHD_FALSE@
TIGER_LAUNCHD_TRUE = @TIGER_LAUNCHD_TRUE@
TWM = @TWM@
VERSION = @VERSION@
WM = @WM@
XAUTH = @XAUTH@
XCLOCK = @XCLOCK@
XCONFIGFILE = @XCONFIGFILE@
XCONFIGFILEMAN = @XCONFIGFILEMAN@
XCONSOLE = @XCONSOLE@
XINIT = @XINIT@
XINITDIR = @XINITDIR@
XINIT_CFLAGS = @XINIT_CFLAGS@
XINIT_LIBS = @XINIT_LIBS@
XMODMAP = @XMODMAP@
XORG_MAN_PAGE = @XORG_MAN_PAGE@
XRDB = @XRDB@
XSERVER = @XSERVER@
XSERVERNAME = @XSERVERNAME@
XTERM = @XTERM@
ac_ct_CC = @ac_ct_CC@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
bundleidprefix = @bundleidprefix@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
launchagentsdir = @launchagentsdir@
launchdaemonsdir = @launchdaemonsdir@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
SUBDIRS = privileged_startx user_startx
EXTRA_DIST = console_redirect.h
all: all-recursive
.SUFFIXES:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign launchd/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign launchd/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
@failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
@failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
empty_fix=.; \
else \
include_option=--include; \
empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(mkdir_p) "$(distdir)/$$subdir" \
|| exit 1; \
distdir=`$(am__cd) $(distdir) && pwd`; \
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
(cd $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$top_distdir" \
distdir="$$distdir/$$subdir" \
distdir) \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-recursive
all-am: Makefile
installdirs: installdirs-recursive
installdirs-am:
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
clean-am: clean-generic mostlyclean-am
distclean: distclean-recursive
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-tags
dvi: dvi-recursive
dvi-am:
html: html-recursive
info: info-recursive
info-am:
install-data-am:
install-exec-am:
install-info: install-info-recursive
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-generic
pdf: pdf-recursive
pdf-am:
ps: ps-recursive
ps-am:
uninstall-am: uninstall-info-am
uninstall-info: uninstall-info-recursive
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
clean clean-generic clean-recursive ctags ctags-recursive \
distclean distclean-generic distclean-recursive distclean-tags \
distdir dvi dvi-am html html-am info info-am install \
install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
installdirs-am maintainer-clean maintainer-clean-generic \
maintainer-clean-recursive mostlyclean mostlyclean-generic \
mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
uninstall uninstall-am uninstall-info-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -0,0 +1,418 @@
/* Copyright (c) 2011 Apple Inc.
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation files
* (the "Software"), to deal in the Software without restriction,
* including without limitation the rights to use, copy, modify, merge,
* publish, distribute, sublicense, and/or sell copies of the Software,
* and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT
* HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name(s) of the above
* copyright holders shall not be used in advertising or otherwise to
* promote the sale, use or other dealings in this Software without
* prior written authorization.
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#else
#define DEBUG_CONSOLE_REDIRECT 1
#define HAVE_LIBDISPATCH 1
#endif
#include <assert.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/event.h>
#include <asl.h>
#include <errno.h>
#include <fcntl.h>
#include "console_redirect.h"
#define BUF_SIZE 512
#ifdef HAVE_LIBDISPATCH
#include <dispatch/dispatch.h>
static dispatch_queue_t redirect_serial_q;
static dispatch_group_t read_source_group;
#else
#include <pthread.h>
static pthread_t redirect_pthread;
static pthread_mutex_t redirect_fds_lock = PTHREAD_MUTEX_INITIALIZER;
static int kq;
/* Notifications to our reader thread */
#define ASL_REDIRECT_TERMINATE ((void *)(uintptr_t)1)
#endif
typedef struct {
int level;
aslclient asl;
aslmsg msg;
/* Buffered reading */
char *buf;
char *w;
#ifdef HAVE_LIBDISPATCH
dispatch_source_t read_source;
#endif
} asl_redirect;
static asl_redirect *redirect_fds = NULL;
static int n_redirect_fds = 0;
/* Read from the FD until there is no more to read and redirect to ASL.
* Preconditions:
* 1: pthread_mutex_lock lock is held (pthreads) or called
* from the appropriate serial queue for operating on
* redirect_fds
* 2: fd corresponds to a valid entry in redirect_fds
*
* Return values:
* If the pipe is closed, EOF is returned regardless of how many bytes
* were processed. If the pipe is still open, the number of read bytes
* is returned.
*/
static inline int _read_redirect(int fd, int flush) {
int total_read = 0;
int nbytes;
asl_redirect *aslr = &redirect_fds[fd];
while((nbytes = read(fd, aslr->w, BUF_SIZE - (aslr->w - aslr->buf) - 1)) > 0) {
char *s, *p;
/* Increment our returned number read */
total_read += nbytes;
nbytes += (aslr->w - aslr->buf);
aslr->buf[nbytes] = '\0';
/* One line at a time */
for(p=aslr->buf; *p && (p - aslr->buf) < nbytes; p = s + 1) {
// Find null or \n
for(s=p; *s && *s != '\n'; s++);
if(*s == '\n') {
*s='\0';
asl_log(aslr->asl, aslr->msg, aslr->level, "%s", p);
} else if(aslr->buf != p) {
memmove(aslr->buf, p, BUF_SIZE - (p - aslr->buf));
aslr->w = aslr->buf + (s - p);
break;
} else if(nbytes == BUF_SIZE - 1) {
asl_log(aslr->asl, aslr->msg, aslr->level, "%s", p);
aslr->w = aslr->buf;
break;
}
}
}
/* Flush if requested or we're at EOF */
if(flush || nbytes == 0) {
if(aslr->w > aslr->buf) {
*aslr->w = '\0';
asl_log(aslr->asl, aslr->msg, aslr->level, "%s", aslr->buf);
}
}
if(nbytes == 0)
return EOF;
return total_read;
}
#ifdef HAVE_LIBDISPATCH
static void read_from_source(void *_source) {
dispatch_source_t source = (dispatch_source_t)_source;
int fd = dispatch_source_get_handle(source);
if(_read_redirect(fd, 0) == EOF) {
dispatch_source_cancel(source);
}
}
static void cancel_source(void *_source) {
dispatch_source_t source = (dispatch_source_t)_source;
int fd = dispatch_source_get_handle(source);
asl_redirect *aslr = &redirect_fds[fd];
/* Flush the buffer */
_read_redirect(fd, 1);
close(fd);
free(aslr->buf);
memset(aslr, 0, sizeof(*aslr));
dispatch_release(source);
dispatch_group_leave(read_source_group);
}
#else /* !HAVE_LIBDISPATCH */
static void *redirect_thread(void *ctx __unused) {
struct kevent ev;
int n;
while(1) {
n = kevent(kq, NULL, 0, &ev, 1, NULL);
/* Bail on errors */
if(n < 0) {
asl_log(NULL, NULL, ASL_LEVEL_ERR, "kevent failure: %s", strerror(errno));
break;
}
/* This should not happen */
if(n == 0)
continue;
switch(ev.filter) {
case EVFILT_READ:
pthread_mutex_lock(&redirect_fds_lock);
{
int fd = ev.ident;
int close_fd = 0;
asl_redirect *aslr = &redirect_fds[fd];
if(fd < 0 || fd >= n_redirect_fds || aslr->buf == NULL) {
asl_log(NULL, NULL, ASL_LEVEL_ERR, "Unexpected file descriptor: %d", fd);
goto next;
}
if(ev.flags & EV_EOF) {
close_fd = 1;
if(EOF != _read_redirect(fd, 1)) {
asl_log(NULL, NULL, ASL_LEVEL_ERR, "kevent reported EOF on %d, but read doesn't concur.", fd);
}
} else {
close_fd = (EOF == _read_redirect(fd, 0));
}
if(close_fd) {
EV_SET(&ev, fd, EVFILT_READ, EV_DELETE, 0, 0, 0);
kevent(kq, &ev, 1, NULL, 0, NULL);
close(fd);
free(aslr->buf);
memset(aslr, 0, sizeof(*aslr));
}
}
next:
pthread_mutex_unlock(&redirect_fds_lock);
case EVFILT_TIMER:
if(ev.udata == ASL_REDIRECT_TERMINATE)
return NULL;
default:
;;
}
}
return NULL;
}
#endif
static void redirect_atexit(void) {
/* stdout is linebuffered, so flush the buffer */
if(redirect_fds[STDOUT_FILENO].buf)
fflush(stdout);
#ifdef HAVE_LIBDISPATCH
{
int i;
/* Cancel all of our dispatch sources, so they flush to ASL */
for(i=0; i < n_redirect_fds; i++)
if(redirect_fds[i].read_source)
dispatch_source_cancel(redirect_fds[i].read_source);
/* Wait at least three seconds for our sources to flush to ASL */
dispatch_group_wait(read_source_group, dispatch_time(DISPATCH_TIME_NOW, 3LL * NSEC_PER_SEC));
}
#else
{
struct kevent ev;
/* Tell our reader thread it is time to pack up and go home */
EV_SET(&ev, 0, EVFILT_TIMER, EV_ADD | EV_ONESHOT, 0, 0, ASL_REDIRECT_TERMINATE);
kevent(kq, &ev, 1, NULL, 0, NULL);
pthread_join(redirect_pthread, NULL);
}
#endif
}
#ifdef HAVE_LIBDISPATCH
static void xi_asl_init(void *ctx __unused)
#else
static void xi_asl_init(void)
#endif
{
assert((redirect_fds = calloc(16, sizeof(*redirect_fds))) != NULL);
n_redirect_fds = 16;
#ifdef HAVE_LIBDISPATCH
redirect_serial_q = dispatch_queue_create("com.apple.asl-redirect", NULL);
assert(redirect_serial_q != NULL);
read_source_group = dispatch_group_create();
assert(read_source_group != NULL);
#else
assert((kq = kqueue()) != -1);
assert(pthread_create(&redirect_pthread, NULL, redirect_thread, NULL) == 0);
#endif
atexit(redirect_atexit);
}
int xi_asl_log_fd(aslclient asl, aslmsg msg, int level, int fd) {
#ifdef HAVE_LIBDISPATCH
int err __block = 0;
static dispatch_once_t once_control;
dispatch_once_f(&once_control, NULL, xi_asl_init);
#else
int err = 0;
static pthread_once_t once_control = PTHREAD_ONCE_INIT;
assert(pthread_once(&once_control, xi_asl_init) == 0);
#endif
if(fd < 0)
return EBADF;
#ifdef HAVE_LIBDISPATCH
#define BLOCK_DONE return
dispatch_sync(redirect_serial_q, ^
#else
#define BLOCK_DONE goto done
assert(pthread_mutex_lock(&redirect_fds_lock) == 0);
#endif
{
/* Reallocate if we need more space */
if(fd >= n_redirect_fds) {
size_t new_n = 1 << (ffs(fd) + 1);
asl_redirect *new_array = realloc(redirect_fds, new_n * sizeof(*redirect_fds));
if(!new_array) {
err = errno;
BLOCK_DONE;
}
redirect_fds = new_array;
memset(redirect_fds + n_redirect_fds, 0, new_n - n_redirect_fds);
n_redirect_fds = new_n;
}
/* If we're already listening on it, return error. */
if(redirect_fds[fd].buf != NULL) {
err = EBADF;
BLOCK_DONE;
}
/* Initialize our buffer */
redirect_fds[fd].buf = (char *)malloc(BUF_SIZE);
if(redirect_fds[fd].buf == NULL) {
err = errno;
BLOCK_DONE;
}
redirect_fds[fd].w = redirect_fds[fd].buf;
/* Store our ASL settings */
redirect_fds[fd].level = level;
redirect_fds[fd].asl = asl;
redirect_fds[fd].msg = msg;
/* Don't block on reads from this fd */
fcntl(fd, F_SETFL, O_NONBLOCK);
/* Start listening */
#ifdef HAVE_LIBDISPATCH
{
dispatch_source_t read_source = dispatch_source_create(DISPATCH_SOURCE_TYPE_READ, fd, 0, redirect_serial_q);
redirect_fds[fd].read_source = read_source;
dispatch_set_context(read_source, read_source);
dispatch_source_set_event_handler_f(read_source, read_from_source);
dispatch_source_set_cancel_handler_f(read_source, cancel_source);
dispatch_group_enter(read_source_group);
dispatch_resume(read_source);
}
#else
{
struct kevent ev;
EV_SET(&ev, fd, EVFILT_READ, EV_ADD, 0, 0, 0);
kevent(kq, &ev, 1, NULL, 0, NULL);
}
#endif
}
#ifdef HAVE_LIBDISPATCH
);
#else
done:
assert(pthread_mutex_unlock(&redirect_fds_lock) == 0);
#endif
#undef BLOCK_DONE
return err;
}
int xi_asl_capture_fd(aslclient asl, aslmsg msg, int level, int fd) {
int pipepair[2];
/* Create pipe */
if(pipe(pipepair) == -1)
return errno;
/* Close the read fd but not the write fd on exec */
if(fcntl(pipepair[0], F_SETFD, FD_CLOEXEC) == -1)
return errno;
/* Replace the existing fd */
if(dup2(pipepair[1], fd) == -1) {
close(pipepair[0]);
close(pipepair[1]);
return errno;
}
/* If we capture STDOUT_FILENO, make sure we linebuffer stdout */
if(fd == STDOUT_FILENO)
setlinebuf(stdout);
/* Close the duplicate fds since they've been reassigned */
close(pipepair[1]);
/* Hand off the read end of our pipe to xi_asl_log_fd */
return xi_asl_log_fd(asl, msg, level, pipepair[0]);
}
#ifdef DEBUG_CONSOLE_REDIRECT
int main(int argc __unused, char **argv __unused) {
xi_asl_capture_fd(NULL, NULL, ASL_LEVEL_NOTICE, STDOUT_FILENO);
xi_asl_capture_fd(NULL, NULL, ASL_LEVEL_ERR, STDERR_FILENO);
fprintf(stderr, "TEST ERR1\n");
fprintf(stdout, "TEST OUT1\n");
fprintf(stderr, "TEST ERR2\n");
fprintf(stdout, "TEST OUT2\n");
system("/bin/echo SYST OUT");
system("/bin/echo SYST ERR >&2");
fprintf(stdout, "TEST OUT3\n");
fprintf(stdout, "TEST OUT4\n");
fprintf(stderr, "TEST ERR3\n");
fprintf(stderr, "TEST ERR4\n");
exit(0);
}
#endif

View File

@ -0,0 +1,44 @@
/* Copyright (c) 2011 Apple Inc.
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation files
* (the "Software"), to deal in the Software without restriction,
* including without limitation the rights to use, copy, modify, merge,
* publish, distribute, sublicense, and/or sell copies of the Software,
* and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT
* HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name(s) of the above
* copyright holders shall not be used in advertising or otherwise to
* promote the sale, use or other dealings in this Software without
* prior written authorization.
*/
#ifndef _XQUARTZ_CONSOLE_REDIRECT_H_
#define _XQUARTZ_CONSOLE_REDIRECT_H_
#include <asl.h>
/* The given fd is replaced with a pipe. Anything written to it will will be
* logged to ASL.
*/
int xi_asl_capture_fd(aslclient asl, aslmsg msg, int level, int fd);
/* The given fd is read from and passed along to ASL until all write ends of the
* pipe are closed. Once the last writer has closed the pipe, we close our end.
*/
int xi_asl_log_fd(aslclient asl, aslmsg msg, int level, int fd);
#endif

View File

@ -27,10 +27,19 @@ XCOMM promote the sale, use or other dealings in this Software without
XCOMM prior written authorization.
XCOMM Make sure these are owned by root
XCOMM Our usage of mktemp fails with GNU, so prefer /usr/bin to hopefully
XCOMM get BSD mktemp
if [ -x /usr/bin/mktemp ] ; then
MKTEMP=/usr/bin/mktemp
else
MKTEMP=mktemp
fi
for dir in /tmp/.ICE-unix /tmp/.X11-unix /tmp/.font-unix ; do
# Use mktemp rather than mkdir to avoid possible security issue
# if $dir exists and is a symlink
if mktemp -d ${dir} >& /dev/null ; then
XCOMM Use mktemp rather than mkdir to avoid possible security issue
XCOMM if $dir exists and is a symlink
if ${MKTEMP} -d ${dir} >& /dev/null ; then
chmod 1777 $dir
chown root:wheel $dir
fi

View File

@ -33,14 +33,15 @@ privstartxdir = $(xinitrcdir)/privileged_startx.d
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)" -DLAUNCHD_ID_PREFIX="$(launchdidprefix)"
AM_CPPFLAGS = -I$(srcdir)/.. -DXINITDIR=\"$(xinitrcdir)\" -DSCRIPTDIR=\"$(privstartxdir)\" -DBINDIR=\"$(bindir)\"
CPP_FILES_FLAGS = -DXINITDIR="$(xinitrcdir)" -DSCRIPTDIR="$(privstartxdir)" -DBINDIR="$(bindir)" -DBUNDLE_ID_PREFIX="$(bundleidprefix)"
if TIGER_LAUNCHD
CPP_FILES_FLAGS += -DTIGER_LAUNCHD
endif
dist_privileged_startx_SOURCES = \
$(srcdir)/../console_redirect.c \
server.c \
client.c \
privileged_startx.c
@ -55,10 +56,10 @@ BUILT_SOURCES = \
privileged_startxServer.h \
privileged_startx.h
$(launchdidprefix).privileged_startx.plist.cpp: org.x.privileged_startx.plist.cpp
$(bundleidprefix).privileged_startx.plist.cpp: privileged_startx.plist.cpp
cp $< $@
launchdaemons_PRE = $(launchdidprefix).privileged_startx.plist.cpp
launchdaemons_PRE = $(bundleidprefix).privileged_startx.plist.cpp
launchdaemons_DATA = $(launchdaemons_PRE:plist.cpp=plist)
10-tmpdirs: 10-tmpdirs.cpp Makefile
@ -67,12 +68,13 @@ launchdaemons_DATA = $(launchdaemons_PRE:plist.cpp=plist)
CLEANFILES = \
$(privstartx_SCRIPTS) \
$(BUILT_SOURCES) \
$(launchdaemons_DATA)
$(launchdaemons_DATA) \
$(bundleidprefix).privileged_startx.plist.cpp
EXTRA_DIST = \
10-tmpdirs.cpp \
20-font_cache.cpp \
org.x.privileged_startx.plist.cpp \
privileged_startx.plist.cpp \
privileged_startx.defs \
privileged_startx_types.h

View File

@ -56,12 +56,12 @@ VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
top_builddir = ../..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
install_sh_DATA = ${SHELL} $(install_sh) -c -m 644
install_sh_PROGRAM = ${SHELL} $(install_sh) -c
install_sh_SCRIPT = ${SHELL} $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
@ -76,7 +76,7 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/cpprules.in
xinitrc_PROGRAMS = privileged_startx$(EXEEXT)
@TIGER_LAUNCHD_TRUE@am__append_1 = -DTIGER_LAUNCHD
subdir = privileged_startx
subdir = launchd/privileged_startx
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
@ -88,8 +88,8 @@ am__installdirs = "$(DESTDIR)$(xinitrcdir)" \
"$(DESTDIR)$(privstartxdir)" "$(DESTDIR)$(launchdaemonsdir)"
xinitrcPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(xinitrc_PROGRAMS)
dist_privileged_startx_OBJECTS = server.$(OBJEXT) client.$(OBJEXT) \
privileged_startx.$(OBJEXT)
dist_privileged_startx_OBJECTS = console_redirect.$(OBJEXT) \
server.$(OBJEXT) client.$(OBJEXT) privileged_startx.$(OBJEXT)
nodist_privileged_startx_OBJECTS = privileged_startxServer.$(OBJEXT) \
privileged_startxUser.$(OBJEXT)
privileged_startx_OBJECTS = $(dist_privileged_startx_OBJECTS) \
@ -127,7 +127,6 @@ AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
APP_MAN_DIR = @APP_MAN_DIR@
APP_MAN_SUFFIX = @APP_MAN_SUFFIX@
ARCHMANDEFS = @ARCHMANDEFS@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
@ -185,11 +184,13 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
RAWCPP = @RAWCPP@
RAWCPPFLAGS = @RAWCPPFLAGS@
SCOMAN = @SCOMAN@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SHELL_CMD = @SHELL_CMD@
STARTX_COOKIE_FLAGS = @STARTX_COOKIE_FLAGS@
STRICT_CFLAGS = @STRICT_CFLAGS@
STRIP = @STRIP@
TIGER_LAUNCHD_FALSE = @TIGER_LAUNCHD_FALSE@
TIGER_LAUNCHD_TRUE = @TIGER_LAUNCHD_TRUE@
@ -225,6 +226,7 @@ build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
bundleidprefix = @bundleidprefix@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
@ -241,7 +243,6 @@ infodir = @infodir@
install_sh = @install_sh@
launchagentsdir = @launchagentsdir@
launchdaemonsdir = @launchdaemonsdir@
launchdidprefix = @launchdidprefix@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
@ -265,32 +266,16 @@ CPP_SED_MAGIC = $(SED) -e '/^\# *[0-9][0-9]* *.*$$/d' \
-e '/XSLASHGLOB/s/XSLASHGLOB/\/\*/' \
-e '/\@\@$$/s/\@\@$$/\\/'
# Strings to replace in man pages
XORGRELSTRING = @PACKAGE_STRING@
XORGMANNAME = X Version 11
MANDEFS = \
-D__xorgversion__="\"$(XORGRELSTRING)\" \"$(XORGMANNAME)\"" \
-D__appmansuffix__=$(APP_MAN_SUFFIX) \
-D__filemansuffix__=$(FILE_MAN_SUFFIX) \
-D__libmansuffix__=$(LIB_MAN_SUFFIX) \
-D__miscmansuffix__=$(MISC_MAN_SUFFIX) \
-D__XSERVERNAME__='$(XSERVERNAME)' \
-D__XCONFIGFILE__='$(XCONFIGFILE)' \
-D__XCONFIGFILEMAN__='$(XCONFIGFILEMAN)' \
-D__xinitdir__=$(XINITDIR) \
-D__bindir__=$(bindir) \
-DSHELL_CMD=$(SHELL_CMD) $(ARCHMANDEFS)
SUFFIXES = .$(APP_MAN_SUFFIX) .man .cpp
SUFFIXES = .cpp
xinitrcdir = $(libdir)/X11/xinit
privstartxdir = $(xinitrcdir)/privileged_startx.d
privstartx_SCRIPTS = 10-tmpdirs 20-font_cache
AM_CPPFLAGS = -DXINITDIR=\"$(xinitrcdir)\" -DSCRIPTDIR=\"$(privstartxdir)\" -DBINDIR=\"$(bindir)\"
AM_CPPFLAGS = -I$(srcdir)/.. -DXINITDIR=\"$(xinitrcdir)\" -DSCRIPTDIR=\"$(privstartxdir)\" -DBINDIR=\"$(bindir)\"
CPP_FILES_FLAGS = -DXINITDIR="$(xinitrcdir)" \
-DSCRIPTDIR="$(privstartxdir)" -DBINDIR="$(bindir)" \
-DLAUNCHD_ID_PREFIX="$(launchdidprefix)" $(am__append_1)
-DBUNDLE_ID_PREFIX="$(bundleidprefix)" $(am__append_1)
dist_privileged_startx_SOURCES = \
$(srcdir)/../console_redirect.c \
server.c \
client.c \
privileged_startx.c
@ -305,17 +290,18 @@ BUILT_SOURCES = \
privileged_startxServer.h \
privileged_startx.h
launchdaemons_PRE = $(launchdidprefix).privileged_startx.plist.cpp
launchdaemons_PRE = $(bundleidprefix).privileged_startx.plist.cpp
launchdaemons_DATA = $(launchdaemons_PRE:plist.cpp=plist)
CLEANFILES = \
$(privstartx_SCRIPTS) \
$(BUILT_SOURCES) \
$(launchdaemons_DATA)
$(launchdaemons_DATA) \
$(bundleidprefix).privileged_startx.plist.cpp
EXTRA_DIST = \
10-tmpdirs.cpp \
20-font_cache.cpp \
org.x.privileged_startx.plist.cpp \
privileged_startx.plist.cpp \
privileged_startx.defs \
privileged_startx_types.h
@ -323,7 +309,7 @@ all: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) all-am
.SUFFIXES:
.SUFFIXES: .$(APP_MAN_SUFFIX) .man .cpp .c .o .obj
.SUFFIXES: .cpp .c .o .obj
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/cpprules.in $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
@ -333,9 +319,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign privileged_startx/Makefile'; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign launchd/privileged_startx/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign privileged_startx/Makefile
$(AUTOMAKE) --foreign launchd/privileged_startx/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@ -406,6 +392,7 @@ distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/client.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/console_redirect.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/privileged_startx.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/privileged_startxServer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/privileged_startxUser.Po@am__quote@
@ -424,6 +411,20 @@ distclean-compile:
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
console_redirect.o: $(srcdir)/../console_redirect.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT console_redirect.o -MD -MP -MF "$(DEPDIR)/console_redirect.Tpo" -c -o console_redirect.o `test -f '$(srcdir)/../console_redirect.c' || echo '$(srcdir)/'`$(srcdir)/../console_redirect.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/console_redirect.Tpo" "$(DEPDIR)/console_redirect.Po"; else rm -f "$(DEPDIR)/console_redirect.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(srcdir)/../console_redirect.c' object='console_redirect.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o console_redirect.o `test -f '$(srcdir)/../console_redirect.c' || echo '$(srcdir)/'`$(srcdir)/../console_redirect.c
console_redirect.obj: $(srcdir)/../console_redirect.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT console_redirect.obj -MD -MP -MF "$(DEPDIR)/console_redirect.Tpo" -c -o console_redirect.obj `if test -f '$(srcdir)/../console_redirect.c'; then $(CYGPATH_W) '$(srcdir)/../console_redirect.c'; else $(CYGPATH_W) '$(srcdir)/$(srcdir)/../console_redirect.c'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/console_redirect.Tpo" "$(DEPDIR)/console_redirect.Po"; else rm -f "$(DEPDIR)/console_redirect.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(srcdir)/../console_redirect.c' object='console_redirect.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o console_redirect.obj `if test -f '$(srcdir)/../console_redirect.c'; then $(CYGPATH_W) '$(srcdir)/../console_redirect.c'; else $(CYGPATH_W) '$(srcdir)/$(srcdir)/../console_redirect.c'; fi`
uninstall-info-am:
install-launchdaemonsDATA: $(launchdaemons_DATA)
@$(NORMAL_INSTALL)
@ -492,7 +493,7 @@ distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
$(mkdir_p) $(distdir)/..
$(mkdir_p) $(distdir)/../..
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
@ -623,10 +624,7 @@ uninstall-am: uninstall-info-am uninstall-launchdaemonsDATA \
.cpp:
$(AM_V_GEN)$(RAWCPP) $(RAWCPPFLAGS) $(CPP_FILES_FLAGS) < $< | $(CPP_SED_MAGIC) > $@
.man.$(APP_MAN_SUFFIX):
$(AM_V_GEN)$(RAWCPP) $(RAWCPPFLAGS) $(MANDEFS) $(EXTRAMANDEFS) < $< | $(CPP_SED_MAGIC) > $@
$(launchdidprefix).privileged_startx.plist.cpp: org.x.privileged_startx.plist.cpp
$(bundleidprefix).privileged_startx.plist.cpp: privileged_startx.plist.cpp
cp $< $@
10-tmpdirs: 10-tmpdirs.cpp Makefile

View File

@ -26,6 +26,10 @@
* prior written authorization.
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <mach/mach.h>
#include <mach/mach_error.h>
#include <servers/bootstrap.h>

View File

@ -26,6 +26,10 @@
* prior written authorization.
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <string.h>
#include <stdio.h>

View File

@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>Label</key>
<string>LAUNCHD_ID_PREFIX.privileged_startx</string>
<string>BUNDLE_ID_PREFIX.privileged_startx</string>
<key>ProgramArguments</key>
<array>
<string>XINITDIR/privileged_startx</string>
@ -16,7 +16,7 @@
#else
<key>MachServices</key>
<dict>
<key>LAUNCHD_ID_PREFIX.privileged_startx</key>
<key>BUNDLE_ID_PREFIX.privileged_startx</key>
<true/>
</dict>
<key>TimeOut</key>

View File

@ -5,6 +5,6 @@
#include <config.h>
#endif
#define BOOTSTRAP_NAME LAUNCHD_ID_PREFIX".privileged_startx"
#define BOOTSTRAP_NAME BUNDLE_ID_PREFIX".privileged_startx"
#endif

View File

@ -1,4 +1,4 @@
/* Copyright (c) 2008 Apple Inc.
/* Copyright (c) 2008-2011 Apple Inc.
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation files
@ -27,7 +27,7 @@
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
# include "config.h"
#endif
#include <mach/mach.h>
@ -46,6 +46,8 @@
#include <asl.h>
#include <errno.h>
#include "console_redirect.h"
#include "privileged_startx.h"
#include "privileged_startxServer.h"
@ -90,19 +92,19 @@ static mach_port_t checkin_or_register(char *bname) {
/* 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));
asl_log(NULL, NULL, ASL_LEVEL_ERR, "mach_port_allocate(): %s", 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));
asl_log(NULL, NULL, ASL_LEVEL_ERR, "mach_port_insert_right(): %s", 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));
asl_log(NULL, NULL, ASL_LEVEL_ERR, "bootstrap_register(): %s", mach_error_string(kr));
exit(EXIT_FAILURE);
}
@ -118,7 +120,10 @@ int server_main(const char *dir) {
long idle_timeout = DEFAULT_IDLE_TIMEOUT;
#endif
launch_data_t config = NULL, checkin = NULL;
launch_data_t config = NULL, checkin = NULL, label = NULL;
const char *labelstr = BUNDLE_ID_PREFIX".privileged_startx";
aslclient aslc;
checkin = launch_data_new_string(LAUNCH_KEY_CHECKIN);
config = launch_msg(checkin);
if (!config || launch_data_get_type(config) == LAUNCH_DATA_ERRNO) {
@ -132,6 +137,15 @@ int server_main(const char *dir) {
"script directory set: %s", script_dir);
}
label = launch_data_dict_lookup(config, LAUNCH_JOBKEY_LABEL);
if (label) {
labelstr = launch_data_get_string(label);
}
aslc = asl_open(labelstr, BUNDLE_ID_PREFIX, ASL_OPT_NO_DELAY);
xi_asl_capture_fd(aslc, NULL, ASL_LEVEL_INFO, STDOUT_FILENO);
xi_asl_capture_fd(aslc, NULL, ASL_LEVEL_NOTICE, STDERR_FILENO);
#ifdef LAUNCH_JOBKEY_MACHSERVICES
launch_data_t tmv;
tmv = launch_data_dict_lookup(config, LAUNCH_JOBKEY_TIMEOUT);
@ -157,7 +171,7 @@ int server_main(const char *dir) {
mp = launch_data_get_machport(svc);
#else
mp = checkin_or_register(LAUNCHD_ID_PREFIX".privileged_startx");
mp = checkin_or_register(BUNDLE_ID_PREFIX".privileged_startx");
#endif
if (mp == MACH_PORT_NULL) {
@ -188,7 +202,7 @@ int server_main(const char *dir) {
kr = mach_msg_server(privileged_startx_server, mxmsgsz, mp, 0);
if (kr != KERN_SUCCESS) {
asl_log(NULL, NULL, ASL_LEVEL_ERR,
"mach_msg_server(mp): %s\n", mach_error_string(kr));
"mach_msg_server(mp): %s", mach_error_string(kr));
exit(EXIT_FAILURE);
}
@ -218,7 +232,7 @@ kern_return_t do_privileged_startx(mach_port_t test_port __attribute__((unused))
ftsp = fts_open((char * const *)path_argv, FTS_PHYSICAL, ftscmp);
if(!ftsp) {
asl_log(NULL, NULL, ASL_LEVEL_ERR,
"do_privileged_startx: fts_open(%s): %s\n",
"do_privileged_startx: fts_open(%s): %s",
script_dir, strerror(errno));
return KERN_FAILURE;
}
@ -227,7 +241,7 @@ kern_return_t do_privileged_startx(mach_port_t test_port __attribute__((unused))
ftsent = fts_read(ftsp);
if(!ftsent) {
asl_log(NULL, NULL, ASL_LEVEL_ERR,
"do_privileged_startx: fts_read(): %s\n", strerror(errno));
"do_privileged_startx: fts_read(): %s", strerror(errno));
fts_close(ftsp);
return KERN_FAILURE;
}
@ -236,7 +250,7 @@ kern_return_t do_privileged_startx(mach_port_t test_port __attribute__((unused))
ftsent = fts_children(ftsp, 0);
if(!ftsent) {
asl_log(NULL, NULL, ASL_LEVEL_ERR,
"do_privileged_startx: fts_children(): %s\n", strerror(errno));
"do_privileged_startx: fts_children(): %s", strerror(errno));
fts_close(ftsp);
return KERN_FAILURE;
}
@ -260,7 +274,7 @@ kern_return_t do_privileged_startx(mach_port_t test_port __attribute__((unused))
error_code = system(fn_buf);
if(error_code != 0) {
asl_log(NULL, NULL, ASL_LEVEL_ERR,
"do_privileged_startx: %s: exited with status %d\n",
"do_privileged_startx: %s: exited with status %d",
fn_buf, error_code);
retval = KERN_FAILURE;
}

View File

@ -0,0 +1,49 @@
#
# Copyright 2005 Red Hat, Inc.
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of Red Hat not be used in
# advertising or publicity pertaining to distribution of the software without
# specific, written prior permission. Red Hat makes no
# representations about the suitability of this software for any purpose. It
# is provided "as is" without express or implied warranty.
#
# RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
# EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
include $(top_srcdir)/cpprules.in
xinitrcdir = $(XINITDIR)
xinitrc_PROGRAMS = launchd_startx
AM_CPPFLAGS = -I$(srcdir)/.. -DXINITDIR=\"$(xinitrcdir)\" -DBINDIR=\"$(bindir)\"
dist_launchd_startx_SOURCES = \
$(srcdir)/../console_redirect.c \
launchd_startx.c
CPP_FILES_FLAGS = \
-D__xinitrcdir__="$(xinitrcdir)" \
-D__bindir__="$(bindir)" \
-DBUNDLE_ID_PREFIX="$(bundleidprefix)"
$(bundleidprefix).startx.plist.cpp: startx.plist.cpp
cp $< $@
launchagents_PRE = $(bundleidprefix).startx.plist.cpp
launchagents_DATA = $(launchagents_PRE:plist.cpp=plist)
EXTRA_DIST = startx.plist.cpp
CLEANFILES = \
$(launchagents_DATA) \
$(bundleidprefix).startx.plist.cpp

View File

@ -0,0 +1,568 @@
# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
#
# Copyright 2005 Red Hat, Inc.
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of Red Hat not be used in
# advertising or publicity pertaining to distribution of the software without
# specific, written prior permission. Red Hat makes no
# representations about the suitability of this software for any purpose. It
# is provided "as is" without express or implied warranty.
#
# RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
# EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
# Translate XCOMM into pound sign with sed, rather than passing -DXCOMM=XCOMM
# to cpp, because that trick does not work on all ANSI C preprocessors.
# Delete line numbers from the cpp output (-P is not portable, I guess).
# Allow XCOMM to be preceded by whitespace and provide a means of generating
# output lines with trailing backslashes.
# Allow XHASH to always be substituted, even in cases where XCOMM isn't.
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = ${SHELL} $(install_sh) -c -m 644
install_sh_PROGRAM = ${SHELL} $(install_sh) -c
install_sh_SCRIPT = ${SHELL} $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/cpprules.in
xinitrc_PROGRAMS = launchd_startx$(EXEEXT)
subdir = launchd/user_startx
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
am__installdirs = "$(DESTDIR)$(xinitrcdir)" \
"$(DESTDIR)$(launchagentsdir)"
xinitrcPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(xinitrc_PROGRAMS)
dist_launchd_startx_OBJECTS = console_redirect.$(OBJEXT) \
launchd_startx.$(OBJEXT)
launchd_startx_OBJECTS = $(dist_launchd_startx_OBJECTS)
launchd_startx_LDADD = $(LDADD)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(dist_launchd_startx_SOURCES)
DIST_SOURCES = $(dist_launchd_startx_SOURCES)
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
launchagentsDATA_INSTALL = $(INSTALL_DATA)
DATA = $(launchagents_DATA)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ADMIN_MAN_DIR = @ADMIN_MAN_DIR@
ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
APP_MAN_DIR = @APP_MAN_DIR@
APP_MAN_SUFFIX = @APP_MAN_SUFFIX@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CHANGELOG_CMD = @CHANGELOG_CMD@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CWARNFLAGS = @CWARNFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DRIVER_MAN_DIR = @DRIVER_MAN_DIR@
DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
GREP = @GREP@
INSTALL_CMD = @INSTALL_CMD@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LAUNCHD = @LAUNCHD@
LAUNCHD_FALSE = @LAUNCHD_FALSE@
LAUNCHD_TRUE = @LAUNCHD_TRUE@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIB_MAN_DIR = @LIB_MAN_DIR@
LIB_MAN_SUFFIX = @LIB_MAN_SUFFIX@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MAN_SUBSTS = @MAN_SUBSTS@
MCOOKIE = @MCOOKIE@
MISC_MAN_DIR = @MISC_MAN_DIR@
MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
RAWCPP = @RAWCPP@
RAWCPPFLAGS = @RAWCPPFLAGS@
SCOMAN = @SCOMAN@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SHELL_CMD = @SHELL_CMD@
STARTX_COOKIE_FLAGS = @STARTX_COOKIE_FLAGS@
STRICT_CFLAGS = @STRICT_CFLAGS@
STRIP = @STRIP@
TIGER_LAUNCHD_FALSE = @TIGER_LAUNCHD_FALSE@
TIGER_LAUNCHD_TRUE = @TIGER_LAUNCHD_TRUE@
TWM = @TWM@
VERSION = @VERSION@
WM = @WM@
XAUTH = @XAUTH@
XCLOCK = @XCLOCK@
XCONFIGFILE = @XCONFIGFILE@
XCONFIGFILEMAN = @XCONFIGFILEMAN@
XCONSOLE = @XCONSOLE@
XINIT = @XINIT@
XINITDIR = @XINITDIR@
XINIT_CFLAGS = @XINIT_CFLAGS@
XINIT_LIBS = @XINIT_LIBS@
XMODMAP = @XMODMAP@
XORG_MAN_PAGE = @XORG_MAN_PAGE@
XRDB = @XRDB@
XSERVER = @XSERVER@
XSERVERNAME = @XSERVERNAME@
XTERM = @XTERM@
ac_ct_CC = @ac_ct_CC@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
bundleidprefix = @bundleidprefix@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
launchagentsdir = @launchagentsdir@
launchdaemonsdir = @launchdaemonsdir@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
CPP_SED_MAGIC = $(SED) -e '/^\# *[0-9][0-9]* *.*$$/d' \
-e '/^\#line *[0-9][0-9]* *.*$$/d' \
-e '/^[ ]*XCOMM$$/s/XCOMM/\#/' \
-e '/^[ ]*XCOMM[^a-zA-Z0-9_]/s/XCOMM/\#/' \
-e '/^[ ]*XHASH/s/XHASH/\#/' \
-e '/XSLASHGLOB/s/XSLASHGLOB/\/\*/' \
-e '/\@\@$$/s/\@\@$$/\\/'
SUFFIXES = .cpp
xinitrcdir = $(XINITDIR)
AM_CPPFLAGS = -I$(srcdir)/.. -DXINITDIR=\"$(xinitrcdir)\" -DBINDIR=\"$(bindir)\"
dist_launchd_startx_SOURCES = \
$(srcdir)/../console_redirect.c \
launchd_startx.c
CPP_FILES_FLAGS = \
-D__xinitrcdir__="$(xinitrcdir)" \
-D__bindir__="$(bindir)" \
-DBUNDLE_ID_PREFIX="$(bundleidprefix)"
launchagents_PRE = $(bundleidprefix).startx.plist.cpp
launchagents_DATA = $(launchagents_PRE:plist.cpp=plist)
EXTRA_DIST = startx.plist.cpp
CLEANFILES = \
$(launchagents_DATA) \
$(bundleidprefix).startx.plist.cpp
all: all-am
.SUFFIXES:
.SUFFIXES: .cpp .c .o .obj
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/cpprules.in $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign launchd/user_startx/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign launchd/user_startx/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
install-xinitrcPROGRAMS: $(xinitrc_PROGRAMS)
@$(NORMAL_INSTALL)
test -z "$(xinitrcdir)" || $(mkdir_p) "$(DESTDIR)$(xinitrcdir)"
@list='$(xinitrc_PROGRAMS)'; for p in $$list; do \
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
if test -f $$p \
; then \
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
echo " $(INSTALL_PROGRAM_ENV) $(xinitrcPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(xinitrcdir)/$$f'"; \
$(INSTALL_PROGRAM_ENV) $(xinitrcPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(xinitrcdir)/$$f" || exit 1; \
else :; fi; \
done
uninstall-xinitrcPROGRAMS:
@$(NORMAL_UNINSTALL)
@list='$(xinitrc_PROGRAMS)'; for p in $$list; do \
f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f '$(DESTDIR)$(xinitrcdir)/$$f'"; \
rm -f "$(DESTDIR)$(xinitrcdir)/$$f"; \
done
clean-xinitrcPROGRAMS:
-test -z "$(xinitrc_PROGRAMS)" || rm -f $(xinitrc_PROGRAMS)
launchd_startx$(EXEEXT): $(launchd_startx_OBJECTS) $(launchd_startx_DEPENDENCIES)
@rm -f launchd_startx$(EXEEXT)
$(LINK) $(launchd_startx_LDFLAGS) $(launchd_startx_OBJECTS) $(launchd_startx_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/console_redirect.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/launchd_startx.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
.c.obj:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
console_redirect.o: $(srcdir)/../console_redirect.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT console_redirect.o -MD -MP -MF "$(DEPDIR)/console_redirect.Tpo" -c -o console_redirect.o `test -f '$(srcdir)/../console_redirect.c' || echo '$(srcdir)/'`$(srcdir)/../console_redirect.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/console_redirect.Tpo" "$(DEPDIR)/console_redirect.Po"; else rm -f "$(DEPDIR)/console_redirect.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(srcdir)/../console_redirect.c' object='console_redirect.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o console_redirect.o `test -f '$(srcdir)/../console_redirect.c' || echo '$(srcdir)/'`$(srcdir)/../console_redirect.c
console_redirect.obj: $(srcdir)/../console_redirect.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT console_redirect.obj -MD -MP -MF "$(DEPDIR)/console_redirect.Tpo" -c -o console_redirect.obj `if test -f '$(srcdir)/../console_redirect.c'; then $(CYGPATH_W) '$(srcdir)/../console_redirect.c'; else $(CYGPATH_W) '$(srcdir)/$(srcdir)/../console_redirect.c'; fi`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/console_redirect.Tpo" "$(DEPDIR)/console_redirect.Po"; else rm -f "$(DEPDIR)/console_redirect.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(srcdir)/../console_redirect.c' object='console_redirect.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o console_redirect.obj `if test -f '$(srcdir)/../console_redirect.c'; then $(CYGPATH_W) '$(srcdir)/../console_redirect.c'; else $(CYGPATH_W) '$(srcdir)/$(srcdir)/../console_redirect.c'; fi`
uninstall-info-am:
install-launchagentsDATA: $(launchagents_DATA)
@$(NORMAL_INSTALL)
test -z "$(launchagentsdir)" || $(mkdir_p) "$(DESTDIR)$(launchagentsdir)"
@list='$(launchagents_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(launchagentsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(launchagentsdir)/$$f'"; \
$(launchagentsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(launchagentsdir)/$$f"; \
done
uninstall-launchagentsDATA:
@$(NORMAL_UNINSTALL)
@list='$(launchagents_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(launchagentsdir)/$$f'"; \
rm -f "$(DESTDIR)$(launchagentsdir)/$$f"; \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
$(mkdir_p) $(distdir)/../..
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(PROGRAMS) $(DATA)
installdirs:
for dir in "$(DESTDIR)$(xinitrcdir)" "$(DESTDIR)$(launchagentsdir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-xinitrcPROGRAMS mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
info: info-am
info-am:
install-data-am: install-launchagentsDATA install-xinitrcPROGRAMS
install-exec-am:
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-info-am uninstall-launchagentsDATA \
uninstall-xinitrcPROGRAMS
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
clean-xinitrcPROGRAMS ctags distclean distclean-compile \
distclean-generic distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-exec install-exec-am install-info \
install-info-am install-launchagentsDATA install-man \
install-strip install-xinitrcPROGRAMS installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
uninstall-am uninstall-info-am uninstall-launchagentsDATA \
uninstall-xinitrcPROGRAMS
.cpp:
$(AM_V_GEN)$(RAWCPP) $(RAWCPPFLAGS) $(CPP_FILES_FLAGS) < $< | $(CPP_SED_MAGIC) > $@
$(bundleidprefix).startx.plist.cpp: startx.plist.cpp
cp $< $@
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -0,0 +1,64 @@
/* Copyright (c) 2011 Apple Inc.
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation files
* (the "Software"), to deal in the Software without restriction,
* including without limitation the rights to use, copy, modify, merge,
* publish, distribute, sublicense, and/or sell copies of the Software,
* and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT
* HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name(s) of the above
* copyright holders shall not be used in advertising or otherwise to
* promote the sale, use or other dealings in this Software without
* prior written authorization.
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <asl.h>
#include <unistd.h>
#include <stdio.h>
#include <assert.h>
#include <spawn.h>
#include <sys/wait.h>
#include <string.h>
#include <stdlib.h>
#include "console_redirect.h"
int main(int argc, char **argv, char **envp) {
aslclient aslc;
pid_t child;
int pstat;
if(argc < 2 || strcmp(argv[1], "--help") == 0) {
fprintf(stderr, "Usage: %s prog [args...]\n", argv[0]);
exit(EXIT_FAILURE);
}
aslc = asl_open(BUNDLE_ID_PREFIX".startx", BUNDLE_ID_PREFIX, ASL_OPT_NO_DELAY);
xi_asl_capture_fd(aslc, NULL, ASL_LEVEL_INFO, STDOUT_FILENO);
xi_asl_capture_fd(aslc, NULL, ASL_LEVEL_NOTICE, STDERR_FILENO);
assert(posix_spawnp(&child, argv[1], NULL, NULL, &argv[1], envp) == 0);
wait4(child, &pstat, 0, (struct rusage *)0);
return pstat;
}

View File

@ -3,14 +3,15 @@
<plist version="1.0">
<dict>
<key>Label</key>
<string>LAUNCHD_ID_PREFIX.startx</string>
<string>BUNDLE_ID_PREFIX.startx</string>
<key>ProgramArguments</key>
<array>
<string>__xinitrcdir__/launchd_startx</string>
<string>__bindir__/startx</string>
</array>
<key>Sockets</key>
<dict>
<key>LAUNCHD_ID_PREFIX:0</key>
<key>BUNDLE_ID_PREFIX:0</key>
<dict>
<key>SecureSocketWithKey</key>
<string>DISPLAY</string>

20
app/xinit/man/Makefile.am Normal file
View File

@ -0,0 +1,20 @@
appmandir = $(APP_MAN_DIR)
appman_PRE = startx.man xinit.man
appman_DATA = $(appman_PRE:man=$(APP_MAN_SUFFIX))
EXTRA_DIST = $(appman_PRE)
CLEANFILES = $(appman_DATA)
SUFFIXES = .$(APP_MAN_SUFFIX) .man
MAN_SUBSTS+= -e 's|__XSERVERNAME__|$(XSERVERNAME)|g' \
-e 's|__XCONFIGFILE__|$(XCONFIGFILE)|g' \
-e 's|__XCONFIGFILEMAN__|$(XCONFIGFILEMAN)|g' \
-e 's|__xinitdir__|$(XINITDIR)|g' \
-e 's|__bindir__|$(bindir)|g' \
-e 's|__libdir__|$(libdir)|g' \
-e 's|__SCOMAN__|$(SCOMAN)|g'
# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure
.man.$(APP_MAN_SUFFIX):
$(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@

389
app/xinit/man/Makefile.in Normal file
View File

@ -0,0 +1,389 @@
# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = ${SHELL} $(install_sh) -c -m 644
install_sh_PROGRAM = ${SHELL} $(install_sh) -c
install_sh_SCRIPT = ${SHELL} $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = man
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(appmandir)"
appmanDATA_INSTALL = $(INSTALL_DATA)
DATA = $(appman_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ADMIN_MAN_DIR = @ADMIN_MAN_DIR@
ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
APP_MAN_DIR = @APP_MAN_DIR@
APP_MAN_SUFFIX = @APP_MAN_SUFFIX@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CHANGELOG_CMD = @CHANGELOG_CMD@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CWARNFLAGS = @CWARNFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DRIVER_MAN_DIR = @DRIVER_MAN_DIR@
DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
GREP = @GREP@
INSTALL_CMD = @INSTALL_CMD@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LAUNCHD = @LAUNCHD@
LAUNCHD_FALSE = @LAUNCHD_FALSE@
LAUNCHD_TRUE = @LAUNCHD_TRUE@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIB_MAN_DIR = @LIB_MAN_DIR@
LIB_MAN_SUFFIX = @LIB_MAN_SUFFIX@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MAN_SUBSTS = @MAN_SUBSTS@ -e 's|__XSERVERNAME__|$(XSERVERNAME)|g' -e \
's|__XCONFIGFILE__|$(XCONFIGFILE)|g' -e \
's|__XCONFIGFILEMAN__|$(XCONFIGFILEMAN)|g' -e \
's|__xinitdir__|$(XINITDIR)|g' -e 's|__bindir__|$(bindir)|g' \
-e 's|__libdir__|$(libdir)|g' -e 's|__SCOMAN__|$(SCOMAN)|g'
MCOOKIE = @MCOOKIE@
MISC_MAN_DIR = @MISC_MAN_DIR@
MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
RAWCPP = @RAWCPP@
RAWCPPFLAGS = @RAWCPPFLAGS@
SCOMAN = @SCOMAN@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SHELL_CMD = @SHELL_CMD@
STARTX_COOKIE_FLAGS = @STARTX_COOKIE_FLAGS@
STRICT_CFLAGS = @STRICT_CFLAGS@
STRIP = @STRIP@
TIGER_LAUNCHD_FALSE = @TIGER_LAUNCHD_FALSE@
TIGER_LAUNCHD_TRUE = @TIGER_LAUNCHD_TRUE@
TWM = @TWM@
VERSION = @VERSION@
WM = @WM@
XAUTH = @XAUTH@
XCLOCK = @XCLOCK@
XCONFIGFILE = @XCONFIGFILE@
XCONFIGFILEMAN = @XCONFIGFILEMAN@
XCONSOLE = @XCONSOLE@
XINIT = @XINIT@
XINITDIR = @XINITDIR@
XINIT_CFLAGS = @XINIT_CFLAGS@
XINIT_LIBS = @XINIT_LIBS@
XMODMAP = @XMODMAP@
XORG_MAN_PAGE = @XORG_MAN_PAGE@
XRDB = @XRDB@
XSERVER = @XSERVER@
XSERVERNAME = @XSERVERNAME@
XTERM = @XTERM@
ac_ct_CC = @ac_ct_CC@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
bundleidprefix = @bundleidprefix@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
launchagentsdir = @launchagentsdir@
launchdaemonsdir = @launchdaemonsdir@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
appmandir = $(APP_MAN_DIR)
appman_PRE = startx.man xinit.man
appman_DATA = $(appman_PRE:man=$(APP_MAN_SUFFIX))
EXTRA_DIST = $(appman_PRE)
CLEANFILES = $(appman_DATA)
SUFFIXES = .$(APP_MAN_SUFFIX) .man
all: all-am
.SUFFIXES:
.SUFFIXES: .$(APP_MAN_SUFFIX) .man
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign man/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign man/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
install-appmanDATA: $(appman_DATA)
@$(NORMAL_INSTALL)
test -z "$(appmandir)" || $(mkdir_p) "$(DESTDIR)$(appmandir)"
@list='$(appman_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(appmanDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(appmandir)/$$f'"; \
$(appmanDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(appmandir)/$$f"; \
done
uninstall-appmanDATA:
@$(NORMAL_UNINSTALL)
@list='$(appman_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(appmandir)/$$f'"; \
rm -f "$(DESTDIR)$(appmandir)/$$f"; \
done
tags: TAGS
TAGS:
ctags: CTAGS
CTAGS:
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(DATA)
installdirs:
for dir in "$(DESTDIR)$(appmandir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
html: html-am
info: info-am
info-am:
install-data-am: install-appmanDATA
install-exec-am:
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-appmanDATA uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
distclean-generic distdir dvi dvi-am html html-am info info-am \
install install-am install-appmanDATA install-data \
install-data-am install-exec install-exec-am install-info \
install-info-am install-man install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
pdf-am ps ps-am uninstall uninstall-am uninstall-appmanDATA \
uninstall-info-am
# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure
.man.$(APP_MAN_SUFFIX):
$(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -1,6 +1,6 @@
.\"
.\" Copyright 1993, 1998 The Open Group
.\"
.\"
.\" Permission to use, copy, modify, distribute, and sell this software and its
.\" documentation for any purpose is hereby granted without fee, provided that
.\" the above copyright notice appear in all copies and that both that
@ -74,7 +74,7 @@ startx -- -dpi 100
.PP
startx -- -layout Multihead
.RE
#ifdef __SCOMAN__
.if '__SCOMAN__'' .ig
.PP
To determine the client to run,
.B startx
@ -90,7 +90,8 @@ looks for the following files, in order:
.I __xinitdir__/xinitrc
.RE
.PP
#else
..
.if !'x.__SCOMAN__'x.' .ig
.PP
To determine the client to run,
.B startx
@ -102,7 +103,7 @@ the file
in the
.I xinit
library directory.
#endif
..
If command line client options are given, they override this
behavior and revert to the
.BR xinit (__appmansuffix__)
@ -186,7 +187,7 @@ and
.IR Xsecurity (__miscmansuffix__)
manual pages for more information on X client/server authentication.
.SH FILES
#ifdef __SCOMAN__
.if '__SCOMAN__'' .ig
.TP 25
.I $(HOME)/.startxrc
Client to run. Typically a shell script which runs many programs in
@ -196,7 +197,7 @@ the background.
Client to use if the user has no
.I .startxrc
file.
#endif
..
.TP 25
.I $(HOME)/.xinitrc
Client to run. Typically a shell script which runs many programs in

View File

@ -5,8 +5,8 @@ XCOMM This is just a sample implementation of a slightly less primitive
XCOMM interface than xinit. It looks for user .xinitrc and .xserverrc
XCOMM files, then system xinitrc and xserverrc files, else lets xinit choose
XCOMM its default. The system xinitrc should probably do things like check
XCOMM for .Xresources files and merge them in, startup up a window manager,
XCOMM and pop a clock and serveral xterms.
XCOMM for .Xresources files and merge them in, start up a window manager,
XCOMM and pop a clock and several xterms.
XCOMM
XCOMM Site administrators are STRONGLY urged to write nicer versions.
XCOMM
@ -21,7 +21,7 @@ XCOMM This allows startx to be placed in a place like /usr/bin or /usr/local/bin
XCOMM and people may use X without changing their PATH.
XCOMM Note that we put our own bin directory at the front of the path, and
XCOMM the standard system path at the back, since if you are using the Xorg
XCOMM server theres a pretty good chance you want to bias the Xorg clients
XCOMM server there's a pretty good chance you want to bias the Xorg clients
XCOMM over the old system's clients.
XCOMM First our compiled path
@ -83,7 +83,7 @@ serverargs=""
#ifdef __APPLE__
if [ "x$X11_PREFS_DOMAIN" = x ] ; then
export X11_PREFS_DOMAIN=LAUNCHD_ID_PREFIX".X11"
export X11_PREFS_DOMAIN=BUNDLE_ID_PREFIX".X11"
fi
XCOMM Initialize defaults (this will cut down on "safe" error messages)

View File

@ -380,9 +380,8 @@ processTimeout(int timeout, char *string)
else
fprintf(stderr, ".");
fflush(stderr);
}
if (timeout)
sleep(1);
}
if (++i > timeout)
break;
}
@ -620,7 +619,7 @@ shutdown(void)
if (!processTimeout(10, "X server to shut down"))
return;
Errorx("X server slow to shut down, senging KILL signal");
Errorx("X server slow to shut down, sending KILL signal");
if (killpg(serverpid, SIGKILL) < 0) {
if (errno == ESRCH)