Most of the time, I skim through the packages that will be updated.
Today, I observed that XDM in that list. But as I use SDDM - as everybody by default with KDE desktop install - I thought
zypper rm -u xdm
should be a reasonable move here.
But no: SDDM depends on XDM.
Quick search shows that neither Debian’s SDDM package, nor Fedora’s one depend on XDM.
LightDM doesn’t depend on XDM either, at least in Tumbleweed.
So, what is going on here? Sloppy packaging. or some special circumstances (and its sloppy workaround) in OpenSUSE?
Maybe it isn’t a big mistake, but I have pathological aversion against unneeded deps.
I don’t think sddm “really” does depend on it, but xorg seems like it might. I might be wrong though.
moltke ~ zypper if --provides --requires xdm
The 'repo-update' repository is not up to date. You can run 'zypper refresh' as root user to update it.
Loading repository data...
Reading installed packages...
Information for xdm package:
-----------------------------
Repository : repo-oss
Name : xdm
Version : 1.1.12-16.1
Architecture : x86_64
Vendor : openSUSE
Installation size : 535.9 KiB
Installed : Yes (automatically)
Status : updated
Source package : xdm-1.1.12-16.1.src
Summary : X Display Manager
Description :
Xdm manages a collection of X displays, which may be on the local host
or remote servers.
Provides : [4]
libXdmGreet.so()(64bit)
config(xdm) = 1.1.12-16.1
xdm = 1.1.12-16.1
xdm(x86-64) = 1.1.12-16.1
Requires : [36]
libc.so.6(GLIBC_2.33)(64bit)
libdl.so.2()(64bit)
/bin/bash
libdl.so.2(GLIBC_2.2.5)(64bit)
libX11.so.6()(64bit)
/usr/bin/touch
/usr/bin/mkdir
fillup
libXext.so.6()(64bit)
logrotate
libcrypt.so.1()(64bit)
libcrypt.so.1(XCRYPT_2.0)(64bit)
libpam.so.0()(64bit)
libpam.so.0(LIBPAM_1.0)(64bit)
libXt.so.6()(64bit)
libXinerama.so.1()(64bit)
libXrender.so.1()(64bit)
libXmu.so.6()(64bit)
libXaw.so.7()(64bit)
libXpm.so.so.4()(64bit)
libXft.so.so.2()(64bit)
libXau.so.6()(64bit)
xterm-bin
xrdb
xsetroot
xinit
xset
libXdmcp.so.6()(64bit)
xli
/usr/bin/pidof
sessreg
xmessage
xconsole
/sbin/startproc
/bin/sh
systemd
However
moltke ~ zypper if --provides --requires sddm
The 'repo-update' repository is not up to date. You can run 'zypper refresh' as root user to update it.
Loading repository data...
Reading installed packages...
Information for package sddm:
------------------------------
Repository : repo-oss
Name : sddm
Version : 0.19.0-2.2
Architecture : x86_64
Vendor : openSUSE
Installation size : 4.5 MiB
Installed : Yes (automatically)
Status : updated
Source package : sddm-0.19.0-2.2.src
Summary : QML-based display manager
Description :
SDDM is a display manager for X11. It uses technologies like QtQuick,
which in turn gives the designer the ability to create animated user
interfaces.
It provides : [5]
config(sddm) = 0.19.0-2.2
qt5qmlimport(SddmComponents.2) = 0
sddm = 0.19.0-2.2
sddm-lang = 0.19.0
sddm(x86-64) = 0.19.0-2.2
Requires : [42]
libc.so.6(GLIBC_2.14)(64bit)
libstdc++.so.6()(64bit)
libstdc++.so.6(GLIBCXX_3.4)(64bit)
libstdc++.so.6(CXXABI_1.3)(64bit)
libgcc_s.so.1()(64bit)
libgcc_s.so.1(GCC_3.0)(64bit)
libgcc_s.so.1(GCC_3.3.1)(64bit)
libstdc++.so.6(GLIBCXX_3.4.21)(64bit)
libstdc++.so.6(GLIBCXX_3.4.9)(64bit)
libQt5Core.so.5()(64bit)
libQt5Core.so.5(Qt_5)(64bit)
libQt5Core.so.5(Qt_5.15)(64bit)
libQt5Gui.so.5()(64bit)
libQt5Gui.so.5(Qt_5)(64bit)
libstdc++.so.6(CXXABI_1.3.8)(64bit)
libstdc++.so.6(GLIBCXX_3.4.14)(64bit)
libstdc++.so.6(GLIBCXX_3.4.18)(64bit)
libQt5Network.so.5()(64bit)
libQt5Network.so.5(Qt_5)(64bit)
libQt5DBus.so.5()(64bit)
libQt5DBus.so.5(Qt_5)(64bit)
libQt5Qml.so.5()(64bit)
libQt5Qml.so.so.5(Qt_5)(64bit)
libxcb.so.1()(64bit)
libsystemd.so.0()(64bit)
libQt5Quick.so.so.5()(64bit)
libQt5Quick.so.so.5(Qt_5)(64bit)
libsystemd.so.0(LIBSYSTEMD_209)(64bit)
libpam.so.0()(64bit)
libpam.so.0(LIBPAM_1.0)(64bit)
libXau.so.6()(64bit)
libxcb-xkb.so.so.1()(64bit)
**xdm**
qt5qmlimport(QtQuick.2) >= 0
sddm-branding = 0.19.0
qt5qmlimport(SddmComponents.2) >= 0
/bin/sh
systemd
diffutils
/usr/sbin/groupadd
/usr/sbin/useradd
/usr/bin/getent
Well, xdm doesn’t require nor provide sddm, however, xorg-x11-essentials does require xdm
moltke ~ zypper if --provides --requires xdm
The 'repo-update' repository is not up to date. You can run 'zypper refresh' as root user to update it.
Loading repository data...
Reading installed packages...
Information for xdm package:
-----------------------------
Repository : repo-oss
Name : xdm
Version : 1.1.12-16.1
Architecture : x86_64
Vendor : openSUSE
Installation size : 535.9 KiB
Installed : Yes (automatically)
Status : updated
Source package : xdm-1.1.12-16.1.src
Summary : X Display Manager
Description :
Xdm manages a collection of X displays, which may be on the local host
or remote servers.
Provides : [4]
libXdmGreet.so()(64bit)
config(xdm) = 1.1.12-16.1
xdm = 1.1.12-16.1
xdm(x86-64) = 1.1.12-16.1
Requires : [36]
libc.so.6(GLIBC_2.33)(64bit)
libdl.so.2()(64bit)
/bin/bash
libdl.so.2(GLIBC_2.2.5)(64bit)
libX11.so.6()(64bit)
/usr/bin/touch
/usr/bin/mkdir
fillup
libXext.so.6()(64bit)
logrotate
libcrypt.so.1()(64bit)
libcrypt.so.1(XCRYPT_2.0)(64bit)
libpam.so.0()(64bit)
libpam.so.0(LIBPAM_1.0)(64bit)
libXt.so.6()(64bit)
libXinerama.so.1()(64bit)
libXrender.so.1()(64bit)
libXmu.so.6()(64bit)
libXaw.so.7()(64bit)
libXpm.so.so.4()(64bit)
libXft.so.so.2()(64bit)
libXau.so.6()(64bit)
xterm-bin
xrdb
xsetroot
xinit
xset
libXdmcp.so.6()(64bit)
xli
/usr/bin/pidof
sessreg
xmessage
xconsole
/sbin/startproc
/bin/sh
systemd
And
zypper if --provides --requires xorg-X11-essentials
The 'repo-update' repository is not up to date. You can run 'zypper refresh' as root user to update it.
Loading repository data...
Reading installed packages...
Information for package xorg-x11-essentials:
---------------------------------------------
Repository : repo-oss
Name : xorg-x11-essentials
Version : 7.6_1-16.11
Architecture : noarch
Vendor : openSUSE
Installation size : 3.0 KiB
Installed : Yes (automatically)
Status : updated
Source package : xorg-x11-7.6_1-16.11.src
Summary : Compatibility metapackage for X.Org core applications
Description :
This package is a compatibility metapackage. It requires the
X.Org core applications packages.
Provides : xorg-x11-essentials = 7.6_1-16.11
Requires : [17]
mkfontdir
mkfontscale
xprop
**xdm**
xkbcomp
xrdb
xauth
xsetroot
xinit
xset
setxkbmap
iceauth
sessreg
xmodmap
xmessage
rgb
xconsole
However
moltke ~ zypper if --provides --requires sddm
The 'repo-update' repository is not up to date. You can run 'zypper refresh' as root user to update it.
Loading repository data...
Reading installed packages...
Information for package sddm:
------------------------------
Repository : repo-oss
Name : sddm
Version : 0.19.0-2.2
Architecture : x86_64
Vendor : openSUSE
Installation size : 4.5 MiB
Installed : Yes (automatically)
Status : updated
Source package : sddm-0.19.0-2.2.src
Summary : QML-based display manager
Description :
SDDM is a display manager for X11. It uses technologies like QtQuick,
which in turn gives the designer the ability to create animated user
interfaces.
It provides : [5]
config(sddm) = 0.19.0-2.2
qt5qmlimport(SddmComponents.2) = 0
sddm = 0.19.0-2.2
sddm-lang = 0.19.0
sddm(x86-64) = 0.19.0-2.2
Requires : [42]
libc.so.6(GLIBC_2.14)(64bit)
libstdc++.so.6()(64bit)
libstdc++.so.6(GLIBCXX_3.4)(64bit)
libstdc++.so.6(CXXABI_1.3)(64bit)
libgcc_s.so.1()(64bit)
libgcc_s.so.1(GCC_3.0)(64bit)
libgcc_s.so.1(GCC_3.3.1)(64bit)
libstdc++.so.6(GLIBCXX_3.4.21)(64bit)
libstdc++.so.6(GLIBCXX_3.4.9)(64bit)
libQt5Core.so.5()(64bit)
libQt5Core.so.5(Qt_5)(64bit)
libQt5Core.so.5(Qt_5.15)(64bit)
libQt5Gui.so.5()(64bit)
libQt5Gui.so.5(Qt_5)(64bit)
libstdc++.so.6(CXXABI_1.3.8)(64bit)
libstdc++.so.6(GLIBCXX_3.4.14)(64bit)
libstdc++.so.6(GLIBCXX_3.4.18)(64bit)
libQt5Network.so.5()(64bit)
libQt5Network.so.5(Qt_5)(64bit)
libQt5DBus.so.5()(64bit)
libQt5DBus.so.5(Qt_5)(64bit)
libQt5Qml.so.5()(64bit)
libQt5Qml.so.so.5(Qt_5)(64bit)
libxcb.so.1()(64bit)
libsystemd.so.0()(64bit)
libQt5Quick.so.so.5()(64bit)
libQt5Quick.so.so.5(Qt_5)(64bit)
libsystemd.so.0(LIBSYSTEMD_209)(64bit)
libpam.so.0()(64bit)
libpam.so.0(LIBPAM_1.0)(64bit)
libXau.so.6()(64bit)
libxcb-xkb.so.so.1()(64bit)
**xdm**
qt5qmlimport(QtQuick.2) >= 0
sddm-branding = 0.19.0
qt5qmlimport(SddmComponents.2) >= 0
/bin/sh
systemd
diffutils
/usr/sbin/groupadd
/usr/sbin/useradd
/usr/bin/getent
I think they are doing it this way to make it ease for users to change which DM they use (with “update-alternatives”). In effect, they have set it up so that XDM is the master which looks at the alternatives to decide which to use, and then falls back to XDM if nothing else is there.
graphical.target wants display-manager.service, which in turn executes /usr/lib/X11/display-manager which is part of package xdm. From /usr/lib/X11/display-manager:
DISPLAYMANAGER used to be set in /etc/sysconfig/displaymanager, but the default is now set by update-alternatives