Package: release.debian.org
Severity: normal
X-Debbugs-Cc: polkit-kde-agen...@packages.debian.org, Debian Qt/KDE Maintainers 
<debian-qt-kde@lists.debian.org>
Control: affects -1 + src:polkit-kde-agent-1
User: release.debian....@packages.debian.org
Usertags: unblock

Dear Release Team,

please unblock package polkit-kde-agent-1.

[ Impact ]
It contains the following changes:
* New upstream release (6.3.6).
  - Mobile: Update to support recent changes, and show maximized.
* Backport upstream commits:
  - Add notification sound missing from authentication dialogs even when
  configured to do so. [40daa686] (kde#448554)
  - Mitigate pam race condition when pam setup takes longer. [b1109f51]
  (kde#505239)

[ Tests ]
- Various sudo privilege escalation successfully tested locally for
  package install / update operations and SDDM theme changes.

[ Risks ]
Only contains the latest upstream point release for the 6.3 Plasma
branch and backported commits. Further fixes can easily be backported or
the changes reverted.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing


Thanks !


unblock polkit-kde-agent-1/4:6.3.6-1
diff -Nru polkit-kde-agent-1-6.3.4/CMakeLists.txt 
polkit-kde-agent-1-6.3.6/CMakeLists.txt
--- polkit-kde-agent-1-6.3.4/CMakeLists.txt     2025-04-02 05:40:14.000000000 
+0200
+++ polkit-kde-agent-1-6.3.6/CMakeLists.txt     2025-07-08 13:50:03.000000000 
+0200
@@ -1,7 +1,7 @@
 cmake_minimum_required(VERSION 3.16)
 
 project(polkit-kde-agent-1)
-set(PROJECT_VERSION "6.3.4")
+set(PROJECT_VERSION "6.3.6")
 
 set(QT_MIN_VERSION "6.7.0")
 set(KF6_MIN_VERSION "6.10.0")
diff -Nru polkit-kde-agent-1-6.3.4/debian/changelog 
polkit-kde-agent-1-6.3.6/debian/changelog
--- polkit-kde-agent-1-6.3.4/debian/changelog   2025-04-03 01:00:10.000000000 
+0200
+++ polkit-kde-agent-1-6.3.6/debian/changelog   2025-07-19 15:25:45.000000000 
+0200
@@ -1,3 +1,15 @@
+polkit-kde-agent-1 (4:6.3.6-1) unstable; urgency=medium
+
+  [ Aurélien COUDERC ]
+  * New upstream release (6.3.6).
+  * Backport upstream commits:
+    - Add notification sound missing from authentication dialogs even when
+    configured to do so. [40daa686] (kde#448554)
+    - Mitigate pam race condition when pam setup takes longer. [b1109f51]
+    (kde#505239)
+
+ -- Aurélien COUDERC <couc...@debian.org>  Sat, 19 Jul 2025 15:25:45 +0200
+
 polkit-kde-agent-1 (4:6.3.4-1) unstable; urgency=medium
 
   [ Patrick Franz ]
diff -Nru polkit-kde-agent-1-6.3.4/debian/control 
polkit-kde-agent-1-6.3.6/debian/control
--- polkit-kde-agent-1-6.3.4/debian/control     2025-04-02 21:23:00.000000000 
+0200
+++ polkit-kde-agent-1-6.3.6/debian/control     2025-07-19 15:25:45.000000000 
+0200
@@ -14,6 +14,7 @@
                libkf6crash-dev (>= 6.10.0~),
                libkf6dbusaddons-dev (>= 6.10.0~),
                libkf6i18n-dev (>= 6.10.0~),
+               libkf6notifications-dev (>= 6.10.0~),
                libkf6windowsystem-dev (>= 6.10.0~),
                libpolkit-qt6-1-dev (>= 0.200.0~),
                libxkbcommon-dev,
diff -Nru polkit-kde-agent-1-6.3.4/debian/patches/series 
polkit-kde-agent-1-6.3.6/debian/patches/series
--- polkit-kde-agent-1-6.3.4/debian/patches/series      1970-01-01 
01:00:00.000000000 +0100
+++ polkit-kde-agent-1-6.3.6/debian/patches/series      2025-07-19 
15:25:45.000000000 +0200
@@ -0,0 +1,2 @@
+upstream_40daa686_Add-notification-sound-to-authentication-dialog.patch
+upstream_b1109f51_fix-mitigate-pam-race-condition-BUG-505239-.patch
diff -Nru 
polkit-kde-agent-1-6.3.4/debian/patches/upstream_40daa686_Add-notification-sound-to-authentication-dialog.patch
 
polkit-kde-agent-1-6.3.6/debian/patches/upstream_40daa686_Add-notification-sound-to-authentication-dialog.patch
--- 
polkit-kde-agent-1-6.3.4/debian/patches/upstream_40daa686_Add-notification-sound-to-authentication-dialog.patch
     1970-01-01 01:00:00.000000000 +0100
+++ 
polkit-kde-agent-1-6.3.6/debian/patches/upstream_40daa686_Add-notification-sound-to-authentication-dialog.patch
     2025-07-19 15:25:45.000000000 +0200
@@ -0,0 +1,111 @@
+From 40daa6866264a51dfc15ae4487e6a3883a455147 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bogdan=20Cvetanovski=20Pa=C5=A1ali=C4=87?=
+ <wackyid...@disroot.org>
+Date: Sun, 27 Apr 2025 13:25:14 +0000
+Subject: [PATCH] Add notification sound to authentication dialog
+
+This commit fixes the notification event not activating when the
+authentication dialog window appears, causing it to not play a sound.
+
+Now, it plays `dialog-warning-auth`, which currently falls back to
+`dialog-warning` if the desires sound is not found in the active sound
+theme.
+
+BUG: 448554
+FIXED-IN: 6.4.0
+---
+ .kde-ci.yml                                                  | 1 +
+ CMakeLists.txt                                               | 4 +++-
+ QuickAuthDialog.cpp                                          | 5 ++++-
+ ...de.notifyrc => polkit-kde-authentication-agent-1.notifyrc | 3 ++-
+ 4 files changed, 10 insertions(+), 3 deletions(-)
+ rename policykit1-kde.notifyrc => polkit-kde-authentication-agent-1.notifyrc 
(99%)
+
+diff --git a/.kde-ci.yml b/.kde-ci.yml
+index 710cf40..a00ce49 100644
+--- a/.kde-ci.yml
++++ b/.kde-ci.yml
+@@ -9,6 +9,7 @@ Dependencies:
+     'frameworks/kcrash': '@latest-kf6'
+     'frameworks/kdbusaddons': '@latest-kf6'
+     'frameworks/ki18n': '@latest-kf6'
++    'frameworks/knotifications': '@latest-kf6'
+     'frameworks/kwindowsystem': '@latest-kf6'
+     'libraries/polkit-qt-1': '@latest-kf6'
+ Options:
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d9532c6..86cc2bc 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -30,6 +30,7 @@ find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED Core DBus 
Widgets Quick Qml)
+ find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS
+   I18n
+   WindowSystem
++  Notifications
+   DBusAddons
+   CoreAddons
+   Crash
+@@ -78,6 +79,7 @@ target_link_libraries(polkit-kde-authentication-agent-1
+     KF6::I18n
+     KF6::Crash
+     KF6::I18nQml
++    KF6::Notifications
+     Qt::Qml
+     Qt::Quick
+     Qt::Widgets
+@@ -93,7 +95,7 @@ install(FILES 
${CMAKE_BINARY_DIR}/polkit-kde-authentication-agent-1.desktop DEST
+ 
+ ecm_install_configured_files(INPUT plasma-polkit-agent.service.in DESTINATION 
${KDE_INSTALL_SYSTEMDUSERUNITDIR})
+ 
+-install(FILES policykit1-kde.notifyrc DESTINATION ${KDE_INSTALL_KNOTIFYRCDIR})
++install(FILES polkit-kde-authentication-agent-1.notifyrc DESTINATION 
${KDE_INSTALL_KNOTIFYRCDIR})
+ 
+ # add clang-format target for all our real source files
+ file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h)
+diff --git a/QuickAuthDialog.cpp b/QuickAuthDialog.cpp
+index 4205652..7e9eae5 100644
+--- a/QuickAuthDialog.cpp
++++ b/QuickAuthDialog.cpp
+@@ -4,7 +4,6 @@
+ 
+     SPDX-License-Identifier: GPL-2.0-or-later
+ */
+-
+ #include "QuickAuthDialog.h"
+ #include "IdentitiesModel.h"
+ 
+@@ -12,6 +11,7 @@
+ 
+ #include <KLocalizedQmlContext>
+ #include <KLocalizedString>
++#include <KNotification>
+ #include <KRuntimePlatform>
+ #include <KUser>
+ 
+@@ -106,6 +106,9 @@ void QuickAuthDialog::authenticationFailure()
+ 
+ void QuickAuthDialog::show()
+ {
++    KNotification *notification = new KNotification("authenticate");
++    notification->setText(i18n("Authentication Required"));
++    notification->sendEvent();
+     QTimer::singleShot(0, m_theDialog, SLOT(show()));
+ }
+ 
+diff --git a/policykit1-kde.notifyrc 
b/polkit-kde-authentication-agent-1.notifyrc
+similarity index 99%
+rename from policykit1-kde.notifyrc
+rename to polkit-kde-authentication-agent-1.notifyrc
+index 4f68209..0eb1e8d 100644
+--- a/policykit1-kde.notifyrc
++++ b/polkit-kde-authentication-agent-1.notifyrc
+@@ -218,4 +218,5 @@ Comment[vi]=Bạn được yêu cầu xác thực
+ Comment[x-test]=xxYou are required to authenticatexx
+ Comment[zh_CN]=您需要进行身份验证
+ Comment[zh_TW]=您需要認證
+-Action=Popup
++Action=Sound
++Sound=dialog-warning-auth
+-- 
+GitLab
+
diff -Nru 
polkit-kde-agent-1-6.3.4/debian/patches/upstream_b1109f51_fix-mitigate-pam-race-condition-BUG-505239-.patch
 
polkit-kde-agent-1-6.3.6/debian/patches/upstream_b1109f51_fix-mitigate-pam-race-condition-BUG-505239-.patch
--- 
polkit-kde-agent-1-6.3.4/debian/patches/upstream_b1109f51_fix-mitigate-pam-race-condition-BUG-505239-.patch
 1970-01-01 01:00:00.000000000 +0100
+++ 
polkit-kde-agent-1-6.3.6/debian/patches/upstream_b1109f51_fix-mitigate-pam-race-condition-BUG-505239-.patch
 2025-07-19 15:25:45.000000000 +0200
@@ -0,0 +1,56 @@
+From b1109f51c4a88d1dceb1d967d36af91accc8878b Mon Sep 17 00:00:00 2001
+From: Harald Sitter <sit...@kde.org>
+Date: Thu, 10 Jul 2025 10:14:18 +0200
+Subject: [PATCH] fix: mitigate pam race condition (BUG: 505239)
+
+This sets the authdialog to only reject passwords if we're awaiting 
authentication. This avoids triggering the password rejection animation in 
instances where pam setup takes longer than expected, such as with high cost 
factors.
+
+
+(cherry picked from commit c87f82883ff8d59c883e26b769c0135d4bfd9a8d)
+
+Co-authored-by: Secureblue Admin <securebluead...@proton.me>
+---
+ qml/QuickAuthDialog.qml | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/qml/QuickAuthDialog.qml b/qml/QuickAuthDialog.qml
+index 0f2789d..283b9c2 100644
+--- a/qml/QuickAuthDialog.qml
++++ b/qml/QuickAuthDialog.qml
+@@ -30,6 +30,8 @@ Kirigami.AbstractApplicationWindow {
+     property alias identitiesCurrentIndex: identitiesCombo.currentIndex
+     property alias selectedIdentity: identitiesCombo.currentValue
+ 
++    property bool waitingForAuthentication: false
++
+     // passed in by QuickAuthDialog.cpp
+     property string mainText
+     property string subtitle
+@@ -45,6 +47,7 @@ Kirigami.AbstractApplicationWindow {
+     onSelectedIdentityChanged: userSelected()
+ 
+     onAccept: {
++        waitingForAuthentication = true;
+         // disable password field while password is being checked
+         if (passwordField.text !== "") {
+             passwordField.enabled = false;
+@@ -60,6 +63,7 @@ Kirigami.AbstractApplicationWindow {
+         passwordField.clear()
+         passwordField.enabled = true
+         passwordField.focus = true
++        waitingForAuthentication = false
+         rejectPasswordAnim.start();
+     }
+ 
+@@ -70,7 +74,7 @@ Kirigami.AbstractApplicationWindow {
+     }
+ 
+     function request() {
+-        if (passwordField.text !== "") {
++        if (passwordField.text !== "" && waitingForAuthentication) {
+             rejectPassword()
+         }
+     }
+-- 
+GitLab
+
diff -Nru polkit-kde-agent-1-6.3.4/po/gl/polkit-kde-authentication-agent-1.po 
polkit-kde-agent-1-6.3.6/po/gl/polkit-kde-authentication-agent-1.po
--- polkit-kde-agent-1-6.3.4/po/gl/polkit-kde-authentication-agent-1.po 
2025-04-02 05:40:14.000000000 +0200
+++ polkit-kde-agent-1-6.3.6/po/gl/polkit-kde-authentication-agent-1.po 
2025-07-08 13:50:03.000000000 +0200
@@ -22,7 +22,7 @@
 #, kde-format
 msgctxt "NAME OF TRANSLATORS"
 msgid "Your names"
-msgstr "Marce Villarino, Adrián Chaves Fernández (Gallaecio)"
+msgstr "Marce Villarino, Adrián Chaves (Gallaecio)"
 
 #, kde-format
 msgctxt "EMAIL OF TRANSLATORS"
diff -Nru polkit-kde-agent-1-6.3.4/qml/MobileDialogWindow.qml 
polkit-kde-agent-1-6.3.6/qml/MobileDialogWindow.qml
--- polkit-kde-agent-1-6.3.4/qml/MobileDialogWindow.qml 2025-04-02 
05:40:14.000000000 +0200
+++ polkit-kde-agent-1-6.3.6/qml/MobileDialogWindow.qml 2025-07-08 
13:50:03.000000000 +0200
@@ -14,7 +14,7 @@
     id: root
     flags: Qt.FramelessWindowHint | Qt.Dialog
     color: Qt.rgba(0, 0, 0, 0.5)
-    visibility: "FullScreen"
+    visibility: Window.Maximized
 
     property real contentWidth
     property alias contents: control.contentItem
diff -Nru polkit-kde-agent-1-6.3.4/qml/MobileQuickAuthDialog.qml 
polkit-kde-agent-1-6.3.6/qml/MobileQuickAuthDialog.qml
--- polkit-kde-agent-1-6.3.4/qml/MobileQuickAuthDialog.qml      2025-04-02 
05:40:14.000000000 +0200
+++ polkit-kde-agent-1-6.3.6/qml/MobileQuickAuthDialog.qml      2025-07-08 
13:50:03.000000000 +0200
@@ -34,6 +34,9 @@
 
     signal accept()
     signal reject()
+    signal userSelected()
+
+    onSelectedIdentityChanged: userSelected()
 
     onAccept: {
         // disable password field while password is being checked
@@ -42,15 +45,25 @@
         }
     }
 
-    function authenticationFailure() {
-        inlineMessage.type = Kirigami.MessageType.Error;
-        inlineMessage.text = i18n("Authentication failure, please try again.");
+    function rejectPassword() {
         passwordField.clear()
         passwordField.enabled = true
         passwordField.focus = true
         rejectPasswordAnim.start();
     }
 
+    function authenticationFailure() {
+        inlineMessage.type = Kirigami.MessageType.Error;
+        inlineMessage.text = i18n("Authentication failure, please try again.");
+        rejectPassword();
+    }
+
+    function request() {
+        if (passwordField.text !== "") {
+            rejectPassword()
+        }
+    }
+
     onActiveChanged: {
         if (active) {
             // immediately focus on password field when window is focused

Reply via email to