diff --git a/.gitignore b/.gitignore index 07fd159..ecc8898 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,9 @@ /sddm-e67307e4103a8606d57a0c2fd48a378e40fcef06.tar.gz /sddm-21e965aab8d93180966bbb19788bc42bdf2baee7.tar.gz /sddm-fc24321541f6f65b7d1aac89cd82336ffd53e1a0.tar.gz +/sddm-1d156897ab763d1442b0d6b0341c091f0c38b496.tar.gz +/sddm-3e486499b9300ce8f9c62bd102e5119b27a2fad1.tar.gz +/sddm-b042f69ff3ada1e5d94156450621db7a9246645a.tar.gz +/sddm-3ee57e99836fe051c97e0f301962120466d220f7.tar.gz +/sddm-8f1e3df4768bd521034e02602c4410b06aaef7d5.tar.gz +/sddm-572b128c92c5bce366f5db136423b0b296448429.tar.gz diff --git a/0001-Delay-for-logind-and-fallback-to-seat0.patch b/0001-Delay-for-logind-and-fallback-to-seat0.patch index b0cd884..8fa1e6d 100644 --- a/0001-Delay-for-logind-and-fallback-to-seat0.patch +++ b/0001-Delay-for-logind-and-fallback-to-seat0.patch @@ -1,4 +1,4 @@ -From 57f91b5f23fcaacaaafd5d8263f65ed58d0cdf15 Mon Sep 17 00:00:00 2001 +From 5e6c0f872272fd617228628ab46c491313750019 Mon Sep 17 00:00:00 2001 From: Jeremy Linton Date: Fri, 22 Oct 2021 14:51:54 -0500 Subject: [PATCH] Delay for logind, and fallback to seat0 @@ -17,6 +17,10 @@ is generally a better strategy than what happens a good amount of time now, where sddm is started and silent about why the screen is blank. +References: +* https://bugzilla.redhat.com/2011991 +* https://bugzilla.redhat.com/2016310 + Signed-off-by: Jeremy Linton --- src/daemon/LogindDBusTypes.cpp | 31 +++++++++++++++++++++---------- @@ -75,7 +79,7 @@ index 011bb7f..6255c69 100644 if (QDBusConnection::systemBus().interface()->isServiceRegistered(QStringLiteral("org.freedesktop.ConsoleKit"))) { qDebug() << "Console kit interface found"; diff --git a/src/daemon/SeatManager.cpp b/src/daemon/SeatManager.cpp -index 60d22ea..96d2b82 100644 +index 429ed19..9f569bb 100644 --- a/src/daemon/SeatManager.cpp +++ b/src/daemon/SeatManager.cpp @@ -26,6 +26,9 @@ @@ -98,7 +102,7 @@ index 60d22ea..96d2b82 100644 void SeatManager::createSeat(const QString &name) { @@ -152,6 +157,23 @@ namespace SDDM { - m_seats.value(name)->createDisplay(); + m_seats.value(name)->createDisplay(Display::defaultDisplayServerType()); } + // this is a bit hacky, but linux DRM drivers @@ -134,5 +138,5 @@ index b2f9796..aa43047 100644 } -- -2.33.1 +2.38.1 diff --git a/sddm-0.20.0-allow-hiding-wayland-sessions.patch b/sddm-0.20.0-allow-hiding-wayland-sessions.patch deleted file mode 100644 index f5cd769..0000000 --- a/sddm-0.20.0-allow-hiding-wayland-sessions.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 7168262e2174046e335c445e72504758dbf7049b Mon Sep 17 00:00:00 2001 -From: Jeremy Linton -Date: Mon, 25 Oct 2021 14:56:14 -0500 -Subject: [PATCH] greeter: Do not populate Wayland sessions if /dev/dri does - not exist - -Check for /dev/dri which should indicate that the Wayland will work -on this hardware. - -Signed-off-by: Jeremy Linton ---- - src/greeter/SessionModel.cpp | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - -diff --git a/src/greeter/SessionModel.cpp b/src/greeter/SessionModel.cpp -index a0eb3b1..92f6d1a 100644 ---- a/src/greeter/SessionModel.cpp -+++ b/src/greeter/SessionModel.cpp -@@ -22,6 +22,7 @@ - - #include "Configuration.h" - -+#include - #include - #include - #include -@@ -40,19 +41,26 @@ namespace SDDM { - }; - - SessionModel::SessionModel(QObject *parent) : QAbstractListModel(parent), d(new SessionModelPrivate()) { -+ // Check for flag to show Wayland sessions -+ bool dri_active = QFileInfo::exists(QStringLiteral("/dev/dri")); -+ - // initial population - beginResetModel(); -- populate(Session::WaylandSession, mainConfig.Wayland.SessionDir.get()); -+ if (dri_active) -+ populate(Session::WaylandSession, mainConfig.Wayland.SessionDir.get()); - populate(Session::X11Session, mainConfig.X11.SessionDir.get()); - endResetModel(); - - // refresh everytime a file is changed, added or removed - QFileSystemWatcher *watcher = new QFileSystemWatcher(this); - connect(watcher, &QFileSystemWatcher::directoryChanged, [this](const QString &path) { -+ // Recheck for flag to show Wayland sessions -+ bool dri_active = QFileInfo::exists(QStringLiteral("/dev/dri")); - beginResetModel(); - d->sessions.clear(); - d->displayNames.clear(); -- populate(Session::WaylandSession, mainConfig.Wayland.SessionDir.get()); -+ if (dri_active) -+ populate(Session::WaylandSession, mainConfig.Wayland.SessionDir.get()); - populate(Session::X11Session, mainConfig.X11.SessionDir.get()); - endResetModel(); - }); --- -2.33.1 - diff --git a/sddm-0.20.0-fedora_config.patch b/sddm-0.20.0-fedora_config.patch index 5c316d2..ab93e5e 100644 --- a/sddm-0.20.0-fedora_config.patch +++ b/sddm-0.20.0-fedora_config.patch @@ -1,17 +1,18 @@ diff --git a/src/common/Configuration.h b/src/common/Configuration.h -index cdffde3..0272e2c 100644 +index 182f6a1..538243b 100644 --- a/src/common/Configuration.h +++ b/src/common/Configuration.h -@@ -38,7 +38,7 @@ namespace SDDM { +@@ -37,8 +37,7 @@ namespace SDDM { + enum NumState { NUM_NONE, NUM_SET_ON, NUM_SET_OFF }; // Name Type Default value Description - // TODO: Change default to x11-user in a future release +- // TODO: Change default to x11-user in a future release - Entry(DisplayServer, QString, _S("x11"), _S("Which display server should be used.\n" + Entry(DisplayServer, QString, _S("wayland"), _S("Which display server should be used.\n" "Valid values are: x11, x11-user, wayland.")); Entry(HaltCommand, QString, _S(HALT_COMMAND), _S("Halt command")); Entry(RebootCommand, QString, _S(REBOOT_COMMAND), _S("Reboot command")); -@@ -51,7 +51,7 @@ namespace SDDM { +@@ -51,7 +50,7 @@ namespace SDDM { // Name Entries (but it's a regular class again) Section(Theme, Entry(ThemeDir, QString, _S(DATA_INSTALL_DIR "/themes"), _S("Theme directory path")); @@ -20,26 +21,25 @@ index cdffde3..0272e2c 100644 Entry(FacesDir, QString, _S(DATA_INSTALL_DIR "/faces"), _S("Global directory for user avatars\n" "The files should be named .face.icon")); Entry(CursorTheme, QString, QString(), _S("Cursor theme used in the greeter")); -@@ -71,10 +71,10 @@ namespace SDDM { - Entry(XauthPath, QString, _S("/usr/bin/xauth"), _S("Path to xauth binary")); - Entry(SessionDir, QString, _S("/usr/share/xsessions"), _S("Directory containing available X sessions")); +@@ -71,9 +70,9 @@ namespace SDDM { + Entry(SessionDir, QStringList, {_S("/usr/local/share/xsessions"), + _S("/usr/share/xsessions")}, _S("Comma-separated list of directories containing available X sessions")); Entry(SessionCommand, QString, _S(SESSION_COMMAND), _S("Path to a script to execute when starting the desktop session")); -- Entry(SessionLogFile, QString, _S(".local/share/sddm/xorg-session.log"), _S("Path to the user session log file")); -+ Entry(SessionLogFile, QString, _S(".cache/xsession-errors"), _S("Path to the user session log file")); - Entry(UserAuthFile, QString, _S(".Xauthority"), _S("Path to the Xauthority file")); +- Entry(SessionLogFile, QString, _S(".local/share/sddm/xorg-session.log"), _S("Path to the user session log file")); - Entry(DisplayCommand, QString, _S(DATA_INSTALL_DIR "/scripts/Xsetup"), _S("Path to a script to execute when starting the display server")); - Entry(DisplayStopCommand, QString, _S(DATA_INSTALL_DIR "/scripts/Xstop"), _S("Path to a script to execute when stopping the display server")); ++ Entry(SessionLogFile, QString, _S(".cache/xsession-errors"), _S("Path to the user session log file")); + Entry(DisplayCommand, QString, _S(SYS_CONFIG_DIR "/sddm/Xsetup"), _S("Path to a script to execute when starting the display server")); + Entry(DisplayStopCommand, QString, _S(SYS_CONFIG_DIR "/sddm/Xstop"), _S("Path to a script to execute when stopping the display server")); Entry(EnableHiDPI, bool, false, _S("Enable Qt's automatic high-DPI scaling")); ); -@@ -82,12 +82,12 @@ namespace SDDM { - Entry(CompositorCommand, QString, _S("weston --shell=fullscreen-shell.so"), _S("Path of the Wayland compositor to execute when starting the greeter")); - Entry(SessionDir, QString, _S("/usr/share/wayland-sessions"), _S("Directory containing available Wayland sessions")); +@@ -82,12 +81,12 @@ namespace SDDM { + Entry(SessionDir, QStringList, {_S("/usr/local/share/wayland-sessions"), + _S("/usr/share/wayland-sessions")}, _S("Comma-separated list of directories containing available Wayland sessions")); Entry(SessionCommand, QString, _S(WAYLAND_SESSION_COMMAND), _S("Path to a script to execute when starting the desktop session")); -- Entry(SessionLogFile, QString, _S(".local/share/sddm/wayland-session.log"),_S("Path to the user session log file")); -+ Entry(SessionLogFile, QString, _S(".cache/wayland-errors"), _S("Path to the user session log file")); +- Entry(SessionLogFile, QString, _S(".local/share/sddm/wayland-session.log"),_S("Path to the user session log file")); ++ Entry(SessionLogFile, QString, _S(".cache/wayland-errors"), _S("Path to the user session log file")); Entry(EnableHiDPI, bool, false, _S("Enable Qt's automatic high-DPI scaling")); ); diff --git a/sddm-rpmostree-tmpfiles-hack.patch b/sddm-rpmostree-tmpfiles-hack.patch new file mode 100644 index 0000000..4f06aa1 --- /dev/null +++ b/sddm-rpmostree-tmpfiles-hack.patch @@ -0,0 +1,12 @@ +diff --git a/services/sddm-tmpfiles.conf.in b/services/sddm-tmpfiles.conf.in +index fb45553..6acfb6c 100644 +--- a/services/sddm-tmpfiles.conf.in ++++ b/services/sddm-tmpfiles.conf.in +@@ -1,5 +1,7 @@ + # Home dir of the sddm user, also contains state.conf + d ${STATE_DIR} 0750 sddm sddm ++# Workaround for https://pagure.io/fedora-kde/SIG/issue/87 ++Z ${STATE_DIR} - sddm sddm + # This contains X11 auth files passed to Xorg and the greeter + d ${RUNTIME_DIR} 0711 root root + # Sockets for IPC diff --git a/sddm-systemd-sysusers.conf b/sddm-systemd-sysusers.conf deleted file mode 100644 index a48f929..0000000 --- a/sddm-systemd-sysusers.conf +++ /dev/null @@ -1 +0,0 @@ -u sddm - "Simple Desktop Display Manager" /var/lib/sddm diff --git a/sddm.spec b/sddm.spec index 87ffe72..5af69fc 100644 --- a/sddm.spec +++ b/sddm.spec @@ -14,8 +14,8 @@ %bcond_without sddm_wayland_default %endif -%global commit fc24321541f6f65b7d1aac89cd82336ffd53e1a0 -%global commitdate 20221025 +%global commit 572b128c92c5bce366f5db136423b0b296448429 +%global commitdate 20230306 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: sddm @@ -35,18 +35,11 @@ Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz ## upstreamable patches -# Disable wayland sessions when /dev/dri doesn't exist -# https://bugzilla.redhat.com/1952431 -# https://bugzilla.redhat.com/show_bug.cgi?id=2016788 -# https://bugzilla.redhat.com/show_bug.cgi?id=2016310 -# Submitted: https://github.com/sddm/sddm/pull/1489 -Patch10: sddm-0.20.0-allow-hiding-wayland-sessions.patch - # Fix race with logind restart, and start seat0 if !CanGraphical on timer # https://bugzilla.redhat.com/show_bug.cgi?id=2011991 # https://bugzilla.redhat.com/show_bug.cgi?id=2016310 # Submmited: https://github.com/sddm/sddm/pull/1494 -Patch11: 0001-Delay-for-logind-and-fallback-to-seat0.patch +Patch11: 0001-Delay-for-logind-and-fallback-to-seat0.patch ## downstream patches Patch101: sddm-0.20.0-fedora_config.patch @@ -54,22 +47,21 @@ Patch101: sddm-0.20.0-fedora_config.patch # sddm.service: +EnvironmentFile=-/etc/sysconfig/sddm Patch103: sddm-0.18.0-environment_file.patch +# Workaround for https://pagure.io/fedora-kde/SIG/issue/87 +Patch104: sddm-rpmostree-tmpfiles-hack.patch + # Shamelessly stolen from gdm Source11: sddm.pam # Shamelessly stolen from gdm Source12: sddm-autologin.pam -# systemd tmpfiles support for /var/run/sddm -Source13: tmpfiles-sddm.conf # sample sddm.conf generated with sddm --example-config, and entries commented-out -Source14: sddm.conf +Source13: sddm.conf # README.scripts -Source15: README.scripts +Source14: README.scripts # sysconfig snippet -Source16: sddm.sysconfig -# systemd sysusers config -Source18: sddm-systemd-sysusers.conf +Source15: sddm.sysconfig # sddm x11 override config -Source19: sddm-x11.conf +Source16: sddm-x11.conf Provides: service(graphical-login) = sddm @@ -189,12 +181,10 @@ mkdir -p %{buildroot}%{_sysconfdir}/sddm.conf.d mkdir -p %{buildroot}%{_prefix}/lib/sddm/sddm.conf.d install -Dpm 644 %{SOURCE11} %{buildroot}%{_sysconfdir}/pam.d/sddm install -Dpm 644 %{SOURCE12} %{buildroot}%{_sysconfdir}/pam.d/sddm-autologin -install -Dpm 644 %{SOURCE13} %{buildroot}%{_tmpfilesdir}/sddm.conf -install -Dpm 644 %{SOURCE14} %{buildroot}%{_sysconfdir}/sddm.conf -install -Dpm 644 %{SOURCE15} %{buildroot}%{_datadir}/sddm/scripts/README.scripts -install -Dpm 644 %{SOURCE16} %{buildroot}%{_sysconfdir}/sysconfig/sddm -install -Dpm 644 %{SOURCE18} %{buildroot}%{_sysusersdir}/sddm.conf -install -Dpm 644 %{SOURCE19} %{buildroot}%{_prefix}/lib/sddm/sddm.conf.d/x11.conf +install -Dpm 644 %{SOURCE13} %{buildroot}%{_sysconfdir}/sddm.conf +install -Dpm 644 %{SOURCE14} %{buildroot}%{_datadir}/sddm/scripts/README.scripts +install -Dpm 644 %{SOURCE15} %{buildroot}%{_sysconfdir}/sysconfig/sddm +install -Dpm 644 %{SOURCE16} %{buildroot}%{_prefix}/lib/sddm/sddm.conf.d/x11.conf mkdir -p %{buildroot}/run/sddm mkdir -p %{buildroot}%{_localstatedir}/lib/sddm mkdir -p %{buildroot}%{_sysconfdir}/sddm/ @@ -299,6 +289,35 @@ fi %changelog +* Mon Mar 06 2023 Marc Deop i Argemí - 0.19.0^git20230306.7bd10de-1 +- Update to new snapshot +- Fixes #2175947 + +* Mon Feb 20 2023 Neal Gompa - 0.19.0^git20230214.8f1e3df-1 +- Update to new snapshot +- Drop our sysusers and tmpfiles configuration for upstream versions + +* Wed Feb 01 2023 Marc Deop - 0.19.0^git20230201.3ee57e9-2 +- Update to new snapshot + +* Wed Feb 01 2023 Marc Deop - 0.19.0^git20230201.b042f69-1 +- Update to new snapshot. +- Remove patches merged upstream. + +* Sun Jan 29 2023 Neal Gompa - 0.19.0^git20221123.3e48649-3 +- Add proposed patch to recover from tty switching failures (#2110801) + +* Sat Jan 21 2023 Fedora Release Engineering - 0.19.0^git20221123.3e48649-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sat Dec 24 2022 Neal Gompa - 0.19.0^git20221123.3e48649-1 +- Update to new snapshot +- Add patch to support non-default wayland socket names for sway/weston/etc. +- Refreshed patch for waiting on logind seat0 initialization + +* Mon Nov 14 2022 Neal Gompa - 0.19.0^git20221114.1d15689-1 +- Update to new snapshot + * Tue Oct 25 2022 Neal Gompa - 0.19.0^git20221025.fc24321-1 - Update to new snapshot diff --git a/sources b/sources index 29705f9..48a899f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (sddm-fc24321541f6f65b7d1aac89cd82336ffd53e1a0.tar.gz) = d874213dc6fba044f5c42886676dd23a70dad387407361f4562f4cb799ea73ec1a7d13d48476bc769808ab206569f87101f496d16fe3ac4dc222789be5d743d0 +SHA512 (sddm-572b128c92c5bce366f5db136423b0b296448429.tar.gz) = 0c0b2997f52a1a49ca9b2c05b8ca554a1b356bbfed067fde01c6b0239be1469f9c7726725196c2a438cbf86ad85fc7b466f6eaceee7a6c211b4e0052f456b3c7 diff --git a/tmpfiles-sddm.conf b/tmpfiles-sddm.conf deleted file mode 100644 index de2f6f9..0000000 --- a/tmpfiles-sddm.conf +++ /dev/null @@ -1,3 +0,0 @@ -d /run/sddm 1733 root root - -# Workaround for https://pagure.io/fedora-kde/SIG/issue/87 -Z /var/lib/sddm - sddm sddm - -