update to 0.19.0.20210906git [release 0.19.0.20210906git-1mamba;Mon Sep 06 2021]
This commit is contained in:
parent
40372b754b
commit
f1221bd116
@ -1,46 +0,0 @@
|
|||||||
diff -ru sddm-0.18.1.orig/services/sddm-autologin.pam sddm-0.18.1/services/sddm-autologin.pam
|
|
||||||
--- sddm-0.18.1.orig/services/sddm-autologin.pam 2019-04-01 08:51:20.000000000 +0200
|
|
||||||
+++ sddm-0.18.1/services/sddm-autologin.pam 2020-10-15 20:24:25.497000000 +0200
|
|
||||||
@@ -1,13 +1,14 @@
|
|
||||||
#%PAM-1.0
|
|
||||||
auth required pam_env.so
|
|
||||||
-auth required pam_tally.so file=/var/log/faillog onerr=succeed
|
|
||||||
+auth required pam_group.so
|
|
||||||
+auth required pam_faillock.so file=/var/log/faillog onerr=succeed
|
|
||||||
auth required pam_shells.so
|
|
||||||
auth required pam_nologin.so
|
|
||||||
auth required pam_permit.so
|
|
||||||
-auth optional pam_gnome_keyring.so
|
|
||||||
-auth optional pam_kwallet5.so
|
|
||||||
-account include system-local-login
|
|
||||||
-password include system-local-login
|
|
||||||
-session include system-local-login
|
|
||||||
+account include system-auth
|
|
||||||
+password include system-auth
|
|
||||||
+session include system-auth
|
|
||||||
-session optional pam_gnome_keyring.so auto_start
|
|
||||||
-session optional pam_kwallet5.so auto_start
|
|
||||||
diff -ru sddm-0.18.1.orig/services/sddm.pam sddm-0.18.1/services/sddm.pam
|
|
||||||
--- sddm-0.18.1.orig/services/sddm.pam 2019-04-01 08:51:20.000000000 +0200
|
|
||||||
+++ sddm-0.18.1/services/sddm.pam 2020-10-15 20:23:28.591000000 +0200
|
|
||||||
@@ -1,15 +1,16 @@
|
|
||||||
#%PAM-1.0
|
|
||||||
|
|
||||||
-auth include system-login
|
|
||||||
+auth required pam_group.so
|
|
||||||
+auth include system-auth
|
|
||||||
-auth optional pam_gnome_keyring.so
|
|
||||||
-auth optional pam_kwallet5.so
|
|
||||||
|
|
||||||
-account include system-login
|
|
||||||
+account include system-auth
|
|
||||||
|
|
||||||
-password include system-login
|
|
||||||
+password include system-auth
|
|
||||||
-password optional pam_gnome_keyring.so use_authtok
|
|
||||||
|
|
||||||
session optional pam_keyinit.so force revoke
|
|
||||||
-session include system-login
|
|
||||||
+session include system-auth
|
|
||||||
-session optional pam_gnome_keyring.so auto_start
|
|
||||||
-session optional pam_kwallet5.so auto_start
|
|
14
sddm-0.19.0-fix-xorg-autologin.patch
Normal file
14
sddm-0.19.0-fix-xorg-autologin.patch
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
--- sddm-0.19.0/src/daemon/Display.cpp.orig 2020-12-27 18:36:50.203227500 +0100
|
||||||
|
+++ sddm-0.19.0/src/daemon/Display.cpp 2020-12-27 18:37:25.051854984 +0100
|
||||||
|
@@ -245,6 +245,11 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Display::findSessionEntry(const QDir &dir, const QString &name) const {
|
||||||
|
+ // Given an absolute path: Check that it matches dir
|
||||||
|
+ const QFileInfo fileInfo(name);
|
||||||
|
+ if (fileInfo.isAbsolute() && fileInfo.absoluteFilePath() != dir.absolutePath())
|
||||||
|
+ return false;
|
||||||
|
+
|
||||||
|
QString fileName = name;
|
||||||
|
|
||||||
|
// append extension
|
@ -0,0 +1,171 @@
|
|||||||
|
From 68cc9e31d1a4c4609f42114782fc485cb07353a4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Fabian Vogt <fabian@ritter-vogt.de>
|
||||||
|
Date: Fri, 9 Oct 2020 21:06:01 +0200
|
||||||
|
Subject: [PATCH] Merge normal and testing paths in XorgDisplayServer::start
|
||||||
|
|
||||||
|
They have much in common and this means that Xephyr can also make use use
|
||||||
|
of -displayfd now.
|
||||||
|
---
|
||||||
|
src/daemon/XorgDisplayServer.cpp | 132 ++++++++++++++-----------------
|
||||||
|
1 file changed, 60 insertions(+), 72 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/daemon/XorgDisplayServer.cpp b/src/daemon/XorgDisplayServer.cpp
|
||||||
|
index d5f29a94..e60c0221 100644
|
||||||
|
--- a/src/daemon/XorgDisplayServer.cpp
|
||||||
|
+++ b/src/daemon/XorgDisplayServer.cpp
|
||||||
|
@@ -136,95 +136,83 @@ namespace SDDM {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (daemonApp->testing()) {
|
||||||
|
- QStringList args;
|
||||||
|
- QDir x11socketDir(QStringLiteral("/tmp/.X11-unix"));
|
||||||
|
- int display = 100;
|
||||||
|
- while (x11socketDir.exists(QStringLiteral("X%1").arg(display))) {
|
||||||
|
- ++display;
|
||||||
|
- }
|
||||||
|
- m_display = QStringLiteral(":%1").arg(display);
|
||||||
|
- args << m_display << QStringLiteral("-auth") << m_authPath << QStringLiteral("-br") << QStringLiteral("-noreset") << QStringLiteral("-screen") << QStringLiteral("800x600");
|
||||||
|
- process->start(mainConfig.X11.XephyrPath.get(), args);
|
||||||
|
-
|
||||||
|
-
|
||||||
|
- // wait for display server to start
|
||||||
|
- if (!process->waitForStarted()) {
|
||||||
|
- // log message
|
||||||
|
- qCritical() << "Failed to start display server process.";
|
||||||
|
+ // set process environment
|
||||||
|
+ QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
|
||||||
|
+ env.insert(QStringLiteral("XCURSOR_THEME"), mainConfig.Theme.CursorTheme.get());
|
||||||
|
+ process->setProcessEnvironment(env);
|
||||||
|
|
||||||
|
- // return fail
|
||||||
|
- return false;
|
||||||
|
- }
|
||||||
|
- emit started();
|
||||||
|
- } else {
|
||||||
|
- // set process environment
|
||||||
|
- QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
|
||||||
|
- env.insert(QStringLiteral("XCURSOR_THEME"), mainConfig.Theme.CursorTheme.get());
|
||||||
|
- process->setProcessEnvironment(env);
|
||||||
|
-
|
||||||
|
- //create pipe for communicating with X server
|
||||||
|
- //0 == read from X, 1== write to from X
|
||||||
|
- int pipeFds[2];
|
||||||
|
- if (pipe(pipeFds) != 0) {
|
||||||
|
- qCritical("Could not create pipe to start X server");
|
||||||
|
- }
|
||||||
|
+ //create pipe for communicating with X server
|
||||||
|
+ //0 == read from X, 1== write to from X
|
||||||
|
+ int pipeFds[2];
|
||||||
|
+ if (pipe(pipeFds) != 0) {
|
||||||
|
+ qCritical("Could not create pipe to start X server");
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- // start display server
|
||||||
|
- QStringList args = mainConfig.X11.ServerArguments.get().split(QLatin1Char(' '), QString::SkipEmptyParts);
|
||||||
|
- args << QStringLiteral("-auth") << m_authPath
|
||||||
|
+ // start display server
|
||||||
|
+ QStringList args;
|
||||||
|
+ if (!daemonApp->testing()) {
|
||||||
|
+ process->setProgram(mainConfig.X11.ServerPath.get());
|
||||||
|
+ args << mainConfig.X11.ServerArguments.get().split(QLatin1Char(' '), QString::SkipEmptyParts)
|
||||||
|
<< QStringLiteral("-background") << QStringLiteral("none")
|
||||||
|
- << QStringLiteral("-noreset")
|
||||||
|
- << QStringLiteral("-displayfd") << QString::number(pipeFds[1])
|
||||||
|
<< QStringLiteral("-seat") << displayPtr()->seat()->name();
|
||||||
|
|
||||||
|
if (displayPtr()->seat()->name() == QLatin1String("seat0")) {
|
||||||
|
args << QStringLiteral("vt%1").arg(displayPtr()->terminalId());
|
||||||
|
}
|
||||||
|
- qDebug() << "Running:"
|
||||||
|
- << qPrintable(mainConfig.X11.ServerPath.get())
|
||||||
|
- << qPrintable(args.join(QLatin1Char(' ')));
|
||||||
|
- process->start(mainConfig.X11.ServerPath.get(), args);
|
||||||
|
-
|
||||||
|
- // wait for display server to start
|
||||||
|
- if (!process->waitForStarted()) {
|
||||||
|
- // log message
|
||||||
|
- qCritical() << "Failed to start display server process.";
|
||||||
|
-
|
||||||
|
- // return fail
|
||||||
|
- close(pipeFds[0]);
|
||||||
|
- return false;
|
||||||
|
- }
|
||||||
|
+ } else {
|
||||||
|
+ process->setProgram(mainConfig.X11.XephyrPath.get());
|
||||||
|
+ args << QStringLiteral("-br")
|
||||||
|
+ << QStringLiteral("-screen") << QStringLiteral("800x600");
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- // close the other side of pipe in our process, otherwise reading
|
||||||
|
- // from it may stuck even X server exit.
|
||||||
|
- close(pipeFds[1]);
|
||||||
|
+ args << QStringLiteral("-auth") << m_authPath
|
||||||
|
+ << QStringLiteral("-noreset")
|
||||||
|
+ << QStringLiteral("-displayfd") << QString::number(pipeFds[1]);
|
||||||
|
|
||||||
|
- QFile readPipe;
|
||||||
|
+ process->setArguments(args);
|
||||||
|
+ qDebug() << "Running:"
|
||||||
|
+ << qPrintable(process->program())
|
||||||
|
+ << qPrintable(process->arguments().join(QLatin1Char(' ')));
|
||||||
|
+ process->start();
|
||||||
|
|
||||||
|
- if (!readPipe.open(pipeFds[0], QIODevice::ReadOnly)) {
|
||||||
|
- qCritical("Failed to open pipe to start X Server");
|
||||||
|
+ // wait for display server to start
|
||||||
|
+ if (!process->waitForStarted()) {
|
||||||
|
+ // log message
|
||||||
|
+ qCritical() << "Failed to start display server process.";
|
||||||
|
|
||||||
|
- close(pipeFds[0]);
|
||||||
|
- return false;
|
||||||
|
- }
|
||||||
|
- QByteArray displayNumber = readPipe.readLine();
|
||||||
|
- if (displayNumber.size() < 2) {
|
||||||
|
- // X server gave nothing (or a whitespace).
|
||||||
|
- qCritical("Failed to read display number from pipe");
|
||||||
|
+ // return fail
|
||||||
|
+ close(pipeFds[0]);
|
||||||
|
+ return false;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- close(pipeFds[0]);
|
||||||
|
- return false;
|
||||||
|
- }
|
||||||
|
- displayNumber.prepend(QByteArray(":"));
|
||||||
|
- displayNumber.remove(displayNumber.size() -1, 1); // trim trailing whitespace
|
||||||
|
- m_display = QString::fromLocal8Bit(displayNumber);
|
||||||
|
+ // close the other side of pipe in our process, otherwise reading
|
||||||
|
+ // from it may stuck even X server exit.
|
||||||
|
+ close(pipeFds[1]);
|
||||||
|
+
|
||||||
|
+ QFile readPipe;
|
||||||
|
+
|
||||||
|
+ if (!readPipe.open(pipeFds[0], QIODevice::ReadOnly)) {
|
||||||
|
+ qCritical("Failed to open pipe to start X Server");
|
||||||
|
|
||||||
|
- // close our pipe
|
||||||
|
close(pipeFds[0]);
|
||||||
|
+ return false;
|
||||||
|
+ }
|
||||||
|
+ QByteArray displayNumber = readPipe.readLine();
|
||||||
|
+ if (displayNumber.size() < 2) {
|
||||||
|
+ // X server gave nothing (or a whitespace).
|
||||||
|
+ qCritical("Failed to read display number from pipe");
|
||||||
|
|
||||||
|
- emit started();
|
||||||
|
+ close(pipeFds[0]);
|
||||||
|
+ return false;
|
||||||
|
}
|
||||||
|
+ displayNumber.prepend(QByteArray(":"));
|
||||||
|
+ displayNumber.remove(displayNumber.size() -1, 1); // trim trailing whitespace
|
||||||
|
+ m_display = QString::fromLocal8Bit(displayNumber);
|
||||||
|
+
|
||||||
|
+ // close our pipe
|
||||||
|
+ close(pipeFds[0]);
|
||||||
|
+
|
||||||
|
+ emit started();
|
||||||
|
|
||||||
|
// The file is also used by the greeter, which does care about the
|
||||||
|
// display number. Write the proper entry, if it's different.
|
@ -0,0 +1,25 @@
|
|||||||
|
From 5fd5ed271a0e5b8c8857cc4f5f2084d43fd228f1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Fabian Vogt <fabian@ritter-vogt.de>
|
||||||
|
Date: Mon, 9 Nov 2020 11:22:15 +0100
|
||||||
|
Subject: [PATCH] Only use the base name for $DESKTOP_SESSION
|
||||||
|
|
||||||
|
Other DMs don't use the path.
|
||||||
|
|
||||||
|
Fixes #852
|
||||||
|
---
|
||||||
|
src/common/Session.cpp | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/common/Session.cpp b/src/common/Session.cpp
|
||||||
|
index 2d7b04f1..3de28ef1 100644
|
||||||
|
--- a/src/common/Session.cpp
|
||||||
|
+++ b/src/common/Session.cpp
|
||||||
|
@@ -89,7 +89,7 @@ namespace SDDM {
|
||||||
|
|
||||||
|
QString Session::desktopSession() const
|
||||||
|
{
|
||||||
|
- return fileName().replace(s_entryExtention, QString());
|
||||||
|
+ return QFileInfo(m_fileName).completeBaseName();
|
||||||
|
}
|
||||||
|
|
||||||
|
QString Session::desktopNames() const
|
212
sddm-0.19.0-upstream-retry-starting-the-xserver.patch
Normal file
212
sddm-0.19.0-upstream-retry-starting-the-xserver.patch
Normal file
@ -0,0 +1,212 @@
|
|||||||
|
From adfaa222fdfa6115ea2b320b0bbc2126db9270a5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Fabian Vogt <fabian@ritter-vogt.de>
|
||||||
|
Date: Thu, 12 Nov 2020 20:30:55 +0100
|
||||||
|
Subject: [PATCH 1/3] Retry starting the display server
|
||||||
|
|
||||||
|
Even if the CanGraphical property of a Seat is true, it's possible that it's
|
||||||
|
still too early for X to start, as it might need some driver or device which
|
||||||
|
isn't present yet.
|
||||||
|
|
||||||
|
Fixes #1316
|
||||||
|
---
|
||||||
|
src/daemon/Seat.cpp | 23 ++++++++++++++++++-----
|
||||||
|
src/daemon/Seat.h | 4 +++-
|
||||||
|
src/daemon/XorgDisplayServer.cpp | 10 ++++++----
|
||||||
|
3 files changed, 27 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/daemon/Seat.cpp b/src/daemon/Seat.cpp
|
||||||
|
index eef26da4..838c2221 100644
|
||||||
|
--- a/src/daemon/Seat.cpp
|
||||||
|
+++ b/src/daemon/Seat.cpp
|
||||||
|
@@ -28,6 +28,7 @@
|
||||||
|
|
||||||
|
#include <QDebug>
|
||||||
|
#include <QFile>
|
||||||
|
+#include <QTimer>
|
||||||
|
|
||||||
|
#include <functional>
|
||||||
|
|
||||||
|
@@ -52,7 +53,7 @@ namespace SDDM {
|
||||||
|
return m_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
- bool Seat::createDisplay(int terminalId) {
|
||||||
|
+ void Seat::createDisplay(int terminalId) {
|
||||||
|
//reload config if needed
|
||||||
|
mainConfig.load();
|
||||||
|
|
||||||
|
@@ -84,12 +85,24 @@ namespace SDDM {
|
||||||
|
m_displays << display;
|
||||||
|
|
||||||
|
// start the display
|
||||||
|
- if (!display->start()) {
|
||||||
|
- qCritical() << "Could not start Display server on vt" << terminalId;
|
||||||
|
- return false;
|
||||||
|
+ startDisplay(display);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ void Seat::startDisplay(Display *display, int tryNr) {
|
||||||
|
+ if (display->start())
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ // It's possible that the system isn't ready yet (driver not loaded,
|
||||||
|
+ // device not enumerated, ...). It's not possible to tell when that changes,
|
||||||
|
+ // so try a few times with a delay in between.
|
||||||
|
+ qWarning() << "Attempt" << tryNr << "starting the Display server on vt" << display->terminalId() << "failed";
|
||||||
|
+
|
||||||
|
+ if(tryNr >= 3) {
|
||||||
|
+ qCritical() << "Could not start Display server on vt" << display->terminalId();
|
||||||
|
+ return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- return true;
|
||||||
|
+ QTimer::singleShot(2000, display, [=] { startDisplay(display, tryNr + 1); });
|
||||||
|
}
|
||||||
|
|
||||||
|
void Seat::removeDisplay(Display* display) {
|
||||||
|
diff --git a/src/daemon/Seat.h b/src/daemon/Seat.h
|
||||||
|
index bf22566b..f9fe7331 100644
|
||||||
|
--- a/src/daemon/Seat.h
|
||||||
|
+++ b/src/daemon/Seat.h
|
||||||
|
@@ -35,13 +35,15 @@ namespace SDDM {
|
||||||
|
const QString &name() const;
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
- bool createDisplay(int terminalId = -1);
|
||||||
|
+ void createDisplay(int terminalId = -1);
|
||||||
|
void removeDisplay(SDDM::Display* display);
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void displayStopped();
|
||||||
|
|
||||||
|
private:
|
||||||
|
+ void startDisplay(SDDM::Display *display, int tryNr = 1);
|
||||||
|
+
|
||||||
|
QString m_name;
|
||||||
|
|
||||||
|
QVector<Display *> m_displays;
|
||||||
|
diff --git a/src/daemon/XorgDisplayServer.cpp b/src/daemon/XorgDisplayServer.cpp
|
||||||
|
index e60c0221..5f40fe8c 100644
|
||||||
|
--- a/src/daemon/XorgDisplayServer.cpp
|
||||||
|
+++ b/src/daemon/XorgDisplayServer.cpp
|
||||||
|
@@ -248,6 +248,12 @@ namespace SDDM {
|
||||||
|
}
|
||||||
|
|
||||||
|
void XorgDisplayServer::finished() {
|
||||||
|
+ // clean up
|
||||||
|
+ if (process) {
|
||||||
|
+ process->deleteLater();
|
||||||
|
+ process = nullptr;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
// check flag
|
||||||
|
if (!m_started)
|
||||||
|
return;
|
||||||
|
@@ -283,10 +289,6 @@ namespace SDDM {
|
||||||
|
displayStopScript->deleteLater();
|
||||||
|
displayStopScript = nullptr;
|
||||||
|
|
||||||
|
- // clean up
|
||||||
|
- process->deleteLater();
|
||||||
|
- process = nullptr;
|
||||||
|
-
|
||||||
|
// remove authority file
|
||||||
|
QFile::remove(m_authPath);
|
||||||
|
|
||||||
|
|
||||||
|
From d11e1e987b440fa1aaa741719b92472eeee79b17 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Fabian Vogt <fabian@ritter-vogt.de>
|
||||||
|
Date: Wed, 9 Dec 2020 19:28:41 +0100
|
||||||
|
Subject: [PATCH 2/3] Explicitly stop Xorg when starting fails
|
||||||
|
|
||||||
|
When Xorg starts but there is an error, stop it explicitly instead of assuming
|
||||||
|
that X exits itself. This avoids a possibly lingering Xorg process in the
|
||||||
|
XorgDisplayServer instance. Add a check and warning message if Xorg is
|
||||||
|
restarted too early (shouldn't happen).
|
||||||
|
---
|
||||||
|
src/daemon/XorgDisplayServer.cpp | 11 +++++++++--
|
||||||
|
1 file changed, 9 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/daemon/XorgDisplayServer.cpp b/src/daemon/XorgDisplayServer.cpp
|
||||||
|
index 5f40fe8c..3a7bee0d 100644
|
||||||
|
--- a/src/daemon/XorgDisplayServer.cpp
|
||||||
|
+++ b/src/daemon/XorgDisplayServer.cpp
|
||||||
|
@@ -118,6 +118,11 @@ namespace SDDM {
|
||||||
|
if (m_started)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
+ if (process) {
|
||||||
|
+ qCritical() << "Tried to start Xorg before previous instance exited";
|
||||||
|
+ return false;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
// create process
|
||||||
|
process = new QProcess(this);
|
||||||
|
|
||||||
|
@@ -195,6 +200,7 @@ namespace SDDM {
|
||||||
|
qCritical("Failed to open pipe to start X Server");
|
||||||
|
|
||||||
|
close(pipeFds[0]);
|
||||||
|
+ stop();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
QByteArray displayNumber = readPipe.readLine();
|
||||||
|
@@ -203,6 +209,7 @@ namespace SDDM {
|
||||||
|
qCritical("Failed to read display number from pipe");
|
||||||
|
|
||||||
|
close(pipeFds[0]);
|
||||||
|
+ stop();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
displayNumber.prepend(QByteArray(":"));
|
||||||
|
@@ -219,6 +226,7 @@ namespace SDDM {
|
||||||
|
if(m_display != QStringLiteral(":0")) {
|
||||||
|
if(!addCookie(m_authPath)) {
|
||||||
|
qCritical() << "Failed to write xauth file";
|
||||||
|
+ stop();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -232,8 +240,7 @@ namespace SDDM {
|
||||||
|
}
|
||||||
|
|
||||||
|
void XorgDisplayServer::stop() {
|
||||||
|
- // check flag
|
||||||
|
- if (!m_started)
|
||||||
|
+ if (!process)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// log message
|
||||||
|
|
||||||
|
From 78048b22e3988d3daec9c271883fa114abc114dc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Fabian Vogt <fabian@ritter-vogt.de>
|
||||||
|
Date: Wed, 9 Dec 2020 19:33:08 +0100
|
||||||
|
Subject: [PATCH 3/3] Emit XorgDisplayServer::started only when the auth file
|
||||||
|
is ready
|
||||||
|
|
||||||
|
---
|
||||||
|
src/daemon/XorgDisplayServer.cpp | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/daemon/XorgDisplayServer.cpp b/src/daemon/XorgDisplayServer.cpp
|
||||||
|
index 3a7bee0d..331adcda 100644
|
||||||
|
--- a/src/daemon/XorgDisplayServer.cpp
|
||||||
|
+++ b/src/daemon/XorgDisplayServer.cpp
|
||||||
|
@@ -219,8 +219,6 @@ namespace SDDM {
|
||||||
|
// close our pipe
|
||||||
|
close(pipeFds[0]);
|
||||||
|
|
||||||
|
- emit started();
|
||||||
|
-
|
||||||
|
// The file is also used by the greeter, which does care about the
|
||||||
|
// display number. Write the proper entry, if it's different.
|
||||||
|
if(m_display != QStringLiteral(":0")) {
|
||||||
|
@@ -232,6 +230,8 @@ namespace SDDM {
|
||||||
|
}
|
||||||
|
changeOwner(m_authPath);
|
||||||
|
|
||||||
|
+ emit started();
|
||||||
|
+
|
||||||
|
// set flag
|
||||||
|
m_started = true;
|
||||||
|
|
87
sddm-0.19.0.20210906git-openmamba-pam.patch
Normal file
87
sddm-0.19.0.20210906git-openmamba-pam.patch
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
diff -Nru sddm-0.19.0.20210906git/services.orig/sddm-autologin.pam sddm-0.19.0.20210906git/services/sddm-autologin.pam
|
||||||
|
--- sddm-0.19.0.20210906git/services.orig/sddm-autologin.pam 2021-09-06 20:28:07.000000000 +0200
|
||||||
|
+++ sddm-0.19.0.20210906git/services/sddm-autologin.pam 2021-09-06 20:34:16.427806591 +0200
|
||||||
|
@@ -1,13 +1,14 @@
|
||||||
|
#%PAM-1.0
|
||||||
|
auth required pam_env.so
|
||||||
|
+auth required pam_group.so
|
||||||
|
auth required pam_faillock.so preauth
|
||||||
|
auth required pam_shells.so
|
||||||
|
auth required pam_nologin.so
|
||||||
|
auth required pam_permit.so
|
||||||
|
-auth optional pam_gnome_keyring.so
|
||||||
|
-auth optional pam_kwallet5.so
|
||||||
|
-account include system-local-login
|
||||||
|
-password include system-local-login
|
||||||
|
-session include system-local-login
|
||||||
|
+account include system-auth
|
||||||
|
+password include system-auth
|
||||||
|
+session include system-auth
|
||||||
|
-session optional pam_gnome_keyring.so auto_start
|
||||||
|
-session optional pam_kwallet5.so auto_start
|
||||||
|
diff -Nru sddm-0.19.0.20210906git/services.orig/sddm-autologin.pam.orig sddm-0.19.0.20210906git/services/sddm-autologin.pam.orig
|
||||||
|
--- sddm-0.19.0.20210906git/services.orig/sddm-autologin.pam.orig 1970-01-01 01:00:00.000000000 +0100
|
||||||
|
+++ sddm-0.19.0.20210906git/services/sddm-autologin.pam.orig 2021-09-06 20:32:09.191529393 +0200
|
||||||
|
@@ -0,0 +1,13 @@
|
||||||
|
+#%PAM-1.0
|
||||||
|
+auth required pam_env.so
|
||||||
|
+auth required pam_faillock.so preauth
|
||||||
|
+auth required pam_shells.so
|
||||||
|
+auth required pam_nologin.so
|
||||||
|
+auth required pam_permit.so
|
||||||
|
+-auth optional pam_gnome_keyring.so
|
||||||
|
+-auth optional pam_kwallet5.so
|
||||||
|
+account include system-local-login
|
||||||
|
+password include system-local-login
|
||||||
|
+session include system-local-login
|
||||||
|
+-session optional pam_gnome_keyring.so auto_start
|
||||||
|
+-session optional pam_kwallet5.so auto_start
|
||||||
|
diff -Nru sddm-0.19.0.20210906git/services.orig/sddm-autologin.pam.rej sddm-0.19.0.20210906git/services/sddm-autologin.pam.rej
|
||||||
|
--- sddm-0.19.0.20210906git/services.orig/sddm-autologin.pam.rej 1970-01-01 01:00:00.000000000 +0100
|
||||||
|
+++ sddm-0.19.0.20210906git/services/sddm-autologin.pam.rej 2021-09-06 20:32:09.191529393 +0200
|
||||||
|
@@ -0,0 +1,21 @@
|
||||||
|
+--- services/sddm-autologin.pam.orig 2020-11-10 10:01:26.923000000 +0100
|
||||||
|
++++ services/sddm-autologin.pam 2020-11-10 10:03:03.797000000 +0100
|
||||||
|
+@@ -1,13 +1,14 @@
|
||||||
|
+ #%PAM-1.0
|
||||||
|
+ auth required pam_env.so
|
||||||
|
+-auth required pam_tally2.so file=/var/log/tallylog onerr=succeed
|
||||||
|
++auth required pam_group.so
|
||||||
|
++auth required pam_faillock.so file=/var/log/tallylog onerr=succeed
|
||||||
|
+ auth required pam_shells.so
|
||||||
|
+ auth required pam_nologin.so
|
||||||
|
+ auth required pam_permit.so
|
||||||
|
+ -auth optional pam_gnome_keyring.so
|
||||||
|
+ -auth optional pam_kwallet5.so
|
||||||
|
+-account include system-local-login
|
||||||
|
+-password include system-local-login
|
||||||
|
+-session include system-local-login
|
||||||
|
++account include system-auth
|
||||||
|
++password include system-auth
|
||||||
|
++session include system-auth
|
||||||
|
+ -session optional pam_gnome_keyring.so auto_start
|
||||||
|
+ -session optional pam_kwallet5.so auto_start
|
||||||
|
diff -Nru sddm-0.19.0.20210906git/services.orig/sddm.pam sddm-0.19.0.20210906git/services/sddm.pam
|
||||||
|
--- sddm-0.19.0.20210906git/services.orig/sddm.pam 2021-09-06 20:28:07.000000000 +0200
|
||||||
|
+++ sddm-0.19.0.20210906git/services/sddm.pam 2021-09-06 20:32:08.996525967 +0200
|
||||||
|
@@ -1,15 +1,16 @@
|
||||||
|
#%PAM-1.0
|
||||||
|
|
||||||
|
-auth include system-login
|
||||||
|
+auth required pam_group.so
|
||||||
|
+auth include system-auth
|
||||||
|
-auth optional pam_gnome_keyring.so
|
||||||
|
-auth optional pam_kwallet5.so
|
||||||
|
|
||||||
|
-account include system-login
|
||||||
|
+account include system-auth
|
||||||
|
|
||||||
|
-password include system-login
|
||||||
|
+password include system-auth
|
||||||
|
-password optional pam_gnome_keyring.so use_authtok
|
||||||
|
|
||||||
|
session optional pam_keyinit.so force revoke
|
||||||
|
-session include system-login
|
||||||
|
+session include system-auth
|
||||||
|
-session optional pam_gnome_keyring.so auto_start
|
||||||
|
-session optional pam_kwallet5.so auto_start
|
27
sddm.spec
27
sddm.spec
@ -1,20 +1,26 @@
|
|||||||
%define user_sddm 68
|
%define user_sddm 68
|
||||||
%define group_sddm 68
|
%define group_sddm 68
|
||||||
Name: sddm
|
Name: sddm
|
||||||
Version: 0.18.1
|
Version: 0.19.0.20210906git
|
||||||
Release: 4mamba
|
Release: 1mamba
|
||||||
Summary: QML based X11 and Wayland display manager
|
Summary: QML based X11 and Wayland display manager
|
||||||
Group: Graphical Desktop/Applications/Environment
|
Group: Graphical Desktop/Applications/Environment
|
||||||
Vendor: openmamba
|
Vendor: openmamba
|
||||||
Distribution: openmamba
|
Distribution: openmamba
|
||||||
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
|
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||||
URL: https://github.com/sddm/sddm
|
URL: https://github.com/sddm/sddm
|
||||||
Source: https://github.com/sddm/sddm.git/v%{version}/sddm-%{version}.tar.bz2
|
Source: https://github.com/sddm/sddm.git/develop/sddm-%{version}.tar.bz2
|
||||||
Patch0: sddm-0.18.1-openmamba-pam.patch
|
#Source: https://github.com/sddm/sddm.git/v%{version}/sddm-%{version}.tar.bz2
|
||||||
|
Patch0: sddm-0.19.0.20210906git-openmamba-pam.patch
|
||||||
Patch1: sddm-0.17.0.20180408git-fix-pam-group.patch
|
Patch1: sddm-0.17.0.20180408git-fix-pam-group.patch
|
||||||
Patch2: sddm-0.18.0-autorotate.patch
|
Patch2: sddm-0.18.0-autorotate.patch
|
||||||
|
Patch3: sddm-0.19.0-fix-xorg-autologin.patch
|
||||||
|
Patch4: sddm-0.19.0-upstream-Merge_normal_and_testing_paths_in_XorgDisplayServer__start.patch
|
||||||
|
Patch5: sddm-0.19.0-upstream-retry-starting-the-xserver.patch
|
||||||
|
Patch6: sddm-0.19.0-upstream-only_use_the_basename_for_desktop_session.patch
|
||||||
License: GPL
|
License: GPL
|
||||||
## AUTOBUILDREQ-BEGIN
|
## AUTOBUILDREQ-BEGIN
|
||||||
|
#libdl.so.2()(64bit): /usr/lib64/libdl.so: file not owned by any package
|
||||||
BuildRequires: glibc-devel
|
BuildRequires: glibc-devel
|
||||||
BuildRequires: libgcc
|
BuildRequires: libgcc
|
||||||
BuildRequires: libpam-devel
|
BuildRequires: libpam-devel
|
||||||
@ -37,8 +43,10 @@ QML based X11 and Wayland display manager.
|
|||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch0 -p1
|
%patch0 -p1
|
||||||
#%patch1 -p1
|
|
||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
|
#%patch4 -p1
|
||||||
|
#%patch5 -p1
|
||||||
|
#%patch6 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%cmake -d build
|
%cmake -d build
|
||||||
@ -134,6 +142,15 @@ fi
|
|||||||
%doc LICENSE
|
%doc LICENSE
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Sep 06 2021 Silvan Calarco <silvan.calarco@mambasoft.it> 0.19.0.20210906git-1mamba
|
||||||
|
- update to 0.19.0.20210906git
|
||||||
|
|
||||||
|
* Sun Dec 27 2020 Silvan Calarco <silvan.calarco@mambasoft.it> 0.19.0-2mamba
|
||||||
|
- added upstream patches to fix Xorg autologin (see https://github.com/sddm/sddm/issues/1348)
|
||||||
|
|
||||||
|
* Wed Nov 11 2020 Automatic Build System <autodist@mambasoft.it> 0.19.0-1mamba
|
||||||
|
- automatic version update by autodist
|
||||||
|
|
||||||
* Sun Oct 18 2020 Silvan Calarco <silvan.calarco@mambasoft.it> 0.18.1-4mamba
|
* Sun Oct 18 2020 Silvan Calarco <silvan.calarco@mambasoft.it> 0.18.1-4mamba
|
||||||
- fix for pam patch not applied
|
- fix for pam patch not applied
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user