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
