commit d5d5915e45ec88b83dc344c05391abdf16f87f3fd2678af8b0d7552fe91df7e8 Author: Joan Torres Date: Mon Aug 12 08:17:10 2024 +0000 - sysconfig/windowmanager is deprecated since 7 years, don't read it if it does not exist. OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xdm?expand=0&rev=275 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/HOWTO.xdm b/HOWTO.xdm new file mode 100644 index 0000000..d23c7c5 --- /dev/null +++ b/HOWTO.xdm @@ -0,0 +1,36 @@ +Display Manager Scriptlets HOWTO +================================ + +To keep display manager specific code out of the generic +start script (/etc/init.d/xdm) as much as possible display +managers should provide a script file that provides anything +specific to this dm. + +At minimum the script file needs to provide: +here denotes the name of the file. This should +be the same as the pid file generated by the display +manager - without the .pid extent. + +# this function matches the command line argument. If it +finds a match it initializes any dm specific variables +and returns 0 (success) otherwise it returns 1 (fail). +At minimum it needs to set the full path the the display +manager binary. +It may set STARTPROC to a function that gets run prior to +starting a dm, RELOADPROC to a function that's run to reload +the DM configuration, PROBEPROC to a function that's run +when the DM status is probed. +Any those functions should return 0 on success or any other +value on failure. +Additionally it may initialize any other variables needed +by the DM. + +_vars() { + case $1 in + ) + DISPLAYMANAGER=/usr/bin/ + STARTPROC=_start # optional + RELOADPROC=_reload # optional + PROBEPROC=_probe # optional + .... +} diff --git a/display-manager.service b/display-manager.service new file mode 100644 index 0000000..972c659 --- /dev/null +++ b/display-manager.service @@ -0,0 +1,18 @@ +[Unit] +Description=X Display Manager +Conflicts=getty@tty7.service plymouth-quit.service +After=ypbind.service gpm.service winbind.service acpid.service +Wants=systemd-user-sessions.service systemd-logind.service +After=systemd-user-sessions.service systemd-logind.service +OnFailure=plymouth-quit.service + +[Service] +Type=forking +PIDFile=/run/displaymanager.pid +ExecStart=/usr/lib/X11/display-manager start +ExecReload=/usr/lib/X11/display-manager reload +KillMode=process + +[Install] +WantedBy=graphical.target +Alias=xdm.service diff --git a/n_Allow-the-greeter-to-set-the-input-fields-bg-color.patch b/n_Allow-the-greeter-to-set-the-input-fields-bg-color.patch new file mode 100644 index 0000000..ff74a40 --- /dev/null +++ b/n_Allow-the-greeter-to-set-the-input-fields-bg-color.patch @@ -0,0 +1,156 @@ +From d0e32620bfb3bc8803bffcec3f0f3b1db6440d51 Mon Sep 17 00:00:00 2001 +From: Matthieu Herrb +Date: Sat, 14 Mar 2015 20:05:25 +0100 +Subject: [PATCH] Allow the greeter to set the input fields bg color + +A new 'inpColor' resource is added for that. + +Signed-off-by: Matthieu Herrb +Reviewed-by: Alan Coopersmith +--- + config/Xresources.in | 1 + + greeter/Login.c | 26 ++++++++++++++++++++------ + greeter/Login.h | 1 + + greeter/LoginP.h | 2 ++ + 4 files changed, 24 insertions(+), 6 deletions(-) + +diff --git a/config/Xresources.in b/config/Xresources.in +index 0a92270..c880db7 100644 +--- a/config/Xresources.in ++++ b/config/Xresources.in +@@ -46,6 +46,7 @@ xlogin*innerFramesWidth: 2 + xlogin*shdColor: grey30 + xlogin*hiColor: grey90 + xlogin*background: grey ++xlogin*inpColor: grey80 + !xlogin*foreground: darkgreen + xlogin*greetColor: Blue3 + xlogin*failColor: red +diff --git a/greeter/Login.c b/greeter/Login.c +index d899376..6a99050 100644 +--- a/greeter/Login.c ++++ b/greeter/Login.c +@@ -156,6 +156,8 @@ static XtResource resources[] = { + offset(hipixel), XtRString, XtDefaultForeground}, + {XtNshdColor, XtCForeground, XtRPixel, sizeof (Pixel), + offset(shdpixel), XtRString, XtDefaultForeground}, ++ {XtNinpColor, XtCForeground, XtRPixel, sizeof (Pixel), ++ offset(inppixel), XtRString, XtDefaultBackground}, + {XtNframeWidth, XtCFrameWidth, XtRInt, sizeof(int), + offset(outframewidth), XtRImmediate, (XtPointer) 1}, + {XtNinnerFramesWidth, XtCFrameWidth, XtRInt, sizeof(int), +@@ -325,14 +327,14 @@ XmuXftTextWidth(Display *dpy, XftFont *font, FcChar8 *string, int len); + F_ASCENT(greet) + Y_INC(w)) + \ + (n * PROMPT_SPACE_Y(w))) + #define PROMPT_W(w) (w->core.width - (2 * TEXT_X_INC(w))) +-#define PROMPT_H(w) (3 * Y_INC(w) / 2) ++#define PROMPT_H(w) (5 * Y_INC(w) / 4) + #define VALUE_X(w,n) (PROMPT_X(w) + CUR_PROMPT_W(w,n)) + #define CURSOR_W 5 + #define MAX_VALUE_W(w,n) (PROMPT_W(w) - VALUE_X (w,n) - CURSOR_W - 1 - \ + (w->login.inframeswidth * 2) - LOGO_W(w)) + #define PROMPT_SPACE_Y(w) (10 * Y_INC(w) / 5) + +-#define ERROR_X(w,m) ((int)(w->core.width - STRING_WIDTH (fail, m)) / 2) ++#define ERROR_X(w,m) ((int)(w->core.width - LOGO_W(w) - STRING_WIDTH (fail, m)) / 2) + #define FAIL_X(w) ERROR_X(w, w->login.fail) + #define FAIL_Y(w) (PROMPT_Y(w,1) + 2 * FAIL_Y_INC (w) + F_ASCENT(fail)) + +@@ -744,14 +746,15 @@ draw_it (LoginWidget w) + int in_width = PROMPT_W(w) - VALUE_X(w,p) - LOGO_W(w); + int in_height = PROMPT_H(w) + w->login.inframeswidth + 2; + +- GC topLeftGC, botRightGC; ++ GC topLeftGC, botRightGC, inpGC; + + if ((PROMPT_STATE(w, p) == LOGIN_PROMPT_ECHO_ON) || + (PROMPT_STATE(w, p) == LOGIN_PROMPT_ECHO_OFF)) { + topLeftGC = w->login.shdGC; + botRightGC = w->login.hiGC; ++ inpGC = w->login.inpGC; + } else { +- topLeftGC = botRightGC = w->login.bgGC; ++ topLeftGC = botRightGC = inpGC = w->login.bgGC; + } + + /* draw borders of editboxes */ +@@ -775,6 +778,11 @@ draw_it (LoginWidget w) + in_frame_x + i-1, in_frame_y + in_height-i, + in_frame_x + in_width-i, in_frame_y + in_height-i); + } ++ XFillRectangle(XtDisplay (w), XtWindow (w), inpGC, ++ in_frame_x + w->login.inframeswidth, ++ in_frame_y + w->login.inframeswidth, ++ in_width - 2*w->login.inframeswidth, ++ in_height - 2*w->login.inframeswidth); + } + + if (GREETING(w)[0]) { +@@ -1682,6 +1690,11 @@ static void Initialize ( + valuemask = GCForeground | GCBackground; + w->login.shdGC = XtGetGC(gnew, valuemask, &myXGCV); + ++ myXGCV.foreground = w->login.inppixel; ++ myXGCV.background = w->core.background_pixel; ++ valuemask = GCForeground | GCBackground; ++ w->login.inpGC = XtGetGC(gnew, valuemask, &myXGCV); ++ + myXGCV.foreground = TEXT_COLOR(text); + myXGCV.background = w->core.background_pixel; + valuemask = GCForeground | GCBackground; +@@ -1692,10 +1705,10 @@ static void Initialize ( + } + #endif + w->login.textGC = XtGetGC(gnew, valuemask, &myXGCV); +- myXGCV.foreground = w->core.background_pixel; ++ myXGCV.foreground = w->login.inppixel; + w->login.bgGC = XtGetGC(gnew, valuemask, &myXGCV); + +- myXGCV.foreground = TEXT_COLOR(text) ^ w->core.background_pixel; ++ myXGCV.foreground = TEXT_COLOR(text) ^ w->login.inppixel; + myXGCV.function = GXxor; + xvaluemask = valuemask | GCFunction; + w->login.xorGC = XtGetGC (gnew, xvaluemask, &myXGCV); +@@ -1961,6 +1974,7 @@ static void Destroy (Widget gw) + #endif + XtReleaseGC(gw, w->login.hiGC); + XtReleaseGC(gw, w->login.shdGC); ++ XtReleaseGC(gw, w->login.inpGC); + + #ifdef XPM + if (True == w->login.logoValid) +diff --git a/greeter/Login.h b/greeter/Login.h +index 9b5212c..6af3369 100644 +--- a/greeter/Login.h ++++ b/greeter/Login.h +@@ -111,6 +111,7 @@ from The Open Group. + /* added by Amit Margalit Oct 1996 */ + # define XtNhiColor "hiColor" + # define XtNshdColor "shdColor" ++# define XtNinpColor "inpColor" + # define XtNframeWidth "frameWidth" + # define XtCFrameWidth "FrameWidth" + # define XtNinnerFramesWidth "innerFramesWidth" +diff --git a/greeter/LoginP.h b/greeter/LoginP.h +index bd82ce3..57ed182 100644 +--- a/greeter/LoginP.h ++++ b/greeter/LoginP.h +@@ -95,6 +95,7 @@ typedef struct { + # endif + Pixel hipixel; /* frame hilite pixel */ + Pixel shdpixel; /* shadow frame pixel */ ++ Pixel inppixel; /* input field bg pixel */ + GC textGC; /* pointer to GraphicsContext */ + GC bgGC; /* pointer to GraphicsContext */ + GC xorGC; /* pointer to GraphicsContext */ +@@ -105,6 +106,7 @@ typedef struct { + # endif + GC hiGC; /* for hilight part of frame */ + GC shdGC; /* for shaded part of frame */ ++ GC inpGC; /* for input field of frame */ + char *greeting; /* greeting */ + char *unsecure_greet;/* message displayed when insecure */ + char *namePrompt; /* name prompt */ +-- +2.21.0 + diff --git a/xdm-1.1.16.tar.xz b/xdm-1.1.16.tar.xz new file mode 100644 index 0000000..c4a8d02 --- /dev/null +++ b/xdm-1.1.16.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcf2209881e95708363777b282fedb1c1055790f38046fa46beff2f1d087679c +size 420072 diff --git a/xdm-tarball.patch b/xdm-tarball.patch new file mode 100644 index 0000000..cff4ba9 --- /dev/null +++ b/xdm-tarball.patch @@ -0,0 +1,348 @@ +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 2024-08-09 11:27:04.390249591 +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 2024-08-09 11:27:04.390249591 +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 2024-08-09 11:27:04.390249591 +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 2021-01-04 15:20:27.548208000 +0100 ++++ ./etc/X11/xdm/Xsession 2024-08-09 11:27:04.390249591 +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 2024-08-09 11:27:04.390249591 +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 2024-08-09 11:27:04.390249591 +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 2024-08-09 11:27:04.390249591 +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 2024-08-09 11:27:04.390249591 +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 2024-08-09 11:36:39.578216426 +0200 +@@ -13,11 +13,16 @@ + # /usr/lib/X11/display-manager + # + ++DEFAULT_WM="default" ++ + . /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 ++test -f /etc/sysconfig/windowmanager && . /etc/sysconfig/windowmanager ++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 +72,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 +92,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 +135,13 @@ + 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 -d /etc/X11/xinit || mkdir -p /etc/X11/xinit ++ 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 +171,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 2024-08-09 11:27:04.390249591 +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 diff --git a/xdm-tolerant-hostname-changes.diff b/xdm-tolerant-hostname-changes.diff new file mode 100644 index 0000000..fb4b500 --- /dev/null +++ b/xdm-tolerant-hostname-changes.diff @@ -0,0 +1,117 @@ +Index: xdm/auth.c +=================================================================== +--- xdm.orig/auth.c ++++ xdm/auth.c +@@ -744,7 +744,7 @@ writeAddr ( + } + + static void +-DefineLocal (FILE *file, Xauth *auth) ++DefineLocal (FILE *file, Xauth *auth, char **pLocalAddress) + { + char displayname[100]; + int len = _XGetHostname (displayname, sizeof(displayname)); +@@ -759,6 +759,9 @@ DefineLocal (FILE *file, Xauth *auth) + + + writeAddr (FamilyLocal, len, displayname, file, auth); ++ ++ if (pLocalAddress) ++ *pLocalAddress = strdup(displayname); + } + + #ifdef HAVE_GETIFADDRS +@@ -1019,7 +1022,7 @@ setAuthNumber (Xauth *auth, char *name) + } + + static void +-writeLocalAuth (FILE *file, Xauth *auth, char *name) ++writeLocalAuth (FILE *file, Xauth *auth, char *name, char **pLocalAddress) + { + int fd; + +@@ -1034,13 +1037,13 @@ writeLocalAuth (FILE *file, Xauth *auth, + DefineSelf (fd, file, auth); + close (fd); + #endif +- DefineLocal (file, auth); ++ DefineLocal (file, auth, pLocalAddress); + } + + #ifdef XDMCP + + static void +-writeRemoteAuth (FILE *file, Xauth *auth, XdmcpNetaddr peer, int peerlen, char *name) ++writeRemoteAuth (FILE *file, Xauth *auth, XdmcpNetaddr peer, int peerlen, char *name, char **pLocalAddress) + { + int family = FamilyLocal; + char *addr; +@@ -1059,7 +1062,7 @@ writeRemoteAuth (FILE *file, Xauth *auth + } + else + { +- writeLocalAuth (file, auth, name); ++ writeLocalAuth (file, auth, name, pLocalAddress); + } + } + +@@ -1083,6 +1086,7 @@ SetUserAuthorization (struct display *d, + #ifdef HAVE_MKSTEMP + int fd; + #endif ++ char *localAddress = NULL; + + Debug ("SetUserAuthorization\n"); + auths = d->authorizations; +@@ -1175,10 +1179,10 @@ SetUserAuthorization (struct display *d, + { + magicCookie = i; + if (d->displayType.location == Local) +- writeLocalAuth (new, auths[i], d->name); ++ writeLocalAuth (new, auths[i], d->name, &localAddress); + #ifdef XDMCP + else +- writeRemoteAuth (new, auths[i], d->peer, d->peerlen, d->name); ++ writeRemoteAuth (new, auths[i], d->peer, d->peerlen, d->name, &localAddress); + #endif + break; + } +@@ -1196,10 +1200,10 @@ SetUserAuthorization (struct display *d, + !strncmp (auths[i]->name, "MIT-KERBEROS-5", 14)) + auths[i]->data_length = 0; + if (d->displayType.location == Local) +- writeLocalAuth (new, auths[i], d->name); ++ writeLocalAuth (new, auths[i], d->name, &localAddress); + #ifdef XDMCP + else +- writeRemoteAuth (new, auths[i], d->peer, d->peerlen, d->name); ++ writeRemoteAuth (new, auths[i], d->peer, d->peerlen, d->name, &localAddress); + #endif + auths[i]->data_length = data_len; + } +@@ -1244,6 +1248,12 @@ SetUserAuthorization (struct display *d, + verify->systemEnviron = setEnv (verify->systemEnviron, + "XAUTHORITY", envname); + } ++ if (localAddress) { ++ verify->userEnviron = setEnv (verify->userEnviron, ++ "XAUTHLOCALHOSTNAME",localAddress); ++ free(localAddress); ++ } ++ + XauUnlockAuth (name); + if (envname) + chown (envname, verify->uid, verify->gid); +@@ -1282,10 +1292,10 @@ RemoveUserAuthorization (struct display + for (i = 0; i < d->authNum; i++) + { + if (d->displayType.location == Local) +- writeLocalAuth (new, auths[i], d->name); ++ writeLocalAuth (new, auths[i], d->name, NULL); + #ifdef XDMCP + else +- writeRemoteAuth (new, auths[i], d->peer, d->peerlen, d->name); ++ writeRemoteAuth (new, auths[i], d->peer, d->peerlen, d->name, NULL); + #endif + } + doWrite = 1; diff --git a/xdm.changes b/xdm.changes new file mode 100644 index 0000000..b74529a --- /dev/null +++ b/xdm.changes @@ -0,0 +1,1056 @@ +------------------------------------------------------------------- +Fri Aug 9 09:40:13 UTC 2024 - Thorsten Kukuk + +- sysconfig/windowmanager is deprecated since 7 years, don't + read it if it does not exist. + +------------------------------------------------------------------- +Fri Apr 5 00:54:48 UTC 2024 - Stefan Dirsch + +- Update to release 1.1.16 + * This release fixes a failure to build with the recent libXaw 1.0.16 + release due to a change introduced in xdm 1.1.15 to address gcc 14 + build issues. + +------------------------------------------------------------------- +Sun Mar 24 08:32:09 UTC 2024 - Stefan Dirsch + +- Update to release 1.1.15 + * This release fixes a failure to build with the upcoming gcc 14, + cleans up several other compiler warnings, fixes a bug in the + generation of the xdm.service file for systemd, and removes a + lot of dead code checks for platforms & features that have not + been supported since the conversion from Imake to autoconf in + 2005. +- supersedes u_gcc14-fix.patch + +------------------------------------------------------------------- +Wed Mar 6 09:21:36 UTC 2024 - Stefan Dirsch + +- u_gcc14-fix.patch + * fix build against gcc14 (boo#1221028) + +------------------------------------------------------------------- +Mon Feb 26 12:07:38 UTC 2024 - Dominique Leuenberger + +- Use %patch -P N instead of deprecated %patchN. + +------------------------------------------------------------------- +Thu May 11 12:17:55 UTC 2023 - Stefan Dirsch + +- since xrdb no longer requires cpp, it needs to be reqired here now + +------------------------------------------------------------------- +Mon Apr 3 11:24:08 UTC 2023 - Stefan Dirsch + +- Create two set of pam configuration files: + + *.sle15 are for SLES15 and older + + add postlogin-* includes to the others as required by new + openSUSE's PAM config policy + +------------------------------------------------------------------- +Thu Mar 23 12:12:36 UTC 2023 - Stefan Dirsch + +- No longer run "localectl set-x11-keymap ..." and only run + "localectl set-keymap ..." if XKBLAYOUT is not set, i.e. if + nobody was making use of "localectl set-x11-keymap" after + installation (boo#1209594, comment#24) + +------------------------------------------------------------------- +Wed Mar 22 12:58:09 UTC 2023 - Stefan Dirsch + +- keytable: exit 0 was executed too early, so + "localectl set-x11-keymap" wasn't executed; fixed this + (boo#1209594, comment#19) + +------------------------------------------------------------------- +Wed Mar 22 10:58:41 UTC 2023 - Stefan Dirsch + +- keytable: no longer ignore XKBLAYOUT (and XKBMODEL, XKBVARIANT, + XKBOPTIONS) variables if available in /etc/vconsole.conf, i.e. + no longer overwrite keyboard settings if anybody used + "localectl set-x11-keymap" himself; fixed "check systemd mapping" + if KEYMAP_TOGGLE has been set (boo#1209594) + +------------------------------------------------------------------- +Sun Dec 4 21:36:50 UTC 2022 - Stefan Dirsch + +- Update to release 1.1.14 + * This release improves compatibility for building with GNU + libc 2.36, and adds a --without-xinerama option to the + configure script for those who want to build without linking + to libXinerama. +- supersedes u_glibc-2.36.patch + +------------------------------------------------------------------- +Thu Oct 13 09:55:49 UTC 2022 - Stefan Dirsch + +- display-manager.service: simplified deps (boo#1203662) + * remove deps to time-sync.target, remote-fs.target, dbus.socket, + getty@tty7.service, plymouth-quit.service + * keep Conflicts to plymouth-quit.service + * keep dep to systemd-logind.service + +------------------------------------------------------------------- +Tue Oct 11 15:46:37 UTC 2022 - Frederic Crozat + +- Update xdm-tarball.patch: + * create /etc/X11/xinit directory if not present. + +------------------------------------------------------------------- +Fri Sep 9 09:53:34 UTC 2022 - Callum Farmer + +- Add u_glibc-2.36.patch: use glibc's arc4random instead of + libbsd's (bsc#1202222) + +------------------------------------------------------------------- +Fri Aug 19 09:42:56 UTC 2022 - Dirk Müller + +- add buildrequires for bsd/stdlib.h (bsc#1202222) + +------------------------------------------------------------------- +Tue Aug 9 12:34:33 UTC 2022 - Thorsten Kukuk + +- Use %_pam_vendordir + +------------------------------------------------------------------- +Thu Jun 30 12:18:41 UTC 2022 - Stefan Schubert + +- Moved logrotate files from user specific directory /etc/logrotate.d + to vendor specific directory /usr/etc/logrotate.d. + +------------------------------------------------------------------- +Mon Apr 4 10:13:13 UTC 2022 - Stefan Dirsch + +- udpate to release 1.1.13 + * bugfix release + +------------------------------------------------------------------- +Wed Feb 9 16:55:31 UTC 2022 - Stefan Dirsch + +- added "Recommends: xdmbgrd" to make sure we have a background for + xdm and the xdmbgrd package is required by anyone and not silently + dropped by accident (boo#1195664) + +------------------------------------------------------------------- +Tue Feb 8 08:47:28 UTC 2022 - Dirk Müller + +- fix bashism in postinstall script (bsc#1195391) + +------------------------------------------------------------------- +Fri Nov 19 16:12:35 UTC 2021 - Stefan Dirsch + +- %post: enable Xorg on s390x with virtio (Redhat PCI ID 1af4:1050) + via /etc/sysconfig/displaymanager on installation (but not upgrade) + by checking for existence of /dev/dri [JIRA#SLE-18632] + +------------------------------------------------------------------- +Mon May 17 07:35:04 UTC 2021 - Dominique Leuenberger + +- Do not own /usr/share/xsessions: this directory is owned by the + filesystem package. + +------------------------------------------------------------------- +Tue Mar 16 21:41:03 UTC 2021 - Dirk Müller + +- modernize spec (move license to licensedir) + +------------------------------------------------------------------- +Mon Jan 4 14:21:44 UTC 2021 - Stefan Dirsch + +- fixed path of pidof tool for older openSUSE Leap releases + (boo#1179607) + +------------------------------------------------------------------- +Tue Dec 1 12:08:44 UTC 2020 - Stefan Dirsch + +- fixed %postun for older releases than factory/TW (see change + right below, which broke it) + +------------------------------------------------------------------- +Tue Nov 3 14:38:22 UTC 2020 - Franck Bui + +- Replace '%service_del_postun -n' with '%service_del_postun_without_restart' + + '-n' is deprecated and will be removed in the future. + +------------------------------------------------------------------- +Mon Oct 12 16:14:57 UTC 2020 - Stefan Dirsch + +- no longer package symlinks for Xsession, Xsetupm Xstartup and + Xreset in /etc/X11/xdm, since meanwhile sddm, gdm and lightdm + have been adjusted + +------------------------------------------------------------------- +Mon Oct 5 14:57:23 UTC 2020 - Stefan Dirsch + +- 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 + +- 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 + +- /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 + +- 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 + +- Switch to /usr/bin/pidof dependency, provided by procps-ng. + +------------------------------------------------------------------- +Thu Sep 10 02:42:45 UTC 2020 - Stefan Dirsch + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- reverted move to /usr/etc/X11/xdm for now due to boo#1176212 + +------------------------------------------------------------------- +Sat Sep 5 03:41:38 UTC 2020 - Stefan Dirsch + +- updated xdm-tarball.patch + * adjusted for changes in xmodmap and xinit (boo#1173049) + +------------------------------------------------------------------- +Fri Sep 4 22:33:30 UTC 2020 - Stefan Dirsch + +- 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 + +- 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 + +- 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 + +- 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 + +- Require /sbin/startproc: with systemd no longer pulling in + sysvinit-tools. we are responsible for our own deps. /sbin/pidof + and /sbin/startproc both were presented by sysvinit-tools. but + the sole presence of the /sbin/pidof dep is not sufficient, as + this can be provided by various packages (e.g. + busybox-sysvinit-tools, which then does not provide startproc). + Spelling the deps out ensures that we get the right package set + installed. + +------------------------------------------------------------------- +Thu Aug 27 11:36:48 UTC 2020 - Franck Bui + +- Drop insserv-compat dependency when display-manager.service is used + + insserv-compat is going to be dropped soon or later on systems with + systemd as init system. + + It was only needed by /usr/lib/X11/display-manager script that uses + rc_status to pretty print the status of a command. + + Since this script is intended to be used by display-manager.service + and not called directly by users and systemd has already its own + mechanism to report status, the use of rc_status doesn't seem to be + useful. + + The exit failure status for each command has been preserved. + +------------------------------------------------------------------- +Wed Aug 26 17:23:18 UTC 2020 - Franck Bui + +- Drop commands in /usr/lib/X11/display-manager that are never used by systemd + + Assuming that this script is only called from + display-manager.service unit, some commands of the scripts are + either never used or redundant with systemd functionalities. + + More specifically, there's no need to redefine a "stop" command as + this is one basic command that systemd implements already. + + Also convert "reload" to make use of $MAINPID exported by systemd + which should be slighly more reliable and hence stop relying on + killproc that might be removed in the future. + +------------------------------------------------------------------- +Wed Aug 26 13:39:08 UTC 2020 - Franck Bui + +- Replace /var/run with /run as /var/run is obsolete since quite some + time now. + +------------------------------------------------------------------- +Thu Jul 16 05:13:42 UTC 2020 - Stefan Dirsch + +- readd insserv-compat also when using systemd due to missing + /etc/rc.status, etc. (boo#1174180) + +------------------------------------------------------------------- +Mon Jun 22 18:56:47 UTC 2020 - Cristian Rodríguez + +- Require fillup_prereq not insserv-compat when using systemd + +------------------------------------------------------------------- +Fri Jun 5 12:12:52 UTC 2020 - Callum Farmer + +- Fixes for %_libexecdir changing to /usr/libexec + +------------------------------------------------------------------- +Sat Mar 21 12:44:02 UTC 2020 - Stefan Dirsch + +- README.security: fixed and improved documentation about how to + enable xdmcp for xdm (boo#1167293) + +------------------------------------------------------------------- +Tue Jan 28 08:14:40 UTC 2020 - Dominique Leuenberger + +- Require insserv-compat: /usr/lib/X11/display-manager sources + /etc/rc.status, which is part of insserv-compat. Without this + present, display-manager fails to start up. + +------------------------------------------------------------------- +Mon Aug 19 14:52:14 UTC 2019 - Stefan Dirsch + +- pam.d/xdm{,-np}: added pam_keyinit.so (boo#1144063) + +------------------------------------------------------------------- +Thu Mar 28 14:03:43 UTC 2019 - Stefan Dirsch + +- n_Allow-the-greeter-to-set-the-input-fields-bg-color.patch + * reverse applied in order to fix greeter again; related to our + heavily adjusted xdm Xresources (boo#1130321) + +------------------------------------------------------------------- +Sun Mar 3 09:39:22 UTC 2019 - Stefan Dirsch + +- udpate to release 1.1.12 + * This release collects 7 years worth of bug fixes and code + cleanups, including the fix for CVE-2013-2179 that was + previously distributed as a patch against the prior release. + +------------------------------------------------------------------- +Wed Feb 13 15:47:45 UTC 2019 - sndirsch@suse.com + +- %post: get rid of DISPLAYMANAGER in /etc/sysconfig/displaymanager + (boo#1125040) + +------------------------------------------------------------------- +Tue Dec 11 08:06:00 UTC 2018 - msrb@suse.com + +- Add OnFailure=plymouth-quit.service to display-manager service. + (bsc#1118121) + +------------------------------------------------------------------- +Thu Jul 26 13:14:57 UTC 2018 - sndirsch@suse.com + +- display-manager: also quit plymouth when display-manager is set + to console (boo#1102584) + +------------------------------------------------------------------- +Tue Jul 17 12:56:35 UTC 2018 - werner@suse.de + +- Change /etc/X11/xdm/scripts/10-gpg-agent to get it work with + every gpg version 2.1 and up (boo#1062105) + +------------------------------------------------------------------- +Wed Jul 11 14:43:26 UTC 2018 - fcrozat@suse.com + +- Update xdm.tar.bz2, no longer create / update /var/lib/X11/X + symlink, it is no used anymore (FATE#325524). + +------------------------------------------------------------------- +Thu Apr 5 12:30:01 UTC 2018 - werner@suse.de + +- systemd-logind integration requires to use -keeptty with X server + to hold the controlling tty (and breaks startx!).[boo#1088365] +- Do not generate an error on not existing shell functions *_vars + in /usr/lib/X11/display-manager + +------------------------------------------------------------------- +Fri Mar 16 16:44:52 UTC 2018 - sndirsch@suse.com + +- require xinit, since /etc/X11/xdm/Xsession and /etc/X11/xdm/sys.xsession + are sourcing /etc/X11/xinit/xinitrc.common (boo#1084655) + +------------------------------------------------------------------- +Fri Mar 9 16:46:58 UTC 2018 - sndirsch@suse.com + +- check for available graphics during runtime instead of %post, + since %post may already run during image building time in our + buildsystem (boo#1039497) + +------------------------------------------------------------------- +Mon Feb 26 19:24:04 UTC 2018 - sndirsch@suse.com + +- fixed syntax in /usr/lib/firewalld/services/x11.xml (boo#1082890) + +------------------------------------------------------------------- +Wed Feb 21 13:52:09 UTC 2018 - sndirsch@suse.com + +- switch from SUSEfirewall2 to firewalld: + /etc/sysconfig/SuSEfirewall2.d/services/xdmcp --> + /usr/lib/firewalld/services/x11.xml; only handle Xserver TCP/UDP + ports 6000-6063; XDMCP port 177 will be handled by firewalld + package itself and pushed upstream by firewalld maintainers + (boo#1082033) + +------------------------------------------------------------------- +Thu Feb 8 11:14:41 UTC 2018 - sndirsch@suse.com + +- xdm.tar.bz2/Xstartup + * reverted workaround for DISPLAY being set to 'null', since the + bug is supposed to be fixed properly in gdm now (bsc#1068016) + +------------------------------------------------------------------- +Mon Dec 4 11:24:12 UTC 2017 - sndirsch@suse.com + +- xdm.tar.bz2/usr/lib/X11/display-manager + * Improve error message with "x11failsafe: in kernel commandline, + if xorg.conf.install doesn't exist (https://github.com/SUSE/kiwi/issues/554) + +------------------------------------------------------------------- +Thu Nov 23 20:20:50 UTC 2017 - sndirsch@suse.com + +- move /var/adm/fillup-templates/sysconfig.displaymanager + to %_fillupdir on TW and sle15/Leap 15 + +------------------------------------------------------------------- +Thu Nov 23 13:52:48 UTC 2017 - rbrown@suse.com + +- Replace references to /var/adm/fillup-templates with new + %_fillupdir macro (boo#1069468) + +------------------------------------------------------------------- +Thu Nov 23 10:46:29 UTC 2017 - sndirsch@suse.com + +- xdm.tar.bz2: Fix Xstartup, that couldn't handle env DISPLAY=(null) + (bsc#1068016, patch by xwang@suse.com) + +------------------------------------------------------------------- +Fri Oct 27 12:53:19 UTC 2017 - msrb@suse.com + +- Use %config(noreplace) for /etc/pam.d/* files. The configuration + files from pam package use the same policy. (bnc#1065399) + +------------------------------------------------------------------- +Wed Oct 18 15:01:24 UTC 2017 - sndirsch@suse.com + +- reintroduced /etc/X11/xdm/keytable script and the hook-up in + /usr/lib/X11/display-manager to setup X11 keymaps, since YaST + is not able to use localectl already during installation due to + dbus and appropriate systemd services not running :-( + (bsc#1046436) + +------------------------------------------------------------------- +Thu Oct 12 10:08:28 UTC 2017 - dimstar@opensuse.org + +- Have update-alternatives handle Xinit's integration of the + displaymanager, replacing /etc/sysconfig/displaymanager. +- Add a dummy entry for 'console' - which is special-cased in the + display-manager script to 'exit early'. In order for it to become + an option for update-alternatives, the target needs to exist. +- Update /usr/lib/X11/display-manager to get the + default-displaymanager from the update-alternative setting + instead of reading it from /etc/sysconfig/displaymanager. +- Remove DISPLAYMANAGER from displaymanager.sysconfig template. +- Add xdm-with-update-alternative.patch so the needed changes can + be applied for suse_version >= 1330 only, not breaking Leap 42.x. +- All that together solves boo#1053863. + +------------------------------------------------------------------- +Tue Jul 25 09:58:56 UTC 2017 - sndirsch@suse.com + +- fix usage of readlink in Xsession (boo#1050328) + +------------------------------------------------------------------- +Mon Jul 24 14:21:45 UTC 2017 - sndirsch@suse.com + +- %post + * make previous change in /etc/sysconfig/displaymanager instead + of /var/adm/fillup-templates/sysconfig.displaymanager + +------------------------------------------------------------------- +Mon Jul 24 13:43:35 UTC 2017 - sndirsch@suse.com + +- %post + * Do no try to start Xserver on platforms which may ship without + graphics card (bsc#1039497) + +------------------------------------------------------------------- +Mon Feb 6 13:20:21 UTC 2017 - sndirsch@suse.com + +- no longer try to configure Linux console and X11 keymaps + according to setting in /etc/vconsole.conf; this needs to be done + via localectl by YaST itself now; /etc/X11/xdm/keytable removed + and no longer invoked by /usr/lib/X11/display-manager (bnc#1023211) + +------------------------------------------------------------------- +Wed Jan 4 10:16:58 UTC 2017 - sndirsch@suse.com + +- remove DISPLAYMANAGER_SHUTDOWN from sysconfig settings + (bnc#1018045) + +------------------------------------------------------------------- +Mon Dec 5 08:38:49 UTC 2016 - werner@suse.de + +- Be sure that display managers will be started *after* systemd's + login manager (boo#1013200) + +------------------------------------------------------------------- +Tue Aug 23 11:51:55 UTC 2016 - eich@suse.com + +- spec-file: + Move '%fillup_only -n displaymanager' into %else + clause of test for initV/systemd as this is only + required for systemd. + +------------------------------------------------------------------- +Mon Jun 20 16:45:23 UTC 2016 - eich@suse.com + +- Change 'Supplements: xdm' to 'Enhances: xdm' + to accomodate the Gnome community (boo#981372). + +------------------------------------------------------------------- +Fri Jun 03 13:49:07 UTC 2016 - pjanouch@suse.de + +- spec-cleaner cleanups + +------------------------------------------------------------------- +Fri Jun 03 13:48:56 UTC 2016 - eich@suse.com + +- xdm.tar.bz2: + sys.xsession - factor out scriptlets to add services + to start in the context of a desktop session. These + scriptlets sould be shipped with their respective + services, not with xdm. + Check etc/X11/sdm/scripts/xsession-sriptlets.HOWTO for + further details (boo#972787). + +------------------------------------------------------------------- +Wed May 25 10:44:56 UTC 2016 - werner@suse.de + +- Simplify dbus detection to support all kind of (boo#980521) +- Avoid option --write-env-file for newer gpg (boo#972787) + +------------------------------------------------------------------- +Fri May 6 21:14:31 UTC 2016 - eich@suse.com + +- Make SUSEconfig handler for DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN + robust against changes to the default setting of -listen/-nolisten tcp + (boo#978262). + +------------------------------------------------------------------- +Wed May 4 12:55:38 UTC 2016 - eich@suse.com + +- Prevent xdm.service from being built. We've got display-manager.service + instead (bsc#978458). + +------------------------------------------------------------------- +Wed Mar 30 13:42:53 UTC 2016 - eich@suse.com + +- xsession.desktop file: + * created xsession sub-package for this file. + * changed descriptive message to "User/System Default" + (boo#971852). + +------------------------------------------------------------------- +Wed Mar 30 13:40:00 UTC 2016 - eich@suse.com + +- xdm.tar.bz: + Fixed Xsession script to cull the locale form the arguments before + passing them on (boo#973045). + +------------------------------------------------------------------- +Thu Mar 3 15:31:51 UTC 2016 - eich@suse.com + +- After boo#968405 got fixed in /etc/rpm/macros.systemd, resurrect the old + behavior of %postun (boo#968405). + +------------------------------------------------------------------- +Sat Feb 27 11:53:42 UTC 2016 - eich@suse.com + +- xdm.tar.bz: + * /etc/X11/xdm/sys.xsession: + fix regression from fix for boo#967002 (boo#968172). + * /etc/X11/xdm/Xsession: + + Add comments for documentation + + Fix semantics + + Don't use $HOME/.xinitrc as session script. Let sys.xession + handle this. + + Make argument parser more robust: + add parse error detection. + * Add an 'xsession' desktop file: this should offer a session + where the $HOME/.xsession is used (boo#968631). + +------------------------------------------------------------------- +Fri Feb 26 12:46:53 UTC 2016 - eich@suse.com + +- Remove %service_del_postun display-manager.service + from %postun macro (boo#968405). + +------------------------------------------------------------------- +Wed Feb 17 11:16:30 UTC 2016 - werner@suse.de + +- Touch /etc/X11/xdm/sys.xsession for boo#967002 that is simply + add attachment #66582 by using GNUPGHOME variable. + +------------------------------------------------------------------- +Wed Feb 17 09:20:19 UTC 2016 - eich@suse.com + +- xdm.tar.bz2: + * Test for the presence of $HOME/.gnupg/gpg-agent.conf before + attemting to access it (boo#967002). +- xdm.spec: + * Fix %suse_version checking to work on Leap 42.1 as well. + +------------------------------------------------------------------- +Wed Nov 4 12:51:56 UTC 2015 - eich@suse.com + +- rename SuSEconfig.xdm + * /etc/X11/xdm/SuSEconfig.xdm -> /etc/X11/xdm/SUSEconfig.xdm + * created a symlink for the old file (bsc#953563). + +------------------------------------------------------------------- +Fri Oct 16 08:16:11 UTC 2015 - dimstar@opensuse.org + +- Fix the same TakeDevice racing bug also in /etc/init.d/xdm, which + is an almost exact copy of /usr/lib/X11/display-manager. +- Set the installation of the systemd based service again to be + valid on Leap (thus, in fact, not really caring for the bug in + /etc/init.d/xdm). + +------------------------------------------------------------------- +Wed Oct 7 07:25:37 UTC 2015 - dimstar@opensuse.org + +- Fix display-manager wrapper: only call TakeDevices in case $DM + actually fails to start. This was the reason why gdm often failed + to start with permission denied (depending on timing, gdm might + fired up X before TakeDevices passed, X would receive the tty7 + by means of logind and TakeDevices reset the permissions again) + (boo#939594). + +------------------------------------------------------------------- +Mon Sep 14 11:48:31 UTC 2015 - dimstar@opensuse.org + +- display-manager.service: require and conflict getty@tty7.service: + this is copied from gdm.service and is hopefully helping with + the race condition, where X is often not able to start up on + VT7 due to missing permissions. (boo#939594) + +------------------------------------------------------------------- +Tue Aug 4 10:00:09 UTC 2015 - eich@suse.com + +- Replaced font resources for login screen with font face names. + Since xdm is now built with Xft support, it uses face names for + client side rendered fonts. The settings for screen widths >= 800 + are the xdm defaults. For smaller screens the sizes are reduced + so they fit the screen better (bsc#940263). + +------------------------------------------------------------------- +Sat Aug 1 08:04:15 UTC 2015 - eich@suse.com + +- Avoid confusion of user: add '-' to font names in etc/X11/xdm/Xresources. + This is not required for the font names used in the file but some others. + (bsc#940263). + +------------------------------------------------------------------- +Fri Jul 31 10:35:19 UTC 2015 - sndirsch@suse.com + +- display-manager: don't try to kill DM if it's no longer running + (bsc#939843) + +------------------------------------------------------------------- +Wed Jul 29 12:48:28 UTC 2015 - werner@suse.de + +- Add some used programs to the requirement of xdm +- Use xli aka xsetbg if xpmroot is not available (hint from + jemoreno@novell.com) + +------------------------------------------------------------------- +Mon Jul 20 12:52:59 UTC 2015 - sndirsch@suse.com + +- rename README.SuSE file to README.SUSE (bnc#938737, FATE#316521) + +------------------------------------------------------------------- +Tue Mar 17 13:12:32 UTC 2015 - dvlaeev@suse.com + +- We do have graphics on Power with KVM, so remove ppc64le from + changing displaymanager sysconfig + +------------------------------------------------------------------- +Thu Jan 29 14:54:47 UTC 2015 - sndirsch@suse.com + +- /etc/X11/xdm/keytable" + * improved warning message, when mapping for console keyboard + doesn't exist (bnc#914880) + +------------------------------------------------------------------- +Sun Jan 18 11:37:29 UTC 2015 - opensuse.lietuviu.kalba@gmail.com + +- Don't truncate filenames of lt.baltic.map.gz, lt.std.map.gz, + lt.l4.map.gz and defkeymap_V1.0 too much (bnc#897803). + +------------------------------------------------------------------- +Wed Dec 17 20:38:54 UTC 2014 - dimstar@opensuse.org + +- On openSUSE > 13.2, xterm has been split into xterm-bin for the + program and xterm for the app launcher. We only need the program, + so conditionall Require xterm-bin. + +------------------------------------------------------------------- +Mon Dec 15 18:37:00 UTC 2014 - Led + +- fix bashisms in /etc/X11/xdm/* scripts + +------------------------------------------------------------------- +Wed Dec 3 09:59:41 UTC 2014 - gber@opensuse.org + +- unset TMPDIR before executing the final user scripts/shell + (boo#907041) +- start a login shell when using lksh/mksh + +------------------------------------------------------------------- +Wed Oct 8 10:15:03 UTC 2014 - werner@suse.de + +- Use the option (--)enable-ssh-support of the gpg-agent if the + user has configured this (boo#899647) + +------------------------------------------------------------------- +Thu Oct 2 09:37:54 UTC 2014 - sndirsch@suse.com + +- sysconfig.displaymanager/DM list: added lightdm,sddm; removed + kdm3,kdm4 (bnc#898876) + +------------------------------------------------------------------- +Tue Aug 5 14:48:30 UTC 2014 - sndirsch@suse.com + +- replaced 'Also=' by 'Alias=' in display-manager.service + (bnc#890413) +- make sure not to restart DM on package update; remove confusing + comment about no longer existing %%stop_on_removal, + %restart_on_update macros from specfile (bnc#886641) + +------------------------------------------------------------------- +Tue Jul 15 14:32:21 UTC 2014 - sndirsch@suse.com + +- udpate to release 1.1.11 +- refreshed xdm-tolerant-hostname-changes.diff, xdm-consolekit.diff +- supersedes the following patches: + U_xdm_config-AC_LIBTOOL_DLOPEN-is-required-for-dynamic-lin.patch, + U_xdm_Fix-missing-linking-dependency-on-ldl.patch, + U_xdm_config-use-libtool-export-dynamic-option-for-reverse.patch + +------------------------------------------------------------------- +Wed May 28 16:00:23 UTC 2014 - fcrozat@suse.com + +- Use KillMode=process for systemd service, this ensures Xorg won't + receive SIGKILL while switching to runlevel 3 [bnc#871808]. +- Add "Also=xdm.service" to display-manager.service to better + handle migration. + +------------------------------------------------------------------- +Fri May 23 13:01:21 UTC 2014 - jsegitz@novell.com + +- added necessary macros for systemd files + +------------------------------------------------------------------- +Thu May 15 11:01:55 UTC 2014 - arichardson.kde@gmail.com + +- Don't run dbus-launch if the socket /run/user//bus exists, since + this means that dbus is already handled by systemd + +------------------------------------------------------------------- +Tue May 13 05:31:18 UTC 2014 - coolo@suse.com + +- just don't "package" pid file. It's called xdm.pid, so it's pretty + obvious what package it is from +- take the pid file out of the xdm.tar + +------------------------------------------------------------------- +Mon Mar 24 12:01:16 UTC 2014 - sndirsch@suse.com + +- DISPLAYMANAGER_STARTS_XSERVER needs to be set to "no" on s390x + and ppc64le (bnc#869267) + +------------------------------------------------------------------- +Fri Mar 21 10:50:02 UTC 2014 - werner@suse.de + +- Move forward to systemd, that is use a real service unit file (bnc#869260) + +------------------------------------------------------------------- +Wed Mar 5 08:40:58 UTC 2014 - cxiong@suse.com + +- Add support for in-line environment variable settings + + Handling case like: + Exec=env GNOME_SHELL_SESSION_MODE=classic gnome --session gnome-classic + + For now, this is only needed to fix session management issue as in bnc#863709. + +------------------------------------------------------------------- +Wed Mar 5 08:36:01 UTC 2014 - cxiong@suse.com + +- fix two array iteration bug in etc/X11/xdm/Xsession (xdm.tar.bz2) + + 1. "${#argv[@]}" is just the size of the array instead of all the elements, + i.e. "${argv[@]}", no sharp "#" sign. + + 2. index of array starting from 0, so "argc" should be increased at the end + of iteration loop. (bnc#866874) + +------------------------------------------------------------------- +Wed Feb 19 10:33:21 UTC 2014 - sndirsch@suse.com + +- /etc/X11/xdm/keytable: make use of systemd's localectl to + generate Xserver's configuration snippet for keyboard layout; + rely on systemd's kbd --> X keyboard mapping; the old mapping + table originating from SaX2 is no longer being used (bnc#861819) + +------------------------------------------------------------------- +Tue Feb 11 09:18:13 UTC 2014 - dliang@suse.com + +- Change the default /etc/X11/xdm/Xsession, (fate#316129) + don't save standard output information to ~/.xsession-errors + Modify the xdm.tar.bz2 + +------------------------------------------------------------------- +Tue Feb 4 21:06:34 UTC 2014 - coolo@suse.com + +- /etc/X11/xdm/RunChooser calls pidof, so require it + +------------------------------------------------------------------- +Wed Jan 8 14:58:43 UTC 2014 - lnussel@suse.de + +- don't set twm as hardcoded default if DEFAULT_WM is empty, rely on + the detection in xinitrc.common instead + +------------------------------------------------------------------- +Mon Dec 2 11:08:39 UTC 2013 - sndirsch@suse.com + +- removed u_xdm-sig11-bug-598422.diff + * problem has been resolved differently + +------------------------------------------------------------------- +Fri Oct 18 09:34:08 CEST 2013 - ferenc.gm@gmail.com + +- Added support for qiv in /etc/X11/xdm/Xsetup + +------------------------------------------------------------------- +Mon Sep 16 19:17:39 UTC 2013 - sndirsch@suse.com + +- fixed typo in /etc/X11/xdm/Xsetup + +------------------------------------------------------------------- +Mon Sep 16 11:38:10 UTC 2013 - sndirsch@suse.com + +- fixed loading of .xkb files (bnc#840408) + +------------------------------------------------------------------- +Tue Aug 13 16:35:01 UTC 2013 - sndirsch@suse.com + +- adjusted u_xdm-sig11-bug-598422.diff for openSUSE 12.2 build + (which still applies xdm-consolekit.diff) + +------------------------------------------------------------------- +Mon Jul 29 09:25:40 UTC 2013 - sndirsch@suse.com + +- u_xdm-sig11-bug-598422.diff + * fix Sig11 in xdm when pressing Ctr-c (bnc#598422, bnc#831870) + +------------------------------------------------------------------- +Fri Jun 7 10:25:15 UTC 2013 - werner@suse.de + +- Add some GNOME specifiv magics to Xsession to allow that ~/.i18n + is always sourced (bnc#567324) + +------------------------------------------------------------------- +Fri May 24 12:59:46 UTC 2013 - werner@suse.de + +- Some shells do not know about HOSTNAME variable and print error + messages therefore export this variable +- Make check for dbus smart, that is check if threre is already + an active session and use this if possible +- Be aware that one user may use several X sessions in parallel + on the same system as well as on several systems with HOME on + an NFS based share. That is do not override ~/.xsession-errors + +------------------------------------------------------------------- +Thu Apr 11 09:55:57 UTC 2013 - sndirsch@suse.com + +- do not use '-k' option for checkproc for ssh-agent since + /proc//exe link is apparently not readable by the user + used for that program (bnc#812783) + +------------------------------------------------------------------- +Fri Mar 1 12:44:10 UTC 2013 - fcrozat@suse.com + +- Add systemd-user-sessions to xdm initscript X-Should-Start, to + ensure user login is available when xdm is started. + +------------------------------------------------------------------- +Fri Mar 1 11:31:52 UTC 2013 - sndirsch@suse.com + +- /etc/X11/xdm/SuSEconfig.xdm: copied required function from old + /lib/YaST/SuSEconfig.functions, which no longer exists since + openSUSE 12.3 (bnc#806738) + +------------------------------------------------------------------- +Tue Jan 8 11:01:51 UTC 2013 - sndirsch@suse.com + +- /etc/X11/xdm/Keyboard.map: + * added missing mac-dvorak entry (bnc#796170) + +------------------------------------------------------------------- +Fri Dec 7 13:03:15 UTC 2012 - werner@suse.de + +- Be aware the mktemp(1) without XXXXXX will do exactly nothing, + therefore use mv(1) which uses rename(2) on the same file system + to use the files created by mktemp(1) to the log output file + +------------------------------------------------------------------- +Mon Nov 19 17:31:17 CET 2012 - fcrozat@suse.com + +- Add display-manager as provides to xdm initscript, to comply with + systemd defaults. + +------------------------------------------------------------------- +Thu Nov 15 20:21:24 UTC 2012 - tittiatcoke@gmail.com + +- Added a switch to enable building against systemd-logind and + to remove the dependency on ConsoleKit +- Enabled the systemd switch already for Factory + +------------------------------------------------------------------- +Tue Sep 25 10:21:24 UTC 2012 - werner@suse.de + +- Make failsafe work after a failed exec bash builtin +- Add dbus-launch and ck-launch-session to final session command + line for case of using xdm + +------------------------------------------------------------------- +Thu Sep 13 13:06:38 UTC 2012 - sndirsch@suse.com + +- add dependency on xtrans, otherwise TCP is not supported for + xdmcp (bnc#780122) + +------------------------------------------------------------------- +Thu Aug 16 17:41:12 CEST 2012 - msrb@suse.cz + +- separate *.fallback displaymanager files from xdm.tar.bz2 into + xdm-fallbacks.tar.bz2 and build only suse version < 1210. + (bnc#714003) + +------------------------------------------------------------------- +Thu Aug 16 15:15:12 CEST 2012 - msrb@suse.cz + +- /etc/init.d/xdm: add plymouth_quit function, use it in xdm + displaymanager file (bnc#775548) + +------------------------------------------------------------------- +Tue Aug 7 09:11:51 UTC 2012 - sndirsch@suse.com + +- /etc/init.d/xdm: overwrite displaymanager's PIDFILE symlink if + neccessary (bnc#774555) + +------------------------------------------------------------------- +Sat Jun 30 21:29:37 CEST 2012 - tiwai@suse.de + +- avoid plymouth quit for kdm and gdm (bnc#762909) + +------------------------------------------------------------------- +Fri Jun 29 16:23:12 CEST 2012 - tiwai@suse.de + +- remove --retain-splash option from plymouth quit (bnc#769209) + +------------------------------------------------------------------- +Fri Jun 29 14:11:47 UTC 2012 - sndirsch@suse.com + +- /etc/init.d/xdm + * quit plymouth properly before starting displaymanager + (bnc#769209) + +------------------------------------------------------------------- +Mon Jun 18 13:38:34 UTC 2012 - werner@suse.de + +- Skip LANG argument from command line of session managers (bnc#661946) + +------------------------------------------------------------------- +Thu May 10 13:58:38 UTC 2012 - sndirsch@suse.com + +- /etc/pam.d/xdm-np: add session require to pam_loginuid.so in + order to fix running commands via sudo (bnc #746704) + +------------------------------------------------------------------- +Fri Apr 13 08:46:08 UTC 2012 - vuntz@opensuse.org + +- Split xdm from xorg-x11. Initial version: 1.1.10. + diff --git a/xdm.spec b/xdm.spec new file mode 100644 index 0000000..ac235e3 --- /dev/null +++ b/xdm.spec @@ -0,0 +1,285 @@ +# +# spec file for package xdm +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%define _dminitdir %{_prefix}/lib/X11/displaymanagers +%if 0%{?suse_version} >= 1550 +%define UsrEtcMove 1 +%endif +#Compat macro for new _fillupdir macro introduced in Nov 2017 +%if ! %{defined _fillupdir} + %define _fillupdir %{_localstatedir}/adm/fillup-templates +%endif +Name: xdm +Version: 1.1.16 +Release: 0 +Summary: X Display Manager +License: MIT +Group: System/X11/Utilities +URL: https://xorg.freedesktop.org/ +Source0: http://xorg.freedesktop.org/releases/individual/app/%{name}-%{version}.tar.xz +Source1: xdm.tar.bz2 +Source2: HOWTO.xdm +Source4: display-manager.service +Source5: xsession.desktop +Patch1: xdm-tolerant-hostname-changes.diff +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 +BuildRequires: systemd-rpm-macros +BuildRequires: pkgconfig(x11) +BuildRequires: pkgconfig(xau) +BuildRequires: pkgconfig(xaw7) +BuildRequires: pkgconfig(xdmcp) +BuildRequires: pkgconfig(xext) +BuildRequires: pkgconfig(xft) +BuildRequires: pkgconfig(xinerama) +BuildRequires: pkgconfig(xmu) +BuildRequires: pkgconfig(xorg-macros) >= 1.4 +BuildRequires: pkgconfig(xpm) +BuildRequires: pkgconfig(xt) +BuildRequires: pkgconfig(xtrans) +Requires: %fillup_prereq +Requires: /sbin/startproc +Requires: cpp +Requires: logrotate +Requires: sessreg +Requires: xconsole +Requires: xinit +Requires: xli +Requires: xmessage +Requires: xrdb +Requires: xset +Requires: xsetroot +Requires: xterm-bin +Recommends: dbus-1-x11 +Recommends: xdmbgrd +# This was part of the xorg-x11 package up to version 7.6 +Conflicts: xorg-x11 <= 7.6 +%{?systemd_requires} +%if 0%{?suse_version} >= 1550 +Requires: %{_bindir}/pidof +%else +Requires: /sbin/pidof +%endif + +%description +Xdm manages a collection of X displays, which may be on the local host +or remote servers. + +%package xsession +Summary: User/System Xsession Desktop File +Group: System/X11/Utilities +Requires: xdm +Enhances: xdm + +%description xsession +This package contains the System desktop file which will cause +the execution of a user provided $HOME/.xsession script or pick +the system wide DM default set in %{_sysconfdir}/sysconfig/displaymanager. + +%prep +%setup -q +cp %{SOURCE2} . +pushd xdm +%patch -P 1 -p1 +popd +# reverse apply (boo#1130321) +%patch -P 3 -p1 -R + +%build +# needed for patch0 +autoreconf -fi +%configure \ + --disable-static \ + --with-pam \ + --with-xdmconfigdir=%{_sysconfdir}/X11/xdm \ + --with-xdmscriptdir=%{_sysconfdir}/X11/xdm \ + --with-systemdsystemunitdir=no +%make_build + +%install +%make_install +# Not used anymore by SuSE +rm %{buildroot}%{_sysconfdir}/X11/xdm/{GiveConsole,TakeConsole,Xsetup_0} + +pushd %{buildroot} +# SuSE default XDM configuration +tar xf %{SOURCE1} +%if 0%{?UsrEtcMove} +patch -p0 < %{PATCH2} +mkdir -p usr%{_sysconfdir}/X11/xdm +mv etc/X11/xdm/* usr%{_sysconfdir}/X11/xdm +# Edited by SUSEConfig.xdm, package a copy +for i in xdm-config Xservers; do + cp usr%{_sysconfdir}/X11/xdm/$i etc/X11/xdm/$i +done +mkdir -p ./%{_pam_vendordir} +rm etc/pam.d/{xdm,xdm-np}.sle15 +mv etc/pam.d/* ./%{_pam_vendordir}/ +%else +patch -p0 < %{PATCH4} +rm etc/pam.d/{xdm,xdm-np} +mv etc/pam.d/{xdm.sle15,xdm} +mv etc/pam.d/{xdm-np.sle15,xdm-np} +%endif +%if "%{_fillupdir}" != "%{_localstatedir}/adm/fillup-templates" + mkdir -p %{buildroot}$(dirname %{_fillupdir}) + mv %{buildroot}%{_localstatedir}/adm/fillup-templates \ + %{buildroot}$(dirname %{_fillupdir}) +%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" \ + %{buildroot}%{_fillupdir}/sysconfig.displaymanager +%endif +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) +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 +rm -f %{buildroot}%{_sbindir}/rcxdm +install -D %{SOURCE4} -m 0444 %{buildroot}%{_unitdir}/display-manager.service +ln -sf service %{buildroot}%{_sbindir}/rcdisplay-manager +cat > %{buildroot}%{_sbindir}/rcxdm <<-'EOF' + #!/bin/bash + exec -a rcdisplay-manager %{_sbindir}/rcdisplay-manager ${1+"$@"} + EOF +chmod 0755 %{buildroot}%{_sbindir}/rcxdm +# 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}%{_prefix}/lib/X11/displaymanagers/default-displaymanager +# Inject a dummy 'console' selection - which used to be choice in /etc/sysconfig/displaymanager +touch %{buildroot}%{_prefix}/lib/X11/displaymanagers/console + +%if 0%{?UsrEtcMove} +mkdir -p %{buildroot}%{_distconfdir}/logrotate.d +mv %{buildroot}%{_sysconfdir}/logrotate.d/xdm %{buildroot}%{_distconfdir}/logrotate.d/xdm +%endif + +%post +# enable Xorg on s390x with virtio (Redhat PCI ID 1af4:1050) on installation (but not upgrade) +if [ $1 -eq 1 ] ; then + if [ "$(arch)" = "s390x" ]; then + if [ -d /dev/dri ]; then + sed -i -e "s+DISPLAYMANAGER_REMOTE_ACCESS=.*+DISPLAYMANAGER_REMOTE_ACCESS=\"no\"+g" \ + -e "s+DISPLAYMANAGER_STARTS_XSERVER=.*+DISPLAYMANAGER_STARTS_XSERVER=\"yes\"+g" \ + %{_fillupdir}//sysconfig.displaymanager + fi + fi +fi +%service_add_post display-manager.service +%{fillup_only -n displaymanager} +%{_sbindir}/update-alternatives --install %{_prefix}/lib/X11/displaymanagers/default-displaymanager \ + default-displaymanager %{_prefix}/lib/X11/displaymanagers/console 5 +%{_sbindir}/update-alternatives --install %{_prefix}/lib/X11/displaymanagers/default-displaymanager \ + default-displaymanager %{_prefix}/lib/X11/displaymanagers/xdm 10 +# get rid of DISPLAYMANAGER in /etc/sysconfig/displaymanager (boo#1125040) +sed -i 's/DISPLAYMANAGER=.*//g' %{_sysconfdir}/sysconfig/displaymanager +%firewalld_reload + +%pre +%service_add_pre display-manager.service + +%postun +# Do not restart DM on update (bnc#886641) +%if 0%{?suse_version} >= 1550 +%service_del_postun_without_restart display-manager.service +%else +%service_del_postun -n display-manager.service +%endif +[ -f %{_prefix}/lib/X11/displaymanagers/console ] || %{_sbindir}/update-alternatives \ + --remove default-displaymanager %{_prefix}/lib/X11/displaymanagers/console +[ -f %{_prefix}/lib/X11/displaymanagers/xdm ] || %{_sbindir}/update-alternatives \ + --remove default-displaymanager %{_prefix}/lib/X11/displaymanagers/xdm + +%preun +%service_del_preun display-manager.service + +%files +%license COPYING +%doc AUTHORS ChangeLog README.md +%doc HOWTO.xdm +%dir %{_dminitdir} +%{_dminitdir}/xdm +%{_dminitdir}/console +%{_prefix}/lib/X11/displaymanagers/default-displaymanager +%ghost %{_sysconfdir}/alternatives/default-displaymanager +%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 +%endif +%dir %{_prefix}/lib/firewalld +%dir %{_prefix}/lib/firewalld/services +%{_prefix}/lib/firewalld/services/x11.xml +%{_unitdir}/display-manager.service +%{_prefix}/lib/X11/display-manager +%if 0%{?UsrEtcMove} +%{_distconfdir}/logrotate.d/xdm +%else +%config %{_sysconfdir}/logrotate.d/xdm +%endif +%if 0%{?UsrEtcMove} +%{_pam_vendordir}/xdm +%{_pam_vendordir}/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/ +%ghost %{_localstatedir}/log/xdm.errors +%{_bindir}/chooser +%{_bindir}/xdm +%{_sbindir}/rcxdm +%{_sbindir}/rcdisplay-manager +%{_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} +%ifnarch %{ix86} +%dir %{_libdir}/X11 +%endif + +%files xsession +%{_datadir}/xsessions/xsession.desktop + +%changelog diff --git a/xdm.tar.bz2 b/xdm.tar.bz2 new file mode 100644 index 0000000..1000496 --- /dev/null +++ b/xdm.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba5513eaacd8973266eee63e44471cbfad72b747e03ed7f799d9b2815cc4c761 +size 21324 diff --git a/xinit-UsrEtcMove.patch b/xinit-UsrEtcMove.patch new file mode 100644 index 0000000..21a4e19 --- /dev/null +++ b/xinit-UsrEtcMove.patch @@ -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 diff --git a/xsession.desktop b/xsession.desktop new file mode 100644 index 0000000..cfae16e --- /dev/null +++ b/xsession.desktop @@ -0,0 +1,5 @@ +[Desktop Entry] +Name=User/System Default +Type=Xsession +Encoding=UTF-8 +Exec=default