From 2286f3569dcdc0f337d06fcfbc2cc2c14afd0401011482a74d279d504a3c4369 Mon Sep 17 00:00:00 2001 From: Christophe Marin Date: Wed, 26 Feb 2025 10:57:33 +0000 Subject: [PATCH] Plasma 6.3.2(.1) OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks/sddm-kcm6?expand=0&rev=48 --- .gitattributes | 23 ++ .gitignore | 1 + ...-features-with-questionable-security.patch | 45 +++ 0001-Support-default.session-symlink.patch | 45 +++ ...utologin-user-to-etc-sysconfig-displ.patch | 91 ++++++ ...a-Wayland-suffix-to-Wayland-sessions.patch | 39 +++ plasma.keyring | Bin 0 -> 40445 bytes sddm-kcm-6.1.3.tar.xz | 3 + sddm-kcm-6.1.3.tar.xz.sig | 16 + sddm-kcm-6.1.4.tar.xz | 3 + sddm-kcm-6.1.4.tar.xz.sig | 16 + sddm-kcm-6.1.5.tar.xz | 3 + sddm-kcm-6.1.5.tar.xz.sig | 16 + sddm-kcm-6.2.0.tar.xz | 3 + sddm-kcm-6.2.0.tar.xz.sig | 16 + sddm-kcm-6.2.1.tar.xz | 3 + sddm-kcm-6.2.1.tar.xz.sig | 16 + sddm-kcm-6.2.3.tar.xz | 3 + sddm-kcm-6.2.3.tar.xz.sig | 16 + sddm-kcm-6.2.4.tar.xz | 3 + sddm-kcm-6.2.4.tar.xz.sig | 16 + sddm-kcm-6.2.5.tar.xz | 3 + sddm-kcm-6.2.5.tar.xz.sig | 16 + sddm-kcm-6.3.0.tar.xz | 3 + sddm-kcm-6.3.0.tar.xz.sig | 16 + sddm-kcm-6.3.1.tar.xz | 3 + sddm-kcm-6.3.1.tar.xz.sig | 16 + sddm-kcm-6.3.2.tar.xz | 3 + sddm-kcm-6.3.2.tar.xz.sig | 16 + sddm-kcm6.changes | 294 ++++++++++++++++++ sddm-kcm6.spec | 93 ++++++ 31 files changed, 840 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 0001-Remove-some-features-with-questionable-security.patch create mode 100644 0001-Support-default.session-symlink.patch create mode 100644 0002-Read-and-write-autologin-user-to-etc-sysconfig-displ.patch create mode 100644 0003-Don-t-add-a-Wayland-suffix-to-Wayland-sessions.patch create mode 100644 plasma.keyring create mode 100644 sddm-kcm-6.1.3.tar.xz create mode 100644 sddm-kcm-6.1.3.tar.xz.sig create mode 100644 sddm-kcm-6.1.4.tar.xz create mode 100644 sddm-kcm-6.1.4.tar.xz.sig create mode 100644 sddm-kcm-6.1.5.tar.xz create mode 100644 sddm-kcm-6.1.5.tar.xz.sig create mode 100644 sddm-kcm-6.2.0.tar.xz create mode 100644 sddm-kcm-6.2.0.tar.xz.sig create mode 100644 sddm-kcm-6.2.1.tar.xz create mode 100644 sddm-kcm-6.2.1.tar.xz.sig create mode 100644 sddm-kcm-6.2.3.tar.xz create mode 100644 sddm-kcm-6.2.3.tar.xz.sig create mode 100644 sddm-kcm-6.2.4.tar.xz create mode 100644 sddm-kcm-6.2.4.tar.xz.sig create mode 100644 sddm-kcm-6.2.5.tar.xz create mode 100644 sddm-kcm-6.2.5.tar.xz.sig create mode 100644 sddm-kcm-6.3.0.tar.xz create mode 100644 sddm-kcm-6.3.0.tar.xz.sig create mode 100644 sddm-kcm-6.3.1.tar.xz create mode 100644 sddm-kcm-6.3.1.tar.xz.sig create mode 100644 sddm-kcm-6.3.2.tar.xz create mode 100644 sddm-kcm-6.3.2.tar.xz.sig create mode 100644 sddm-kcm6.changes create mode 100644 sddm-kcm6.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/0001-Remove-some-features-with-questionable-security.patch b/0001-Remove-some-features-with-questionable-security.patch new file mode 100644 index 0000000..bc929fd --- /dev/null +++ b/0001-Remove-some-features-with-questionable-security.patch @@ -0,0 +1,45 @@ +From e4e1a5f5d90d84363637806437ffb3f2758fbc88 Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Wed, 20 Mar 2024 09:38:27 +0100 +Subject: [PATCH] Remove some features with questionable security + +- Don't allow installing third-party themes from the store +- Don't recommend to clear the kwallet password +--- + src/ui/Advanced.qml | 1 - + src/ui/main.qml | 7 ------- + 2 files changed, 8 deletions(-) + +diff --git a/src/ui/Advanced.qml b/src/ui/Advanced.qml +index d6f1827..ca777ee 100644 +--- a/src/ui/Advanced.qml ++++ b/src/ui/Advanced.qml +@@ -45,7 +45,6 @@ Kirigami.Page { + // to appear when the user checks the checkbox, not all the + // time when the checkbox is checked. + if (checked && kcm.KDEWalletAvailable()) { +- autologinMessage.visible = true; + } + } + } +diff --git a/src/ui/main.qml b/src/ui/main.qml +index ef8ee86..dbe143e 100644 +--- a/src/ui/main.qml ++++ b/src/ui/main.qml +@@ -34,13 +34,6 @@ KCM.GridViewKCM { + text: i18nc("@action:button", "Install From File…") + icon.name: "document-import" + onTriggered: themeDialog.open() +- }, +- NewStuff.Action { +- text: i18nc("@action:button as in, \"get new SDDM themes\"", "Get New…") +- configFile: "sddmtheme.knsrc" +- onEntryEvent: function(entry, event) { +- kcm.themesModel.populate(); +- } + } + ] + +-- +2.46.0 + diff --git a/0001-Support-default.session-symlink.patch b/0001-Support-default.session-symlink.patch new file mode 100644 index 0000000..845367c --- /dev/null +++ b/0001-Support-default.session-symlink.patch @@ -0,0 +1,45 @@ +From 2c4bf2d4c0be461fb9125de867543a1d89468fdd Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Tue, 11 Jul 2017 13:13:13 +0200 +Subject: [PATCH] Support default.session symlink + +Display it under a different name, otherwise it is indistinguishable from +a normal session. Use it as default when the combobox is disabled. +--- + src/sessionmodel.cpp | 6 ++++++ + src/ui/Advanced.qml | 2 +- + 2 files changed, 7 insertions(+), 1 deletion(-) + +diff --git a/src/sessionmodel.cpp b/src/sessionmodel.cpp +index 249340b..586002d 100644 +--- a/src/sessionmodel.cpp ++++ b/src/sessionmodel.cpp +@@ -96,6 +96,12 @@ void SessionModel::loadDir(const QString &path, SessionType type) + isHidden = line.mid(7).toLower() == QLatin1String("true"); + } + } ++ ++ if (session == QLatin1String( "default.desktop" )) { ++ si->name = tr("(System Default)"); ++ isHidden = false; ++ } ++ + if (!isHidden) { + // add to sessions list + d->sessions.push_back(si); +diff --git a/src/ui/Advanced.qml b/src/ui/Advanced.qml +index 5f78ca6..635a099 100644 +--- a/src/ui/Advanced.qml ++++ b/src/ui/Advanced.qml +@@ -38,7 +38,7 @@ Kirigami.Page { + kcm.sddmSettings.session = autologinSession.currentValue + } else { + kcm.sddmSettings.user = "" +- kcm.sddmSettings.session = "" ++ kcm.sddmSettings.session = "default.desktop" + } + + // Deliberately imperative because we only want the message +-- +2.47.0 + diff --git a/0002-Read-and-write-autologin-user-to-etc-sysconfig-displ.patch b/0002-Read-and-write-autologin-user-to-etc-sysconfig-displ.patch new file mode 100644 index 0000000..9ec1be4 --- /dev/null +++ b/0002-Read-and-write-autologin-user-to-etc-sysconfig-displ.patch @@ -0,0 +1,91 @@ +From 957d6a8d4dc546e64d39c7d49599e67ab4be6b38 Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Tue, 19 Jan 2021 20:45:33 +0100 +Subject: [PATCH] Read and write autologin user to + /etc/sysconfig/displaymanager + +That's where SDDM reads from. +--- + sddmauthhelper.cpp | 30 ++++++++++++++++++++++++++++++ + src/sddmsettingsbase.cpp | 6 ++++-- + 2 files changed, 34 insertions(+), 2 deletions(-) + +diff --git a/sddmauthhelper.cpp b/sddmauthhelper.cpp +index 2a38b40..0702465 100644 +--- a/sddmauthhelper.cpp ++++ b/sddmauthhelper.cpp +@@ -19,6 +19,8 @@ + #include + #include + #include ++#include ++#include + + #include + #include +@@ -310,6 +312,34 @@ ActionReply SddmAuthHelper::save(const QVariantMap &args) + QString groupName = configFields[1]; + QString keyName = configFields[2]; + ++ if (groupName == QLatin1String("Autologin") && keyName == QLatin1String("User")) { ++ QString sysconfFileName = QStringLiteral("/etc/sysconfig/displaymanager"); ++ QFile sysconf(sysconfFileName); ++ QSaveFile newconf(sysconfFileName); ++ if (!sysconf.open(QIODevice::ReadOnly) || !newconf.open(QIODevice::WriteOnly)) { ++ return ActionReply::HelperErrorReply(); ++ } ++ ++ QString sysconfData = QString::fromUtf8(sysconf.readAll()); ++ if (sysconfData.isEmpty()) { ++ return ActionReply::HelperErrorReply(); ++ } ++ ++ QRegularExpression re(QStringLiteral("^DISPLAYMANAGER_AUTOLOGIN=.*$"), QRegularExpression::MultilineOption); ++ auto match = re.match(sysconfData); ++ if (!match.hasMatch()) { ++ return ActionReply::HelperErrorReply(); ++ } ++ ++ sysconfData.replace(match.capturedStart(), match.capturedLength(), ++ QStringLiteral("DISPLAYMANAGER_AUTOLOGIN=\"%0\"").arg(iterator.value().toString())); ++ ++ QByteArray newData = sysconfData.toUtf8(); ++ if (newconf.write(newData) != newData.length() || !newconf.commit()) { ++ return ActionReply::HelperErrorReply(); ++ } ++ } ++ + // if there is an identical keyName in "sddm.conf" we want to delete it so SDDM doesn't read from the old file + // hierarchically SDDM prefers "etc/sddm.conf" to "/etc/sddm.conf.d/some_file.conf" + +diff --git a/src/sddmsettingsbase.cpp b/src/sddmsettingsbase.cpp +index e6e4af0..cbf3b3d 100644 +--- a/src/sddmsettingsbase.cpp ++++ b/src/sddmsettingsbase.cpp +@@ -9,6 +9,7 @@ + + #include + #include ++#include + + #include + +@@ -45,12 +46,13 @@ unsigned int SddmSettingsBase::defaultMaximumUid() const + + QString SddmSettingsBase::defaultUser() const + { +- return m_defaultConfig->group(QStringLiteral("AutoLogin")).readEntry("User"); ++ QSettings sysconfSettings(QStringLiteral("/etc/sysconfig/displaymanager"), QSettings::IniFormat); ++ return sysconfSettings.value(QStringLiteral("DISPLAYMANAGER_AUTOLOGIN")).toString(); + } + + QString SddmSettingsBase::defaultSession() const + { +- return m_defaultConfig->group(QStringLiteral("AutoLogin")).readEntry("Session"); ++ return m_defaultConfig->group(QStringLiteral("AutoLogin")).readEntry("Session", "default.desktop"); + } + + bool SddmSettingsBase::defaultRelogin() const +-- +2.45.2 + diff --git a/0003-Don-t-add-a-Wayland-suffix-to-Wayland-sessions.patch b/0003-Don-t-add-a-Wayland-suffix-to-Wayland-sessions.patch new file mode 100644 index 0000000..1ba75d5 --- /dev/null +++ b/0003-Don-t-add-a-Wayland-suffix-to-Wayland-sessions.patch @@ -0,0 +1,39 @@ +From 5ac4a6e63e3dfb143f24f4ae9ca50b3295f4c0fa Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Sat, 7 Jul 2018 20:34:44 +0200 +Subject: [PATCH] Don't add a (Wayland) suffix to Wayland sessions + +It got removed from sddm as well. +--- + src/sessionmodel.cpp | 8 +------- + 1 file changed, 1 insertion(+), 7 deletions(-) + +diff --git a/src/sessionmodel.cpp b/src/sessionmodel.cpp +index 9b00fa6..a4dfee1 100644 +--- a/src/sessionmodel.cpp ++++ b/src/sessionmodel.cpp +@@ -47,6 +47,7 @@ SessionModel::~SessionModel() + + void SessionModel::loadDir(const QString &path, SessionType type) + { ++ Q_UNUSED(type); + QDir dir(path); + dir.setNameFilters(QStringList() << QStringLiteral("*.desktop")); + dir.setFilter(QDir::Files); +@@ -77,13 +78,6 @@ void SessionModel::loadDir(const QString &path, SessionType type) + + if (line.startsWith(QLatin1String("Name="))) { + si->name = line.mid(5); +- if (type == SessionTypeWayland) { +- // we want to exactly match the SDDM prompt which is formatted in this way +- // with the exact same check +- if (!si->name.endsWith(QLatin1String(" (Wayland)"))) { +- si->name = i18nc("%1 is the name of a session", "%1 (Wayland)", si->name); +- } +- } + } + if (line.startsWith(QLatin1String("Exec="))) { + si->exec = line.mid(5); +-- +2.41.0 + diff --git a/plasma.keyring b/plasma.keyring new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..df40fb776807b94ca6709da686f04a0fc84670dfea9ea95f5b41c9426c9c9338 GIT binary patch literal 40445 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 nQPYfZU*Bv2vt;!? + +- Update to 6.3.2: + * New bugfix release + * For more details see https://kde.org/announcements/plasma/6/6.3.2 +- Changes since 6.3.1: + * update version for new release + +------------------------------------------------------------------- +Tue Feb 18 14:46:17 UTC 2025 - Fabian Vogt + +- Update to 6.3.1: + * New bugfix release + * For more details see https://kde.org/announcements/plasma/6/6.3.1 +- Changes since 6.3.0: + * update version for new release + +------------------------------------------------------------------- +Thu Feb 6 13:47:22 UTC 2025 - Fabian Vogt + +- Update to 6.3.0: + * New bugfix release + * For more details see https://kde.org/announcements/plasma/6/6.3.0 +- Changes since 6.2.91: + * update version for new release + +------------------------------------------------------------------- +Thu Jan 23 13:47:25 UTC 2025 - Fabian Vogt + +- Update to 6.2.91: + * New bugfix release + * For more details see https://kde.org/announcements/plasma/6/6.2.91 +- Changes since 6.2.90: + * update version for new release + +------------------------------------------------------------------- +Sat Jan 11 18:30:59 UTC 2025 - Fabian Vogt + +- Update to 6.2.90: + * New feature release + * For more details see https://kde.org/announcements/plasma/6/6.2.90 +- Changes since 6.2.5: + * update version for new release + * sddmkcm, ui/main: Close dialog on job return Previously if the authentication dialog was cancelled, the KCM dialog would not close. + * ui/main: Port dialog to PromptDialog and avoid InlineMessage Ports to PromptDialog, as this is intended as a form of prompt. The InlineMessage is removed, as it's both not contextually appropriate and it animates in which causes poor width changes. Finally, the message has been changed to remove the commas on each list item. + * actions: Use imperative descriptions for kauth actions + * Fix autologin session value + * Resolve and de-duplicate theme paths (kde#482484) + * update version for new release + * Add option to hide clock in Breeze theme + * Drop unused Qt5Compat import + +------------------------------------------------------------------- +Tue Dec 31 20:52:01 UTC 2024 - Fabian Vogt + +- Update to 6.2.5: + * New bugfix release + * For more details see https://kde.org/announcements/plasma/6/6.2.5 +- Changes since 6.2.4: + * update version for new release + +------------------------------------------------------------------- +Tue Nov 26 15:48:03 UTC 2024 - Fabian Vogt + +- Update to 6.2.4: + * New bugfix release + * For more details see https://kde.org/announcements/plasma/6/6.2.4 +- Changes since 6.2.3: + * update version for new release + +------------------------------------------------------------------- +Tue Nov 5 13:30:47 UTC 2024 - Fabian Vogt + +- Update to 6.2.3: + * New bugfix release + * For more details see https://kde.org/announcements/plasma/6/6.2.3 +- Changes since 6.2.2: + * update version for new release + +------------------------------------------------------------------- +Tue Oct 22 14:09:01 UTC 2024 - Fabian Vogt + +- Update to 6.2.2: + * New bugfix release + * For more details see https://kde.org/announcements/plasma/6/6.2.2 +- Changes since 6.2.1: + * Fix autologin session value + * Resolve and de-duplicate theme paths (kde#482484) + * update version for new release +- Refresh 0001-Support-default.session-symlink.patch + +------------------------------------------------------------------- +Tue Oct 15 16:53:57 UTC 2024 - Fabian Vogt + +- Update to 6.2.1: + * New bugfix release + * For more details see https://kde.org/announcements/plasma/6/6.2.1 +- Changes since 6.2.0: + * update version for new release + +------------------------------------------------------------------- +Sat Oct 5 10:44:41 UTC 2024 - Fabian Vogt + +- Update to 6.2.0: + * New bugfix release + * For more details see https://kde.org/announcements/plasma/6/6.2.0 +- Changes since 6.1.90: + * update version for new release + * Drop unused Qt5Compat import + +------------------------------------------------------------------- +Tue Sep 17 14:55:01 UTC 2024 - Fabian Vogt + +- Update to 6.1.90: + * New feature release + * For more details see https://kde.org/announcements/plasma/6/6.1.90 +- Changes since 6.1.5: + * update version for new release + * Port everything to Kirigami.Dialog + * Adopt card style for wallpaper changer dialog too + * Clean up preview dialog QML code a bit + * Put the preview image in a card + * Don't unnecessarily set sourceSize on preview image (kde#492950) + * Fix needssave state management (kde#490937) + * Move to modern KDE_COMPILERSETTINGS_LEVEL + * Use file descriptor to install theme + * Fix visual window artifact + * Port header InlineMessage to frameless style + * update version for new release +- Rebase patches: + * 0001-Remove-some-features-with-questionable-security.patch + * 0002-Read-and-write-autologin-user-to-etc-sysconfig-displ.patch + +------------------------------------------------------------------- +Tue Sep 10 14:55:32 UTC 2024 - Fabian Vogt + +- Update to 6.1.5: + * New bugfix release + * For more details see https://kde.org/announcements/plasma/6/6.1.5 +- Changes since 6.1.4: + * Fix needssave state management (kde#490937) + * update version for new release +- Rebase 0001-Support-default.session-symlink.patch + +------------------------------------------------------------------- +Tue Aug 6 13:29:11 UTC 2024 - Fabian Vogt + +- Update to 6.1.4: + * New bugfix release + * For more details see https://kde.org/announcements/plasma/6/6.1.4 +- Changes since 6.1.3: + * update version for new release + * Fix visual window artifact + +------------------------------------------------------------------- +Tue Jul 16 13:25:43 UTC 2024 - Fabian Vogt + +- Update to 6.1.3: + * New bugfix release + * For more details see https://kde.org/announcements/plasma/6/6.1.3 +- Changes since 6.1.2: + * update version for new release + +------------------------------------------------------------------- +Tue Jul 2 17:34:35 UTC 2024 - Fabian Vogt + +- Update to 6.1.2: + * New bugfix release + * For more details see https://kde.org/announcements/plasma/6/6.1.2 +- Changes since 6.1.1: + * update version for new release + +------------------------------------------------------------------- +Tue Jun 25 17:15:57 UTC 2024 - Fabian Vogt + +- Update to 6.1.1: + * New bugfix release + * For more details see https://kde.org/announcements/plasma/6/6.1.1 +- Changes since 6.1.0: + * update version for new release + +------------------------------------------------------------------- +Thu Jun 13 10:59:01 UTC 2024 - Fabian Vogt + +- Update to 6.1.0: + * New bugfix release + * For more details see https://kde.org/announcements/plasma/6/6.1.0 +- Changes since 6.0.90: + * update version for new release + +------------------------------------------------------------------- +Sat May 25 11:20:16 UTC 2024 - Fabian Vogt + +- Update to 6.0.90: + * New feature release + * For more details see https://kde.org/announcements/plasma/6/6.0.90 +- Changes since 6.0.5: + * update version for new release + * Move sddm user check to a new function in authhelper + * Mark risky KNS content + * Reset cursor theme and size to defaults if they are unset in Plasma + * Allow unsetting values when syncing Plasma settings + * Adapt to Qt6 QVariant::isNull() changes + * Sync the current kwin output configuration + +------------------------------------------------------------------- +Wed May 22 07:43:23 UTC 2024 - Fabian Vogt + +- Update to 6.0.5: + * New bugfix release + * For more details see https://kde.org/announcements/plasma/6/6.0.5 +- Changes since 6.0.4: + * update version for new release + +------------------------------------------------------------------- +Wed Apr 17 08:13:58 UTC 2024 - Fabian Vogt + +- Update to 6.0.4: + * New bugfix release + * For more details see https://kde.org/announcements/plasma/6/6.0.4 +- Changes since 6.0.3: + * update version for new release + +------------------------------------------------------------------- +Tue Mar 26 18:07:01 UTC 2024 - Fabian Vogt + +- Update to 6.0.3: + * New bugfix release + * For more details see https://kde.org/announcements/plasma/6/6.0.3 +- Changes since 6.0.2: + * update version for new release + * Sync the current kwin output configuration + * Reset cursor theme and size to defaults if they are unset in Plasma + * Allow unsetting values when syncing Plasma settings + * Adapt to Qt6 QVariant::isNull() changes + +------------------------------------------------------------------- +Wed Mar 20 08:44:42 UTC 2024 - Fabian Vogt + +- Add patch to disable some questionable features (bsc#1217188): + * 0001-Remove-some-features-with-questionable-security.patch + +------------------------------------------------------------------- +Wed Mar 13 09:10:41 UTC 2024 - Fabian Vogt + +- Update to 6.0.2: + * New bugfix release + * For more details see https://kde.org/announcements/plasma/6/6.0.2 +- Changes since 6.0.1: + * update version for new release + +------------------------------------------------------------------- +Wed Mar 6 08:40:34 UTC 2024 - Fabian Vogt + +- Update to 6.0.1: + * New bugfix release + * For more details see https://kde.org/announcements/plasma/6/6.0.1 +- Changes since 6.0.0: + * update version for new release + +------------------------------------------------------------------- +Mon Mar 4 18:52:32 UTC 2024 - Christophe Marin + +- Add Provides/Obsoletes to replace Plasma 5 + +------------------------------------------------------------------- +Wed Feb 21 18:36:41 UTC 2024 - Fabian Vogt + +- Update to 6.0.0: + * New bugfix release + * Release announcement not available yet +- Changes since 5.93.0: + * update version for new release + +------------------------------------------------------------------- +Wed Jan 31 17:38:30 UTC 2024 - Fabian Vogt + +- Update to 5.93.0 (6.0 RC 2): + * New bugfix release + * See https://kde.org/announcements/megarelease/6/rc2/ for details +- No code changes since 5.92.0 + +------------------------------------------------------------------- +Mon Jan 15 21:09:17 UTC 2024 - Fabian Vogt + +- Update to 5.92.0 (6.0 RC 1) + * For more details please see: + https://kde.org/announcements/megarelease/6/rc1/ + +------------------------------------------------------------------- +Fri Aug 25 08:27:48 UTC 2023 - Christophe Marin + +- Init sddm-kcm6 diff --git a/sddm-kcm6.spec b/sddm-kcm6.spec new file mode 100644 index 0000000..b57dc02 --- /dev/null +++ b/sddm-kcm6.spec @@ -0,0 +1,93 @@ +# +# spec file for package sddm-kcm6 +# +# Copyright (c) 2025 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%define kf6_version 6.10.0 +%define qt6_version 6.7.0 + +%define rname sddm-kcm + +%bcond_without released +Name: sddm-kcm6 +Version: 6.3.2 +Release: 0 +Summary: A sddm control module for KDE +License: GPL-2.0-only +URL: https://projects.kde.org/projects/kdereview/sddm-kcm/repository +Source: https://download.kde.org/stable/plasma/%{version}/%{rname}-%{version}.tar.xz +%if %{with released} +Source1: https://download.kde.org/stable/plasma/%{version}/%{rname}-%{version}.tar.xz.sig +Source2: plasma.keyring +%endif +# PATCH-FIX-OPENSUSE +Patch1: 0001-Support-default.session-symlink.patch +Patch2: 0002-Read-and-write-autologin-user-to-etc-sysconfig-displ.patch +Patch3: 0003-Don-t-add-a-Wayland-suffix-to-Wayland-sessions.patch +# PATCH-FEATURE (?)-OPENSUSE +Patch4: 0001-Remove-some-features-with-questionable-security.patch +BuildRequires: kf6-extra-cmake-modules >= %{kf6_version} +BuildRequires: pkgconfig +BuildRequires: cmake(KF6Archive) >= %{kf6_version} +BuildRequires: cmake(KF6Auth) >= %{kf6_version} +BuildRequires: cmake(KF6CoreAddons) >= %{kf6_version} +BuildRequires: cmake(KF6I18n) >= %{kf6_version} +BuildRequires: cmake(KF6KCMUtils) >= %{kf6_version} +BuildRequires: cmake(KF6KIO) >= %{kf6_version} +BuildRequires: cmake(KF6NewStuff) >= %{kf6_version} +BuildRequires: cmake(Qt6Core) >= %{qt6_version} +BuildRequires: cmake(Qt6Gui) >= %{qt6_version} +BuildRequires: cmake(Qt6Quick) >= %{qt6_version} +BuildRequires: cmake(Qt6QuickWidgets) >= %{qt6_version} +BuildRequires: cmake(Qt6Widgets) >= %{qt6_version} +Supplements: (sddm and plasma6-workspace) +Provides: kcm_sddm = %{version} +Obsoletes: kcm_sddm < %{version} +Obsoletes: kcm_sddm-lang < %{version} + +%description +SDDM control module for Plasma. It provides a graphical frontend for the SDDM. + +%lang_package + +%prep +%autosetup -p1 -n %{rname}-%{version} + +%build +%cmake_kf6 + +%kf6_build + +%install +%kf6_install + +%find_lang kcm_sddm + +%files +%doc README.md +%license LICENSES/* +%{_kf6_bindir}/sddmthemeinstaller +%{_kf6_applicationsdir}/kcm_sddm.desktop +%{_kf6_dbuspolicydir}/org.kde.kcontrol.kcmsddm.conf +%{_kf6_knsrcfilesdir}/sddmtheme.knsrc +%{_kf6_plugindir}/plasma/kcms/systemsettings/kcm_sddm.so +%{_kf6_sharedir}/dbus-1/system-services/org.kde.kcontrol.kcmsddm.service +%{_kf6_sharedir}/polkit-1/actions/org.kde.kcontrol.kcmsddm.policy +%{_kf6_libexecdir}/kauth/kcmsddm_authhelper + +%files lang -f kcm_sddm.lang + +%changelog