Hello community,

here is the log from the commit of package sddm for openSUSE:Factory checked in 
at 2017-06-01 16:23:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sddm (Old)
 and      /work/SRC/openSUSE:Factory/.sddm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "sddm"

Thu Jun  1 16:23:23 2017 rev:21 rq:496501 version:0.14.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/sddm/sddm.changes        2017-04-28 
10:53:28.221537774 +0200
+++ /work/SRC/openSUSE:Factory/.sddm.new/sddm.changes   2017-06-01 
16:23:24.689998477 +0200
@@ -1,0 +2,36 @@
+Fri May 19 08:08:55 UTC 2017 - [email protected]
+
+- Also set the default last session in sysconfig-support.patch
+  (replaces boo949903.patch)
+- Adjust 0003-Leave-duplicate-symlinks-out-of-the-SessionModel.patch
+  to also handle symlinks for the last session
+
+-------------------------------------------------------------------
+Thu May 18 09:56:47 UTC 2017 - [email protected]
+
+- Replace patch with newer version:
+  * 0001-Also-theme-the-default-cursor-for-the-root-window.patch
+
+-------------------------------------------------------------------
+Mon May 15 13:06:04 UTC 2017 - [email protected]
+
+- Add upstream patches: 
+  * 0001-Parse-desktop-file-sections.patch
+  * 0002-Ignore-session-desktop-files-with-the-Hidden-propert.patch
+- Add downstream patch:
+  * 0003-Leave-duplicate-symlinks-out-of-the-SessionModel.patch
+- Fix typo in sysconfig-support.patch (DYSPLAY -> DISPLAY)
+- Use default.desktop as default autologin session file
+
+-------------------------------------------------------------------
+Mon May  8 19:30:55 UTC 2017 - [email protected]
+
+- BuildRequire python-docutils instead of python3-docutils on SLE
+
+-------------------------------------------------------------------
+Fri May  5 21:29:14 UTC 2017 - [email protected]
+
+- Add patch to fix the default X cursor appearing sometimes:
+  * 0001-Also-theme-the-default-cursor-for-the-root-window.patch
+
+-------------------------------------------------------------------

Old:
----
  boo949903.patch

New:
----
  0001-Also-theme-the-default-cursor-for-the-root-window.patch
  0001-Parse-desktop-file-sections.patch
  0002-Ignore-session-desktop-files-with-the-Hidden-propert.patch
  0003-Leave-duplicate-symlinks-out-of-the-SessionModel.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ sddm.spec ++++++
--- /var/tmp/diff_new_pack.2xBH9b/_old  2017-06-01 16:23:25.677859180 +0200
+++ /var/tmp/diff_new_pack.2xBH9b/_new  2017-06-01 16:23:25.681858617 +0200
@@ -44,12 +44,12 @@
 # PATCH-FIX-OPENSUSE sddm-service-handle-plymouth.patch -- sddm has some 
rudimentary support for plymouth handling, which only works with 
plymouth-quit.service
 # (the servce is not enabled on openSUSE). For users of sddm.service, we need 
to issue plymouth quit command by hand in this case
 Patch5:         sddm-service-handle-plymouth.patch
