summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthieu Herrb <matthieu@herrb.eu>2022-12-04 12:04:18 +0100
committerMatthieu Herrb <matthieu@herrb.eu>2022-12-04 12:04:18 +0100
commit6b3955f66df30c4d7f3ec954629a868e92ff7e67 (patch)
tree5e35d21d05e846f9891916f177c2a1d0ae8d0c9f
parentd0ecfef28c08483e918c7f758a5f132071442ee0 (diff)
parentf9786fb5a7e526035699f3d4d6661468ab20e689 (diff)
Merge remote-tracking branch 'origin/master' into obsd
-rw-r--r--.gitlab-ci.yml4
-rw-r--r--configure.ac4
-rw-r--r--man/startx.man24
-rw-r--r--man/xinit.man2
-rw-r--r--startx.cpp14
-rw-r--r--xinit.c2
6 files changed, 36 insertions, 14 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 469ba82..13bd884 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -35,14 +35,14 @@ variables:
#
-# Verify that commit messages are as expected, signed-off, etc.
+# Verify that commit messages are as expected
#
check-commits:
extends:
- .fdo.ci-fairy
stage: prep
script:
- - ci-fairy check-commits --signed-off-by --junit-xml=results.xml
+ - ci-fairy check-commits --junit-xml=results.xml
except:
- master@xorg/app/xinit
variables:
diff --git a/configure.ac b/configure.ac
index 95d8dd9..32bc748 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,8 +22,8 @@ dnl Process this file with autoconf to create configure.
# Initialize Autoconf
AC_PREREQ([2.60])
-AC_INIT([xinit], [1.4.1],
- [https://gitlab.freedesktop.org/xorg/app/xinit/issues], [xinit])
+AC_INIT([xinit], [1.4.2],
+ [https://gitlab.freedesktop.org/xorg/app/xinit/-/issues], [xinit])
AC_CONFIG_SRCDIR([Makefile.am])
AC_CONFIG_HEADERS([config.h])
diff --git a/man/startx.man b/man/startx.man
index 2b894f7..2fe952d 100644
--- a/man/startx.man
+++ b/man/startx.man
@@ -71,7 +71,10 @@ startx \-\^\- \-layout Multihead
.PP
To determine the client to run,
.B startx
-first looks for a file called
+first checks the environment variable
+.I XINITRC
+for a filename. If that variable is unset, or does not contain a filename,
+it looks for a file called
.I .xinitrc
in the user's home directory. If that is not found, it uses
the file
@@ -85,7 +88,10 @@ behavior and revert to the
behavior.
To determine the server to run,
.B startx
-first looks for a file called
+checks the environment variable
+.I XSERVERRC
+for a filename. If that variable is unset, or does not contain a filename,
+it looks for a file called
.I .xserverrc
in the user's home directory. If that is not found, it uses
the file
@@ -161,6 +167,20 @@ for the local host. See the
and
.IR Xsecurity (__miscmansuffix__)
manual pages for more information on X client/server authentication.
+.TP 25
+XINITRC
+This variable should contain the location of an xinitrc file. If unset,
+.I $(HOME)/.xinitrc
+or
+.I __xinitdir__/xinitrc
+will be used.
+.TP 25
+XSERVERRC
+This variable should contain the location of an xserver file. If unset,
+.I $(HOME)/.xinitrc
+or
+.I __xinitdir__/xserverrc
+will be used.
.SH FILES
.TP 25
.I $(HOME)/.xinitrc
diff --git a/man/xinit.man b/man/xinit.man
index d9d08df..d51fecf 100644
--- a/man/xinit.man
+++ b/man/xinit.man
@@ -120,7 +120,7 @@ arguments to the default \fIxterm\fP command. It will ignore \fI\.xinitrc\fP.
This will use the command \fI\./Xorg \-l \-c\fP to start the server and will
append the arguments \fI\-e widgets\fP to the default \fIxterm\fP command.
.TP 8
-.B "xinit /usr/ucb/rsh fasthost cpupig \-display ws:1 \-\^\- :1 \-a 2 \-t 5"
+.B "xinit /usr/bin/ssh \-X fasthost cpupig \-\^\- :1 \-a 2 \-t 5"
This will start a server named \fIX\fP on display 1 with the arguments
\fI\-a 2 \-t 5\fP. It will then start a remote shell on the machine
\fBfasthost\fP in which it will run the command \fIcpupig\fP, telling it
diff --git a/startx.cpp b/startx.cpp
index 6c41294..ff56efd 100644
--- a/startx.cpp
+++ b/startx.cpp
@@ -2,16 +2,16 @@ 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 interface than xinit. It looks for XINITRC and XSERVERRC environment
+XCOMM variables, then user .xinitrc and .xserverrc files, and then system
+XCOMM xinitrc and xserverrc files, else lets xinit choose its default.
+XCOMM The system xinitrc should probably do things like check for
+XCOMM .Xresources files and merge them in, start up a window manager, and
+XCOMM 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__
@@ -48,9 +48,11 @@ export PATH
#endif
userclientrc=$HOME/.xinitrc
+[ -f "${XINITRC}" ] && userclientrc="${XINITRC}"
sysclientrc=XINITDIR/xinitrc
userserverrc=$HOME/.xserverrc
+[ -f "${XSERVERRC}" ] && userclientrc="${XSERVERRC}"
sysserverrc=XINITDIR/xserverrc
defaultclient=XTERM
defaultserver=XSERVER
diff --git a/xinit.c b/xinit.c
index 06c92b2..19022c1 100644
--- a/xinit.c
+++ b/xinit.c
@@ -263,7 +263,6 @@ main(int argc, char *argv[])
/*
* Start the server and client.
*/
- signal(SIGCHLD, SIG_DFL); /* Insurance */
/* Let those signal interrupt the wait() call in the main loop */
memset(&sa, 0, sizeof sa);
@@ -284,6 +283,7 @@ main(int argc, char *argv[])
sigaction(SIGALRM, &si, NULL);
sigaction(SIGUSR1, &si, NULL);
+ sigaction(SIGCHLD, &si, NULL);
#ifdef __APPLE__
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060