SHA256
1
0
forked from pool/xdm

Accepting request 839607 from X11:XOrg

- removed /etc/X11/xdm/Keyboard.map since it meanwhile has been
  replaced by /usr/share/systemd/kbd-model-map (used by YaST)

- Don't create the compat symlinks in /etc on the fly, track them
  properly as %config

- /etc/X11/xdm/scripts/11-ssh-agent
  * ssh-askpass now moved to /usr/libexec/ssh (boo#1175991) 

- moved xdm/xdm-np PAM files to /usr/etc/pam.d, since lightdm has
  been adjusted meanwhile

- Switch to /usr/bin/pidof dependency, provided by procps-ng.

- fixes in xdm-tarball.patch
  * /usr/lib/X11/display-manager: fixes sddm, which didn't use 
    xdm_reload_files in xdm_start_proc() of 
    /usr/lib/X11/displaymanagers/sddm (boo#1173049)

- fixes in xdm-tarball.patch
  * symlink also $XDMDIR/xinitrc.common in /etc/X11/xinit; it
    is still often sourced in old ~/.xinitrc user files ...

- fixes in xdm-tarball.patch 
  * fixed include path for generic Xresources in xdm's Xresources file
  * fixed $XDMDIR in Xsession, so sys.xsession can be found
  * sys.xsession: fixed syntax error in code, which reads 
    additional xdm scripts
  * display-manager: also symlink Xstartup and Xreset in 
    /etc/X11/xdm (needed by lighdm)

- specfile: 
  * for now use again /etc/pam.d for xdm/xdm-np PAM files instead
    of /usr/etc/pam.d (using the latter resulted in
    "authentificataion failure" with lightdm)

- reenabled move to /usr/etc/X11/xdm; updated xdm-tarball.patch
  (includes changes from xinit-UsrEtcMove.patch) [boo#1176212]

- xinit-UsrEtcMove.patch
  * changes needed with xinitrc moving to %{_libexecdir}/xinit and
    xinitrc.common moving to /usr/etc/X11/xinit/

- reverted move to /usr/etc/X11/xdm for now due to boo#1176212

- updated xdm-tarball.patch
  * adjusted for changes in xmodmap and xinit (boo#1173049) 

- xdm-tarball.patch
  * /usr/etc changes still needed for xdm.tar.bz2; will need
    more changes once xmodmap and xinit files are also moved to
    /usr/etc (boo#1173049)

- move /etc/X11/xdm --> /usr/etc/X11/xdm and
  /etc/pam.d -> /usr/etc/pam.d; still TODO: adjust scripts in 
  xdm.tar.bz2 (boo#1173049)

- more cleanup
  * no longer support sle12; adjusted xdm.tar.bz2 and
    applied xdm-with-update-alternative.patch to this tarball

- cleanup
  * get rid of xdm-fallbacks.tar.bz2, which wasn't used any longer
    since SUSE 12.1
  * no longer support systmed based OSes like SUSE < 12.1 and sle11;
    removed therefore also xdm-consolekit.diff
  * no longer support sle11

OBS-URL: https://build.opensuse.org/request/show/839607
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/xdm?expand=0&rev=84
This commit is contained in:
Dominique Leuenberger 2020-10-07 12:16:22 +00:00 committed by Git OBS Bridge
commit 394701b953
8 changed files with 569 additions and 419 deletions

View File

@ -1,241 +0,0 @@
---
dm.h | 3 +
resource.c | 13 +++++++
session.c | 100 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
xdm.man.cpp | 6 +++
configure.ac | 14 ++++++++
5 files changed, 135 insertions(+), 1 deletion(-)
Index: xdm-1.1.10/session.c
===================================================================
--- xdm-1.1.10.orig/session.c
+++ xdm-1.1.10/xdm/session.c
@@ -67,6 +67,11 @@ extern int key_setnet(struct key_netstar
# endif
#endif /* USE_PAM */
+#ifdef USE_CONSOLEKIT
+#include <ck-connector.h>
+#include <dbus/dbus.h>
+#endif
+
#ifdef __SCO__
# include <prot.h>
#endif
@@ -514,6 +519,97 @@ UnsecureDisplay (struct display *d, Disp
}
}
+#ifdef USE_CONSOLEKIT
+
+static CkConnector *connector;
+
+static int openCKSession(struct verify_info *verify, struct display *d)
+{
+ int ret;
+ DBusError error;
+ char *remote_host_name = "";
+ dbus_bool_t is_local;
+ char *display_name = "";
+ char *display_device = "";
+ char devtmp[16];
+
+ if (!use_consolekit)
+ return 1;
+
+ is_local = d->displayType.location == Local;
+ if (d->peerlen > 0 && d->peer)
+ remote_host_name = d->peer;
+ if (d->name)
+ display_name = d->name;
+ /* how can we get the corresponding tty at best...? */
+ if (d->windowPath) {
+ display_device = strchr(d->windowPath, ':');
+ if (display_device && display_device[1])
+ display_device++;
+ else
+ display_device = d->windowPath;
+ snprintf(devtmp, sizeof(devtmp), "/dev/tty%s", display_device);
+ display_device = devtmp;
+ }
+
+ connector = ck_connector_new();
+ if (!connector) {
+ LogOutOfMem("ck_connector");
+ return 0;
+ }
+
+ dbus_error_init(&error);
+ ret = ck_connector_open_session_with_parameters(
+ connector, &error,
+ "unix-user", &verify->uid,
+ "x11-display", &display_name,
+ "x11-display-device", &display_device,
+ "remote-host-name", &remote_host_name,
+ "is-local", &is_local,
+ NULL);
+ if (!ret) {
+ if (dbus_error_is_set(&error)) {
+ LogError("Dbus error: %s\n", error.message);
+ dbus_error_free(&error);
+ } else {
+ LogError("ConsoleKit error\n");
+ }
+ LogError("console-kit-daemon not running?\n");
+ ck_connector_unref(connector);
+ connector = NULL;
+ return 0;
+ }
+
+ verify->userEnviron = setEnv(verify->userEnviron,
+ "XDG_SESSION_COOKIE", ck_connector_get_cookie(connector));
+ return 1;
+}
+
+static void closeCKSession(void)
+{
+ DBusError error;
+
+ if (!connector)
+ return;
+
+ dbus_error_init(&error);
+ if (!ck_connector_close_session(connector, &error)) {
+ if (dbus_error_is_set(&error)) {
+ LogError("Dbus error: %s\n", error.message);
+ dbus_error_free(&error);
+ } else {
+ LogError("ConsoleKit close error\n");
+ }
+ LogError("console-kit-daemon not running?\n");
+ }
+ ck_connector_unref(connector);
+ connector = NULL;
+}
+#else
+#define openCKSession(v,d) 1
+#define closeCKSession()
+#endif
+
void
SessionExit (struct display *d, int status, int removeAuth)
{
@@ -528,6 +624,8 @@ SessionExit (struct display *d, int stat
}
#endif
+ closeCKSession();
+
/* make sure the server gets reset after the session is over */
if (d->serverPid >= 2 && d->resetSignal)
kill (d->serverPid, d->resetSignal);
@@ -610,6 +708,10 @@ StartClient (
#ifdef USE_PAM
if (pamh) pam_open_session(pamh, 0);
#endif
+
+ if (!openCKSession(verify, d))
+ return 0;
+
switch (pid = fork ()) {
case 0:
CleanUpChild ();
Index: xdm-1.1.10/dm.h
===================================================================
--- xdm-1.1.10.orig/dm.h
+++ xdm-1.1.10/include/dm.h
@@ -323,6 +323,9 @@ extern char *randomFile;
extern char *prngdSocket;
extern int prngdPort;
# endif
+#ifdef USE_CONSOLEKIT
+extern int use_consolekit;
+#endif
extern char *greeterLib;
extern char *willing;
Index: xdm-1.1.10/resource.c
===================================================================
--- xdm-1.1.10.orig/resource.c
+++ xdm-1.1.10/xdm/resource.c
@@ -65,6 +65,9 @@ char *randomDevice;
char *prngdSocket;
int prngdPort;
#endif
+#ifdef USE_CONSOLEKIT
+int use_consolekit;
+#endif
char *greeterLib;
char *willing;
@@ -196,6 +199,10 @@ struct dmResources {
"false"} ,
{ "willing", "Willing", DM_STRING, &willing,
""} ,
+#ifdef USE_CONSOLEKIT
+{ "consoleKit", "ConsoleKit", DM_BOOL, (char **) &use_consolekit,
+ "true"} ,
+#endif
};
#define NUM_DM_RESOURCES (sizeof DmResources / sizeof DmResources[0])
@@ -378,7 +385,11 @@ XrmOptionDescRec optionTable [] = {
{"-debug", "*debugLevel", XrmoptionSepArg, (caddr_t) NULL },
{"-xrm", NULL, XrmoptionResArg, (caddr_t) NULL },
{"-daemon", ".daemonMode", XrmoptionNoArg, "true" },
-{"-nodaemon", ".daemonMode", XrmoptionNoArg, "false" }
+{"-nodaemon", ".daemonMode", XrmoptionNoArg, "false" },
+#ifdef USE_CONSOLEKIT
+{"-consolekit", ".consoleKit", XrmoptionNoArg, "true" },
+{"-noconsolekit", ".consoleKit", XrmoptionNoArg, "false" }
+#endif
};
static int originalArgc;
Index: xdm-1.1.10/xdm.man.cpp
===================================================================
--- xdm-1.1.10.orig/xdm.man.cpp
+++ xdm-1.1.10/man/xdm.man
@@ -48,6 +48,8 @@ xdm \- X Display Manager with support fo
] [
.B \-session
.I session_program
+] [
+.B \-noconsolekit
]
.SH DESCRIPTION
.I Xdm
@@ -215,6 +217,10 @@ indicates the program to run as the sess
.IP "\fB\-xrm\fP \fIresource_specification\fP"
Allows an arbitrary resource to be specified, as in most
X Toolkit applications.
+.IP "\fB\-noconsolekit\fP"
+Specifies ``false'' as the value for the \fBDisplayManager.consoleKit\fP
+resource.
+This suppresses the session management using ConsoleKit.
.SH RESOURCES
At many stages the actions of
.I xdm
--- xdm-1.1.11/configure.ac.orig 2014-07-18 16:22:30.057882318 +0200
+++ xdm-1.1.11/configure.ac 2014-07-18 16:26:55.415254913 +0200
@@ -391,6 +391,20 @@
XDMGREET_CFLAGS="$XDMGREET_CFLAGS $XDM_TOOLKIT_CFLAGS $DMCP_CFLAGS $XLIB_CFLAGS $GREETER_CFLAGS $AUTH_CFLAGS"
XDMGREET_LIBS="$XDMGREET_LIBS $XDM_TOOLKIT_LIBS $DMCP_LIBS $GREETER_LIBS"
+# ConsoleKit support
+AC_ARG_WITH(consolekit, AC_HELP_STRING([--with-consolekit], [Use ConsoleKit]),
+ [USE_CONSOLEKIT=$withval], [USE_CONSOLEKIT=yes])
+if test x"$USE_CONSOLEKIT" != xno; then
+ PKG_CHECK_MODULES(CK_CONNECTOR, ck-connector,
+ [USE_CONSOLEKIT=yes], [USE_CONSOLEKIT=no])
+ if test x"$USE_CONSOLEKIT" = xyes; then
+ AC_DEFINE([USE_CONSOLEKIT], 1, [Define to 1 to use ConsoleKit])
+ XDM_CFLAGS="$XDM_CFLAGS $CK_CONNECTOR_CFLAGS"
+ XDM_LIBS="$XDM_LIBS $CK_CONNECTOR_LIBS"
+ fi
+fi
+dnl AM_CONDITIONAL(USE_CONSOLEKIT, test$USE_CONSOLEKIT = xyes)
+
#
# XDM
#

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:29ee58cb0c7923f7390e6e77e8fafab1e5e0c77ce7013680617a74403dbe66e4
size 1050

341
xdm-tarball.patch Normal file
View File

@ -0,0 +1,341 @@
diff -u -r ../old/etc/X11/xdm/RunChooser ./etc/X11/xdm/RunChooser
--- ../old/etc/X11/xdm/RunChooser 2015-07-29 14:46:22.000000000 +0200
+++ ./etc/X11/xdm/RunChooser 2020-09-10 04:31:19.817621000 +0200
@@ -9,7 +9,7 @@
#
LIBDIR=/usr/lib/X11
ETCDIR=/etc/X11
- XDMDIR=${ETCDIR}/xdm
+ XDMDIR=/usr/${ETCDIR}/xdm
BINDIR=/usr/bin
no_exit_on_failed_exec=1
@@ -107,6 +107,8 @@
cat $sysxkbmap | $xkbcomp - $DISPLAY
elif test -r $sysmodmap ; then
$xmodmap $sysmodmap
+ elif test -r /usr/etc/X11/Xmodmap; then
+ $xmodmap /usr/etc/X11/Xmodmap
fi
else
# TCP/IP connection (remote or local)
@@ -114,6 +116,8 @@
cat $defxkbmap | $xkbcomp - $DISPLAY
elif test -r $defmodmap ; then
$xmodmap $defmodmap
+ elif test -r /usr/etc/X11/Xmodmap.remote; then
+ $xmodmap /usr/etc/X11/Xmodmap.remote
fi
if test -s $hostxkbmap -a -x $xkbcomp ; then
cat $hostxkbmap | $xkbcomp - $DISPLAY
diff -u -r ../old/etc/X11/xdm/Xreset ./etc/X11/xdm/Xreset
--- ../old/etc/X11/xdm/Xreset 2014-12-15 19:34:46.000000000 +0100
+++ ./etc/X11/xdm/Xreset 2020-09-10 04:31:19.957604000 +0200
@@ -10,7 +10,7 @@
#
LIBDIR=/usr/lib/X11
ETCDIR=/etc/X11
- XDMDIR=${ETCDIR}/xdm
+ XDMDIR=/usr/${ETCDIR}/xdm
BINDIR=/usr/bin
xmessage=${BINDIR}/xmessage
xconsole=${BINDIR}/xconsole
diff -u -r ../old/etc/X11/xdm/Xresources ./etc/X11/xdm/Xresources
--- ../old/etc/X11/xdm/Xresources 2015-08-04 12:13:36.000000000 +0200
+++ ./etc/X11/xdm/Xresources 2020-09-10 04:31:19.961602000 +0200
@@ -100,4 +100,4 @@
!
! Include system wide Xresources
!
-#include "/etc/X11/Xresources"
+#include "/usr/etc/X11/Xresources"
diff -u -r ../old/etc/X11/xdm/Xsession ./etc/X11/xdm/Xsession
--- ../old/etc/X11/xdm/Xsession 2017-07-25 11:58:00.067080000 +0200
+++ ./etc/X11/xdm/Xsession 2020-09-10 04:31:19.964605000 +0200
@@ -34,10 +34,18 @@
# Some system defaults
#
XETCDIR=/etc/X11
- XDMDIR=$XETCDIR/xdm
- XINITDIR=$XETCDIR/xinit
+ XDMDIR=/usr/$XETCDIR/xdm
: ${TMPDIR=/tmp}
+# xinitrc moved to %{_libexecdir}/xinit in xinit package
+if [ -r /usr/libexec/xinit/xinitrc ]; then
+ XINITDIR=/usr/libexec/xinit
+elif [ -r /usr/lib/xinit/xinitrc ]; then
+ XINITDIR=/usr/lib/xinit
+else
+ XINITDIR=$XETCDIR/xinit
+fi
+
export OPENWINHOME TMPDIR
test -n "$XAUTHORITY" || unset XAUTHORITY
@@ -187,7 +195,11 @@
#
# By default we set system defaults for the language
#
-. /etc/profile.d/lang.sh
+if [ -r /etc/profile.d/lang.sh ]; then
+ . /etc/profile.d/lang.sh
+elif [ -r /usr/etc/profile.d/lang.sh ]; then
+ . /usr/etc/profile.d/lang.sh
+fi
#
# Handle arguments given by xdm/kdm/gdm.
@@ -261,7 +273,11 @@
# No window manager? Get system default
#
if test -z "$WINDOWMANAGER" ; then
- . /etc/profile.d/profile.sh
+ if [ -r /etc/profile.d/profile.sh ]; then
+ . /etc/profile.d/profile.sh
+ elif [ -r /usr/etc/profile.d/profile.sh ]; then
+ . /usr/etc/profile.d/profile.sh
+ fi
fi
#
@@ -291,7 +307,12 @@
# Source common code shared between the
# X session and X init scripts
#
-. /etc/X11/xinit/xinitrc.common
+
+if [ -r /etc/X11/xinit/xinitrc.common ]; then
+ . /etc/X11/xinit/xinitrc.common
+elif [ -r /usr/etc/X11/xinit/xinitrc.common ]; then
+ . /usr/etc/X11/xinit/xinitrc.common
+fi
# Restore arguments but skip window manager
set -- "${argv[@]}"
diff -u -r ../old/etc/X11/xdm/Xsetup ./etc/X11/xdm/Xsetup
--- ../old/etc/X11/xdm/Xsetup 2020-08-26 15:35:43.014615021 +0200
+++ ./etc/X11/xdm/Xsetup 2020-09-10 04:31:19.968602000 +0200
@@ -9,7 +9,7 @@
#
LIBDIR=/usr/lib/X11
ETCDIR=/etc/X11
- XDMDIR=${ETCDIR}/xdm
+ XDMDIR=/usr/${ETCDIR}/xdm
BINDIR=/usr/bin
no_exit_on_failed_exec=1
@@ -184,7 +184,7 @@
#endif
EOF
else
- $xrdb $cpp -override -retain ${ETCDIR}/Xresources
+ $xrdb $cpp -override -retain ${XDMDIR}/Xresources
fi
#
@@ -206,6 +206,8 @@
cat $sysxkbmap | $xkbcomp - $DISPLAY
elif test -r $sysmodmap ; then
$xmodmap $sysmodmap
+ elif test -r /usr/etc/X11/Xmodmap ; then
+ $xmodmap /usr/etc/X11/Xmodmap
fi
else
# TCP/IP connection (remote or local)
@@ -213,6 +215,8 @@
cat $defxkbmap | $xkbcomp - $DISPLAY
elif test -r $defmodmap ; then
$xmodmap $defmodmap
+ elif test -r /usr/etc/X11/Xmodmap.remote ; then
+ $xmodmap /usr/etc/X11/Xmodmap.remote
fi
if test -s $hostxkbmap -a -x $xkbcomp ; then
cat $hostxkbmap | $xkbcomp - $DISPLAY
diff -u -r ../old/etc/X11/xdm/Xstartup ./etc/X11/xdm/Xstartup
--- ../old/etc/X11/xdm/Xstartup 2020-08-26 15:35:26.270871116 +0200
+++ ./etc/X11/xdm/Xstartup 2020-09-10 04:31:19.971608000 +0200
@@ -10,7 +10,7 @@
#
LIBDIR=/usr/lib/X11
ETCDIR=/etc/X11
- XDMDIR=${ETCDIR}/xdm
+ XDMDIR=/usr/${ETCDIR}/xdm
BINDIR=/usr/bin
xmessage=${BINDIR}/xmessage
NOLOGIN=/etc/nologin
diff -u -r ../old/etc/X11/xdm/sys.xsession ./etc/X11/xdm/sys.xsession
--- ../old/etc/X11/xdm/sys.xsession 2016-06-03 15:25:42.000000000 +0200
+++ ./etc/X11/xdm/sys.xsession 2020-09-10 04:31:19.975602000 +0200
@@ -38,10 +38,16 @@
argv=("$@")
set --
-for script in /etc/X11/xdm/scripts/*
+for script in /usr/etc/X11/xdm/scripts/* \
+ /etc/X11/xdm/scripts/*
do
test -e $script || continue
test -d $script && continue
+ # higher priority for /etc/X11/xdm/scripts ...
+ if echo $script | grep -q ^/usr; then
+ sname=$(basename $script)
+ test -e /etc/X11/xdm/scripts/$sname && continue
+ fi
case "${script##*/}" in
.*) continue ;;
*.rpm*) continue ;;
@@ -63,7 +69,16 @@
#
# Use system default xinitrc if the users does not have one.
#
-XINITRCFILE=/etc/X11/xinit/xinitrc
+
+# xinitrc moved to %{_libexecdir}/xinit in xinit package
+if [ -r /usr/libexec/xinit/xinitrc ]; then
+ XINITRCFILE=/usr/libexec/xinit/xinitrc
+elif [ -r /usr/lib/xinit/xinitrc ]; then
+ XINITRCFILE=/usr/lib/xinit/xinitrc
+else
+ XINITRCFILE=/etc/X11/xinit/xinitrc
+fi
+
test -r "$HOME/.xinitrc" && XINITRCFILE="$HOME/.xinitrc"
if test -f "$XINITRCFILE" ; then
@@ -77,7 +92,11 @@
# Source common code shared between the
# X session and X init scripts
#
- . /etc/X11/xinit/xinitrc.common
+ if [ -r /etc/X11/xinit/xinitrc.common ]; then
+ . /etc/X11/xinit/xinitrc.common
+ elif [ -r /usr/etc/X11/xinit/xinitrc.common ]; then
+ . /usr/etc/X11/xinit/xinitrc.common
+ fi
unset STARTUP WINDOW_MANAGER
set -- ${1+"$@"} $WINDOWMANAGER
diff -u -r ../old/etc/X11/xdm/xdm-config ./etc/X11/xdm/xdm-config
--- ../old/etc/X11/xdm/xdm-config 2020-08-26 15:36:22.290004407 +0200
+++ ./etc/X11/xdm/xdm-config 2020-09-10 04:31:19.978602000 +0200
@@ -4,10 +4,10 @@
DisplayManager.errorLogFile: /var/log/xdm.errors
DisplayManager.pidFile: /run/xdm.pid
DisplayManager.authDir: /var/lib/xdm
-DisplayManager.keyFile: /etc/X11/xdm/xdm-keys
+DisplayManager.keyFile: /usr/etc/X11/xdm/xdm-keys
DisplayManager.servers: /etc/X11/xdm/Xservers
-DisplayManager.accessFile: /etc/X11/xdm/Xaccess
-DisplayManager.willing: su nobody -c /etc/X11/xdm/Xwilling
+DisplayManager.accessFile: /usr/etc/X11/xdm/Xaccess
+DisplayManager.willing: su nobody -c /usr/etc/X11/xdm/Xwilling
!
! ATTENTION: `authName' should be in general MIT-MAGIC-COOKIE-1
! For XDM-AUTHENTICATION-1 which is default for xterminals see
@@ -27,16 +27,16 @@
! The scripts handling the setup, the startup, the session its self,
! and the reset of an X session.
!
-DisplayManager.*.setup: /etc/X11/xdm/Xsetup
-DisplayManager.*.chooser: /etc/X11/xdm/RunChooser
-DisplayManager.*.startup: /etc/X11/xdm/Xstartup
-DisplayManager.*.session: /etc/X11/xdm/Xsession
-DisplayManager.*.reset: /etc/X11/xdm/Xreset
+DisplayManager.*.setup: /usr/etc/X11/xdm/Xsetup
+DisplayManager.*.chooser: /usr/etc/X11/xdm/RunChooser
+DisplayManager.*.startup: /usr/etc/X11/xdm/Xstartup
+DisplayManager.*.session: /usr/etc/X11/xdm/Xsession
+DisplayManager.*.reset: /usr/etc/X11/xdm/Xreset
!
DisplayManager._0.terminateServer: true
DisplayManager._93.terminateServer: true
!
-DisplayManager*resources: /etc/X11/xdm/Xresources
+DisplayManager*resources: /usr/etc/X11/xdm/Xresources
DisplayManager.*.terminateServer: false
!
! SECURITY: do not listen for XDMCP or Chooser requests
diff -u -r ../old/usr/lib/X11/display-manager ./usr/lib/X11/display-manager
--- ../old/usr/lib/X11/display-manager 2020-09-04 13:11:23.054517000 +0200
+++ ./usr/lib/X11/display-manager 2020-09-10 04:40:30.456843000 +0200
@@ -16,8 +16,11 @@
. /etc/sysconfig/displaymanager
. /etc/sysconfig/language
. /etc/sysconfig/windowmanager
-test -e /etc/SuSEconfig/profile && . /etc/SuSEconfig/profile
-test -r /etc/profile.d/desktop-data.sh && . /etc/profile.d/desktop-data.sh
+if [ -r /etc/profile.d/desktop-data.sh ]; then
+ . /etc/profile.d/desktop-data.sh
+elif [ -r /usr/etc/profile.d/desktop-data.sh ]; then
+ . /usr/etc/profile.d/desktop-data.sh
+fi
locale_vars=" \
LANG \
@@ -67,14 +70,14 @@
unset DEFAULT_WM
export WINDOWMANAGER
-DMDIR=/etc/X11/xdm
+DMDIR=/usr/etc/X11/xdm
RELOADSIGNAL="-HUP"
PIDFILELNK="/run/displaymanager.pid"
xdm_reload_files () {
- if [ -x /etc/X11/xdm/SuSEconfig.xdm ]; then
+ if [ -x $DMIR/SuSEconfig.xdm ]; then
# Do no try to start Xserver on platforms which may ship without
# graphics card (bsc#1039497)
if [ "$(arch)" == "aarch64" -o "$(arch)" == "ppc64le" ]; then
@@ -87,8 +90,8 @@
fi
fi
MD5DIR="/var/adm/SuSEconfig/md5" \
- /etc/X11/xdm/SuSEconfig.xdm | \
- sed 's+\(.*\)+/etc/init.d/xdm: \1+g' | \
+ $DMDIR/SuSEconfig.xdm | \
+ sed 's+\(.*\)+/usr/lib/X11/display-manager: \1+g' | \
/bin/logger
return 0
fi
@@ -130,6 +133,12 @@
exit 0
;;
*)
+ test -d /etc/X11/xdm || mkdir -p /etc/X11/xdm
+ # SUSEconfig.xdm edits these files appropriate to /etc/sysconfig/displaymanager
+ test -r /etc/X11/xdm/xdm-config || cp $DMDIR/xdm-config /etc/X11/xdm/xdm-config
+ test -r /etc/X11/xdm/Xservers || cp $DMDIR/Xservers /etc/X11/xdm/Xservers
+ # still often sourced by old ~/.xinitrc or ~/.xsession user files ...
+ test -r /etc/X11/xinit/xinitrc.common || ln -snf /usr/etc/X11/xinit/xinitrc.common /etc/X11/xinit/xinitrc.common
for i in /usr/lib/X11/displaymanagers/*
do
tmp=${i%.fallback}
@@ -159,8 +176,8 @@
start)
# use system keyboard as global X keyboard configuration
- if [ -x /etc/X11/xdm/keytable ]; then
- /etc/X11/xdm/keytable
+ if [ -x $DMDIR/keytable ]; then
+ $DMDIR/keytable
fi
[ -n "$STARTPROC" ] && $STARTPROC
diff -u -r ../old/usr/lib/X11/displaymanagers/xdm ./usr/lib/X11/displaymanagers/xdm
--- ../old/usr/lib/X11/displaymanagers/xdm 2014-03-04 13:53:31.000000000 +0100
+++ ./usr/lib/X11/displaymanagers/xdm 2020-09-10 04:31:20.007599000 +0200
@@ -5,8 +5,8 @@
}
xdm_probe_proc() {
- if test $XDMDIR/xdm-config -nt $PIDFILE -o \
- $XDMDIR/Xservers -nt $PIDFILE
+ if test /etc/X11/xdm/xdm-config -nt $PIDFILE -o \
+ /etc/X11/xdm/Xservers -nt $PIDFILE
then
echo reload
fi

View File

@ -1,57 +0,0 @@
---
etc/X11/xdm/Xservers | 3 ++-
usr/lib/X11/display-manager | 7 +++++--
var/adm/fillup-templates/sysconfig.displaymanager | 8 --------
3 files changed, 7 insertions(+), 11 deletions(-)
--- xdm.old/etc/X11/xdm/Xservers 2018-04-05 14:48:56.669172739 +0200
+++ xdm.new/etc/X11/xdm/Xservers 2018-04-05 14:45:33.129981406 +0200
@@ -13,6 +13,7 @@
# use such a line to enable the console login option in the kdm menu
#:0 local@tty1 /usr/bin/X vt7
# "reserve" means that the X server gets only started on request (only kdm)
+# -keeptty implies that controlling tty is not detached (breaks startx!)
-:0 local /usr/bin/X -nolisten tcp -br vt7
+:0 local /usr/bin/X -nolisten tcp -br vt7 -keeptty
--- xdm.old/usr/lib/X11/display-manager
+++ xdm.new/usr/lib/X11/display-manager 2018-04-05 12:44:11.247521173 +0000
@@ -121,6 +121,8 @@ plymouth_quit()
#set -x
+# DISPLAYMANAGER used to be set in /etc/sysconfig/displaymanager, but the default is now set by update-alternatives
+DISPLAYMANAGER=$(realpath --relative-base=/usr/lib/X11/displaymanagers /usr/lib/X11/displaymanagers/default-displaymanager)
DM=${DISPLAYMANAGER##*/}
case "$DM" in
@@ -138,8 +140,9 @@ case "$DM" in
for i in $DISPLAY_MANAGERS
do
name="${i}_vars"
- PIDFILE=/run/$i.pid;
- $name $DM && break;
+ type -t $name &> /dev/null || continue
+ PIDFILE=/run/$i.pid
+ $name $DM && break
done
if [ -z "$DISPLAYMANAGER" -o ! -x "$DISPLAYMANAGER" ]
then
--- xdm.old/var/adm/fillup-templates/sysconfig.displaymanager
+++ xdm.new/var/adm/fillup-templates/sysconfig.displaymanager 2017-10-12 14:35:23.775259305 +0000
@@ -1,14 +1,6 @@
## Path: Desktop/Display manager
## Description: settings to generate a proper displaymanager config
-## Type: string(kdm,xdm,gdm,wdm,entrance,console,lightdm,sddm)
-## Default: ""
-#
-# Here you can set the default Display manager (kdm/xdm/gdm/wdm/entrance/console).
-# all changes in this file require a restart of the displaymanager
-#
-DISPLAYMANAGER=""
-
## Type: yesno
## Default: no
#

View File

@ -1,3 +1,118 @@
-------------------------------------------------------------------
Mon Oct 5 14:57:23 UTC 2020 - Stefan Dirsch <sndirsch@suse.com>
- removed /etc/X11/xdm/Keyboard.map since it meanwhile has been
replaced by /usr/share/systemd/kbd-model-map (used by YaST)
-------------------------------------------------------------------
Sun Oct 4 09:40:50 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
- Don't create the compat symlinks in /etc on the fly, track them
properly as %config
-------------------------------------------------------------------
Sat Oct 3 16:52:18 UTC 2020 - Stefan Dirsch <sndirsch@suse.com>
- /etc/X11/xdm/scripts/11-ssh-agent
* ssh-askpass now moved to /usr/libexec/ssh (boo#1175991)
-------------------------------------------------------------------
Tue Sep 29 09:57:42 UTC 2020 - Stefan Dirsch <sndirsch@suse.com>
- moved xdm/xdm-np PAM files to /usr/etc/pam.d, since lightdm has
been adjusted meanwhile
-------------------------------------------------------------------
Tue Sep 15 10:16:41 UTC 2020 - Dominique Leuenberger <dimstar@opensuse.org>
- Switch to /usr/bin/pidof dependency, provided by procps-ng.
-------------------------------------------------------------------
Thu Sep 10 02:42:45 UTC 2020 - Stefan Dirsch <sndirsch@suse.com>
- fixes in xdm-tarball.patch
* /usr/lib/X11/display-manager: fixes sddm, which didn't use
xdm_reload_files in xdm_start_proc() of
/usr/lib/X11/displaymanagers/sddm (boo#1173049)
-------------------------------------------------------------------
Wed Sep 9 15:50:51 UTC 2020 - Stefan Dirsch <sndirsch@suse.com>
- fixes in xdm-tarball.patch
* symlink also $XDMDIR/xinitrc.common in /etc/X11/xinit; it
is still often sourced in old ~/.xinitrc user files ...
-------------------------------------------------------------------
Wed Sep 9 13:53:33 UTC 2020 - Stefan Dirsch <sndirsch@suse.com>
- fixes in xdm-tarball.patch
* fixed include path for generic Xresources in xdm's Xresources file
* fixed $XDMDIR in Xsession, so sys.xsession can be found
* sys.xsession: fixed syntax error in code, which reads
additional xdm scripts
* display-manager: also symlink Xstartup and Xreset in
/etc/X11/xdm (needed by lighdm)
- specfile:
* for now use again /etc/pam.d for xdm/xdm-np PAM files instead
of /usr/etc/pam.d (using the latter resulted in
"authentificataion failure" with lightdm)
-------------------------------------------------------------------
Tue Sep 8 22:02:59 UTC 2020 - Stefan Dirsch <sndirsch@suse.com>
- reenabled move to /usr/etc/X11/xdm; updated xdm-tarball.patch
(includes changes from xinit-UsrEtcMove.patch) [boo#1176212]
-------------------------------------------------------------------
Tue Sep 8 15:00:50 UTC 2020 - Stefan Dirsch <sndirsch@suse.com>
- xinit-UsrEtcMove.patch
* changes needed with xinitrc moving to %{_libexecdir}/xinit and
xinitrc.common moving to /usr/etc/X11/xinit/
-------------------------------------------------------------------
Tue Sep 8 09:29:10 UTC 2020 - Stefan Dirsch <sndirsch@suse.com>
- reverted move to /usr/etc/X11/xdm for now due to boo#1176212
-------------------------------------------------------------------
Sat Sep 5 03:41:38 UTC 2020 - Stefan Dirsch <sndirsch@suse.com>
- updated xdm-tarball.patch
* adjusted for changes in xmodmap and xinit (boo#1173049)
-------------------------------------------------------------------
Fri Sep 4 22:33:30 UTC 2020 - Stefan Dirsch <sndirsch@suse.com>
- xdm-tarball.patch
* /usr/etc changes still needed for xdm.tar.bz2; will need
more changes once xmodmap and xinit files are also moved to
/usr/etc (boo#1173049)
-------------------------------------------------------------------
Fri Sep 4 20:20:05 UTC 2020 - Stefan Dirsch <sndirsch@suse.com>
- move /etc/X11/xdm --> /usr/etc/X11/xdm and
/etc/pam.d -> /usr/etc/pam.d; still TODO: adjust scripts in
xdm.tar.bz2 (boo#1173049)
-------------------------------------------------------------------
Fri Sep 4 11:17:34 UTC 2020 - Stefan Dirsch <sndirsch@suse.com>
- more cleanup
* no longer support sle12; adjusted xdm.tar.bz2 and
applied xdm-with-update-alternative.patch to this tarball
-------------------------------------------------------------------
Fri Sep 4 10:29:39 UTC 2020 - Stefan Dirsch <sndirsch@suse.com>
- cleanup
* get rid of xdm-fallbacks.tar.bz2, which wasn't used any longer
since SUSE 12.1
* no longer support systmed based OSes like SUSE < 12.1 and sle11;
removed therefore also xdm-consolekit.diff
* no longer support sle11
-------------------------------------------------------------------
Fri Aug 28 10:22:12 UTC 2020 - Dominique Leuenberger <dimstar@opensuse.org>

157
xdm.spec
View File

@ -16,25 +16,16 @@
#
%if 0%{?suse_version} >= 1550
%define UsrEtcMove 1
%endif
#Compat macro for new _fillupdir macro introduced in Nov 2017
%if ! %{defined _fillupdir}
%define _fillupdir /var/adm/fillup-templates
%endif
%define _dminitdir /usr/lib/X11/displaymanagers
%if 0%{?suse_version} > 1230
%define with_systemd 1
%else
%define with_systemd 0
%endif
%if 0%{?suse_version} < 01210
%define dm_fallbacks 1
%else
%define dm_fallbacks 0
%endif
%if !%with_systemd
%define _unitdir %{_prefix}/lib/systemd/system
%endif
Name: xdm
Version: 1.1.12
Release: 0
@ -45,14 +36,13 @@ URL: http://xorg.freedesktop.org/
Source0: http://xorg.freedesktop.org/releases/individual/app/%{name}-%{version}.tar.bz2
Source1: xdm.tar.bz2
Source2: HOWTO.xdm
Source3: xdm-fallbacks.tar.bz2
Source4: display-manager.service
Source5: xsession.desktop
Patch1: xdm-tolerant-hostname-changes.diff
# PATCH-FEATURE-OPENSUSE xdm-with-update-alternative.patch dimstar@opensuse.org -- Choice of default DM by means of u-a
Patch2: xdm-with-update-alternative.patch
# needed for patch0, patch2, patch3, patch4
Patch2: xdm-tarball.patch
Patch3: n_Allow-the-greeter-to-set-the-input-fields-bg-color.patch
Patch4: xinit-UsrEtcMove.patch
BuildRequires: firewall-macros
BuildRequires: libtool
BuildRequires: pam-devel
BuildRequires: pkgconfig
@ -68,17 +58,9 @@ BuildRequires: pkgconfig(xorg-macros) >= 1.4
BuildRequires: pkgconfig(xpm)
BuildRequires: pkgconfig(xt)
BuildRequires: pkgconfig(xtrans)
%if 0%{?suse_version} > 1320
BuildRequires: firewall-macros
%endif
Requires: /sbin/pidof
Requires: /sbin/startproc
%if 0%{?with_systemd}
Requires: %fillup_prereq
%endif
%if 0%{?suse_version} < 1315
Requires: insserv-compat
%endif
Requires: %{_bindir}/pidof
Requires: /sbin/startproc
Requires: logrotate
Requires: sessreg
Requires: xconsole
@ -91,25 +73,9 @@ Requires: xsetroot
Recommends: dbus-1-x11
# This was part of the xorg-x11 package up to version 7.6
Conflicts: xorg-x11 <= 7.6
%if !%with_systemd
Patch0: xdm-consolekit.diff
%endif
%if 0%{?suse_version} >= 01140 && 0%{?suse_version} < 1320
# Needed to create the man page symlink to init.d
BuildRequires: aaa_base-extras
%endif
%if !%with_systemd
BuildRequires: ConsoleKit-devel
Requires: ConsoleKit
%else
BuildRequires: systemd-rpm-macros
%{?systemd_requires}
%endif
%if 0%{?suse_version} > 1320
Requires: xterm-bin
%else
Requires: xterm
%endif
%description
Xdm manages a collection of X displays, which may be on the local host
@ -129,14 +95,9 @@ the system wide DM default set in %{_sysconfdir}/sysconfig/displaymanager.
%prep
%setup -q
cp %{SOURCE2} .
%if !%with_systemd
%patch0 -p1
%endif
pushd xdm
%patch1 -p1
popd
# Special note: patch 2 is applied in install section; tagging it here for the source validator only
#patch2 -p1
# reverse apply (boo#1130321)
%patch3 -p1 -R
@ -159,19 +120,21 @@ rm %{buildroot}%{_sysconfdir}/X11/xdm/{GiveConsole,TakeConsole,Xsetup_0}
pushd %{buildroot}
# SuSE default XDM configuration
tar xf %{SOURCE1}
%if 0%{?suse_version} > 1320
rm etc/sysconfig/SuSEfirewall2.d/services/xdmcp
rmdir etc/sysconfig/SuSEfirewall2.d/services
rmdir etc/sysconfig/SuSEfirewall2.d
rmdir etc/sysconfig
%if 0%{?UsrEtcMove}
patch -p0 < %{PATCH2}
mkdir -p usr/etc/X11/xdm
mv etc/X11/xdm/* usr/etc/X11/xdm
# Install compatibility symlinks. Remove once DMs adjusted
for i in Xsession Xsetup Xstartup Xreset; do
ln -s /usr/etc/X11/xdm/$i etc/X11/xdm/$i
done
# Edited by SUSEConfig.xdm, package a copy
for i in xdm-config Xservers; do
cp usr/etc/X11/xdm/$i etc/X11/xdm/$i
done
mv etc/pam.d usr/etc/
%else
rm usr/lib/firewalld/services/x11.xml
rmdir usr/lib/firewalld/services
rmdir usr/lib/firewalld
%endif
%if 0%{?suse_version} >= 1330
patch -p1 < %{PATCH2}
rm -f usr/lib/X11/display-manager.orig
patch -p0 < %{PATCH4}
%endif
%if "%{_fillupdir}" != "/var/adm/fillup-templates"
mkdir -p %{buildroot}$(dirname %{_fillupdir})
@ -179,9 +142,6 @@ rm -f usr/lib/X11/display-manager.orig
%{buildroot}$(dirname %{_fillupdir})
%endif
%if %dm_fallbacks
tar xf %{SOURCE3}
%endif
%ifarch s390 s390x
sed -i -e "s+DISPLAYMANAGER_REMOTE_ACCESS=.*+DISPLAYMANAGER_REMOTE_ACCESS=\"yes\"+g" \
-e "s+DISPLAYMANAGER_STARTS_XSERVER=.*+DISPLAYMANAGER_STARTS_XSERVER=\"no\"+g" \
@ -190,7 +150,11 @@ sed -i -e "s+DISPLAYMANAGER_REMOTE_ACCESS=.*+DISPLAYMANAGER_REMOTE_ACCESS=\"yes\
popd
# Correct location (FHS-2.1)
%if 0%{?UsrEtcMove}
ln -s %{_localstatedir}/lib/xdm/authdir %{buildroot}%{_distconfdir}/X11/xdm/authdir
%else
ln -s %{_localstatedir}/lib/xdm/authdir %{buildroot}%{_sysconfdir}/X11/xdm/authdir
%endif
# bnc#223734
rm %{buildroot}%{_libdir}/X11/xdm/libXdmGreet.la
# for FHS compliance (bnc#21857)
@ -198,12 +162,6 @@ mv %{buildroot}%{_libdir}/X11/xdm/chooser %{buildroot}%{_bindir}
# fdo#35868 (closed INVALID, but because of above fix, we want it)
ln -s xdm.8%{?ext_man} %{buildroot}%{_mandir}/man8/chooser.8%{?ext_man}
install -D %{SOURCE5} -m 0644 %{buildroot}%{_datadir}/xsessions/xsession.desktop
%if 0%{?suse_version} < 1315
# missing manual page
mkdir -p %{buildroot}%{_mandir}/man8
ln -s ../man7/init.d.7%{?ext_man} %{buildroot}%{_mandir}/man8/rcxdm.8%{?ext_man}
ln -sf %{_sysconfdir}/init.d/xdm %{buildroot}%{_sbindir}/rcxdm
%else
rm -f %{buildroot}%{_sbindir}/rcxdm
install -D %{SOURCE4} -m 0444 %{buildroot}%{_unitdir}/display-manager.service
ln -sf service %{buildroot}%{_sbindir}/rcdisplay-manager
@ -212,58 +170,37 @@ cat > %{buildroot}%{_sbindir}/rcxdm <<-'EOF'
exec -a rcdisplay-manager %{_sbindir}/rcdisplay-manager ${1+"$@"}
EOF
chmod 0755 %{buildroot}%{_sbindir}/rcxdm
%endif
%if 0%{?suse_version} >= 1330
# prepare for defaul-dm to be chosen by means of update-alternatives
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
touch %{buildroot}%{_sysconfdir}/alternatives/default-displaymanager
ln -s %{_sysconfdir}/alternatives/default-displaymanager %{buildroot}/usr/lib/X11/displaymanagers/default-displaymanager
# Inject a dummy 'console' selection - which used to be choice in /etc/sysconfig/displaymanager
touch %{buildroot}/usr/lib/X11/displaymanagers/console
%endif
%post
%if 0%{?suse_version} < 1315
%{fillup_and_insserv -Y xdm}
%else
%service_add_post display-manager.service
%{fillup_only -n displaymanager}
%endif
%if 0%{?suse_version} >= 1330
%{_sbindir}/update-alternatives --install /usr/lib/X11/displaymanagers/default-displaymanager \
default-displaymanager /usr/lib/X11/displaymanagers/console 5
%{_sbindir}/update-alternatives --install /usr/lib/X11/displaymanagers/default-displaymanager \
default-displaymanager /usr/lib/X11/displaymanagers/xdm 10
# get rid of DISPLAYMANAGER in /etc/sysconfig/displaymanager (boo#1125040)
sed -i 's/DISPLAYMANAGER=.*//g' /etc/sysconfig/displaymanager
%endif
%if 0%{?suse_version} > 1320
%firewalld_reload
%endif
%pre
%if !0%{?suse_version} < 1315
%service_add_pre display-manager.service
%endif
%service_add_pre display-manager.service
%postun
%if 0%{?suse_version} < 1315
%{insserv_cleanup}
%else
# Do not restart DM on update (bnc#886641)
%service_del_postun -n display-manager.service
%endif
%if 0%{?suse_version} >= 1330
[ -f /usr/lib/X11/displaymanagers/console ] || %{_sbindir}/update-alternatives \
--remove default-displaymanager /usr/lib/X11/displaymanagers/console
[ -f /usr/lib/X11/displaymanagers/xdm ] || %{_sbindir}/update-alternatives \
--remove default-displaymanager /usr/lib/X11/displaymanagers/xdm
%endif
%preun
%if !0%{?suse_version} < 1315
%service_del_preun display-manager.service
%endif
%service_del_preun display-manager.service
%files
%defattr(-,root,root)
@ -271,39 +208,32 @@ sed -i 's/DISPLAYMANAGER=.*//g' /etc/sysconfig/displaymanager
%doc HOWTO.xdm
%dir %{_dminitdir}
%{_dminitdir}/xdm
%if 0%{?suse_version} >= 1330
%{_dminitdir}/console
/usr/lib/X11/displaymanagers/default-displaymanager
%ghost %{_sysconfdir}/alternatives/default-displaymanager
%endif
%if %dm_fallbacks
%{_dminitdir}/entrance.fallback
%{_dminitdir}/gdm.fallback
%{_dminitdir}/kdm.fallback
%{_dminitdir}/lxdm.fallback
%{_dminitdir}/slim.fallback
%{_dminitdir}/wdm.fallback
%if 0%{?UsrEtcMove}
%dir %{_distconfdir}/X11
%{_distconfdir}/X11/xdm/
%endif
%config %{_sysconfdir}/X11/xdm/
%if 0%{?UsrEtcMove}
%dir %{_distconfdir}/X11/xdm/scripts
%else
%dir %{_sysconfdir}/X11/xdm/scripts
%if 0%{?suse_version} > 1320
%endif
%dir /usr/lib/firewalld
%dir /usr/lib/firewalld/services
/usr/lib/firewalld/services/x11.xml
%else
%config(noreplace) %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/xdmcp
%endif
%if 0%{?suse_version} < 1315
%{_sysconfdir}/init.d/xdm
%exclude /usr/lib/X11/display-manager
%else
%exclude %{_sysconfdir}/init.d/xdm
%{_unitdir}/display-manager.service
/usr/lib/X11/display-manager
%endif
%config %{_sysconfdir}/logrotate.d/xdm
%if 0%{?UsrEtcMove}
%{_distconfdir}/pam.d/xdm
%{_distconfdir}/pam.d/xdm-np
%else
%config(noreplace) %{_sysconfdir}/pam.d/xdm
%config(noreplace) %{_sysconfdir}/pam.d/xdm-np
%endif
%dir %{_localstatedir}/lib/xdm/
%{_fillupdir}/sysconfig.displaymanager
%{_localstatedir}/lib/xdm/authdir/
@ -311,17 +241,12 @@ sed -i 's/DISPLAYMANAGER=.*//g' /etc/sysconfig/displaymanager
%{_bindir}/chooser
%{_bindir}/xdm
%{_sbindir}/rcxdm
%if 0%{?suse_version} >= 1315
%{_sbindir}/rcdisplay-manager
%endif
%{_libdir}/X11/xdm/
%dir %{_datadir}/X11/app-defaults
%{_datadir}/X11/app-defaults/Chooser
%{_mandir}/man8/chooser.8%{?ext_man}
%{_mandir}/man8/xdm.8%{?ext_man}
%if 0%{?suse_version} < 1315
%{_mandir}/man8/rcxdm.8%{?ext_man}
%endif
%ifnarch %ix86
%dir %{_libdir}/X11
%endif

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3490e1140041d9bf6a9bfafc3f6e4ce0faf8ad04dbd53726ee0335f758882681
size 23798
oid sha256:41f36ca335c3a19f7d416af8b11963cdb8deed6d8f35f611aa9ac1eca4198254
size 21063

70
xinit-UsrEtcMove.patch Normal file
View File

@ -0,0 +1,70 @@
diff -u -r ../old/etc/X11/xdm/Xsession ./etc/X11/xdm/Xsession
--- ../old/etc/X11/xdm/Xsession 2017-07-25 11:58:00.067080000 +0200
+++ ./etc/X11/xdm/Xsession 2020-09-08 16:49:26.220507000 +0200
@@ -35,9 +35,17 @@
#
XETCDIR=/etc/X11
XDMDIR=$XETCDIR/xdm
- XINITDIR=$XETCDIR/xinit
: ${TMPDIR=/tmp}
+# xinitrc moved to %{_libexecdir}/xinit in xinit package
+if [ -r /usr/libexec/xinit/xinitrc ]; then
+ XINITDIR=/usr/libexec/xinit
+elif [ -r /usr/lib/xinit/xinitrc ]; then
+ XINITDIR=/usr/lib/xinit
+else
+ XINITDIR=$XETCDIR/xinit
+fi
+
export OPENWINHOME TMPDIR
test -n "$XAUTHORITY" || unset XAUTHORITY
@@ -291,7 +299,12 @@
# Source common code shared between the
# X session and X init scripts
#
-. /etc/X11/xinit/xinitrc.common
+
+if [ -r /etc/X11/xinit/xinitrc.common ]; then
+ . /etc/X11/xinit/xinitrc.common
+elif [ -r /usr/etc/X11/xinit/xinitrc.common ]; then
+ . /usr/etc/X11/xinit/xinitrc.common
+fi
# Restore arguments but skip window manager
set -- "${argv[@]}"
diff -u -r ../old/etc/X11/xdm/sys.xsession ./etc/X11/xdm/sys.xsession
--- ../old/etc/X11/xdm/sys.xsession 2016-06-03 15:25:42.000000000 +0200
+++ ./etc/X11/xdm/sys.xsession 2020-09-08 16:54:30.682569000 +0200
@@ -63,7 +63,16 @@
#
# Use system default xinitrc if the users does not have one.
#
-XINITRCFILE=/etc/X11/xinit/xinitrc
+
+# xinitrc moved to %{_libexecdir}/xinit in xinit package
+if [ -r /usr/libexec/xinit/xinitrc ]; then
+ XINITRCFILE=/usr/libexec/xinit/xinitrc
+elif [ -r /usr/lib/xinit/xinitrc ]; then
+ XINITRCFILE=/usr/lib/xinit/xinitrc
+else
+ XINITRCFILE=/etc/X11/xinit/xinitrc
+fi
+
test -r "$HOME/.xinitrc" && XINITRCFILE="$HOME/.xinitrc"
if test -f "$XINITRCFILE" ; then
@@ -77,7 +86,11 @@
# Source common code shared between the
# X session and X init scripts
#
- . /etc/X11/xinit/xinitrc.common
+ if [ -r /etc/X11/xinit/xinitrc.common ]; then
+ . /etc/X11/xinit/xinitrc.common
+ elif [ -r /usr/etc/X11/xinit/xinitrc.common ]; then
+ . /usr/etc/X11/xinit/xinitrc.common
+ fi
unset STARTUP WINDOW_MANAGER
set -- ${1+"$@"} $WINDOWMANAGER