Update to 1.2.8

This commit is contained in:
Alessandro Astone 2023-12-30 13:00:20 +01:00
parent 9cd11bdfaa
commit e88b786370
7 changed files with 18 additions and 209 deletions

1
.gitignore vendored
View File

@ -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

View File

@ -1,28 +0,0 @@
From 70594bbe7b3c61b7f9fe58cb77ddaeb630e7276f Mon Sep 17 00:00:00 2001
From: Dominique Leuenberger <dimstar@opensuse.org>
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

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -1,156 +0,0 @@
From f42096ff2427a758eda9de2e3046714167a38c95 Mon Sep 17 00:00:00 2001
From: Russell Haley <yumpusamongus@gmail.com>
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 <gordon.messmer@gmail.com>
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 <gordon.messmer@gmail.com>
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

View File

@ -1 +1 @@
SHA512 (PackageKit-1.2.6.tar.xz) = 0861c539e4427f0b5104dc54a9c9cd6c9311d245732290864dd602a0c5959fce028553c8f8ed38f5fd826e32b31c765710c76e282450b6590af0c49116f29bae
SHA512 (PackageKit-1.2.8.tar.xz) = b1dc1ba3bea53e127099cfa0aaeb6e72a7ab1597ebb3baef5ca92806c208b0b6d5bcbaf8da8ea38434aa5fd725f57c96929101692be644d97f93d9cc32f6dcde