Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package sddm for openSUSE:Factory checked in 
at 2023-06-29 17:27:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sddm (Old)
 and      /work/SRC/openSUSE:Factory/.sddm.new.13546 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "sddm"

Thu Jun 29 17:27:22 2023 rev:64 rq:1095398 version:0.20.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/sddm/sddm.changes        2023-04-25 
16:54:05.494567755 +0200
+++ /work/SRC/openSUSE:Factory/.sddm.new.13546/sddm.changes     2023-06-29 
17:27:23.309928990 +0200
@@ -1,0 +2,60 @@
+Mon Jun 26 09:54:44 UTC 2023 - Fabian Vogt <[email protected]>
+
+- Add patch to fix parsing some session .desktop files:
+  * 0001-Session-Parse-.desktop-files-manually-again.patch
+
+-------------------------------------------------------------------
+Sat Jun 24 14:07:16 UTC 2023 - Fabian Vogt <[email protected]>
+
+- Update to 0.20.0:
+  + Initial Qt6 support (Will break themes which rely on Qt 5)
+  + **Experimental** support for running the greeter with Wayland
+  + Enable HiDPI scaling by default
+  + Support for running X11 display server without root privileges
+  + Greeter: Support setting environment variables
+  + Allow additional env vars to be defined in session files (#1370)
+  + Make accountsservice data directory overridable via CMake
+  + Add support for X11 cursor size configuration
+  + Search XDG Base Directories for session files
+  + Display information and errors from PAM in the greeter (#1486)
+  * Remove the Passwd backend, make PAM mandatory
+  * Bump minimum CMake version to 3.4
+  * Introduce SDDM_INITIAL_VT as the TTY to reach out to
+  * Set XCURSOR_SIZE in XorgDisplayServer::start
+  * Make it possible to start ConsoleKit D-Bus service during SDDM startup
+  * pam: Do not use tally2 if faillock is present
+  * Bump to Qt 5.15, port away from deprecated APIs
+  * remove `-logfile` arg that causes server to fail
+  - Set RUNTIME_DIR to /run/sddm when using systemd to follow FHS 3.0
+  - Use avatars in FacesDir first and if not found search other locations
+  - Switch to using libxau with `FamilyWild` (#1230)
+  - New interface to access config values from themes (#1097)
+  - Session names are translated now (#1645)
+  - Many more bugfixes
+- Important change: SDDM now uses the first free VT, it no longer prefers
+  tty7 (the InitialVT option in 00-general.conf has no effect anymore)
+- Remove patches, now upstream:
+  * 0001-Use-PAM-s-username.patch
+  * 0001-Add-fish-etc-profile-and-HOME-.profile-sourcing-1331.patch
+  * 0004-Retry-starting-the-display-server.patch
+  * 0001-disable-automatic-portal-launching.patch
+  * 0001-Remove-suffix-for-Wayland-session.patch
+  * 0001-Redesign-Xauth-handling.patch
+  * 0002-Use-QTemporaryFile-with-xauth_XXXXXX-ih-XAuth.patch
+  * 0001-Process-all-available-auth-messages-in-a-loop.patch
+  * 0001-Avoid-starting-a-new-session-on-exit.patch
+- Remove files, now upstream:
+  * sddm-tmpfiles.conf
+  * system-user-sddm.conf
+- Rebased patches:
+  * 0001-Redesign-Xauth-handling.patch
+  * 0001-Write-the-daemon-s-PID-to-a-file-on-startup.patch
+  * 0001-Set-XAUTHLOCALHOSTNAME-in-sessions.patch
+  * 0001-Read-the-DISPLAYMANAGER_AUTOLOGIN-value-from-sysconf.patch
+  * sddm-service-handle-plymouth.patch
+  * 0003-Leave-duplicate-symlinks-out-of-the-SessionModel.patch
+- Drop patches, not applicable anymore:
+  * 0001-Systemd-service-unit-Use-tty7-by-default.patch
+- Add 11-kwin_wayland.conf to use kwin_wayland as wayland compositor
+
+-------------------------------------------------------------------

Old:
----
  0001-Add-fish-etc-profile-and-HOME-.profile-sourcing-1331.patch
  0001-Avoid-starting-a-new-session-on-exit.patch
  0001-Process-all-available-auth-messages-in-a-loop.patch
  0001-Redesign-Xauth-handling.patch
  0001-Remove-suffix-for-Wayland-session.patch
  0001-Systemd-service-unit-Use-tty7-by-default.patch
  0001-Use-PAM-s-username.patch
  0001-disable-automatic-portal-launching.patch
  0004-Retry-starting-the-display-server.patch
  sddm-0.19.0.tar.xz
  sddm-tmpfiles.conf
  system-user-sddm.conf

New:
----
  0001-Session-Parse-.desktop-files-manually-again.patch
  11-kwin_wayland.conf
  sddm-0.20.0.tar.gz
  sddm.obsinfo

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

Other differences:
------------------
++++++ sddm.spec ++++++
--- /var/tmp/diff_new_pack.yR23SG/_old  2023-06-29 17:27:24.713937214 +0200
+++ /var/tmp/diff_new_pack.yR23SG/_new  2023-06-29 17:27:24.713937214 +0200
@@ -17,33 +17,27 @@
 
 
 Name:           sddm
-Version:        0.19.0
+Version:        0.20.0
 Release:        0
 Summary:        QML-based display manager
 License:        GPL-2.0-or-later
 Group:          System/GUI/KDE
 URL:            https://github.com/sddm/sddm
-Source:         
https://github.com/%{name}/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.xz
+Source:         
https://github.com/sddm/sddm/archive/v%{version}/%{name}-%{version}.tar.gz
 Source1:        X11-displaymanagers-%{name}
-Source2:        00-general.conf
-Source3:        10-theme.conf
-Source4:        sddm-tmpfiles.conf
-Source5:        system-user-sddm.conf
+# Distro configs
+Source10:       00-general.conf
+Source11:       10-theme.conf
+# Use kwin_wayland for DisplayServer=wayland.
+# Adapted from 
https://invent.kde.org/plasma/plasma-workspace/-/blob/Plasma/5.27/sddm-wayland-session/plasma-wayland.conf
+Source12:       11-kwin_wayland.conf
 # PAM configuration
 Source20:       sddm.pam
 Source21:       sddm-autologin.pam
 Source22:       sddm-greeter.pam
 # Patch0-100: PATCH-FIX-UPSTREAM
-Patch0:         0001-Use-PAM-s-username.patch
-Patch1:         0001-Add-fish-etc-profile-and-HOME-.profile-sourcing-1331.patch
-Patch2:         0004-Retry-starting-the-display-server.patch
-Patch3:         0001-disable-automatic-portal-launching.patch
-Patch4:         0001-Process-all-available-auth-messages-in-a-loop.patch
-Patch5:         0001-Avoid-starting-a-new-session-on-exit.patch
-# Not merged yet: https://github.com/sddm/sddm/pull/997
-Patch50:        0001-Remove-suffix-for-Wayland-session.patch
-# Not merged yet: https://github.com/sddm/sddm/pull/1230
-Patch55:        0001-Redesign-Xauth-handling.patch
+# https://github.com/sddm/sddm/pull/1746
+Patch0:         0001-Session-Parse-.desktop-files-manually-again.patch
 # Patch100-?: PATCH-FIX-OPENSUSE
 Patch101:       0001-Write-the-daemon-s-PID-to-a-file-on-startup.patch
 Patch102:       0001-Set-XAUTHLOCALHOSTNAME-in-sessions.patch
@@ -51,8 +45,6 @@
 # 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
 Patch104:       sddm-service-handle-plymouth.patch
-# Use tty7 by default in the systemd service unit
-Patch105:       0001-Systemd-service-unit-Use-tty7-by-default.patch
 Patch107:       0003-Leave-duplicate-symlinks-out-of-the-SessionModel.patch
 BuildRequires:  cmake
 BuildRequires:  extra-cmake-modules >= 1.4.0
@@ -63,8 +55,9 @@
 BuildRequires:  pkgconfig
 # Autodetect UID_MIN and UID_MAX from /etc/login.defs
 BuildRequires:  shadow
+BuildRequires:  python3-docutils
 BuildRequires:  sysuser-tools
-BuildRequires:  pkgconfig(Qt5Core) >= 5.6.0
+BuildRequires:  pkgconfig(Qt5Core) >= 5.15.0
 BuildRequires:  pkgconfig(Qt5DBus)
 BuildRequires:  pkgconfig(Qt5Network)
 BuildRequires:  pkgconfig(Qt5Quick)
@@ -78,23 +71,26 @@
 Requires(post): update-alternatives
 Requires(postun):update-alternatives
 Requires(post): diffutils
+Requires(post): %{_sbindir}/update-alternatives
+Requires(postun):%{_sbindir}/update-alternatives
 Requires:       sddm-branding = %{version}
 Requires:       xdm
 # Merged the -lang package back into the main package
 Provides:       %{name}-lang = %{version}
 Obsoletes:      %{name}-lang < %{version}
-BuildRequires:  python3-docutils
 
 %description
-SDDM is a display manager for X11. It uses technologies like QtQuick,
-which in turn gives the designer the ability to create animated user
+SDDM is a display manager for X11 and Wayland. It uses technologies like
+QtQuick, which gives the designer the ability to create animated user
 interfaces.
 
 %package branding-openSUSE
-Summary:        openSUSE branding for SDDM, a QML-based display manager
+Summary:        openSUSE branding for SDDM
 Group:          System/GUI/KDE
 Requires:       %{name} = %{version}
 Requires:       sddm-theme-openSUSE
+# See 11-kwin_wayland.conf
+Requires:       kwin5 >= 5.26.90
 Requires(post): %{name}
 Requires(post): diffutils
 Supplements:    (plasma5-workspace and branding-openSUSE)
@@ -102,13 +98,10 @@
 Provides:       sddm-branding = %{version}
 
 %description branding-openSUSE
-SDDM is a display manager for X11. It uses technologies like QtQuick,
-which in turn gives the designer the ability to create animated user
-interfaces.
 This package provides the openSUSE branding for SDDM.
 
 %package branding-upstream
-Summary:        Upstream branding for SDDM, a QML-based display manager
+Summary:        Upstream branding for SDDM
 Group:          System/GUI/KDE
 Requires:       %{name} = %{version}
 Requires(post): %{name}
@@ -118,24 +111,18 @@
 Provides:       sddm-branding = %{version}
 
 %description branding-upstream
-SDDM is a display manager for X11. It uses technologies like QtQuick,
-which in turn gives the designer the ability to create animated user
-interfaces.
 This package provides upstream branding for SDDM.
 
 %prep
 %autosetup -p1
 
 %build
-%sysusers_generate_pre %{SOURCE5} sddm system-user-sddm.conf
 LOGIN_DEFS_PATH="%{_sysconfdir}/login.defs"
-if test \( -n "%{?_distconfdir}" -a -e "%{_distconfdir}/login.defs" \); then
-  LOGIN_DEFS_PATH="%{_distconfdir}/login.defs"
-fi
+[ -e "$LOGIN_DEFS_PATH" ] || LOGIN_DEFS_PATH="%{_distconfdir}/login.defs"
 
+# SDDM_INITIAL_VT does not work for X: https://github.com/sddm/sddm/issues/1650
 %cmake \
       -DCMAKE_BUILD_TYPE=Release \
-      -DMINIMUM_VT=7 \
       -DCMAKE_INSTALL_LIBEXECDIR="%{_libexecdir}/%{name}" \
       -DIMPORTS_INSTALL_DIR="%{_libdir}/qt5/qml" \
       -DSESSION_COMMAND="%{_sysconfdir}/X11/xdm/Xsession" \
@@ -144,7 +131,7 @@
       -DDBUS_CONFIG_DIR=%{_datadir}/dbus-1/system.d \
       -DRUNTIME_DIR="/run/sddm" \
       -DPID_FILE="/run/sddm.pid" \
-      -DLOGIN_DEFS_PATH:path="${LOGIN_DEFS_PATH}"
+      -DLOGIN_DEFS_PATH:path="${LOGIN_DEFS_PATH}" \
   %make_jobs
 
 %install
@@ -159,9 +146,11 @@
   popd
 
   install -Dm 0644 %{SOURCE1} 
%{buildroot}%{_prefix}/lib/X11/displaymanagers/%{name}
-  install -Dm 0644 %{SOURCE2} 
%{buildroot}%{_prefix}/lib/sddm/sddm.conf.d/00-general.conf
-  install -Dm 0644 %{SOURCE3} 
%{buildroot}%{_prefix}/lib/sddm/sddm.conf.d/10-theme.conf
-  install -Dm 0644 %{SOURCE4} %{buildroot}%{_tmpfilesdir}/sddm.conf
+  install -Dm 0644 %{SOURCE10} 
%{buildroot}%{_prefix}/lib/sddm/sddm.conf.d/00-general.conf
+  # Adjust paths to X session scripts in 00-general.conf
+  sed -e 's-/usr/etc-%{?_distconfdir}%{!?_distconfdir:%{_sysconfdir}}-g' -i 
%{buildroot}%{_prefix}/lib/sddm/sddm.conf.d/00-general.conf
+  install -Dm 0644 %{SOURCE11} 
%{buildroot}%{_prefix}/lib/sddm/sddm.conf.d/10-theme.conf
+  install -Dm 0644 %{SOURCE12} 
%{buildroot}%{_prefix}/lib/sddm/sddm.conf.d/11-kwin_wayland.conf
 
   # Install PAM config
   rm -r %{buildroot}%{_sysconfdir}/pam.d # Remove sddm's config, for debian 
only
@@ -175,9 +164,6 @@
     sed -i'' '/postlogin-/d' %{buildroot}${pam_dest}/*
   %endif
 
-  # Adjust paths to X session scripts in 00-general.conf
-  sed -e 's-/usr/etc-%{?_distconfdir}%{!?_distconfdir:%{_sysconfdir}}-g' -i 
%{buildroot}%{_prefix}/lib/sddm/sddm.conf.d/00-general.conf
-
   mkdir -p %{buildroot}%{_sysconfdir}/alternatives
   touch %{buildroot}%{_sysconfdir}/alternatives/default-displaymanager
   ln -s %{_sysconfdir}/alternatives/default-displaymanager 
%{buildroot}%{_prefix}/lib/X11/displaymanagers/default-displaymanager
@@ -189,7 +175,7 @@
   install -d %{buildroot}%{_sbindir}
   ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcsddm
 
-  install -Dm 0644 %{SOURCE5} %{buildroot}%{_sysusersdir}/system-user-sddm.conf
+  %sysusers_generate_pre %{buildroot}%{_sysusersdir}/sddm.conf sddm sddm.conf
 
   %fdupes %{buildroot}%{_datadir}/sddm
 
@@ -227,9 +213,9 @@
 
 %if 0%{?suse_version} > 1500
 %posttrans
-# Migration to /usr/etc, restore just created .rpmsave
-for i in pam.d/sddm pam.d/sddm-autologin pam.d/sddm-greeter ; do
-     test -f %{_sysconfdir}/${i}.rpmsave && mv -v %{_sysconfdir}/${i}.rpmsave 
%{_sysconfdir}/${i} ||:
+# Migration to /usr/lib/pam.d/, restore just created .rpmsave
+for i in pam.d/sddm pam.d/sddm-autologin pam.d/sddm-greeter; do
+    [ -f %{_sysconfdir}/${i}.rpmsave ] && mv -v %{_sysconfdir}/${i}.rpmsave 
%{_sysconfdir}/${i} || :
 done
 %endif
 
@@ -307,6 +293,8 @@
 %{_prefix}/lib/sddm/sddm.conf.d/00-general.conf
 %dir %{_libexecdir}/sddm
 %{_libexecdir}/sddm/sddm-helper
+%{_libexecdir}/sddm/sddm-helper-start-wayland
+%{_libexecdir}/sddm/sddm-helper-start-x11user
 %{_datadir}/sddm/faces/
 %{_datadir}/sddm/flags/
 %{_datadir}/sddm/scripts/
@@ -316,13 +304,14 @@
 %ghost %attr(750,sddm,sddm) %dir %{_localstatedir}/lib/sddm
 %{_mandir}/man*/sddm*%{ext_man}
 %{_unitdir}/sddm.service
-%{_sysusersdir}/system-user-sddm.conf
+%{_sysusersdir}/sddm.conf
 %{_tmpfilesdir}/sddm.conf
 
 %files branding-openSUSE
 %license LICENSE*
 %doc README*
 %{_prefix}/lib/sddm/sddm.conf.d/10-theme.conf
+%{_prefix}/lib/sddm/sddm.conf.d/11-kwin_wayland.conf
 
 %files branding-upstream
 %license LICENSE*

++++++ 00-general.conf ++++++
--- /var/tmp/diff_new_pack.yR23SG/_old  2023-06-29 17:27:24.753937448 +0200
+++ /var/tmp/diff_new_pack.yR23SG/_new  2023-06-29 17:27:24.757937472 +0200
@@ -2,6 +2,7 @@
 ServerPath=/usr/bin/X
 SessionCommand=/usr/etc/X11/xdm/Xsession
 DisplayCommand=/usr/etc/X11/xdm/Xsetup
+# No effect in 0.20.0, might change in the future again
 MinimumVT=7
 # boo#1089932
 EnableHiDPI=true

++++++ 0001-Read-the-DISPLAYMANAGER_AUTOLOGIN-value-from-sysconf.patch ++++++
--- /var/tmp/diff_new_pack.yR23SG/_old  2023-06-29 17:27:24.769937542 +0200
+++ /var/tmp/diff_new_pack.yR23SG/_new  2023-06-29 17:27:24.773937566 +0200
@@ -1,4 +1,4 @@
-From 392b0353f31c1a68520857657660fdbfad7ed755 Mon Sep 17 00:00:00 2001
+From 0374d7dd1432714c03c91a3ce6e21b87ba46175d Mon Sep 17 00:00:00 2001
 From: Hrvoje Senjan <[email protected]>
 Date: Sat, 2 Sep 2017 11:27:01 +0200
 Subject: [PATCH] Read the DISPLAYMANAGER_AUTOLOGIN value from
@@ -16,22 +16,22 @@
  4 files changed, 11 insertions(+), 2 deletions(-)
 
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index fc3f2ce..b6b9237 100644
+index 4f5c92e..7ab509c 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -197,6 +197,7 @@ set(WAYLAND_SESSION_COMMAND     
"${DATA_INSTALL_DIR}/scripts/wayland-session"
- set(CONFIG_FILE                 "${CMAKE_INSTALL_FULL_SYSCONFDIR}/sddm.conf"  
      CACHE PATH      "Path of the sddm config file")
+@@ -194,6 +194,7 @@ set(CONFIG_FILE                 
"${CMAKE_INSTALL_FULL_SYSCONFDIR}/sddm.conf"
  set(CONFIG_DIR                  
"${CMAKE_INSTALL_FULL_SYSCONFDIR}/sddm.conf.d"      CACHE PATH      "Path of 
the sddm config directory")
+ set(ACCOUNTSSERVICE_DATA_DIR    "/var/lib/AccountsService"                    
      CACHE PATH      "Path of the accountsservice data directory")
  set(SYSTEM_CONFIG_DIR           
"${CMAKE_INSTALL_PREFIX}/lib/sddm/sddm.conf.d"      CACHE PATH      "Path of 
the system sddm config directory")
 +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")
 diff --git a/src/common/Configuration.h b/src/common/Configuration.h
-index a7e0585..ff314a7 100644
+index b8f317a..d54fca6 100644
 --- a/src/common/Configuration.h
 +++ b/src/common/Configuration.h
-@@ -94,14 +94,15 @@ namespace SDDM {
+@@ -101,14 +101,15 @@ namespace SDDM {
  
          Section(Autologin,
              Entry(User,                QString,     QString(),                
                  _S("Username for autologin session"));
@@ -50,10 +50,10 @@
              Entry(User,            QString,     QString(),                    
                  _S("Name of the last logged-in user.\n"
                                                                                
                     "This user will be preselected when the login screen 
appears"));
 diff --git a/src/common/Constants.h.in b/src/common/Constants.h.in
-index f09858c..098c77b 100644
+index 7b2669e..9968d44 100644
 --- a/src/common/Constants.h.in
 +++ b/src/common/Constants.h.in
-@@ -35,6 +35,7 @@
+@@ -36,6 +36,7 @@
  #define CONFIG_FILE                 "@CONFIG_FILE@"
  #define CONFIG_DIR                  "@CONFIG_DIR@"
  #define SYSTEM_CONFIG_DIR           "@SYSTEM_CONFIG_DIR@"
@@ -62,7 +62,7 @@
  #define LOG_FILE                    "@LOG_FILE@"
  #define PID_FILE                    "@PID_FILE@"
 diff --git a/src/daemon/Display.cpp b/src/daemon/Display.cpp
-index b95f6e5..e3a5566 100644
+index 1b019df..276cb37 100644
 --- a/src/daemon/Display.cpp
 +++ b/src/daemon/Display.cpp
 @@ -35,6 +35,7 @@
@@ -73,7 +73,7 @@
  
  #include <pwd.h>
  #include <unistd.h>
-@@ -143,6 +144,11 @@ namespace SDDM {
+@@ -240,6 +241,11 @@ namespace SDDM {
          // log message
          qDebug() << "Display server started.";
  
@@ -86,6 +86,6 @@
              !mainConfig.Autologin.User.get().isEmpty()) {
              // reset first flag
 -- 
-2.25.1
+2.40.0
 
 

++++++ 0001-Session-Parse-.desktop-files-manually-again.patch ++++++
>From c73fe82ccc81e827c3e605a0bc89279103458695 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <[email protected]>
Date: Mon, 26 Jun 2023 09:52:05 +0200
Subject: [PATCH] Session: Parse .desktop files manually again

Using QSettings::IniFormat doesn't quite work. Implement a custom parser
for those files to handle them according to the specification.

Fixes #1745
---
 src/common/Session.cpp | 52 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 51 insertions(+), 1 deletion(-)

diff --git a/src/common/Session.cpp b/src/common/Session.cpp
index 4bb2142..5eec648 100644
--- a/src/common/Session.cpp
+++ b/src/common/Session.cpp
@@ -34,6 +34,56 @@
 const QString s_entryExtention = QStringLiteral(".desktop");
 
 namespace SDDM {
+    // QSettings::IniFormat can't be used to read .desktop files due to 
different
+    // syntax of values (escape sequences, quoting, automatic QStringList 
detection).
+    // So implement yet another .desktop file parser.
+    class DesktopFileFormat {
+        static bool readFunc(QIODevice &device, QSettings::SettingsMap &map)
+        {
+            QString currentSectionName;
+            while(!device.atEnd())
+            {
+                // Iterate each line, remove line terminators
+                const auto line = device.readLine().replace("\r", 
"").replace("\n", "");
+                if(line.isEmpty() || line.startsWith('#'))
+                    continue; // Ignore empty lines and comments
+
+                if(line.startsWith('[')) // Section header
+                {
+                    // Remove [ and ].
+                    currentSectionName = QString::fromUtf8(line.mid(1, 
line.length() - 2));
+                }
+                else if(int equalsPos = line.indexOf('='); equalsPos > 0) // 
Key=Value
+                {
+                    const auto key = QString::fromUtf8(line.left(equalsPos));
+
+                    // Read the value, handle escape sequences
+                    auto valueBytes = line.mid(equalsPos + 1);
+                    valueBytes.replace("\\s", " ").replace("\\n", "\n");
+                    valueBytes.replace("\\t", "\t").replace("\\r", "\r");
+                    valueBytes.replace("\\\\", "\\");
+
+                    auto value = QString::fromUtf8(valueBytes);
+                    map.insert(currentSectionName + QLatin1Char('/') + key, 
value);
+                }
+            }
+
+            return true;
+        }
+    public:
+        // Register the .desktop file format if necessary, return its id.
+        static QSettings::Format format()
+        {
+            static QSettings::Format s_format = QSettings::InvalidFormat;
+            if (s_format == QSettings::InvalidFormat)
+                s_format = QSettings::registerFormat(QStringLiteral("desktop"),
+                                                     
DesktopFileFormat::readFunc, nullptr,
+                                                     Qt::CaseSensitive);
+
+            return s_format;
+        }
+    };
+
     Session::Session()
         : m_valid(false)
         , m_type(UnknownSession)
@@ -169,7 +219,7 @@ namespace SDDM {
         if (!file.isOpen())
             return;
 
-        QSettings settings(m_fileName, QSettings::IniFormat);
+        QSettings settings(m_fileName, DesktopFileFormat::format());
 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
         settings.setIniCodec("UTF-8");
 #endif
-- 
2.41.0


++++++ 0001-Set-XAUTHLOCALHOSTNAME-in-sessions.patch ++++++
--- /var/tmp/diff_new_pack.yR23SG/_old  2023-06-29 17:27:24.793937683 +0200
+++ /var/tmp/diff_new_pack.yR23SG/_new  2023-06-29 17:27:24.793937683 +0200
@@ -1,4 +1,4 @@
-From 259ec546a821f40536dc4aa2ff510a1e197b6e0d Mon Sep 17 00:00:00 2001
+From 39d30f19ac7948eb5e9ab2ef0f219ae770644f55 Mon Sep 17 00:00:00 2001
 From: Fabian Vogt <[email protected]>
 Date: Sat, 24 Oct 2020 13:57:05 +0200
 Subject: [PATCH] Set XAUTHLOCALHOSTNAME in sessions
@@ -15,7 +15,7 @@
  1 file changed, 2 insertions(+)
 
 diff --git a/src/helper/Backend.cpp b/src/helper/Backend.cpp
-index a053310..5e6941e 100644
+index 91ca211..1b0bb6f 100644
 --- a/src/helper/Backend.cpp
 +++ b/src/helper/Backend.cpp
 @@ -27,6 +27,7 @@
@@ -26,7 +26,7 @@
  
  #include <pwd.h>
  
-@@ -68,6 +69,7 @@ namespace SDDM {
+@@ -73,6 +74,7 @@ namespace SDDM {
              env.insert(QStringLiteral("SHELL"), 
QString::fromLocal8Bit(pw->pw_shell));
              env.insert(QStringLiteral("USER"), 
QString::fromLocal8Bit(pw->pw_name));
              env.insert(QStringLiteral("LOGNAME"), 
QString::fromLocal8Bit(pw->pw_name));
@@ -35,6 +35,6 @@
          /* get additional environment variables via setclassenvironment();
              this needs to be done here instead of in 
UserSession::setupChildProcess
 -- 
-2.25.1
+2.39.1
 
 

++++++ 0001-Write-the-daemon-s-PID-to-a-file-on-startup.patch ++++++
--- /var/tmp/diff_new_pack.yR23SG/_old  2023-06-29 17:27:24.805937753 +0200
+++ /var/tmp/diff_new_pack.yR23SG/_new  2023-06-29 17:27:24.809937776 +0200
@@ -1,33 +1,32 @@
-From e88acb4c8971992bbde1a2e22b04353b0deef0ea Mon Sep 17 00:00:00 2001
+From 646b025efada0b9bb1b3680d2a8e264b28cdb820 Mon Sep 17 00:00:00 2001
 From: Hrvoje Senjan <[email protected]>
 Date: Sat, 2 Sep 2017 11:09:51 +0200
 Subject: [PATCH] Write the daemon's PID to a file on startup
 
 openSUSE's generic display-manager service doesn't know what to do
 without a pid file. drop the patch as soon as that sick dinosaur is killed.
-
 ---
  src/common/Constants.h.in |  1 +
  src/daemon/DaemonApp.cpp  | 11 +++++++++++
  2 files changed, 12 insertions(+)
 
 diff --git a/src/common/Constants.h.in b/src/common/Constants.h.in
-index 7500a49..09b80a7 100644
+index 405da5e..7b2669e 100644
 --- a/src/common/Constants.h.in
 +++ b/src/common/Constants.h.in
-@@ -37,6 +37,7 @@
+@@ -38,6 +38,7 @@
  #define SYSTEM_CONFIG_DIR           "@SYSTEM_CONFIG_DIR@"
  
  #define LOG_FILE                    "@LOG_FILE@"
 +#define PID_FILE                    "@PID_FILE@"
- #define MINIMUM_VT                  @MINIMUM_VT@
  
  #define UID_MIN                     @UID_MIN@
+ #define UID_MAX                     @UID_MAX@
 diff --git a/src/daemon/DaemonApp.cpp b/src/daemon/DaemonApp.cpp
-index b5c8d49..c38e5a4 100644
+index 490068e..2b6777a 100644
 --- a/src/daemon/DaemonApp.cpp
 +++ b/src/daemon/DaemonApp.cpp
-@@ -31,6 +31,7 @@
+@@ -32,6 +32,7 @@
  #include <QDebug>
  #include <QHostInfo>
  #include <QTimer>
@@ -35,7 +34,7 @@
  
  #include <iostream>
  
-@@ -46,6 +47,16 @@ namespace SDDM {
+@@ -47,6 +48,16 @@ namespace SDDM {
          // log message
          qDebug() << "Initializing...";
  
@@ -53,6 +52,6 @@
          m_testing = (arguments().indexOf(QStringLiteral("--test-mode")) != 
-1);
  
 -- 
-2.14.1
+2.41.0
 
 

++++++ 0003-Leave-duplicate-symlinks-out-of-the-SessionModel.patch ++++++
--- /var/tmp/diff_new_pack.yR23SG/_old  2023-06-29 17:27:24.821937847 +0200
+++ /var/tmp/diff_new_pack.yR23SG/_new  2023-06-29 17:27:24.825937870 +0200
@@ -1,58 +1,46 @@
-From 793feb3a90f9ff97ebfcc5f77bc6168b32cd5810 Mon Sep 17 00:00:00 2001
+From a86829ae62b4338be716b3d75642321e631dcdec Mon Sep 17 00:00:00 2001
 From: Fabian Vogt <[email protected]>
-Date: Mon, 15 May 2017 11:33:46 +0200
+Date: Sat, 4 Feb 2023 22:14:16 +0100
 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
+Used for autologin (default.desktop) and backwards-compat.
 ---
- src/common/Session.h         | 2 +-
- src/greeter/SessionModel.cpp | 9 ++++++++-
- 2 files changed, 9 insertions(+), 2 deletions(-)
+ src/greeter/SessionModel.cpp | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
 
-Index: sddm-0.17.0/src/common/Session.h
-===================================================================
---- sddm-0.17.0.orig/src/common/Session.h
-+++ sddm-0.17.0/src/common/Session.h
-@@ -35,7 +35,7 @@ namespace SDDM {
-             WaylandSession
-         };
- 
--        explicit Session();
-+        Session();
-         Session(Type type, const QString &fileName);
- 
-         bool isValid() const;
-Index: sddm-0.17.0/src/greeter/SessionModel.cpp
-===================================================================
---- sddm-0.17.0.orig/src/greeter/SessionModel.cpp
-+++ sddm-0.17.0/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;
-+
+diff --git a/src/greeter/SessionModel.cpp b/src/greeter/SessionModel.cpp
+index 3a89d42..9eaab10 100644
+--- a/src/greeter/SessionModel.cpp
++++ b/src/greeter/SessionModel.cpp
+@@ -136,6 +136,15 @@ namespace SDDM {
+         sessions.removeDuplicates();
+         for (auto& session : qAsConst(sessions)) {
              Session *si = new Session(type, session);
++
++            // Skip symlinks that point to the same directory,
++            // they will be visited under the real name
++            QFileInfo fi_link(si->fileName());
++            if (fi_link.isSymLink() && fi_link.canonicalPath() == 
si->directory().path()) {
++                delete si;
++                continue;
++            }
++
              bool execAllowed = true;
              QFileInfo fi(si->tryExec());
-@@ -149,8 +155,12 @@ namespace SDDM {
-                 delete si;
+             if (fi.isAbsolute()) {
+@@ -164,8 +173,10 @@ namespace SDDM {
+             }
          }
          // find out index of the last session
-+        QString canonicalLastSession = 
QFileInfo(stateConfig.Last.Session.get()).canonicalFilePath();
++        const 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()) {
-+            QString sessionPath = 
d->sessions.at(i)->directory().absoluteFilePath(d->sessions.at(i)->fileName());
-+            QString canonicalSession = 
QFileInfo(sessionPath).canonicalFilePath();
-+
++            const QString canonicalSession = 
QFileInfo(d->sessions.at(i)->fileName()).canonicalFilePath();
 +            if (canonicalSession == canonicalLastSession) {
                  d->lastIndex = i;
                  break;
              }
+-- 
+2.39.1
+
 

++++++ 11-kwin_wayland.conf ++++++
[General]
GreeterEnvironment=QT_WAYLAND_SHELL_INTEGRATION=layer-shell
InputMethod=

[Wayland]
# --locale1 was introduced in kwin 5.27
CompositorCommand=kwin_wayland --no-global-shortcuts --no-lockscreen --locale1

++++++ sddm-service-handle-plymouth.patch ++++++
--- /var/tmp/diff_new_pack.yR23SG/_old  2023-06-29 17:27:24.897938292 +0200
+++ /var/tmp/diff_new_pack.yR23SG/_new  2023-06-29 17:27:24.897938292 +0200
@@ -1,8 +1,8 @@
-Index: sddm-0.14.0/services/sddm.service.in
+Index: sddm-0.19.0+git20230203.7df16ce/services/sddm.service.in
 ===================================================================
---- sddm-0.14.0.orig/services/sddm.service.in
-+++ sddm-0.14.0/services/sddm.service.in
-@@ -6,6 +6,7 @@ After=systemd-user-sessions.service gett
+--- sddm-0.19.0+git20230203.7df16ce.orig/services/sddm.service.in
++++ sddm-0.19.0+git20230203.7df16ce/services/sddm.service.in
+@@ -9,6 +9,7 @@ StartLimitBurst=2
  
  [Service]
  ExecStart=@CMAKE_INSTALL_FULL_BINDIR@/sddm

++++++ sddm.obsinfo ++++++
name: sddm
version: 0.20.0+git20230623.a9a664d
mtime: 1687523318
commit: a9a664df36c2109d999aa841df7c8856ff68f350

Reply via email to