diff -Nru xinit-1.4.0/ChangeLog xinit-1.4.1/ChangeLog --- xinit-1.4.0/ChangeLog 2018-03-10 01:46:13.000000000 +0000 +++ xinit-1.4.1/ChangeLog 2019-03-03 19:58:21.000000000 +0000 @@ -1,3 +1,67 @@ +commit 9a8b937bcfd84575e13039f316cbcb14c9729df4 +Author: Alan Coopersmith +Date: Sun Mar 3 11:56:43 2019 -0800 + + xinit 1.4.1 + + Signed-off-by: Alan Coopersmith + +commit b3dc751212e5f2f6b5d263e009cc2b85e56bfdbf +Author: Tobias Stoeckmann +Date: Thu Feb 7 20:54:37 2019 +0100 + + Buffer overflow with many arguments. + + Command line arguments are copied into clientargv and serverargv without + verifying that enough space is available. A high amount of arguments can + therefore trigger a buffer overflow like this: + + $ xinit $(seq 1 500) + + Signed-off-by: Tobias Stoeckmann + Reviewed-by: Walter Harms wharms@bfs,de + +commit f727023c1a75dcc467dd99a3db69a5834a0718f0 +Author: Alan Coopersmith +Date: Wed Nov 21 17:06:34 2018 -0800 + + Update configure.ac bug URL for gitlab migration + + Signed-off-by: Alan Coopersmith + +commit ce311771ca86a4134511aecda5601d7c76d763dd +Author: Alan Coopersmith +Date: Fri Nov 16 22:19:18 2018 -0800 + + Update README for gitlab migration + + Signed-off-by: Alan Coopersmith + +commit 752ef176eb99f6315be27f00896b37ce217758b9 +Author: Laurent Bigonville +Date: Fri Sep 12 15:35:49 2014 +0200 + + Fix some miscellaneous stuffs in the manpages + + See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=726962 + https://bugs.freedesktop.org/show_bug.cgi?id=83797 + + Signed-off-by: Alan Coopersmith + +commit aac8e17d28665dd35a73ee188c007f0b0f9cd9fe +Author: Jon TURNEY +Date: Mon Oct 26 13:55:35 2009 +0000 + + Make text about supplying X server arguments via startx more generic + + Make text about supplying X server arguments via startx more generic, + rather than assuming the started server will be Xorg, and hence will + take Xorg's arguments. + + Signed-off-by: Jon TURNEY + Reviewed-by: Alan Coopersmith + Signed-off-by: Alan Coopersmith + commit 2df7937c6d57a4f44288d13fc50218fe088c4185 Author: Alan Coopersmith Date: Fri Mar 9 17:44:47 2018 -0800 diff -Nru xinit-1.4.0/configure xinit-1.4.1/configure --- xinit-1.4.0/configure 2018-03-10 01:46:06.000000000 +0000 +++ xinit-1.4.1/configure 2019-03-03 19:58:14.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for xinit 1.4.0. +# Generated by GNU Autoconf 2.69 for xinit 1.4.1. # -# Report bugs to . +# Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -267,7 +267,7 @@ $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and -$0: https://bugs.freedesktop.org/enter_bug.cgi?product=xorg +$0: https://gitlab.freedesktop.org/xorg/app/xinit/issues $0: about your system, including any error possibly output $0: before this message. Then install a modern shell, or $0: manually run the script under such a shell if you do @@ -581,9 +581,9 @@ # Identity of this package. PACKAGE_NAME='xinit' PACKAGE_TARNAME='xinit' -PACKAGE_VERSION='1.4.0' -PACKAGE_STRING='xinit 1.4.0' -PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg' +PACKAGE_VERSION='1.4.1' +PACKAGE_STRING='xinit 1.4.1' +PACKAGE_BUGREPORT='https://gitlab.freedesktop.org/xorg/app/xinit/issues' PACKAGE_URL='' ac_unique_file="Makefile.am" @@ -1352,7 +1352,7 @@ # 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.4.0 to adapt to many kinds of systems. +\`configure' configures xinit 1.4.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1422,7 +1422,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of xinit 1.4.0:";; + short | recursive ) echo "Configuration of xinit 1.4.1:";; esac cat <<\_ACEOF @@ -1494,7 +1494,7 @@ Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. -Report bugs to . +Report bugs to . _ACEOF ac_status=$? fi @@ -1557,7 +1557,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -xinit configure 1.4.0 +xinit configure 1.4.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1881,7 +1881,7 @@ 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.4.0, which was +It was created by xinit $as_me 1.4.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2749,7 +2749,7 @@ # Define the identity of the package. PACKAGE='xinit' - VERSION='1.4.0' + VERSION='1.4.1' cat >>confdefs.h <<_ACEOF @@ -11873,7 +11873,7 @@ # 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.4.0, which was +This file was extended by xinit $as_me 1.4.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -11933,13 +11933,13 @@ Configuration commands: $config_commands -Report bugs to ." +Report bugs to ." _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.4.0 +xinit config.status 1.4.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -Nru xinit-1.4.0/configure.ac xinit-1.4.1/configure.ac --- xinit-1.4.0/configure.ac 2018-03-10 01:46:03.000000000 +0000 +++ xinit-1.4.1/configure.ac 2019-03-03 19:58:11.000000000 +0000 @@ -22,8 +22,8 @@ # Initialize Autoconf AC_PREREQ([2.60]) -AC_INIT([xinit], [1.4.0], - [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xinit]) +AC_INIT([xinit], [1.4.1], + [https://gitlab.freedesktop.org/xorg/app/xinit/issues], [xinit]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([config.h]) diff -Nru xinit-1.4.0/debian/changelog xinit-1.4.1/debian/changelog --- xinit-1.4.0/debian/changelog 2019-08-24 10:21:14.000000000 +0000 +++ xinit-1.4.1/debian/changelog 2019-08-24 10:21:14.000000000 +0000 @@ -1,3 +1,16 @@ +xinit (1.4.1-0ubuntu2) eoan; urgency=medium + + * debian/patches/03_debian_startx_manpage.diff: + - refresh + + -- Sebastien Bacher Sat, 24 Aug 2019 12:28:16 +0300 + +xinit (1.4.1-0ubuntu1) eoan; urgency=medium + + * New upstream version + + -- Sebastien Bacher Sat, 24 Aug 2019 11:10:04 +0300 + xinit (1.4.0-1ubuntu1) cosmic; urgency=low * Merge from Debian Sid (LP: #1779531). Remaining changes: diff -Nru xinit-1.4.0/debian/patches/03_debian_startx_manpage.diff xinit-1.4.1/debian/patches/03_debian_startx_manpage.diff --- xinit-1.4.0/debian/patches/03_debian_startx_manpage.diff 2019-08-24 10:21:14.000000000 +0000 +++ xinit-1.4.1/debian/patches/03_debian_startx_manpage.diff 2019-08-24 10:21:14.000000000 +0000 @@ -5,12 +5,12 @@ startx.man | 54 ++++++++++++++++++++++-------------------------------- 1 file changed, 22 insertions(+), 32 deletions(-) ---- a/man/startx.man -+++ b/man/startx.man -@@ -73,10 +73,32 @@ startx -- -depth 16 - startx -- -dpi 100 - .PP - startx -- -layout Multihead +Index: xinit-1.4.1/man/startx.man +=================================================================== +--- xinit-1.4.1.orig/man/startx.man ++++ xinit-1.4.1/man/startx.man +@@ -69,6 +69,28 @@ startx \-\^\- \-dpi 100 + startx \-\^\- \-layout Multihead .RE .PP +Note that in the Debian system, what many people traditionally put in the @@ -38,11 +38,7 @@ To determine the client to run, .B startx looks for the following files, in order: - .RS - .PP -@@ -118,42 +140,10 @@ The system-wide - and - .I xserverrc +@@ -114,38 +136,6 @@ and files are found in the .I __xinitdir__ directory. @@ -81,5 +77,3 @@ .SH "ENVIRONMENT VARIABLES" .TP 25 DISPLAY - This variable gets set to the name of the display to which clients should - connect. Note that this gets diff -Nru xinit-1.4.0/debian/patches/03_debian_startx_manpage.diff~ xinit-1.4.1/debian/patches/03_debian_startx_manpage.diff~ --- xinit-1.4.0/debian/patches/03_debian_startx_manpage.diff~ 1970-01-01 00:00:00.000000000 +0000 +++ xinit-1.4.1/debian/patches/03_debian_startx_manpage.diff~ 2019-08-24 10:21:14.000000000 +0000 @@ -0,0 +1,85 @@ +Fix the startx manpage to be more correct for our setup; this patch by Branden +Robinson. + +--- + startx.man | 54 ++++++++++++++++++++++-------------------------------- + 1 file changed, 22 insertions(+), 32 deletions(-) + +--- a/man/startx.man ++++ b/man/startx.man +@@ -73,10 +73,32 @@ startx -- -depth 16 + startx \-\^\- \-dpi 100 + .PP + startx \-\^\- \-layout Multihead + .RE + .PP ++Note that in the Debian system, what many people traditionally put in the ++.I .xinitrc ++file should go in ++.I .xsession ++instead; this permits the same X environment to be presented whether ++.IR startx , ++.IR xdm , ++or ++.I xinit ++is used to start the X session. All discussion of the ++.I .xinitrc ++file in the ++.IR xinit (1) ++manual page applies equally well to ++.IR .xsession. ++Keep in mind that ++.I .xinitrc ++is used only by ++.IR xinit (1) ++and completely ignored by ++.IR xdm (1). ++.PP + To determine the client to run, + .B startx + looks for the following files, in order: + .RS + .PP +@@ -118,42 +140,10 @@ The system-wide + and + .I xserverrc + files are found in the + .I __xinitdir__ + directory. +-.PP +-The +-.I .xinitrc +-is typically a shell script which starts many clients according to the +-user's preference. When this shell script exits, +-.B startx +-kills the server and performs any other session shutdown needed. +-Most of the clients started by +-.I .xinitrc +-should be run in the background. The last client should run in the +-foreground; when it exits, the session will exit. People often choose +-a session manager, window manager, or \fIxterm\fP as the ''magic'' client. +-.SH EXAMPLE +-.PP +-Below is a sample \fI\.xinitrc\fP that starts several applications and +-leaves the window manager running as the ''last'' application. Assuming that +-the window manager has been configured properly, the user +-then chooses the ''Exit'' menu item to shut down X. +-.sp +-.in +4 +-.nf +-xrdb \-load $HOME/.Xresources +-xsetroot \-solid gray & +-xbiff \-geometry \-430+5 & +-oclock \-geometry 75x75\-0\-0 & +-xload \-geometry \-80\-0 & +-xterm \-geometry +0+60 \-ls & +-xterm \-geometry +0\-100 & +-xconsole \-geometry \-0+0 \-fn 5x7 & +-exec twm +-.fi +-.in -4 + .SH "ENVIRONMENT VARIABLES" + .TP 25 + DISPLAY + This variable gets set to the name of the display to which clients should + connect. Note that this gets diff -Nru xinit-1.4.0/Makefile.am xinit-1.4.1/Makefile.am --- xinit-1.4.0/Makefile.am 2018-03-10 01:46:03.000000000 +0000 +++ xinit-1.4.1/Makefile.am 2019-03-03 19:58:11.000000000 +0000 @@ -61,7 +61,7 @@ CLEANFILES = xinitrc startx EXTRA_DIST = xinitrc.cpp startx.cpp \ - autogen.sh + autogen.sh README.md .PHONY: ChangeLog INSTALL diff -Nru xinit-1.4.0/Makefile.in xinit-1.4.1/Makefile.in --- xinit-1.4.0/Makefile.in 2018-03-10 01:46:07.000000000 +0000 +++ xinit-1.4.1/Makefile.in 2019-03-03 19:58:15.000000000 +0000 @@ -243,8 +243,8 @@ CSCOPE = cscope DIST_SUBDIRS = man launchd am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ - $(top_srcdir)/cpprules.in COPYING ChangeLog INSTALL README \ - compile config.guess config.sub depcomp install-sh missing + $(top_srcdir)/cpprules.in COPYING ChangeLog INSTALL compile \ + config.guess config.sub depcomp install-sh missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -469,7 +469,7 @@ MAINTAINERCLEANFILES = ChangeLog INSTALL CLEANFILES = xinitrc startx EXTRA_DIST = xinitrc.cpp startx.cpp \ - autogen.sh + autogen.sh README.md all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive diff -Nru xinit-1.4.0/man/startx.man xinit-1.4.1/man/startx.man --- xinit-1.4.0/man/startx.man 2018-03-10 01:46:03.000000000 +0000 +++ xinit-1.4.1/man/startx.man 2019-08-24 10:21:14.000000000 +0000 @@ -54,27 +54,43 @@ command are used to start a client in the same manner as .BR xinit (__appmansuffix__). The special argument -.RB '--' +.RB '\-\^\-' marks the end of client arguments and the beginning of server options. -It may be convenient to specify server options with startx to change on a -per-session basis the -default color depth, the server's notion of the number of dots-per-inch the -display device presents, or take advantage of a different server layout, as -permitted by the -.BR __XSERVERNAME__ (__appmansuffix__) -server and specified in the -.BR __XCONFIGFILEMAN__ -configuration. Some examples of specifying server arguments follow; consult +It may be convenient to specify server options with startx to change them on a +per-session basis. +Some examples of specifying server arguments follow; consult the manual page for your X server to determine which arguments are legal. .RS .PP -startx -- -depth 16 +startx \-\^\- \-depth 16 .PP -startx -- -dpi 100 +startx \-\^\- \-dpi 100 .PP -startx -- -layout Multihead +startx \-\^\- \-layout Multihead .RE .PP +Note that in the Debian system, what many people traditionally put in the +.I .xinitrc +file should go in +.I .xsession +instead; this permits the same X environment to be presented whether +.IR startx , +.IR xdm , +or +.I xinit +is used to start the X session. All discussion of the +.I .xinitrc +file in the +.IR xinit (1) +manual page applies equally well to +.IR .xsession. +Keep in mind that +.I .xinitrc +is used only by +.IR xinit (1) +and completely ignored by +.IR xdm (1). +.PP To determine the client to run, .B startx looks for the following files, in order: @@ -120,38 +136,6 @@ files are found in the .I __xinitdir__ directory. -.PP -The -.I .xinitrc -is typically a shell script which starts many clients according to the -user's preference. When this shell script exits, -.B startx -kills the server and performs any other session shutdown needed. -Most of the clients started by -.I .xinitrc -should be run in the background. The last client should run in the -foreground; when it exits, the session will exit. People often choose -a session manager, window manager, or \fIxterm\fP as the ''magic'' client. -.SH EXAMPLE -.PP -Below is a sample \fI\.xinitrc\fP that starts several applications and -leaves the window manager running as the ''last'' application. Assuming that -the window manager has been configured properly, the user -then chooses the ''Exit'' menu item to shut down X. -.sp -.in +4 -.nf -xrdb \-load $HOME/.Xresources -xsetroot \-solid gray & -xbiff \-geometry \-430+5 & -oclock \-geometry 75x75\-0\-0 & -xload \-geometry \-80\-0 & -xterm \-geometry +0+60 \-ls & -xterm \-geometry +0\-100 & -xconsole \-geometry \-0+0 \-fn 5x7 & -exec twm -.fi -.in -4 .SH "ENVIRONMENT VARIABLES" .TP 25 DISPLAY diff -Nru xinit-1.4.0/man/xinit.man xinit-1.4.1/man/xinit.man --- xinit-1.4.0/man/xinit.man 2018-03-10 01:46:03.000000000 +0000 +++ xinit-1.4.1/man/xinit.man 2019-03-03 19:58:11.000000000 +0000 @@ -161,7 +161,7 @@ .in +8 .nf \&#!/bin/sh -xinit __configdir__/site.xinitrc \-\^\- __bindir__/X -br +xinit __configdir__/site.xinitrc \-\^\- __bindir__/X \-br .fi .in -8 .sp diff -Nru xinit-1.4.0/.pc/001_debian_xinitrc.diff/xinitrc.cpp xinit-1.4.1/.pc/001_debian_xinitrc.diff/xinitrc.cpp --- xinit-1.4.0/.pc/001_debian_xinitrc.diff/xinitrc.cpp 1970-01-01 00:00:00.000000000 +0000 +++ xinit-1.4.1/.pc/001_debian_xinitrc.diff/xinitrc.cpp 2019-08-24 10:21:14.000000000 +0000 @@ -0,0 +1,55 @@ +XCOMM!SHELL_CMD + +userresources=$HOME/.Xresources +usermodmap=$HOME/.Xmodmap +sysresources=XINITDIR/.Xresources +sysmodmap=XINITDIR/.Xmodmap + +XCOMM merge in defaults and keymaps + +if [ -f $sysresources ]; then +#ifdef __APPLE__ + if [ -x /usr/bin/cpp ] ; then + XRDB -merge $sysresources + else + XRDB -nocpp -merge $sysresources + fi +#else + XRDB -merge $sysresources +#endif +fi + +if [ -f $sysmodmap ]; then + XMODMAP $sysmodmap +fi + +if [ -f "$userresources" ]; then +#ifdef __APPLE__ + if [ -x /usr/bin/cpp ] ; then + XRDB -merge "$userresources" + else + XRDB -nocpp -merge "$userresources" + fi +#else + XRDB -merge "$userresources" +#endif +fi + +if [ -f "$usermodmap" ]; then + XMODMAP "$usermodmap" +fi + +XCOMM start some nice programs + +if [ -d XINITDIR/xinitrc.d ] ; then + for f in XINITDIR/xinitrc.d/?*.sh ; do + [ -x "$f" ] && . "$f" + done + unset f +fi + +TWM & +XCLOCK -geometry 50x50-1+1 & +XTERM -geometry 80x50+494+51 & +XTERM -geometry 80x20+494-0 & +exec XTERM -geometry 80x66+0+0 -name login diff -Nru xinit-1.4.0/.pc/02_startx_hostname.diff/startx.cpp xinit-1.4.1/.pc/02_startx_hostname.diff/startx.cpp --- xinit-1.4.0/.pc/02_startx_hostname.diff/startx.cpp 1970-01-01 00:00:00.000000000 +0000 +++ xinit-1.4.1/.pc/02_startx_hostname.diff/startx.cpp 2019-08-24 10:21:14.000000000 +0000 @@ -0,0 +1,346 @@ +XCOMM!SHELL_CMD + +XCOMM +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, 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 + +unset DBUS_SESSION_BUS_ADDRESS +unset SESSION_MANAGER + +#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 +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 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 +bindir=__bindir__ + +case $PATH in + *:$bindir | *:$bindir:* | $bindir:*) ;; + *) PATH=$bindir:$PATH ;; +esac + +XCOMM Now the "old" compiled path +oldbindir=/usr/X11R6/bin + +if [ -d "$oldbindir" ] ; then + case $PATH in + *:$oldbindir | *:$oldbindir:* | $oldbindir:*) ;; + *) PATH=$PATH:$oldbindir ;; + esac +fi + +XCOMM Bourne shell does not automatically export modified environment variables +XCOMM so export the new PATH just in case the user changes the shell +export PATH +#endif + +userclientrc=$HOME/.xinitrc +sysclientrc=XINITDIR/xinitrc + +userserverrc=$HOME/.xserverrc +sysserverrc=XINITDIR/xserverrc +defaultclient=XTERM +defaultserver=XSERVER +defaultclientargs="" +defaultserverargs="" +defaultdisplay="" +clientargs="" +serverargs="" +vtarg="" + +#ifdef __APPLE__ + +if [ "x$X11_PREFS_DOMAIN" = x ] ; then + export X11_PREFS_DOMAIN=BUNDLE_ID_PREFIX".X11" +fi + +XCOMM Initialize defaults (this will cut down on "safe" error messages) +if ! defaults read $X11_PREFS_DOMAIN cache_fonts > /dev/null 2>&1 ; then + defaults write $X11_PREFS_DOMAIN cache_fonts -bool true +fi + +if ! defaults read $X11_PREFS_DOMAIN no_auth > /dev/null 2>&1 ; then + defaults write $X11_PREFS_DOMAIN no_auth -bool false +fi + +if ! defaults read $X11_PREFS_DOMAIN nolisten_tcp > /dev/null 2>&1 ; then + defaults write $X11_PREFS_DOMAIN nolisten_tcp -bool true +fi + +if ! defaults read $X11_PREFS_DOMAIN enable_iglx > /dev/null 2>&1 ; then + defaults write $X11_PREFS_DOMAIN enable_iglx -bool false +fi + +XCOMM First, start caching fonts +if [ x`defaults read $X11_PREFS_DOMAIN cache_fonts` = x1 ] ; then + if [ -x $bindir/font_cache ] ; then + $bindir/font_cache & + elif [ -x $bindir/font_cache.sh ] ; then + $bindir/font_cache.sh & + elif [ -x $bindir/fc-cache ] ; then + $bindir/fc-cache & + fi +fi + +if [ -x __libexecdir__/privileged_startx ] ; then + # Don't push this into the background becasue it can cause + # a race to create /tmp/.X11-unix + __libexecdir__/privileged_startx +fi + +if [ x`defaults read $X11_PREFS_DOMAIN no_auth` = x0 ] ; then + enable_xauth=1 +else + enable_xauth=0 +fi + +if [ x`defaults read $X11_PREFS_DOMAIN nolisten_tcp` = x1 ] ; then + defaultserverargs="$defaultserverargs -nolisten tcp" +else + defaultserverargs="$defaultserverargs -listen tcp" +fi + +if [ x`defaults read $X11_PREFS_DOMAIN enable_iglx` = x1 ] ; then + defaultserverargs="$defaultserverargs +iglx" +else + defaultserverargs="$defaultserverargs -iglx" +fi + +XCOMM The second check is the real one. The first is to hopefully avoid +XCOMM needless syslog spamming. +if defaults read $X11_PREFS_DOMAIN 2> /dev/null | grep -q 'dpi' && defaults read $X11_PREFS_DOMAIN dpi > /dev/null 2>&1 ; then + defaultserverargs="$defaultserverargs -dpi `defaults read $X11_PREFS_DOMAIN dpi`" +fi + +#else +enable_xauth=1 +#endif + +XCOMM Automatically determine an unused $DISPLAY +d=0 +while true ; do + [ -e "/tmp/.X$d-lock" -o -S "/tmp/.X11-unix/X$d" ] || break + d=$(($d + 1)) +done +defaultdisplay=":$d" +unset d + +whoseargs="client" +while [ x"$1" != x ]; do + case "$1" in + XCOMM '' required to prevent cpp from treating "/*" as a C comment. + /''*|\./''*) + if [ "$whoseargs" = "client" ]; then + if [ x"$client" = x ] && [ x"$clientargs" = x ]; then + client="$1" + else + clientargs="$clientargs $1" + fi + else + if [ x"$server" = x ] && [ x"$serverargs" = x ]; then + server="$1" + else + serverargs="$serverargs $1" + fi + fi + ;; + --) + whoseargs="server" + ;; + *) + if [ "$whoseargs" = "client" ]; then + clientargs="$clientargs $1" + else + XCOMM display must be the FIRST server argument + if [ x"$serverargs" = x ] && @@ + expr "$1" : ':[0-9][0-9]*$' > /dev/null 2>&1; then + display="$1" + else + serverargs="$serverargs $1" + fi + fi + ;; + esac + shift +done + +XCOMM process client arguments +if [ x"$client" = x ]; then + client=$defaultclient + + XCOMM For compatibility reasons, only use startxrc if there were no client command line arguments + if [ x"$clientargs" = x ]; then + if [ -f "$userclientrc" ]; then + client=$userclientrc + elif [ -f "$sysclientrc" ]; then + client=$sysclientrc + fi + fi +fi + +XCOMM if no client arguments, use defaults +if [ x"$clientargs" = x ]; then + clientargs=$defaultclientargs +fi + +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 "$tty" : '/dev/tty[0-9][0-9]*$' > /dev/null; then + tty_num=$(echo "$tty" | grep -oE '[0-9]+$') + vtarg="vt$tty_num -keeptty" + 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 + server=$userserverrc + elif [ -f "$sysserverrc" ]; then + server=$sysserverrc + fi + fi +fi + +XCOMM if no server arguments, use defaults +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 "$i" : 'vt[0-9][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 +fi + +if [ x"$enable_xauth" = x1 ] ; then + if [ x"$XAUTHORITY" = x ]; then + XAUTHORITY=$HOME/.Xauthority + export XAUTHORITY + fi + + removelist= + + XCOMM set up default Xauth info for this machine + case `uname` in + Linux*) + if [ -z "`hostname --version 2>&1 | grep GNU`" ]; then + hostname=`hostname -f` + else + hostname=`hostname` + fi + ;; + *) + hostname=`hostname` + ;; + esac + + authdisplay=${display:-:0} +#if defined(HAS_COOKIE_MAKER) && defined(MK_COOKIE) + mcookie=`MK_COOKIE` +#else + if [ -r /dev/urandom ]; then + mcookie=`dd if=/dev/urandom bs=16 count=1 2>/dev/null | hexdump -e \\"%08x\\"` + else + mcookie=`dd if=/dev/random bs=16 count=1 2>/dev/null | hexdump -e \\"%08x\\"` + fi +#endif + if test x"$mcookie" = x; then + echo "Couldn't create cookie" + exit 1 + fi + dummy=0 + + XCOMM create a file with auth information for the server. ':0' is a dummy. + xserverauthfile=$HOME/.serverauth.$$ + trap "rm -f '$xserverauthfile'" HUP INT QUIT ILL TRAP KILL BUS TERM + xauth -q -f "$xserverauthfile" << EOF +add :$dummy . $mcookie +EOF +#if defined(__APPLE__) || defined(__CYGWIN__) + xserverauthfilequoted=$(echo ${xserverauthfile} | sed "s/'/'\\\\''/g") + serverargs=${serverargs}" -auth '"${xserverauthfilequoted}"'" +#else + serverargs=${serverargs}" -auth "${xserverauthfile} +#endif + + XCOMM now add the same credentials to the client authority file + XCOMM if '$displayname' already exists do not overwrite it as another + XCOMM server may need it. Add them to the '$xserverauthfile' instead. + for displayname in $authdisplay $hostname$authdisplay; do + authcookie=`XAUTH list "$displayname" @@ + | sed -n "s/.*$displayname[[:space:]*].*[[:space:]*]//p"` 2>/dev/null; + if [ "z${authcookie}" = "z" ] ; then + XAUTH -q << EOF +add $displayname . $mcookie +EOF + removelist="$displayname $removelist" + else + dummy=$(($dummy+1)); + XAUTH -q -f "$xserverauthfile" << EOF +add :$dummy . $authcookie +EOF + fi + done +fi + +#if defined(__APPLE__) || defined(__CYGWIN__) +eval XINIT \"$client\" $clientargs -- \"$server\" $display $serverargs +#else +XINIT "$client" $clientargs -- "$server" $display $serverargs +#endif +retval=$? + +if [ x"$enable_xauth" = x1 ] ; then + if [ x"$removelist" != x ]; then + XAUTH remove $removelist + fi + if [ x"$xserverauthfile" != x ]; then + rm -f "$xserverauthfile" + fi +fi + +/* + * various machines need special cleaning up + */ +#ifdef __linux__ +if command -v deallocvt > /dev/null 2>&1; then + deallocvt +fi +#endif + +#if defined(sun) +kbd_mode -a +#endif + +exit $retval + diff -Nru xinit-1.4.0/.pc/03_debian_startx_manpage.diff/man/startx.man xinit-1.4.1/.pc/03_debian_startx_manpage.diff/man/startx.man --- xinit-1.4.0/.pc/03_debian_startx_manpage.diff/man/startx.man 1970-01-01 00:00:00.000000000 +0000 +++ xinit-1.4.1/.pc/03_debian_startx_manpage.diff/man/startx.man 2019-08-24 10:21:14.000000000 +0000 @@ -0,0 +1,192 @@ +.\" +.\" 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 +.\" copyright notice and this permission notice appear in supporting +.\" documentation. +.\" +.\" 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 OPEN GROUP 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 of The Open Group shall +.\" not be used in advertising or otherwise to promote the sale, use or +.\" other dealings in this Software without prior written authorization +.\" from The Open Group. +.\" +.\" +.TH STARTX __appmansuffix__ __xorgversion__ +.SH NAME +startx \- initialize an X session +.SH SYNOPSIS +.B startx +[ [ +.I client +] +.I options +\&\.\|.\|. ] [ +.B \-\^\- +[ +.I server +] [ +.I display +] +.I options +\&.\|.\|. ] +.SH DESCRIPTION +The \fBstartx\fP script is a front end to +.BR xinit (__appmansuffix__) +that provides a +somewhat nicer user interface for running a single session of the X +Window System. It is often run with no arguments. +.PP +Arguments immediately following the +.I startx +command are used to start a client in the same manner as +.BR xinit (__appmansuffix__). +The special argument +.RB '\-\^\-' +marks the end of client arguments and the beginning of server options. +It may be convenient to specify server options with startx to change them on a +per-session basis. +Some examples of specifying server arguments follow; consult +the manual page for your X server to determine which arguments are legal. +.RS +.PP +startx \-\^\- \-depth 16 +.PP +startx \-\^\- \-dpi 100 +.PP +startx \-\^\- \-layout Multihead +.RE +.PP +To determine the client to run, +.B startx +looks for the following files, in order: +.RS +.PP +.I $(HOME)/.startxrc +.PP +.I __libdir__/sys.startxrc +.PP +.I $(HOME)/.xinitrc +.PP +.I __xinitdir__/xinitrc +.RE +.PP +If command line client options are given, they override this +behavior and revert to the +.BR xinit (__appmansuffix__) +behavior. +To determine the server to run, +.B startx +first looks for a file called +.I .xserverrc +in the user's home directory. If that is not found, it uses +the file +.I xserverrc +in the +.I xinit +library directory. +If command line server options are given, they override this +behavior and revert to the +.BR xinit (__appmansuffix__) +behavior. Users rarely need to provide a +.I .xserverrc +file. +See the +.BR xinit (__appmansuffix__) +manual page for more details on the arguments. +.PP +The system-wide +.I xinitrc +and +.I xserverrc +files are found in the +.I __xinitdir__ +directory. +.PP +The +.I .xinitrc +is typically a shell script which starts many clients according to the +user's preference. When this shell script exits, +.B startx +kills the server and performs any other session shutdown needed. +Most of the clients started by +.I .xinitrc +should be run in the background. The last client should run in the +foreground; when it exits, the session will exit. People often choose +a session manager, window manager, or \fIxterm\fP as the ''magic'' client. +.SH EXAMPLE +.PP +Below is a sample \fI\.xinitrc\fP that starts several applications and +leaves the window manager running as the ''last'' application. Assuming that +the window manager has been configured properly, the user +then chooses the ''Exit'' menu item to shut down X. +.sp +.in +4 +.nf +xrdb \-load $HOME/.Xresources +xsetroot \-solid gray & +xbiff \-geometry \-430+5 & +oclock \-geometry 75x75\-0\-0 & +xload \-geometry \-80\-0 & +xterm \-geometry +0+60 \-ls & +xterm \-geometry +0\-100 & +xconsole \-geometry \-0+0 \-fn 5x7 & +exec twm +.fi +.in -4 +.SH "ENVIRONMENT VARIABLES" +.TP 25 +DISPLAY +This variable gets set to the name of the display to which clients should +connect. Note that this gets +.IR set , +not read. +.TP 25 +XAUTHORITY +This variable, if not already defined, gets set to +.IR $(HOME)/.Xauthority . +This is to prevent the X server, if not given the +.I \-auth +argument, from automatically setting up insecure host-based authentication +for the local host. See the +.BR Xserver (__appmansuffix__) +and +.IR Xsecurity (__miscmansuffix__) +manual pages for more information on X client/server authentication. +.SH FILES +.TP 25 +.I $(HOME)/.xinitrc +Client to run. Typically a shell script which runs many programs in +the background. +.TP 25 +.I $(HOME)/.xserverrc +Server to run. The default is +.IR X . +.TP 25 +.I __xinitdir__/xinitrc +Client to run if the user has no +.I .xinitrc +file. +.TP 25 +.I __xinitdir__/xserverrc +Server to run if the user has no +.I .xserverrc +file. +.SH "SEE ALSO" +.BR xinit (__appmansuffix__), +.BR X (__miscmansuffix__), +.BR Xserver (__appmansuffix__), +.BR __XSERVERNAME__ (__appmansuffix__), +.BR __XCONFIGFILEMAN__ diff -Nru xinit-1.4.0/.pc/applied-patches xinit-1.4.1/.pc/applied-patches --- xinit-1.4.0/.pc/applied-patches 1970-01-01 00:00:00.000000000 +0000 +++ xinit-1.4.1/.pc/applied-patches 2019-08-24 10:21:14.000000000 +0000 @@ -0,0 +1,3 @@ +001_debian_xinitrc.diff +02_startx_hostname.diff +03_debian_startx_manpage.diff diff -Nru xinit-1.4.0/.pc/.quilt_patches xinit-1.4.1/.pc/.quilt_patches --- xinit-1.4.0/.pc/.quilt_patches 1970-01-01 00:00:00.000000000 +0000 +++ xinit-1.4.1/.pc/.quilt_patches 2019-08-24 10:21:14.000000000 +0000 @@ -0,0 +1 @@ +debian/patches diff -Nru xinit-1.4.0/.pc/.quilt_series xinit-1.4.1/.pc/.quilt_series --- xinit-1.4.0/.pc/.quilt_series 1970-01-01 00:00:00.000000000 +0000 +++ xinit-1.4.1/.pc/.quilt_series 2019-08-24 10:21:14.000000000 +0000 @@ -0,0 +1 @@ +series diff -Nru xinit-1.4.0/.pc/.version xinit-1.4.1/.pc/.version --- xinit-1.4.0/.pc/.version 1970-01-01 00:00:00.000000000 +0000 +++ xinit-1.4.1/.pc/.version 2019-08-24 10:21:14.000000000 +0000 @@ -0,0 +1 @@ +2 diff -Nru xinit-1.4.0/README xinit-1.4.1/README --- xinit-1.4.0/README 2018-03-10 01:46:03.000000000 +0000 +++ xinit-1.4.1/README 1970-01-01 00:00:00.000000000 +0000 @@ -1,29 +0,0 @@ -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. - -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 diff -Nru xinit-1.4.0/README.md xinit-1.4.1/README.md --- xinit-1.4.0/README.md 1970-01-01 00:00:00.000000000 +0000 +++ xinit-1.4.1/README.md 2019-03-03 19:58:11.000000000 +0000 @@ -0,0 +1,22 @@ +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. + +All questions regarding this software should be directed at the +Xorg mailing list: + + https://lists.x.org/mailman/listinfo/xorg + +The master development code repository can be found at: + + https://gitlab.freedesktop.org/xorg/app/xinit + +Please submit bug reports and requests to merge patches there. + +For patch submission instructions, see: + + https://www.x.org/wiki/Development/Documentation/SubmittingPatches + diff -Nru xinit-1.4.0/startx.cpp xinit-1.4.1/startx.cpp --- xinit-1.4.0/startx.cpp 2018-03-10 01:46:03.000000000 +0000 +++ xinit-1.4.1/startx.cpp 2019-08-24 10:21:14.000000000 +0000 @@ -251,18 +251,17 @@ removelist= XCOMM set up default Xauth info for this machine - case `uname` in - Linux*) + + XCOMM check for GNU hostname + if hostname --version > /dev/null 2>&1; then if [ -z "`hostname --version 2>&1 | grep GNU`" ]; then hostname=`hostname -f` - else - hostname=`hostname` fi - ;; - *) + fi + + if [ -z "$hostname" ]; then hostname=`hostname` - ;; - esac + fi authdisplay=${display:-:0} #if defined(HAS_COOKIE_MAKER) && defined(MK_COOKIE) diff -Nru xinit-1.4.0/xinit.c xinit-1.4.1/xinit.c --- xinit-1.4.0/xinit.c 2018-03-10 01:46:03.000000000 +0000 +++ xinit-1.4.1/xinit.c 2019-03-03 19:58:11.000000000 +0000 @@ -151,7 +151,6 @@ register char **ptr; pid_t pid; int client_given = 0, server_given = 0; - int client_args_given = 0, server_args_given = 0; int start_of_client_args, start_of_server_args; struct sigaction sa, si; #ifdef __APPLE__ @@ -174,7 +173,8 @@ } start_of_client_args = (cptr - client); while (argc && strcmp(*argv, "--")) { - client_args_given++; + if (cptr > clientargv + sizeof(clientargv) / sizeof(*clientargv) - 2) + Fatalx("too many client arguments"); *cptr++ = *argv++; argc--; } @@ -202,7 +202,8 @@ start_of_server_args = (sptr - server); while (--argc >= 0) { - server_args_given++; + if (sptr > serverargv + sizeof(serverargv) / sizeof(*serverargv) - 2) + Fatalx("too many server arguments"); *sptr++ = *argv++; } *sptr = NULL; diff -Nru xinit-1.4.0/xinitrc.cpp xinit-1.4.1/xinitrc.cpp --- xinit-1.4.0/xinitrc.cpp 2018-03-10 01:46:03.000000000 +0000 +++ xinit-1.4.1/xinitrc.cpp 2019-08-24 10:21:14.000000000 +0000 @@ -1,55 +1,8 @@ XCOMM!SHELL_CMD -userresources=$HOME/.Xresources -usermodmap=$HOME/.Xmodmap -sysresources=XINITDIR/.Xresources -sysmodmap=XINITDIR/.Xmodmap +XCOMM /etc/X11/xinit/xinitrc +XCOMM +XCOMM global xinitrc file, used by all X sessions started by xinit (startx) -XCOMM merge in defaults and keymaps - -if [ -f $sysresources ]; then -#ifdef __APPLE__ - if [ -x /usr/bin/cpp ] ; then - XRDB -merge $sysresources - else - XRDB -nocpp -merge $sysresources - fi -#else - XRDB -merge $sysresources -#endif -fi - -if [ -f $sysmodmap ]; then - XMODMAP $sysmodmap -fi - -if [ -f "$userresources" ]; then -#ifdef __APPLE__ - if [ -x /usr/bin/cpp ] ; then - XRDB -merge "$userresources" - else - XRDB -nocpp -merge "$userresources" - fi -#else - XRDB -merge "$userresources" -#endif -fi - -if [ -f "$usermodmap" ]; then - XMODMAP "$usermodmap" -fi - -XCOMM start some nice programs - -if [ -d XINITDIR/xinitrc.d ] ; then - for f in XINITDIR/xinitrc.d/?*.sh ; do - [ -x "$f" ] && . "$f" - done - unset f -fi - -TWM & -XCLOCK -geometry 50x50-1+1 & -XTERM -geometry 80x50+494+51 & -XTERM -geometry 80x20+494-0 & -exec XTERM -geometry 80x66+0+0 -name login +XCOMM invoke global X session script +. /etc/X11/Xsession