Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package polkit-qt-1 for openSUSE:Factory checked in at 2026-04-18 21:30:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/polkit-qt-1 (Old) and /work/SRC/openSUSE:Factory/.polkit-qt-1.new.11940 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "polkit-qt-1" Sat Apr 18 21:30:12 2026 rev:2 rq:1347672 version:0.201.1 Changes: -------- --- /work/SRC/openSUSE:Factory/polkit-qt-1/polkit-qt-1.changes 2024-03-11 15:27:29.844212515 +0100 +++ /work/SRC/openSUSE:Factory/.polkit-qt-1.new.11940/polkit-qt-1.changes 2026-04-18 21:30:24.030998236 +0200 @@ -1,0 +2,17 @@ +Fri Apr 17 07:29:05 UTC 2026 - Fabian Vogt <[email protected]> + +- Update to 0.201.1: + * defer Session destruction in KListener::completed + * Remove Data(const Data& other), we don't need it + * Save roundtrip from subject to string to subject + * Mark Subject constructor as explicit + * Return {} instead of nullptr + * g_object_unref does not like being passed a nullptr + * Remove unnecessary g_object_unref call in + enumerateTemporaryAuthorizationsSync function + * ListenerAdapter: uniquify the identities + * Build examples on CI + * Use undeprecated install dir variable + * Fix examples build for Qt 6.8.1 + +------------------------------------------------------------------- Old: ---- polkit-qt-1-0.200.0.tar.xz polkit-qt-1-0.200.0.tar.xz.sig New: ---- polkit-qt-1-0.201.1.tar.xz polkit-qt-1-0.201.1.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ polkit-qt-1.spec ++++++ --- /var/tmp/diff_new_pack.lYaN7j/_old 2026-04-18 21:30:24.851031123 +0200 +++ /var/tmp/diff_new_pack.lYaN7j/_new 2026-04-18 21:30:24.851031123 +0200 @@ -1,7 +1,7 @@ # # spec file for package polkit-qt-1 # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -35,7 +35,7 @@ %bcond_without released %define rname polkit-qt-1 Name: polkit%{pkg_suffix}-1 -Version: 0.200.0 +Version: 0.201.1 Release: 0 Summary: PolicyKit Library Qt Bindings License: LGPL-2.1-or-later ++++++ polkit-qt-1-0.200.0.tar.xz -> polkit-qt-1-0.201.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polkit-qt-1-0.200.0/.gitignore new/polkit-qt-1-0.201.1/.gitignore --- old/polkit-qt-1-0.200.0/.gitignore 2024-02-21 13:51:14.000000000 +0100 +++ new/polkit-qt-1-0.201.1/.gitignore 2026-04-10 16:41:51.000000000 +0200 @@ -26,3 +26,4 @@ .clangd .cache .idea +.vscode diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polkit-qt-1-0.200.0/.gitlab-ci.yml new/polkit-qt-1-0.201.1/.gitlab-ci.yml --- old/polkit-qt-1-0.200.0/.gitlab-ci.yml 2024-02-21 13:51:14.000000000 +0100 +++ new/polkit-qt-1-0.201.1/.gitlab-ci.yml 2026-04-10 16:41:51.000000000 +0200 @@ -5,7 +5,6 @@ - project: sysadmin/ci-utilities file: - /gitlab-templates/linux-qt6.yml + - /gitlab-templates/linux-qt6-next.yml - /gitlab-templates/linux.yml - - /gitlab-templates/linux-static.yml - - /gitlab-templates/freebsd.yml - /gitlab-templates/freebsd-qt6.yml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polkit-qt-1-0.200.0/.kde-ci.yml new/polkit-qt-1-0.201.1/.kde-ci.yml --- old/polkit-qt-1-0.200.0/.kde-ci.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/polkit-qt-1-0.201.1/.kde-ci.yml 2026-04-10 16:41:51.000000000 +0200 @@ -0,0 +1,2 @@ +Options: + cmake-options: '-DBUILD_EXAMPLES=ON' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polkit-qt-1-0.200.0/CMakeLists.txt new/polkit-qt-1-0.201.1/CMakeLists.txt --- old/polkit-qt-1-0.200.0/CMakeLists.txt 2024-02-21 13:51:14.000000000 +0100 +++ new/polkit-qt-1-0.201.1/CMakeLists.txt 2026-04-10 16:41:51.000000000 +0200 @@ -66,8 +66,8 @@ option(USE_COMMON_CMAKE_PACKAGE_CONFIG_DIR "Prefer to install the <package>Config.cmake files to lib/cmake/<package> instead of lib/<package>/cmake" TRUE) set(POLKITQT-1_VERSION_MAJOR "0") -set(POLKITQT-1_VERSION_MINOR "200") -set(POLKITQT-1_VERSION_PATCH "0") +set(POLKITQT-1_VERSION_MINOR "201") +set(POLKITQT-1_VERSION_PATCH "1") set(POLKITQT-1_VERSION_STRING "${POLKITQT-1_VERSION_MAJOR}.${POLKITQT-1_VERSION_MINOR}.${POLKITQT-1_VERSION_PATCH}") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polkit-qt-1-0.200.0/agent/listeneradapter.cpp new/polkit-qt-1-0.201.1/agent/listeneradapter.cpp --- old/polkit-qt-1-0.200.0/agent/listeneradapter.cpp 2024-02-21 13:51:14.000000000 +0100 +++ new/polkit-qt-1-0.201.1/agent/listeneradapter.cpp 2026-04-10 16:41:51.000000000 +0200 @@ -71,13 +71,17 @@ { qDebug() << "polkit_qt_listener_initiate_authentication callback for " << listener; - PolkitQt1::Identity::List idents; PolkitQt1::Details dets(details); Listener *list = findListener(listener); - for (GList *identity = g_list_first(identities); identity != nullptr; identity = g_list_next(identity)) { - idents.append(PolkitQt1::Identity((PolkitIdentity *)identity->data)); + // Polkit enumerates identities without regard for their hash value, potentially leading to duplicated entries. + // Unique the identities on our end. + // https://github.com/polkit-org/polkit/issues/542 + QHash<guint, PolkitQt1::Identity> uniqueIdentities; + for (GList *entry = g_list_first(identities); entry != nullptr; entry = g_list_next(entry)) { + auto identity = static_cast<PolkitIdentity *>(entry->data); + uniqueIdentities.insert(polkit_identity_hash(identity), PolkitQt1::Identity(identity)); } list->initiateAuthentication(QString::fromUtf8(action_id), @@ -85,7 +89,7 @@ QString::fromUtf8(icon_name), dets, QString::fromUtf8(cookie), - idents, + uniqueIdentities.values(), new AsyncResult(result)); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polkit-qt-1-0.200.0/core/polkitqt1-authority.cpp new/polkit-qt-1-0.201.1/core/polkitqt1-authority.cpp --- old/polkit-qt-1-0.200.0/core/polkitqt1-authority.cpp 2024-02-21 13:51:14.000000000 +0100 +++ new/polkit-qt-1-0.201.1/core/polkitqt1-authority.cpp 2026-04-10 16:41:51.000000000 +0200 @@ -736,7 +736,6 @@ GList *glist2; for (glist2 = glist; glist2 != nullptr; glist2 = g_list_next(glist2)) { result.append(TemporaryAuthorization((PolkitTemporaryAuthorization *) glist2->data)); - g_object_unref(glist2->data); } g_list_free(glist); @@ -764,7 +763,6 @@ GList *glist2; for (glist2 = glist; glist2 != nullptr; glist2 = g_list_next(glist2)) { res.append(TemporaryAuthorization((PolkitTemporaryAuthorization *) glist2->data)); - g_object_unref(glist2->data); } g_list_free(glist); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polkit-qt-1-0.200.0/core/polkitqt1-subject.cpp new/polkit-qt-1-0.201.1/core/polkitqt1-subject.cpp --- old/polkit-qt-1-0.200.0/core/polkitqt1-subject.cpp 2024-02-21 13:51:14.000000000 +0100 +++ new/polkit-qt-1-0.201.1/core/polkitqt1-subject.cpp 2026-04-10 16:41:51.000000000 +0200 @@ -22,15 +22,12 @@ : QSharedData() , subject(nullptr) {} - Data(const Data& other) - : QSharedData(other) - , subject(other.subject) - { - g_object_ref(subject); - } + Data(const Data& other) = delete; ~Data() { - g_object_unref(subject); + if (subject) { + g_object_unref(subject); + } } PolkitSubject *subject; @@ -98,11 +95,16 @@ subject.d->subject = polkit_subject_from_string(string.toUtf8().data(), &error); if (error != nullptr) { qWarning() << QString("Cannot create Subject from string: %1").arg(error->message); - return nullptr; + return {}; } return subject; } +Subject Subject::fromSubject(PolkitSubject *subject) +{ + return Subject{subject}; +} + UnixProcessSubject::UnixProcessSubject(qint64 pid) : Subject() { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polkit-qt-1-0.200.0/core/polkitqt1-subject.h new/polkit-qt-1-0.201.1/core/polkitqt1-subject.h --- old/polkit-qt-1-0.200.0/core/polkitqt1-subject.h 2024-02-21 13:51:14.000000000 +0100 +++ new/polkit-qt-1-0.201.1/core/polkitqt1-subject.h 2026-04-10 16:41:51.000000000 +0200 @@ -69,6 +69,15 @@ static Subject fromString(const QString &string); /** + * Creates the Subject object + * + * \param subject string reprezentation of the object + * + * \return A new Subject instance + */ + static Subject fromSubject(PolkitSubject *subject); + + /** * Gets PolkitSubject object. * * \warning It shouldn't be used directly unless you are completely aware of what are you doing @@ -78,7 +87,7 @@ PolkitSubject *subject() const; protected: - Subject(PolkitSubject *subject); + explicit Subject(PolkitSubject *subject); void setSubject(PolkitSubject *subject); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polkit-qt-1-0.200.0/core/polkitqt1-temporaryauthorization.cpp new/polkit-qt-1-0.201.1/core/polkitqt1-temporaryauthorization.cpp --- old/polkit-qt-1-0.200.0/core/polkitqt1-temporaryauthorization.cpp 2024-02-21 13:51:14.000000000 +0100 +++ new/polkit-qt-1-0.201.1/core/polkitqt1-temporaryauthorization.cpp 2026-04-10 16:41:51.000000000 +0200 @@ -40,7 +40,7 @@ { d->id = QString::fromUtf8(polkit_temporary_authorization_get_id(pkTemporaryAuthorization)); d->actionId = QString::fromUtf8(polkit_temporary_authorization_get_action_id(pkTemporaryAuthorization)); - d->subject = Subject::fromString(polkit_subject_to_string(polkit_temporary_authorization_get_subject(pkTemporaryAuthorization))); + d->subject = Subject::fromSubject(polkit_temporary_authorization_get_subject(pkTemporaryAuthorization)); d->timeObtained = QDateTime::fromSecsSinceEpoch(polkit_temporary_authorization_get_time_obtained(pkTemporaryAuthorization)); d->timeExpires = QDateTime::fromSecsSinceEpoch(polkit_temporary_authorization_get_time_expires(pkTemporaryAuthorization)); g_object_unref(pkTemporaryAuthorization); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polkit-qt-1-0.200.0/examples/CMakeLists.txt new/polkit-qt-1-0.201.1/examples/CMakeLists.txt --- old/polkit-qt-1-0.200.0/examples/CMakeLists.txt 2024-02-21 13:51:14.000000000 +0100 +++ new/polkit-qt-1-0.201.1/examples/CMakeLists.txt 2026-04-10 16:41:51.000000000 +0200 @@ -58,6 +58,6 @@ dbus_add_activation_system_service(org.qt.policykit.examples.service.in) -install(FILES org.qt.policykit.examples.conf DESTINATION ${SYSCONF_INSTALL_DIR}/dbus-1/system.d) +install(FILES org.qt.policykit.examples.conf DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/dbus-1/system.d) add_subdirectory(agent) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polkit-qt-1-0.200.0/examples/agent/klistener.cpp new/polkit-qt-1-0.201.1/examples/agent/klistener.cpp --- old/polkit-qt-1-0.200.0/examples/agent/klistener.cpp 2024-02-21 13:51:14.000000000 +0100 +++ new/polkit-qt-1-0.201.1/examples/agent/klistener.cpp 2026-04-10 16:41:51.000000000 +0200 @@ -72,8 +72,9 @@ Session *session = (Session *)sender(); session->result()->setCompleted(); - - delete session; + // This slot is invoked from the Session::completed signal (emitted in Session::Private::completed). + // Use deleteLater() to defer Session destruction; synchronous delete inside the signal callback would be unsafe. + session->deleteLater(); } void KListener::showError(const QString &text) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polkit-qt-1-0.200.0/examples/org.qt.policykit.examples.xml new/polkit-qt-1-0.201.1/examples/org.qt.policykit.examples.xml --- old/polkit-qt-1-0.200.0/examples/org.qt.policykit.examples.xml 2024-02-21 13:51:14.000000000 +0100 +++ new/polkit-qt-1-0.201.1/examples/org.qt.policykit.examples.xml 2026-04-10 16:41:51.000000000 +0200 @@ -5,7 +5,7 @@ <!-- IN: system user --> <arg direction="in" type="s" name="user" /> <!-- OUT: whether the user gained the authorization --> - <arg direction="out" type="b" name="shadow_line"> + <arg direction="out" type="b" name="shadow_line" /> </method> </interface> </node>
