diff --git a/.gitignore b/.gitignore index fa4a796..7b702bd 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ /sddm-85cbf3f2cda66f8deadea5f1e2e627a466aba885.tar.gz /sddm-5ad9f19d958e69e9c3f08baa9161794ceafe4da7.tar.gz /sddm-c257a40ba95f56b5f3830b923b1c56aa055cf8ea.tar.gz +/sddm-e67307e4103a8606d57a0c2fd48a378e40fcef06.tar.gz diff --git a/1522.patch b/1522.patch deleted file mode 100644 index 403ac1a..0000000 --- a/1522.patch +++ /dev/null @@ -1,108 +0,0 @@ -From a5354bf59fd96b613953885064bf5ffb1b9d1336 Mon Sep 17 00:00:00 2001 -From: Aleix Pol -Date: Tue, 1 Mar 2022 04:31:09 +0100 -Subject: [PATCH 1/3] Terminate wayland sessions - ---- - src/helper/waylandhelper.cpp | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/src/helper/waylandhelper.cpp b/src/helper/waylandhelper.cpp -index 64640d83..83dfbc42 100644 ---- a/src/helper/waylandhelper.cpp -+++ b/src/helper/waylandhelper.cpp -@@ -57,7 +57,7 @@ bool WaylandHelper::startCompositor(const QString &cmd) - - void stopProcess(QProcess *process) - { -- if (process) { -+ if (process && process->state() != QProcess::NotRunning) { - qInfo() << "Stopping..." << process->program(); - process->terminate(); - if (!process->waitForFinished(5000)) -@@ -124,7 +124,11 @@ void WaylandHelper::startGreeter(const QString &cmd) - connect(m_greeterProcess, &QProcess::readyReadStandardOutput, this, [this] { - qInfo() << m_greeterProcess->readAllStandardOutput(); - }); -- -+ connect(m_greeterProcess, QOverload::of(&QProcess::finished), -+ m_greeterProcess, [](int exitCode, QProcess::ExitStatus exitStatus) { -+ qDebug() << "wayland greeter finished" << exitCode << exitStatus; -+ QCoreApplication::instance()->quit(); -+ }); - if (m_watcher->status() == WaylandSocketWatcher::Started) { - m_greeterProcess->start(); - } else if (m_watcher->status() == WaylandSocketWatcher::Failed) { - -From acfd780c25753cf785377353297ed2d35046a886 Mon Sep 17 00:00:00 2001 -From: Aleix Pol -Date: Wed, 2 Mar 2022 01:57:43 +0100 -Subject: [PATCH 2/3] Revert "HelperApp: Ensure the session gets terminated - together with the helper app" - -This reverts commit e66b03bfaaa412c7716ad5f3a57bfdef181f3dc5. ---- - src/helper/HelperApp.cpp | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/src/helper/HelperApp.cpp b/src/helper/HelperApp.cpp -index a05d7ed1..3eac6178 100644 ---- a/src/helper/HelperApp.cpp -+++ b/src/helper/HelperApp.cpp -@@ -53,8 +53,7 @@ namespace SDDM { - , m_socket(new QLocalSocket(this)) { - qInstallMessageHandler(HelperMessageHandler); - SignalHandler *s = new SignalHandler(this); -- QObject::connect(s, &SignalHandler::sigtermReceived, m_session, [this] { -- m_session->stop(); -+ QObject::connect(s, &SignalHandler::sigtermReceived, m_session, [] { - QCoreApplication::instance()->exit(-1); - }); - - -From c5932ec5b67a768e8bef6e32043324041fbeb80b Mon Sep 17 00:00:00 2001 -From: Aleix Pol -Date: Tue, 1 Mar 2022 03:53:26 +0100 -Subject: [PATCH 3/3] VirtualTerminal: Only offer v_active when it's not in use - by others - ---- - src/common/VirtualTerminal.cpp | 19 ++++++++++++++----- - 1 file changed, 14 insertions(+), 5 deletions(-) - -diff --git a/src/common/VirtualTerminal.cpp b/src/common/VirtualTerminal.cpp -index 386bfdc4..e9c8784c 100644 ---- a/src/common/VirtualTerminal.cpp -+++ b/src/common/VirtualTerminal.cpp -@@ -127,17 +127,26 @@ namespace SDDM { - close(fd); - }); - -- vt_stat vtState = { 0 }; -- if (ioctl(fd, VT_GETSTATE, &vtState) < 0) { -- qCritical() << "Failed to get current VT:" << strerror(errno); -- -+ auto requestNewVt = [] (int fd) { - int vt = 0; -- // If there's no current tty, request the next to open - if (ioctl(fd, VT_OPENQRY, &vt) < 0) { - qCritical() << "Failed to open new VT:" << strerror(errno); - return -1; - } - return vt; -+ }; -+ -+ vt_stat vtState = { 0 }; -+ if (ioctl(fd, VT_GETSTATE, &vtState) < 0) { -+ qCritical() << "Failed to get current VT:" << strerror(errno); -+ -+ // If there's no current tty, request the next to open -+ return requestNewVt(fd); -+ } -+ -+ // If the active vt is already taken, find a new one -+ if (1 << vtState.v_active & vtState.v_state) { -+ return requestNewVt(fd); - } - return vtState.v_active; - } diff --git a/sddm.spec b/sddm.spec index ff4b119..ce17c13 100644 --- a/sddm.spec +++ b/sddm.spec @@ -14,13 +14,13 @@ %bcond_without sddm_wayland_default %endif -%global commit c257a40ba95f56b5f3830b923b1c56aa055cf8ea -%global commitdate 20220228 +%global commit e67307e4103a8606d57a0c2fd48a378e40fcef06 +%global commitdate 20220321 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: sddm Version: 0.19.0%{?commitdate:^git%{commitdate}.%{shortcommit}} -Release: 4%{?dist} +Release: 1%{?dist} License: GPLv2+ Summary: QML based desktop and login manager @@ -48,11 +48,6 @@ Patch10: sddm-0.20.0-allow-hiding-wayland-sessions.patch # Submmited: https://github.com/sddm/sddm/pull/1494 Patch11: 0001-Delay-for-logind-and-fallback-to-seat0.patch -# https://github.com/sddm/sddm/pull/1522 -# Attempts to SDDM 'crash' preventing logins after the first: -# https://bugzilla.redhat.com/show_bug.cgi?id=2057419 -Patch12: 1522.patch - # https://github.com/sddm/sddm/pull/1526 # Try to get sddm to log to the journal more Patch13: 1526.patch @@ -308,6 +303,9 @@ fi %changelog +* Sun Apr 03 2022 Neal Gompa - 0.19.0^git20220321.e67307e-1 +- Bump to new git snapshot to include refreshed fix for sddm crash (#2057419) + * Mon Mar 14 2022 Neal Gompa - 0.19.0^git20220228.c257a40-4 - Switch back to the X11 greeter for F36 diff --git a/sources b/sources index 89e12b7..61e4d1a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (sddm-c257a40ba95f56b5f3830b923b1c56aa055cf8ea.tar.gz) = 48a164c45774b6d19abc8d9664ec1e8c1921746ba7e5ecc3f726e6221957fb86fea43c483b067f4caa78ea2a3699cd3066c5e93e2b7256098a985a2425ddcc65 +SHA512 (sddm-e67307e4103a8606d57a0c2fd48a378e40fcef06.tar.gz) = a520e2f7914ffa0b8fb7223486210e732edf9f0814e47aeb95b92cbb096d8adb63b45eb30b719d1fcf79feb0784707749ac8cfc7d73db251692f3625d3d324a3