-# PATCH-FIX-OPENSUSE boo949903.patch -- Let sddm also default to plasma5 for 
last used session (boo#949903)
-Patch6:         boo949903.patch
 # PATCH-FIX-UPSTREAM 0001-Make-the-default-cursor-themed.patch -- Make the 
default cursor themed
 Patch7:         0001-Make-the-default-cursor-themed.patch
 # PATCH-FIX-OPENSUSE 0001-Systemd-service-unit-Use-tty7-by-default.patch -- 
Use tty7 by default in the systemd service unit
 Patch8:         0001-Systemd-service-unit-Use-tty7-by-default.patch
+# PATCH-FIX-UPSTREAM 
0001-Also-theme-the-default-cursor-for-the-root-window.patch
+Patch9:         0001-Also-theme-the-default-cursor-for-the-root-window.patch
 # Bugfixes from upstream develop branch
 Patch10:        0001-Fix-display-of-user-avatars.-684.patch
 Patch11:        0002-Add-a-config-option-to-enable-high-DPI-scaling-701.patch
@@ -57,6 +57,11 @@
 Patch13:        0004-Support-Non-Latin-characters-in-theme-settings-708.patch
 Patch14:        0005-Cleanup-dangling-pointer-in-SocketServer-725.patch
 Patch15:        0001-Also-set-QT_IM_MODULE-in-non-testing-mode.patch
+# PATCH-FIX-UPSTREAM 
+Patch16:        0001-Parse-desktop-file-sections.patch
+Patch17:        0002-Ignore-session-desktop-files-with-the-Hidden-propert.patch
+# PATCH-FIX-OPENSUSE
+Patch18:        0003-Leave-duplicate-symlinks-out-of-the-SessionModel.patch
 BuildRequires:  cmake
 BuildRequires:  extra-cmake-modules >= 1.4.0
 BuildRequires:  fdupes
@@ -64,7 +69,11 @@
 BuildRequires:  libqt5-linguist-devel
 BuildRequires:  pam-devel
 BuildRequires:  pkg-config
+%if 0%{?sle_version} && !0%{?is_opensuse}
+BuildRequires:  python-docutils
+%else
 BuildRequires:  python3-docutils
+%endif
 # Autodetect UID_MIN and UID_MAX from /etc/login.defs
 BuildRequires:  shadow
 BuildRequires:  pkgconfig(Qt5Core) >= 5.6.0
@@ -122,15 +131,18 @@
 %patch3 -p1
 %patch4 -p1
 %patch5 -p1
-%patch6 -p1
 %patch7 -p1
 %patch8 -p1
+%patch9 -p1
 %patch10 -p1
 %patch11 -p1
 %patch12 -p1
 %patch13 -p1
 %patch14 -p1
 %patch15 -p1
+%patch16 -p1
+%patch17 -p1
+%patch18 -p1
 
 %build
 %cmake \

++++++ 0001-Also-theme-the-default-cursor-for-the-root-window.patch ++++++
>From 1b55ad727127f624c31fa656386b13c208455e42 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <[email protected]>
Date: Fri, 5 May 2017 23:17:26 +0200
Subject: [PATCH] Also theme the default cursor for the root window

The root window is still accessible in some cases, like context menu overlays.
---
 src/daemon/XorgDisplayServer.cpp | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/daemon/XorgDisplayServer.cpp b/src/daemon/XorgDisplayServer.cpp
index d06d89a..267ea9d 100644
--- a/src/daemon/XorgDisplayServer.cpp
+++ b/src/daemon/XorgDisplayServer.cpp
@@ -249,7 +249,7 @@ namespace SDDM {
         env.insert(QStringLiteral("SHELL"), QStringLiteral("/bin/sh"));
         displayStopScript->setProcessEnvironment(env);
 
-        // start display setup script
+        // start display stop script
         qDebug() << "Running display stop script " << displayStopCommand;
         displayStopScript->start(displayStopCommand);
 
@@ -285,11 +285,21 @@ namespace SDDM {
         env.insert(QStringLiteral("PATH"), mainConfig.Users.DefaultPath.get());
         env.insert(QStringLiteral("XAUTHORITY"), m_authPath);
         env.insert(QStringLiteral("SHELL"), QStringLiteral("/bin/sh"));
+        env.insert(QStringLiteral("XCURSOR_THEME"), 
mainConfig.Theme.CursorTheme.get());
         displayScript->setProcessEnvironment(env);
 
         // delete displayScript on finish
         connect(displayScript, SIGNAL(finished(int,QProcess::ExitStatus)), 
displayScript, SLOT(deleteLater()));
 
+        qDebug() << "Setting default cursor";
+        displayScript->start(QStringLiteral("xsetroot -cursor_name left_ptr"));
+
+        // wait for finished
+        if (!displayScript->waitForFinished(1000)) {
+            qWarning() << "Could not setup default cursor";
+            displayScript->kill();
+        }
+
         // start display setup script
         qDebug() << "Running display setup script " << displayCommand;
         displayScript->start(displayCommand);
-- 
2.12.0

++++++ 0001-Parse-desktop-file-sections.patch ++++++
>From 7196c7ebb423b258febed24937b6dd01b59db134 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <[email protected]>
Date: Thu, 11 May 2017 09:56:59 +0200
Subject: [PATCH 1/3] Parse desktop file sections

Some desktop files have multiple sections, but for now we're only
interested in [Desktop Entry]. Without this patch, every entry was seen
as part of the [Desktop Entry] session, resulting in values getting
overwritten.
---
 src/common/Session.cpp | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/common/Session.cpp b/src/common/Session.cpp
index 844572c..5c2892a 100644
--- a/src/common/Session.cpp
+++ b/src/common/Session.cpp
@@ -138,10 +138,22 @@ namespace SDDM {
         if (!file.open(QIODevice::ReadOnly))
             return;
 
+        QString current_section;
+
         QTextStream in(&file);
         while (!in.atEnd()) {
             QString line = in.readLine();
 
+            if (line.startsWith(QLatin1String("["))) {
+                // The section name ends before the last ] before the start of 
a comment
+                int end = line.lastIndexOf(QLatin1Char(']'), 
line.indexOf(QLatin1Char('#')));
+                if (end != -1)
+                    current_section = line.mid(1, end - 1);
+            }
+
+            if (current_section != QLatin1String("Desktop Entry"))
+                continue; // We are only interested in the "Desktop Entry" 
section
+
             if (line.startsWith(QLatin1String("Name="))) {
                 if (type == WaylandSession)
                     m_displayName = QObject::tr("%1 
(Wayland)").arg(line.mid(5));
-- 
2.12.0

++++++ 0002-Ignore-session-desktop-files-with-the-Hidden-propert.patch ++++++
>From 1ba30952b942050fe55a9d9c76c615f72f6fcd04 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <[email protected]>
Date: Thu, 11 May 2017 09:34:31 +0200
Subject: [PATCH 2/3] Ignore session desktop files with the Hidden property set
 to true

They are still read in the autologin case.

Fixes issue #820
---
 src/common/Session.cpp       | 9 +++++++++
 src/common/Session.h         | 3 +++
 src/greeter/SessionModel.cpp | 2 +-
 3 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/common/Session.cpp b/src/common/Session.cpp
index 5c2892a..4812d67 100644
--- a/src/common/Session.cpp
+++ b/src/common/Session.cpp
@@ -31,10 +31,12 @@ namespace SDDM {
     Session::Session()
         : m_valid(false)
         , m_type(UnknownSession)
+        , m_isHidden(false)
     {
     }
 
     Session::Session(Type type, const QString &fileName)
+        : Session()
     {
         setTo(type, fileName);
     }
@@ -104,6 +106,11 @@ namespace SDDM {
         return m_desktopNames;
     }
 
+    bool Session::isHidden() const
+    {
+        return m_isHidden;
+    }
+
     void Session::setTo(Type type, const QString &_fileName)
     {
         QString fileName(_fileName);
@@ -168,6 +175,8 @@ namespace SDDM {
                 m_tryExec = line.mid(8);
             if (line.startsWith(QLatin1String("DesktopNames=")))
                 m_desktopNames = line.mid(13).replace(QLatin1Char(';'), 
QLatin1Char(':'));
+            if (line.startsWith(QLatin1String("Hidden=")))
+                m_isHidden = line.mid(7).toLower() == QLatin1String("true");
         }
 
         file.close();
diff --git a/src/common/Session.h b/src/common/Session.h
index 7ce1e9a..c8c527e 100644
--- a/src/common/Session.h
+++ b/src/common/Session.h
@@ -59,6 +59,8 @@ namespace SDDM {
         QString desktopSession() const;
         QString desktopNames() const;
 
+        bool isHidden() const;
+
         void setTo(Type type, const QString &name);
 
         Session &operator=(const Session &other);
@@ -76,6 +78,7 @@ namespace SDDM {
         QString m_tryExec;
         QString m_xdgSessionType;
         QString m_desktopNames;
+        bool m_isHidden;
 
         friend class SessionModel;
     };
diff --git a/src/greeter/SessionModel.cpp b/src/greeter/SessionModel.cpp
index d3ace84..27e8c40 100644
--- a/src/greeter/SessionModel.cpp
+++ b/src/greeter/SessionModel.cpp
@@ -143,7 +143,7 @@ namespace SDDM {
                 }
             }
             // add to sessions list
-            if (execAllowed)
+            if (!si->isHidden() && execAllowed)
                 d->sessions.push_back(si);
             else
                 delete si;
-- 
2.12.0

++++++ 0003-Leave-duplicate-symlinks-out-of-the-SessionModel.patch ++++++
>From 793feb3a90f9ff97ebfcc5f77bc6168b32cd5810 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <[email protected]>
Date: Mon, 15 May 2017 11:33:46 +0200
Subject: [PATCH] Leave duplicate symlinks out of the SessionModel

Used for autologin, default.desktop with update-alternatives.

"explicit" needed to be removed from the constructor due to GCC bug 58255
---
 src/common/Session.h         | 2 +-
 src/greeter/SessionModel.cpp | 9 ++++++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/common/Session.h b/src/common/Session.h
index c8c527e..743b7a6 100644
--- a/src/common/Session.h
+++ b/src/common/Session.h
@@ -35,7 +35,7 @@ namespace SDDM {
             WaylandSession
         };
 
-        explicit Session();
+        Session();
         Session(Type type, const QString &fileName);
 
         bool isValid() const;
diff --git a/src/greeter/SessionModel.cpp b/src/greeter/SessionModel.cpp
index 27e8c40..bd5bbf0 100644
--- a/src/greeter/SessionModel.cpp
+++ b/src/greeter/SessionModel.cpp
@@ -122,6 +122,12 @@ namespace SDDM {
             if (!dir.exists(session))
                 continue;
 
+             // Skip symlinks that point to the same directory,
+             // they will be visited under the real name
+             QFileInfo fi_link(dir, session);
+             if (fi_link.isSymLink() && dir.canonicalPath() == 
fi_link.canonicalPath())
+                 continue;
+
             Session *si = new Session(type, session);
             bool execAllowed = true;
             QFileInfo fi(si->tryExec());
@@ -149,8 +155,9 @@ namespace SDDM {
                 delete si;
         }
         // find out index of the last session
+        QString canonicalLastSession = 
QFileInfo(stateConfig.Last.Session.get()).canonicalFilePath();
         for (int i = 0; i < d->sessions.size(); ++i) {
-            if (d->sessions.at(i)->fileName() == 
stateConfig.Last.Session.get()) {
+            if (d->sessions.at(i)->fileName() == canonicalLastSession) {
                 d->lastIndex = i;
                 break;
             }
-- 
2.12.2

++++++ sysconfig-support.patch ++++++
--- /var/tmp/diff_new_pack.2xBH9b/_old  2017-06-01 16:23:25.841836058 +0200
+++ /var/tmp/diff_new_pack.2xBH9b/_new  2017-06-01 16:23:25.841836058 +0200
@@ -6,7 +6,7 @@
  set(WAYLAND_SESSION_COMMAND     "${DATA_INSTALL_DIR}/scripts/wayland-session" 
      CACHE PATH      "Script to execute when starting the Wayland desktop 
session")
  
  set(CONFIG_FILE                 "${CMAKE_INSTALL_FULL_SYSCONFDIR}/sddm.conf"  
      CACHE PATH      "Path of the sddm config file")
-+set(DYSPLAY_MANAGER_CONFIG_FILE 
"${CMAKE_INSTALL_FULL_SYSCONFDIR}/sysconfig/displaymanager"        CACHE PATH   
   "Path of the sysconfig/displaymanager config file")
++set(DISPLAY_MANAGER_CONFIG_FILE 
"${CMAKE_INSTALL_FULL_SYSCONFDIR}/sysconfig/displaymanager"        CACHE PATH   
   "Path of the sysconfig/displaymanager config file")
  set(LOG_FILE                    
"${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/log/sddm.log"  CACHE PATH      "Path of 
the sddm log file")
  set(DBUS_CONFIG_FILENAME        "org.freedesktop.DisplayManager.conf"         
      CACHE STRING    "Name of the sddm config file")
  set(COMPONENTS_TRANSLATION_DIR  "${DATA_INSTALL_DIR}/translations"            
      CACHE PATH      "Components translations directory")
@@ -14,15 +14,23 @@
 ===================================================================
 --- sddm-0.14.0.orig/src/common/Configuration.h
 +++ sddm-0.14.0/src/common/Configuration.h
-@@ -90,7 +90,7 @@ namespace SDDM {
+@@ -90,14 +90,14 @@ namespace SDDM {
  
          Section(Autologin,
              Entry(User,                QString,     QString(),                
                  _S("Username for autologin session"));
 -            Entry(Session,             QString,     QString(),                
                  _S("Name of session file for autologin session"));
-+            Entry(Session,             QString,     _S("plasma5.desktop"),    
                  _S("Name of session file for autologin session"));
++            Entry(Session,             QString,     _S("default.desktop"),    
                  _S("Name of session file for autologin session"));
              Entry(Relogin,             bool,        false,                    
                  _S("Whether sddm should automatically log back into sessions 
when they exit"));
          );
      );
+ 
+     Config(StateConfig, []()->QString{auto tmp = getpwnam("sddm"); return tmp 
? QString::fromLocal8Bit(tmp->pw_dir) : 
QStringLiteral(STATE_DIR);}().append(QStringLiteral("/state.conf")),
+         Section(Last,
+-            Entry(Session,         QString,     QString(),                    
                  _S("Name of the session for the last logged-in user.\n"
++            Entry(Session,         QString,     
_S("/usr/share/xsessions/default.desktop"),     _S("Name of the session for the 
last logged-in user.\n"
+                                                                               
                     "This session will be preselected when the login screen 
appears."));
+             Entry(User,            QString,     QString(),                    
                  _S("Name of the last logged-in user.\n"
+                                                                               
                     "This user will be preselected when the login screen 
appears"));
 Index: sddm-0.14.0/src/common/Constants.h.in
 ===================================================================
 --- sddm-0.14.0.orig/src/common/Constants.h.in
@@ -31,7 +39,7 @@
  #define WAYLAND_SESSION_COMMAND     "@WAYLAND_SESSION_COMMAND@"
  
  #define CONFIG_FILE                 "@CONFIG_FILE@"
-+#define DYSPLAY_MANAGER_CONFIG_FILE "@DYSPLAY_MANAGER_CONFIG_FILE@"
++#define DISPLAY_MANAGER_CONFIG_FILE "@DISPLAY_MANAGER_CONFIG_FILE@"
  #define LOG_FILE                    "@LOG_FILE@"
  #define PID_FILE                    "@PID_FILE@"
  #define MINIMUM_VT                  @MINIMUM_VT@
@@ -51,7 +59,7 @@
          // log message
          qDebug() << "Display server started.";
  
-+        QSettings 
sysconfSettings(QStringLiteral(DYSPLAY_MANAGER_CONFIG_FILE), 
QSettings::NativeFormat);
++        QSettings 
sysconfSettings(QStringLiteral(DISPLAY_MANAGER_CONFIG_FILE), 
QSettings::NativeFormat);
 +        QString sysconfigUser = 
sysconfSettings.value(QStringLiteral("DISPLAYMANAGER_AUTOLOGIN"), 
QStringLiteral("")).toString();
 +
 +        if (!sysconfigUser.isEmpty()) {


Reply via email to