- 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
This commit is contained in:
commit
d5d5915e45
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -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
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.osc
|
36
HOWTO.xdm
Normal file
36
HOWTO.xdm
Normal file
@ -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 <DM> 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.
|
||||||
|
|
||||||
|
<DM>_vars() {
|
||||||
|
case $1 in
|
||||||
|
<thisdm>)
|
||||||
|
DISPLAYMANAGER=/usr/bin/<thisdm>
|
||||||
|
STARTPROC=<DM>_start # optional
|
||||||
|
RELOADPROC=<DM>_reload # optional
|
||||||
|
PROBEPROC=<DM>_probe # optional
|
||||||
|
....
|
||||||
|
}
|
18
display-manager.service
Normal file
18
display-manager.service
Normal file
@ -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
|
156
n_Allow-the-greeter-to-set-the-input-fields-bg-color.patch
Normal file
156
n_Allow-the-greeter-to-set-the-input-fields-bg-color.patch
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
From d0e32620bfb3bc8803bffcec3f0f3b1db6440d51 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Matthieu Herrb <matthieu@herrb.eu>
|
||||||
|
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 <matthieu@herrb.eu>
|
||||||
|
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
---
|
||||||
|
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
|
||||||
|
|
3
xdm-1.1.16.tar.xz
Normal file
3
xdm-1.1.16.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:bcf2209881e95708363777b282fedb1c1055790f38046fa46beff2f1d087679c
|
||||||
|
size 420072
|
348
xdm-tarball.patch
Normal file
348
xdm-tarball.patch
Normal file
@ -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
|
117
xdm-tolerant-hostname-changes.diff
Normal file
117
xdm-tolerant-hostname-changes.diff
Normal file
@ -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;
|
1056
xdm.changes
Normal file
1056
xdm.changes
Normal file
File diff suppressed because it is too large
Load Diff
285
xdm.spec
Normal file
285
xdm.spec
Normal file
@ -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
|
BIN
xdm.tar.bz2
(Stored with Git LFS)
Normal file
BIN
xdm.tar.bz2
(Stored with Git LFS)
Normal file
Binary file not shown.
70
xinit-UsrEtcMove.patch
Normal file
70
xinit-UsrEtcMove.patch
Normal 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
|
5
xsession.desktop
Normal file
5
xsession.desktop
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Name=User/System Default
|
||||||
|
Type=Xsession
|
||||||
|
Encoding=UTF-8
|
||||||
|
Exec=default
|
Loading…
Reference in New Issue
Block a user