From e88b7863701f5f7e69486b22257c7838367eaf6e Mon Sep 17 00:00:00 2001 From: Alessandro Astone Date: Sat, 30 Dec 2023 13:00:20 +0100 Subject: [PATCH] Update to 1.2.8 --- .gitignore | 1 + ...gekitd-Use-export_dynamic-explicitly.patch | 28 ---- PackageKit-0.3.8-Fedora-Vendor.conf.patch | 4 +- PackageKit-0.3.8-RHEL-Vendor.conf.patch | 4 +- PackageKit.spec | 32 ++-- shutdown-on-idle.patch | 156 ------------------ sources | 2 +- 7 files changed, 18 insertions(+), 209 deletions(-) delete mode 100644 0001-packagekitd-Use-export_dynamic-explicitly.patch delete mode 100644 shutdown-on-idle.patch diff --git a/.gitignore b/.gitignore index f9d3ebe..7ff8b82 100644 --- a/.gitignore +++ b/.gitignore @@ -84,3 +84,4 @@ PackageKit-0.6.7.tar.bz2 /PackageKit-1.2.4.tar.xz /PackageKit-1.2.5.tar.xz /PackageKit-1.2.6.tar.xz +/PackageKit-1.2.8.tar.xz diff --git a/0001-packagekitd-Use-export_dynamic-explicitly.patch b/0001-packagekitd-Use-export_dynamic-explicitly.patch deleted file mode 100644 index 4a16757..0000000 --- a/0001-packagekitd-Use-export_dynamic-explicitly.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 70594bbe7b3c61b7f9fe58cb77ddaeb630e7276f Mon Sep 17 00:00:00 2001 -From: Dominique Leuenberger -Date: Mon, 17 Jul 2023 15:24:14 +0200 -Subject: [PATCH] packagekitd: Use export_dynamic explicitly - -We used to get that implicitly through GModule .pc file defining -Wl,--export-dynamic so that modules could reference symbols in the main executable. - -With newer GLib including glib@11bdd6fc the gmodule .pc file will no longer define this compiler flag in a way that works for us, resulting in errors like: -packagekitd[2394]: Failed to load the backend: opening module zypp failed : /usr/lib64/packagekit-backend/libpk_backend_zypp.so: undefined symbol: pk_backend_job_require_restart ---- - src/meson.build | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/meson.build b/src/meson.build -index cae73380e..a47169c2b 100644 ---- a/src/meson.build -+++ b/src/meson.build -@@ -76,6 +76,7 @@ packagekitd_exec = executable( - ], - install: true, - install_dir: get_option('libexecdir'), -+ export_dynamic: true, - c_args: [ - '-DPK_BUILD_DAEMON=1', - '-DG_LOG_DOMAIN="PackageKit"', --- -2.41.0 - diff --git a/PackageKit-0.3.8-Fedora-Vendor.conf.patch b/PackageKit-0.3.8-Fedora-Vendor.conf.patch index 9eafb8e..2df3d6a 100644 --- a/PackageKit-0.3.8-Fedora-Vendor.conf.patch +++ b/PackageKit-0.3.8-Fedora-Vendor.conf.patch @@ -4,8 +4,8 @@ diff -urNp PackageKit-0.8.14.old/etc/Vendor.conf PackageKit-0.8.14/etc/Vendor.co @@ -12,7 +12,7 @@ # If the value is set to 'none' then no link is shown. # - # default=http://www.packagekit.org/pk-package-not-found.html --DefaultUrl=http://www.packagekit.org/pk-package-not-found.html + # default=https://www.freedesktop.org/software/PackageKit/pk-package-not-found.html +-DefaultUrl=https://www.freedesktop.org/software/PackageKit/pk-package-not-found.html +DefaultUrl=https://fedoraproject.org/wiki/PackageKit_Items_Not_Found#Missing_Package # The URL which is shown to the user when a codec could not be found. diff --git a/PackageKit-0.3.8-RHEL-Vendor.conf.patch b/PackageKit-0.3.8-RHEL-Vendor.conf.patch index 5eaec51..9a4737d 100644 --- a/PackageKit-0.3.8-RHEL-Vendor.conf.patch +++ b/PackageKit-0.3.8-RHEL-Vendor.conf.patch @@ -4,8 +4,8 @@ diff -urNp PackageKit-0.8.14.old/etc/Vendor.conf PackageKit-0.8.14/etc/Vendor.co @@ -12,7 +12,7 @@ # If the value is set to 'none' then no link is shown. # - # default=http://www.packagekit.org/pk-package-not-found.html --DefaultUrl=http://www.packagekit.org/pk-package-not-found.html + # default=https://www.freedesktop.org/software/PackageKit/pk-package-not-found.html +-DefaultUrl=https://www.freedesktop.org/software/PackageKit/pk-package-not-found.html +DefaultUrl=https://access.redhat.com/site/solutions/537113#Missing_Package # The URL which is shown to the user when a codec could not be found. diff --git a/PackageKit.spec b/PackageKit.spec index 6b890da..d0451e9 100644 --- a/PackageKit.spec +++ b/PackageKit.spec @@ -3,7 +3,7 @@ Summary: Package management service Name: PackageKit -Version: 1.2.6 +Version: 1.2.8 Release: %autorelease License: GPL-2.0-or-later AND LGPL-2.1-or-later URL: http://www.freedesktop.org/software/PackageKit/ @@ -19,16 +19,6 @@ Patch0: PackageKit-0.3.8-RHEL-Vendor.conf.patch # https://github.com/PackageKit/PackageKit/pull/404 Patch1: package-remove-password-prompt.patch -# https://github.com/PackageKit/PackageKit/pull/578 -# https://github.com/PackageKit/PackageKit/pull/599 -# https://github.com/PackageKit/PackageKit/pull/600 -Patch2: shutdown-on-idle.patch - -# https://github.com/PackageKit/PackageKit/pull/643 -# Fixes errors like -# packagekitd[1113]: Failed to load the backend: opening module dnf failed : /usr/lib64/packagekit-backend/libpk_backend_dnf.so: undefined symbol: pk_backend_job_update_details -Patch3: 0001-packagekitd-Use-export_dynamic-explicitly.patch - BuildRequires: glib2-devel >= %{glib2_version} BuildRequires: xmlto BuildRequires: gtk-doc @@ -43,7 +33,7 @@ BuildRequires: gstreamer1-devel BuildRequires: gstreamer1-plugins-base-devel BuildRequires: pango-devel BuildRequires: fontconfig-devel -BuildRequires: libappstream-glib-devel +BuildRequires: pkgconfig(appstream) BuildRequires: libdnf-devel >= %{libdnf_version} BuildRequires: systemd BuildRequires: systemd-devel @@ -51,6 +41,9 @@ BuildRequires: gobject-introspection-devel BuildRequires: bash-completion BuildRequires: python3-devel +# Validate metainfo +BuildRequires: libappstream-glib + Requires: %{name}-glib%{?_isa} = %{version}-%{release} Requires: glib2%{?_isa} >= %{glib2_version} Requires: libdnf%{?_isa} >= %{libdnf_version} @@ -168,15 +161,12 @@ pushd %{buildroot}%{_libexecdir} > /dev/null ln -s pk-gstreamer-install gst-install-plugins-helper popd > /dev/null -# enable packagekit-offline-updates.service here for now, till we -# decide how to do it upstream after the meson conversion: -# https://github.com/hughsie/PackageKit/issues/401 -# https://bugzilla.redhat.com/show_bug.cgi?id=1833176 -mkdir -p %{buildroot}%{_unitdir}/system-update.target.wants/ -ln -sf ../packagekit-offline-update.service %{buildroot}%{_unitdir}/system-update.target.wants/packagekit-offline-update.service - %find_lang %name +%check +# FIXME: Validation fails in appstream-util because it does not recognize component type "service" +appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.metainfo.xml || : + %post # Remove leftover symlinks from /etc/systemd; the offline update service is # instead now hooked into /usr/lib/systemd/system/system-update.target.wants @@ -196,13 +186,13 @@ systemctl disable packagekit-offline-update.service > /dev/null 2>&1 || : %dir %{_libdir}/packagekit-backend %config(noreplace) %{_sysconfdir}/PackageKit/PackageKit.conf %config(noreplace) %{_sysconfdir}/PackageKit/Vendor.conf -%config %{_sysconfdir}/dbus-1/system.d/* %{_datadir}/man/man1/pkcon.1* %{_datadir}/man/man1/pkmon.1* %{_datadir}/polkit-1/actions/*.policy %{_datadir}/polkit-1/rules.d/* %{_datadir}/PackageKit/pk-upgrade-distro.sh %{_datadir}/PackageKit/helpers/test_spawn/search-name.sh +%{_metainfodir}/org.freedesktop.packagekit.metainfo.xml %{_libexecdir}/packagekitd %{_libexecdir}/packagekit-direct %{_bindir}/pkmon @@ -211,12 +201,14 @@ systemctl disable packagekit-offline-update.service > /dev/null 2>&1 || : %{_libdir}/packagekit-backend/libpk_backend_dummy.so %{_libdir}/packagekit-backend/libpk_backend_test_*.so %ghost %verify(not md5 size mtime) %attr(0644,-,-) %{_localstatedir}/lib/PackageKit/transactions.db +%{_datadir}/dbus-1/system.d/* %{_datadir}/dbus-1/system-services/*.service %{_datadir}/dbus-1/interfaces/*.xml %{_unitdir}/packagekit-offline-update.service %{_unitdir}/packagekit.service %{_unitdir}/system-update.target.wants/ %{_libexecdir}/pk-*offline-update +%{_libexecdir}/packagekit-dnf-refresh-repo %{_libdir}/packagekit-backend/libpk_backend_dnf.so %pycached %{python3_sitelib}/dnf-plugins/notify_packagekit.py diff --git a/shutdown-on-idle.patch b/shutdown-on-idle.patch deleted file mode 100644 index ec18922..0000000 --- a/shutdown-on-idle.patch +++ /dev/null @@ -1,156 +0,0 @@ -From f42096ff2427a758eda9de2e3046714167a38c95 Mon Sep 17 00:00:00 2001 -From: Russell Haley -Date: Mon, 12 Sep 2022 12:36:10 -0500 -Subject: [PATCH] Revert "Revert "Shutdown the daemon on idle by default"" - -This reverts commit dca1f5b2508a4632d0b9fefab771a5a9caf83a5c. - -Which reverted commit 0c84d71509e851db20445c747529bd7d3724f081, -which reverted commit c6eb3555ec5b41e988c111d276764d55fb83bda3. - -Fixes #460. - -The memory usage of packagekitd has been observed growing well beyond -half a GiB. See: - -https://bugzilla.redhat.com/show_bug.cgi?id=1354074 -https://bugzilla.redhat.com/show_bug.cgi?id=1854875 -https://bugzilla.redhat.com/show_bug.cgi?id=1896964 - -As I understand it, this timeout causes some slightly surprising -behavior when users mix command line dnf upgades with GUI PackageKit -upgrades, and do not manually run an update check before rebooting for -update. But that is an edge case, and the price of not having it is too -high. ---- - src/pk-main.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/pk-main.c b/src/pk-main.c -index d372a7456..1de9a1390 100644 ---- a/src/pk-main.c -+++ b/src/pk-main.c -@@ -183,6 +183,11 @@ main (int argc, char *argv[]) - - /* after how long do we timeout? */ - exit_idle_time = g_key_file_get_integer (conf, "Daemon", "ShutdownTimeout", NULL); -+ /* THIS COMMENT IS A TSUNAMI STONE -+ * Before removing the default timeout, please study the git history and -+ * be sure that you are not regressing Redhat bugzilla #1354074 (again). */ -+ if (exit_idle_time == 0) -+ exit_idle_time = 300; - g_debug ("daemon shutdown set to %i seconds", exit_idle_time); - - /* override the backend name */ - -From ba378b8510133bbad081aebd15cfe2ae74fe1e8a Mon Sep 17 00:00:00 2001 -From: Gordon Messmer -Date: Sun, 15 Jan 2023 15:17:45 -0800 -Subject: [PATCH] valgrind warns that a conditional depends on an uninitialized - value. - ---- - src/pk-main.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/pk-main.c b/src/pk-main.c -index d372a7456..43727d206 100644 ---- a/src/pk-main.c -+++ b/src/pk-main.c -@@ -241,6 +241,8 @@ main (int argc, char *argv[]) - helper.loop = loop; - helper.timer_id = g_timeout_add_seconds (5, (GSourceFunc) pk_main_timeout_check_cb, &helper); - g_source_set_name_by_id (helper.timer_id, "[PkMain] main poll"); -+ } else { -+ helper.timer_id = 0; - } - - /* immediatly exit */ - -From 8c22a0e2f3caf7df8728eec0dbf04d9c3c69f32e Mon Sep 17 00:00:00 2001 -From: Gordon Messmer -Date: Tue, 17 Jan 2023 08:45:16 -0800 -Subject: [PATCH] Notify PackageKit when dnf installs or removes packages. - ---- - backends/dnf/meson.build | 13 +++++++++ - backends/dnf/notify_packagekit.py | 45 +++++++++++++++++++++++++++++++ - contrib/PackageKit.spec.in | 2 ++ - 3 files changed, 60 insertions(+) - create mode 100644 backends/dnf/notify_packagekit.py - -diff --git a/backends/dnf/meson.build b/backends/dnf/meson.build -index ac75a1b6c..09718baf1 100644 ---- a/backends/dnf/meson.build -+++ b/backends/dnf/meson.build -@@ -7,6 +7,19 @@ if meson.get_compiler('c').has_function('hy_query_get_advisory_pkgs', prefix: '# - c_args += ['-DHAVE_HY_QUERY_GET_ADVISORY_PKGS'] - endif - -+python = import('python') -+python_exec = python.find_installation() -+python_package_dir = get_option('pythonpackagedir') -+if python_package_dir == '' -+ python_package_dir = python_exec.get_install_dir() -+endif -+python_package_dir = join_paths(python_package_dir, 'dnf-plugins') -+ -+install_data( -+ 'notify_packagekit.py', -+ install_dir: join_paths(python_package_dir), -+) -+ - shared_module( - 'pk_backend_dnf', - 'dnf-backend-vendor-@0@.c'.format(get_option('dnf_vendor')), -diff --git a/backends/dnf/notify_packagekit.py b/backends/dnf/notify_packagekit.py -new file mode 100644 -index 000000000..3be1fadd8 ---- /dev/null -+++ b/backends/dnf/notify_packagekit.py -@@ -0,0 +1,45 @@ -+# -*- coding: utf-8 -*- -+# -+# Copyright (C) 2022 Gordon Messmer -+# -+# Licensed under the GNU Lesser General Public License Version 2.1 -+# -+# This library is free software; you can redistribute it and/or -+# modify it under the terms of the GNU Lesser General Public -+# License as published by the Free Software Foundation; either -+# version 2.1 of the License, or (at your option) any later version. -+# -+# This library is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+# Lesser General Public License for more details. -+# -+# You should have received a copy of the GNU Lesser General Public -+# License along with this library; if not, write to the Free Software -+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -+ -+""" -+Notify packagekitd when packages are installed, updated, or removed. -+""" -+ -+import dbus -+import dnf -+from dnfpluginscore import _ -+ -+ -+class NotifyPackagekit(dnf.Plugin): -+ name = "notify-packagekit" -+ -+ def __init__(self, base, cli): -+ super(NotifyPackagekit, self).__init__(base, cli) -+ self.base = base -+ self.cli = cli -+ -+ def transaction(self): -+ try: -+ bus = dbus.SystemBus() -+ proxy = bus.get_object('org.freedesktop.PackageKit', '/org/freedesktop/PackageKit') -+ iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.PackageKit') -+ iface.StateHasChanged('posttrans') -+ except: -+ pass diff --git a/sources b/sources index 7438167..cd634e4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (PackageKit-1.2.6.tar.xz) = 0861c539e4427f0b5104dc54a9c9cd6c9311d245732290864dd602a0c5959fce028553c8f8ed38f5fd826e32b31c765710c76e282450b6590af0c49116f29bae +SHA512 (PackageKit-1.2.8.tar.xz) = b1dc1ba3bea53e127099cfa0aaeb6e72a7ab1597ebb3baef5ca92806c208b0b6d5bcbaf8da8ea38434aa5fd725f57c96929101692be644d97f93d9cc32f6dcde