[SCM] sddm packaging branch, kubuntu_xenial_archive, updated. ubuntu/0.13.0-1ubuntu5

Philip Muškovac yofel-guest at moszumanska.debian.org
Fri Jan 15 00:27:16 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-std/sddm.git;a=commitdiff;h=6231c0e

The following commit has been merged in the kubuntu_xenial_archive branch:
commit 6231c0ee2ee4b80f92a574f589eae70ab1b73051
Author: Philip Muškovac <yofel at gmx.net>
Date:   Fri Jan 15 01:26:51 2016 +0100

    Add upstream patch to fix autologin failures
---
 debian/changelog                                |  7 ++
 debian/patches/series                           |  1 +
 debian/patches/upstream_autologin_fallback.diff | 88 +++++++++++++++++++++++++
 3 files changed, 96 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index e0a4db3..d775a71 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+sddm (0.13.0-1ubuntu5) xenial; urgency=medium
+
+  * Cherry-pick cb768895c8e0d21c689d63f69d7ac668fe4e8fa6 so there is a working
+    way to login if autologin fails on an invalid session config
+
+ -- Philip Muškovac <yofel at kubuntu.org>  Fri, 15 Jan 2016 01:25:13 +0100
+
 sddm (0.13.0-1ubuntu4) xenial; urgency=medium
 
   * Switch the watch file back to gz as xz lookup on GitHub isn't really
diff --git a/debian/patches/series b/debian/patches/series
index 91b5a3c..a635083 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
+upstream_autologin_fallback.diff
 01_sddm_systemctl.diff
 02_kubuntu_use_breeze.diff
 04_set_default_path.diff
diff --git a/debian/patches/upstream_autologin_fallback.diff b/debian/patches/upstream_autologin_fallback.diff
new file mode 100644
index 0000000..652e497
--- /dev/null
+++ b/debian/patches/upstream_autologin_fallback.diff
@@ -0,0 +1,88 @@
+From cb768895c8e0d21c689d63f69d7ac668fe4e8fa6 Mon Sep 17 00:00:00 2001
+From: Jerome Leclanche <jerome at leclan.ch>
+Date: Thu, 5 Nov 2015 21:28:22 +0200
+Subject: [PATCH] Fall back to regular login when autologin fails
+
+Fixes #316
+---
+ src/daemon/Display.cpp | 42 +++++++++++++++++++++++++-----------------
+ src/daemon/Display.h   |  1 +
+ 2 files changed, 26 insertions(+), 17 deletions(-)
+
+diff --git a/src/daemon/Display.cpp b/src/daemon/Display.cpp
+index 8de59e5..6bc9965 100644
+--- a/src/daemon/Display.cpp
++++ b/src/daemon/Display.cpp
+@@ -103,6 +103,29 @@ namespace SDDM {
+         m_displayServer->start();
+     }
+ 
++    bool Display::attemptAutologin() {
++        Session::Type sessionType = Session::X11Session;
++
++        // determine session type
++        const QString &autologinSession = mainConfig.Autologin.Session.get();
++        if (findSessionEntry(mainConfig.XDisplay.SessionDir.get(), autologinSession)) {
++            sessionType = Session::X11Session;
++        } else if (findSessionEntry(mainConfig.WaylandDisplay.SessionDir.get(), autologinSession)) {
++            sessionType = Session::WaylandSession;
++        } else {
++            qCritical() << "Unable to find autologin session entry" << autologinSession;
++            return false;
++        }
++
++        Session session;
++        session.setTo(sessionType, autologinSession);
++
++        m_auth->setAutologin(true);
++        startAuth(mainConfig.Autologin.User.get(), QString(), session);
++
++        return true;
++    }
++
+     void Display::displayServerStarted() {
+         // check flag
+         if (m_started)
+@@ -122,25 +145,10 @@ namespace SDDM {
+             // set flags
+             m_started = true;
+ 
+-            // determine session type
+-            const QString &autologinSession = mainConfig.Autologin.Session.get();
+-            Session session;
+-            if (findSessionEntry(mainConfig.XDisplay.SessionDir.get(), autologinSession)) {
+-                session.setTo(Session::X11Session, autologinSession);
+-            } else if (findSessionEntry(mainConfig.WaylandDisplay.SessionDir.get(), autologinSession)) {
+-                session.setTo(Session::WaylandSession, autologinSession);
+-            } else {
+-                qCritical() << "Unable to find autologin session entry" << autologinSession;
+-                emit loginFailed(m_socket);
++            bool success = attemptAutologin();
++            if (success) {
+                 return;
+             }
+-
+-            // start session
+-            m_auth->setAutologin(true);
+-            startAuth(mainConfig.Autologin.User.get(), QString(), session);
+-
+-            // return
+-            return;
+         }
+ 
+         // start socket server
+diff --git a/src/daemon/Display.h b/src/daemon/Display.h
+index dc46463..3d6d6a5 100644
+--- a/src/daemon/Display.h
++++ b/src/daemon/Display.h
+@@ -60,6 +60,7 @@ namespace SDDM {
+         void login(QLocalSocket *socket,
+                    const QString &user, const QString &password,
+                    const Session &session);
++        bool attemptAutologin();
+         void displayServerStarted();
+ 
+     signals:
+-- 
+2.7.0.rc3
+

-- 
sddm packaging



More information about the pkg-kde-commits mailing list