diff options
Diffstat (limited to 'community/xdm/Xsession-loginshell.patch')
-rw-r--r-- | community/xdm/Xsession-loginshell.patch | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/community/xdm/Xsession-loginshell.patch b/community/xdm/Xsession-loginshell.patch new file mode 100644 index 00000000000..c2f0271395e --- /dev/null +++ b/community/xdm/Xsession-loginshell.patch @@ -0,0 +1,32 @@ +By default, xdm does not use a login shell, thus the shell does not read +/etc/profile and xdm does not use environment variable set in this file. +Most importantly the $PATH configured in /etc/profile is not used. +Instead, xdm sets $PATH to the value of DEF_USER_PATH as determined by +the configure script. On Alpine, this defaults to: + + /bin:/usr/bin:/usr/bin:/usr/ucb + +This is not a sensible default for Alpine. The standard Alpine mechanism +for configuring $PATH is through /etc/profile. As such, we patch the +Xsession startup script to use a login shell, thereby forcing the shell +to read /etc/proflie. + +Patch inspired by Arch Linux <https://bugs.archlinux.org/task/9167>. +Contrary to the Arch Linux patch, this patch still allows .xsession to +be a non-executable file by retaining the case distinction. + +diff -upr xdm-1.1.12.orig/config/Xsession.in xdm-1.1.12/config/Xsession.in +--- xdm-1.1.12.orig/config/Xsession.in 2021-06-27 15:04:37.611614730 +0200 ++++ xdm-1.1.12/config/Xsession.in 2021-06-27 15:05:27.211816165 +0200 +@@ -54,9 +54,9 @@ resources=$HOME/.Xresources + + if [ -s "$startup" ]; then + if [ -x "$startup" ]; then +- exec "$startup" ++ exec /bin/sh -ls -c "$startup" + else +- exec /bin/sh "$startup" ++ exec /bin/sh -l "$startup" + fi + else + if [ -r "$resources" ]; then |