Bump to new git snapshot to include refreshed fix for sddm crash (#2057419)
parent
ffa45eac1d
commit
d34e69e56c
@ -1,108 +0,0 @@
|
|||||||
From a5354bf59fd96b613953885064bf5ffb1b9d1336 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Aleix Pol <aleixpol@kde.org>
|
|
||||||
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<int, QProcess::ExitStatus>::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 <aleixpol@kde.org>
|
|
||||||
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 <aleixpol@kde.org>
|
|
||||||
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;
|
|
||||||
}
|
|
@ -1 +1 @@
|
|||||||
SHA512 (sddm-c257a40ba95f56b5f3830b923b1c56aa055cf8ea.tar.gz) = 48a164c45774b6d19abc8d9664ec1e8c1921746ba7e5ecc3f726e6221957fb86fea43c483b067f4caa78ea2a3699cd3066c5e93e2b7256098a985a2425ddcc65
|
SHA512 (sddm-e67307e4103a8606d57a0c2fd48a378e40fcef06.tar.gz) = a520e2f7914ffa0b8fb7223486210e732edf9f0814e47aeb95b92cbb096d8adb63b45eb30b719d1fcf79feb0784707749ac8cfc7d73db251692f3625d3d324a3
|
||||||
|
Loading…
Reference in new issue