Package: kde-config-sddm
Version: 4:6.3.4-2
Severity: serious
Tags: patch
Justification: Policy 9.1

While the theme edit function has been nicely disabled (bug #1090041) so it no longer writes to /usr until (hopefully) upstream comes up with a better way to do this, upon applying a different theme the kde sddm config module will still
write a theme.config.user file to /usr/share/sddm/themes/$theme, saving any
possible changes to the theme globally and violating FHS once more. Since the
theme cannot be edited with the previous fix in place anyway, this file is
redundant, too. As a sidenote, this issue is what triggers bug #1107185. It is not the root cause (the kde config module writes a relative background image path to the user config, and since sddm theme debian-breeze is based on (basically:
extends) theme breeze, sddm now looks in the wrong directory), but once the
user config is removed, that bug is fixed, or at least no longer triggered.

I have attached a patch that removes the creation of this user config file.
Obviously this will not undo any 'damage' that has already been done; maybe one
could include a scan that removes all instances of theme.config.user below
/usr/share/sddm/themes in a post-install script or something, but I did not
bother.

Kind regards,

Jordi Bosveld


-- System Information:
Debian Release: 13.0
APT prefers testing-security
APT policy: (500, 'testing-security'), (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.12.33+deb13-amd64 (SMP w/24 CPU threads; PREEMPT)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB:en_US
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages kde-config-sddm depends on:
ii libc6 2.41-9
ii libkf6archive6 6.13.0-2
ii libkf6authcore6 6.13.0-1
ii libkf6configcore6 6.13.0-2
ii libkf6configgui6 6.13.0-2
ii libkf6coreaddons6 6.13.0-1
ii libkf6i18n6 6.13.0-1
ii libkf6kcmutilscore6 6.13.0-2
ii libkf6kcmutilsquick6 6.13.0-2
ii libkf6kiogui6 6.13.0-6
ii libkf6service-bin 6.13.0-1
ii libkf6service6 6.13.0-1
ii libkf6widgetsaddons6 6.13.0-1
ii libqt6core6t64 6.8.2+dfsg-7
ii libqt6dbus6 6.8.2+dfsg-7
ii libqt6gui6 6.8.2+dfsg-7
ii libqt6qml6 6.8.2+dfsg-7
ii libqt6widgets6 6.8.2+dfsg-7
ii libstdc++6 14.2.0-19
ii qml6-module-org-kde-kcmutils 6.13.0-2
ii qml6-module-org-kde-kirigami 6.13.0-2
ii qml6-module-org-kde-kitemmodels 6.13.0-1
ii qml6-module-org-kde-newstuff 6.13.0-1
ii qml6-module-qt5compat-graphicaleffects 6.8.2-3+b1
ii qml6-module-qtquick 6.8.2+dfsg-7
ii qml6-module-qtquick-controls 6.8.2+dfsg-7
ii qml6-module-qtquick-dialogs 6.8.2+dfsg-7
ii qml6-module-qtquick-layouts 6.8.2+dfsg-7
ii qml6-module-qtquick-window 6.8.2+dfsg-7
ii systemsettings 4:6.3.4-2

kde-config-sddm recommends no packages.

kde-config-sddm suggests no packages.

-- no debconf information
--- sddm-kcm-6.3.4.orig/src/sddmkcm.cpp
+++ sddm-kcm-6.3.4/src/sddmkcm.cpp
@@ -118,17 +118,6 @@ void SddmKcm::save()
     const QModelIndex currentThemeIndex = m_themesModel->index(m_themesModel->currentIndex());
     const QString themeConfigPath = m_themesModel->data(currentThemeIndex, ThemesModel::PathRole).toString()
         + m_themesModel->data(currentThemeIndex, ThemesModel::ConfigFileRole).toString();
-    if (!themeConfigPath.isEmpty()) {
-        args[QStringLiteral("theme.conf.user")] = QVariant(themeConfigPath + QStringLiteral(".user"));
-        const QString backgroundPath = m_themesModel->data(currentThemeIndex, ThemesModel::CurrentBackgroundRole).toString();
-        if (!backgroundPath.isEmpty()) {
-            args[QStringLiteral("theme.conf.user/General/background")] = backgroundPath;
-            args[QStringLiteral("theme.conf.user/General/type")] = QStringLiteral("image");
-        } else {
-            args[QStringLiteral("theme.conf.user/General/type")] = QStringLiteral("color");
-        }
-        args[QStringLiteral("theme.conf.user/General/showClock")] = m_themesModel->data(currentThemeIndex, ThemesModel::ShowClockRole).toBool();
-    }
     args[QStringLiteral("kde_settings.conf/Theme/Current")] = currentThemeIndex.data(ThemesModel::IdRole);
     args[QStringLiteral("kde_settings.conf/Autologin/User")] = m_data->sddmSettings()->user();
     args[QStringLiteral("kde_settings.conf/Autologin/Session")] = m_data->sddmSettings()->session();

Reply via email to