From fcc6eaf385e26a8d64a873503a21347d22dc5a46 Mon Sep 17 00:00:00 2001 From: matthieu Date: Sun, 25 Jan 2015 11:37:57 +0000 Subject: [PATCH] Update to xinit 1.3.4 --- app/xinit/ChangeLog | 153 ++++++++++++++++++ app/xinit/Makefile.in | 2 +- app/xinit/autogen.sh | 5 +- app/xinit/configure | 23 ++- app/xinit/configure.ac | 5 +- app/xinit/cpprules.in | 2 +- .../launchd/privileged_startx/Makefile.in | 2 +- app/xinit/launchd/user_startx/Makefile.in | 2 +- app/xinit/startx.cpp | 76 +++------ app/xinit/xinit.c | 14 +- 10 files changed, 202 insertions(+), 82 deletions(-) diff --git a/app/xinit/ChangeLog b/app/xinit/ChangeLog index 807ec55e0..00dcc025e 100644 --- a/app/xinit/ChangeLog +++ b/app/xinit/ChangeLog @@ -1,3 +1,156 @@ +commit 6f6747d500439782476cf5c029a7fc45fc954c86 +Author: Hans de Goede +Date: Thu Sep 11 16:29:06 2014 +0200 + + xinit 1.3.4 + + Signed-off-by: Hans de Goede + +commit e91faac94e36937c96c04277eae7960bf5132b5b +Author: Brad Smith +Date: Fri Aug 29 01:34:16 2014 -0400 + + Remove hardcoded path to OpenSSL for OpenBSD + + Since xinit's autoconf script was changed to use AC_PATH_PROGS() to find + openssl this hardcoded path to openssl can be removed. This was noticed + recently when openssl was moved from /usr/sbin to /usr/bin and developers + were looking for anything having hardcoded paths. + + Reviewed-by: Matthieu Herrb + +commit 94b002262d27975dabf56c77fd308ebabc894090 +Author: Hans de Goede +Date: Tue Aug 26 11:52:20 2014 +0200 + + startx: Make the bugzilla reference in a comment survive cpp processing + + https://bugs.freedesktop.org/show_bug.cgi?id=83019 + + Signed-off-by: Hans de Goede + +commit 5502aaf99f4e723e96791e8f4cf01e0c200ec269 +Author: Alan Coopersmith +Date: Sat May 31 21:39:32 2014 -0700 + + autogen.sh: Honor NOCONFIGURE=1 + + See http://people.gnome.org/~walters/docs/build-api.txt + + Signed-off-by: Alan Coopersmith + +commit a6a720b5181d4d0529e4eb203ece234ba45f69dd +Author: Alan Coopersmith +Date: Sat May 31 21:38:41 2014 -0700 + + configure: Drop AM_MAINTAINER_MODE + + Signed-off-by: Alan Coopersmith + +commit 1b23094a8606bf383ec6c7803a9cd300b1bb96a7 +Author: Hans de Goede +Date: Mon Apr 7 11:23:48 2014 +0200 + + startx: Pass vtX as long as the user did not specify one + + Adding vtX to $defaultserverargs means that it will only be added when + the user specifies no server arguments. + + This means that doing ie: "startx -- -depth 16" will cause the server to start + on a different vt then just "startx", which does not meat the principle of + least surprise. + + Instead always pass the vtX argument, except when the user has specified its + own vtX argument. Note that vtX still only gets added for the default server, + since for ie Xnest or Xephyr it makes no sense. + + Signed-off-by: Hans de Goede + Reviewed-by: James Cloos + +commit 44915d6953076849b69a017f6fc8234b0f254362 +Author: Hans de Goede +Date: Tue Mar 25 11:54:31 2014 +0100 + + startx: Under Linux start X on the current VT + + When we let X allocate a new VT, systemd-logind will not recognize any + processes running on this VT as belonging to a valid session (since there + was no pam session opened on that tty). + + This causes problems like PolicyKit denials for these processes. + + ConsoleKit under Linux has been deprecated for a few years now and is no + longer being maintained, so simply make this the default under Linux. + + Note we do not pass in the vt if the user has specified an alternative server + to start, as the vtX argument is only valid for the Xorg server, likewise we + omit it if the user has specified any other server arguments. + + Fixes: + https://bugzilla.redhat.com/show_bug.cgi?id=806491 + + Signed-off-by: Hans de Goede + Reviewed-by: Peter Hutterer + +commit 79479a0c45f3177ddf0bb2666d39535b6c767c07 +Author: Hans de Goede +Date: Tue Mar 25 11:48:58 2014 +0100 + + Replace $RAWCPPFLAGS with $TRADITIONALCPPFLAGS when processing cpp files + + Various .cpp files containt things like #ifdef __APPLE__ and #ifdef __linux__ + these have been broken (all #ifdef-s always seen as false) since: + http://cgit.freedesktop.org/xorg/util/macros/commit/?id=d690e4a9febd07988d149a967791c5629c17b258 + + This commit makes these work again by removing -undef from the cpp flags. + + Signed-off-by: Hans de Goede + Reviewed-by: Gaetan Nadon + +commit 7f54370baca4203bb344f5f8a4c2683f5b78d50b +Author: Hans de Goede +Date: Thu Mar 27 14:37:19 2014 +0100 + + Bump required util-macros version to 1.19 + + Signed-off-by: Hans de Goede + Reviewed-by: Gaetan Nadon + +commit fdf03cd2fdfd9cd5635334c5e4dc2bb23e92e37a +Author: Hans de Goede +Date: Thu Mar 27 12:29:19 2014 +0100 + + Remove unixware / sco support + + We don't support SCO / Unixware anymore, so lets remove the SCO / Unixware + specific bits from startx and xinitrc + + SCO support was removed from the server in 2010: + http://lists.x.org/archives/xorg-devel/2010-December/017209.html + + Signed-off-by: Hans de Goede + Reviewed-by: Mark Kettenis + Reviewed-by: Gaetan Nadon + +commit 463b85fcf51d8ff5886ebe1f3481e5cb4d603436 +Author: Alan Coopersmith +Date: Fri Nov 22 23:03:39 2013 -0800 + + Pass files to cpp via CLI arg instead of stdin to workaround gcc 4.8 change + + Fixes Bug 69439 - Empty lines before #!/bin/sh in startx + https://bugs.freedesktop.org/show_bug.cgi?id=69439 + + Signed-off-by: Alan Coopersmith + +commit 182920f156c87715d91b2f64b8781a0072af996e +Author: Alan Coopersmith +Date: Sun Sep 8 09:48:50 2013 -0700 + + Fix warnings about parameters to startServer & startClient shadowing globals + + Signed-off-by: Alan Coopersmith + commit cdc39fd28649ea906dea8f58981d15d4b04a0a47 Author: Alan Coopersmith Date: Sun Sep 8 09:35:35 2013 -0700 diff --git a/app/xinit/Makefile.in b/app/xinit/Makefile.in index 583e2cabb..6c58438e8 100644 --- a/app/xinit/Makefile.in +++ b/app/xinit/Makefile.in @@ -1052,7 +1052,7 @@ uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \ .cpp: - $(AM_V_GEN)$(RAWCPP) $(RAWCPPFLAGS) $(CPP_FILES_FLAGS) < $< | $(CPP_SED_MAGIC) > $@ + $(AM_V_GEN)$(RAWCPP) $(TRADITIONALCPPFLAGS) $(CPP_FILES_FLAGS) $< | $(CPP_SED_MAGIC) > $@ .PHONY: ChangeLog INSTALL diff --git a/app/xinit/autogen.sh b/app/xinit/autogen.sh index e81f98910..fc34bd55c 100644 --- a/app/xinit/autogen.sh +++ b/app/xinit/autogen.sh @@ -9,5 +9,6 @@ cd $srcdir autoreconf -v --install || exit 1 cd $ORIGDIR || exit $? -$srcdir/configure --enable-maintainer-mode "$@" - +if test -z "$NOCONFIGURE"; then + $srcdir/configure "$@" +fi diff --git a/app/xinit/configure b/app/xinit/configure index 1215575d0..11dcf8ee9 100644 --- a/app/xinit/configure +++ b/app/xinit/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for xinit 1.3.3. +# Generated by GNU Autoconf 2.69 for xinit 1.3.4. # # Report bugs to . # @@ -581,8 +581,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='xinit' PACKAGE_TARNAME='xinit' -PACKAGE_VERSION='1.3.3' -PACKAGE_STRING='xinit 1.3.3' +PACKAGE_VERSION='1.3.4' +PACKAGE_STRING='xinit 1.3.4' PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg' PACKAGE_URL='' @@ -1361,7 +1361,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures xinit 1.3.3 to adapt to many kinds of systems. +\`configure' configures xinit 1.3.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1431,7 +1431,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of xinit 1.3.3:";; + short | recursive ) echo "Configuration of xinit 1.3.4:";; esac cat <<\_ACEOF @@ -1572,7 +1572,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -xinit configure 1.3.3 +xinit configure 1.3.4 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1896,7 +1896,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by xinit $as_me 1.3.3, which was +It was created by xinit $as_me 1.3.4, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2725,7 +2725,7 @@ fi # Define the identity of the package. PACKAGE='xinit' - VERSION='1.3.3' + VERSION='1.3.4' cat >>confdefs.h <<_ACEOF @@ -11074,9 +11074,6 @@ test -n "$OPENSSL" || OPENSSL="$OPENSSL" MCOOKIE="$OPENSSL rand -hex 16" else case $host_os in - *openbsd*) - MCOOKIE='/usr/sbin/openssl rand -hex 16' - ;; *solaris*) MCOOKIE="/usr/bin/od -X -A n -N 16 /dev/urandom | /usr/bin/tr -d ' '" ;; @@ -11679,7 +11676,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by xinit $as_me 1.3.3, which was +This file was extended by xinit $as_me 1.3.4, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -11745,7 +11742,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -xinit config.status 1.3.3 +xinit config.status 1.3.4 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/app/xinit/configure.ac b/app/xinit/configure.ac index 02cb80ccc..ab43c8481 100644 --- a/app/xinit/configure.ac +++ b/app/xinit/configure.ac @@ -22,7 +22,7 @@ dnl Process this file with autoconf to create configure. # Initialize Autoconf AC_PREREQ([2.60]) -AC_INIT([xinit], [1.3.3], +AC_INIT([xinit], [1.3.4], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xinit]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([config.h]) @@ -173,9 +173,6 @@ if test "x$MCOOKIE" = x ; then MCOOKIE="$OPENSSL rand -hex 16" else case $host_os in - *openbsd*) - MCOOKIE='/usr/sbin/openssl rand -hex 16' - ;; *solaris*) MCOOKIE="/usr/bin/od -X -A n -N 16 /dev/urandom | /usr/bin/tr -d ' '" ;; diff --git a/app/xinit/cpprules.in b/app/xinit/cpprules.in index eaea42885..870efded2 100644 --- a/app/xinit/cpprules.in +++ b/app/xinit/cpprules.in @@ -15,4 +15,4 @@ CPP_SED_MAGIC = $(SED) -e '/^\# *[0-9][0-9]* *.*$$/d' \ SUFFIXES = .cpp .cpp: - $(AM_V_GEN)$(RAWCPP) $(RAWCPPFLAGS) $(CPP_FILES_FLAGS) < $< | $(CPP_SED_MAGIC) > $@ + $(AM_V_GEN)$(RAWCPP) $(TRADITIONALCPPFLAGS) $(CPP_FILES_FLAGS) $< | $(CPP_SED_MAGIC) > $@ diff --git a/app/xinit/launchd/privileged_startx/Makefile.in b/app/xinit/launchd/privileged_startx/Makefile.in index 3f7030446..809aeacdd 100644 --- a/app/xinit/launchd/privileged_startx/Makefile.in +++ b/app/xinit/launchd/privileged_startx/Makefile.in @@ -780,7 +780,7 @@ uninstall-am: uninstall-launchdaemonsDATA uninstall-privstartxSCRIPTS \ .cpp: - $(AM_V_GEN)$(RAWCPP) $(RAWCPPFLAGS) $(CPP_FILES_FLAGS) < $< | $(CPP_SED_MAGIC) > $@ + $(AM_V_GEN)$(RAWCPP) $(TRADITIONALCPPFLAGS) $(CPP_FILES_FLAGS) $< | $(CPP_SED_MAGIC) > $@ $(bundleidprefix).privileged_startx.plist.cpp: privileged_startx.plist.cpp cp $< $@ diff --git a/app/xinit/launchd/user_startx/Makefile.in b/app/xinit/launchd/user_startx/Makefile.in index 8af4d0d8d..58d717962 100644 --- a/app/xinit/launchd/user_startx/Makefile.in +++ b/app/xinit/launchd/user_startx/Makefile.in @@ -700,7 +700,7 @@ uninstall-am: uninstall-launchagentsDATA uninstall-xinitrcPROGRAMS .cpp: - $(AM_V_GEN)$(RAWCPP) $(RAWCPPFLAGS) $(CPP_FILES_FLAGS) < $< | $(CPP_SED_MAGIC) > $@ + $(AM_V_GEN)$(RAWCPP) $(TRADITIONALCPPFLAGS) $(CPP_FILES_FLAGS) $< | $(CPP_SED_MAGIC) > $@ $(bundleidprefix).startx.plist.cpp: startx.plist.cpp cp $< $@ diff --git a/app/xinit/startx.cpp b/app/xinit/startx.cpp index c595b8487..1c6fce085 100644 --- a/app/xinit/startx.cpp +++ b/app/xinit/startx.cpp @@ -14,7 +14,7 @@ XCOMM unset DBUS_SESSION_BUS_ADDRESS unset SESSION_MANAGER -#if defined(__SCO__) || defined(__UNIXWARE__) || defined(__APPLE__) +#ifdef __APPLE__ XCOMM Check for /usr/bin/X11 and BINDIR in the path, if not add them. XCOMM This allows startx to be placed in a place like /usr/bin or /usr/local/bin @@ -33,11 +33,7 @@ case $PATH in esac XCOMM Now the "old" compiled path -#ifdef __APPLE__ oldbindir=/usr/X11R6/bin -#else -oldbindir=/usr/bin/X11 -#endif if [ -d "$oldbindir" ] ; then case $PATH in @@ -51,24 +47,8 @@ XCOMM so export the new PATH just in case the user changes the shell export PATH #endif -#if defined(__SCO__) || defined(__UNIXWARE__) -XCOMM Set up the XMERGE env var so that dos merge is happy under X - -if [ -f /usr/lib/merge/xmergeset.sh ]; then - . /usr/lib/merge/xmergeset.sh -elif [ -f /usr/lib/merge/console.disp ]; then - XMERGE=`cat /usr/lib/merge/console.disp` - export XMERGE -fi - -userclientrc=$HOME/.startxrc -sysclientrc=LIBDIR/sys.startxrc -scouserclientrc=$HOME/.xinitrc -scosysclientrc=XINITDIR/xinitrc -#else userclientrc=$HOME/.xinitrc sysclientrc=XINITDIR/xinitrc -#endif userserverrc=$HOME/.xserverrc sysserverrc=XINITDIR/xserverrc @@ -79,6 +59,7 @@ defaultserverargs="" defaultdisplay=":0" clientargs="" serverargs="" +vtarg="" #ifdef __APPLE__ @@ -145,21 +126,6 @@ done defaultdisplay=":$d" unset d -#if defined(__SCO__) || defined(__UNIXWARE__) - -XCOMM SCO -t option: do not start an X server -case $1 in - -t) if [ -n "$DISPLAY" ]; then - REMOTE_SERVER=TRUE - shift - else - echo "DISPLAY environment variable not set" - exit 1 - fi - ;; -esac -#endif - whoseargs="client" while [ x"$1" != x ]; do case "$1" in @@ -209,12 +175,6 @@ if [ x"$client" = x ]; then client=$userclientrc elif [ -f "$sysclientrc" ]; then client=$sysclientrc -#if defined(__SCO__) || defined(__UNIXWARE__) - elif [ -f "$scouserclientrc" ]; then - client=$scouserclientrc - elif [ -f "$scosysclientrc" ]; then - client=$scosysclientrc -#endif fi fi fi @@ -228,6 +188,17 @@ XCOMM process server arguments if [ x"$server" = x ]; then server=$defaultserver +#ifdef __linux__ + XCOMM When starting the defaultserver start X on the current tty to avoid + XCOMM the startx session being seen as inactive: + XCOMM "https://bugzilla.redhat.com/show_bug.cgi?id=806491" + tty=$(tty) + if expr match "$tty" '^/dev/tty[0-9]\+$' > /dev/null; then + tty_num=$(echo "$tty" | grep -oE '[0-9]+$') + vtarg="vt$tty_num" + fi +#endif + XCOMM For compatibility reasons, only use xserverrc if there were no server command line arguments if [ x"$serverargs" = x -a x"$display" = x ]; then if [ -f "$userserverrc" ]; then @@ -243,6 +214,17 @@ if [ x"$serverargs" = x ]; then serverargs=$defaultserverargs fi +XCOMM if no vt is specified add vtarg (which may be empty) +have_vtarg="no" +for i in $serverargs; do + if expr match "$i" '^vt[0-9]\+$' > /dev/null; then + have_vtarg="yes" + fi +done +if [ "$have_vtarg" = "no" ]; then + serverargs="$serverargs $vtarg" +fi + XCOMM if no display, use default if [ x"$display" = x ]; then display=$defaultdisplay @@ -319,20 +301,10 @@ EOF done fi -#if defined(__SCO__) || defined(__UNIXWARE__) -if [ "$REMOTE_SERVER" = "TRUE" ]; then - exec SHELL_CMD ${client} -else - XINIT "$client" $clientargs -- "$server" $display $serverargs -fi -#else - #if defined(__APPLE__) || defined(__CYGWIN__) eval XINIT \"$client\" $clientargs -- \"$server\" $display $serverargs #else XINIT "$client" $clientargs -- "$server" $display $serverargs -#endif - #endif retval=$? diff --git a/app/xinit/xinit.c b/app/xinit/xinit.c index 18e3e109b..1b049117c 100644 --- a/app/xinit/xinit.c +++ b/app/xinit/xinit.c @@ -390,7 +390,7 @@ processTimeout(int timeout, const char *string) } static pid_t -startServer(char *server[]) +startServer(char *server_argv[]) { sigset_t mask, old; const char * const *cpp; @@ -422,12 +422,12 @@ startServer(char *server[]) * if client is xterm -L */ setpgid(0,getpid()); - Execute(server); + Execute(server_argv); - Error("unable to run server \"%s\"", server[0]); + Error("unable to run server \"%s\"", server_argv[0]); fprintf(stderr, "Use the -- option, or make sure that %s is in your path and\n", bindir); - fprintf(stderr, "that \"%s\" is a program or a link to the right type of server\n", server[0]); + fprintf(stderr, "that \"%s\" is a program or a link to the right type of server\n", server_argv[0]); fprintf(stderr, "for your display. Possible server names include:\n\n"); for (cpp = server_names; *cpp; cpp++) fprintf(stderr, " %s\n", *cpp); @@ -556,7 +556,7 @@ setWindowPath(void) } static pid_t -startClient(char *client[]) +startClient(char *client_argv[]) { clientpid = fork(); if (clientpid == 0) { @@ -568,8 +568,8 @@ startClient(char *client[]) _exit(EXIT_FAILURE); } setpgid(0, getpid()); - Execute(client); - Error("Unable to run program \"%s\"", client[0]); + Execute(client_argv); + Error("Unable to run program \"%s\"", client_argv[0]); fprintf(stderr, "Specify a program on the command line or make sure that %s\n", bindir); fprintf(stderr, "is in your path.\n\n");