Compare commits

..

No commits in common. 'c9' and 'c9-beta' have entirely different histories.
c9 ... c9-beta

@ -1 +1 @@
4516c8954e4daf46a3e7e1003e8105d549884d2f SOURCES/PackageKit-1.2.4.tar.xz
f4f7c82221f11084f6fb030de9b648d57fcab40a SOURCES/PackageKit-1.2.6.tar.xz

2
.gitignore vendored

@ -1 +1 @@
SOURCES/PackageKit-1.2.4.tar.xz
SOURCES/PackageKit-1.2.6.tar.xz

@ -0,0 +1,28 @@
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

@ -0,0 +1,32 @@
From 8914e11968a934faa651311fd98a98a3a19218ae Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@gnome.org>
Date: Wed, 3 Jun 2020 10:45:12 -0500
Subject: [PATCH] Allow admin users to remove packages without password prompt
A local, active admin user can install packages without a password
prompt, but has to enter the admin password to remove packages. This
doesn't make much sense. It should be parallel.
Note that this change has no effect on what users are able to do,
because it only applies to admin users. The password only protects
against unlocked workstation attackers, where an attacker gains physical
access to an unlocked desktop. It's pretty weird to prevent such an
attacker from removing software, but allow installing new stuff.
https://pagure.io/fedora-workstation/issue/233
---
policy/org.freedesktop.packagekit.rules | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/policy/org.freedesktop.packagekit.rules b/policy/org.freedesktop.packagekit.rules
index 6a1c8a701..95d21925f 100644
--- a/policy/org.freedesktop.packagekit.rules
+++ b/policy/org.freedesktop.packagekit.rules
@@ -1,5 +1,6 @@
polkit.addRule(function(action, subject) {
- if (action.id == "org.freedesktop.packagekit.package-install" &&
+ if ((action.id == "org.freedesktop.packagekit.package-install" ||
+ action.id == "org.freedesktop.packagekit.package-remove") &&
subject.active == true && subject.local == true &&
subject.isInGroup("wheel")) {
return polkit.Result.YES;

@ -0,0 +1,156 @@
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

@ -5,9 +5,9 @@
Summary: Package management service
Name: PackageKit
Version: 1.2.4
Release: 2%{?dist}
License: GPLv2+ and LGPLv2+
Version: 1.2.6
Release: 1%{?dist}
License: GPL-2.0-or-later AND LGPL-2.1-or-later
URL: http://www.freedesktop.org/software/PackageKit/
Source0: http://www.freedesktop.org/software/PackageKit/releases/%{name}-%{version}.tar.xz
@ -17,6 +17,20 @@ Patch0: PackageKit-0.3.8-Fedora-Vendor.conf.patch
Patch0: PackageKit-0.3.8-RHEL-Vendor.conf.patch
%endif
# https://pagure.io/fedora-workstation/issue/233
# 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
@ -33,9 +47,11 @@ BuildRequires: pango-devel
BuildRequires: fontconfig-devel
BuildRequires: libappstream-glib-devel
BuildRequires: libdnf-devel >= %{libdnf_version}
BuildRequires: systemd
BuildRequires: systemd-devel
BuildRequires: gobject-introspection-devel
BuildRequires: bash-completion
BuildRequires: python3-devel
Requires: %{name}-glib%{?_isa} = %{version}-%{release}
Requires: glib2%{?_isa} >= %{glib2_version}
@ -143,6 +159,9 @@ using PackageKit.
%install
%meson_install
# Create cache dir
mkdir -p %{buildroot}%{_localstatedir}/cache/PackageKit
# Create directories for downloaded appstream data
mkdir -p %{buildroot}%{_localstatedir}/cache/app-info/{icons,xmls}
@ -174,6 +193,7 @@ systemctl disable packagekit-offline-update.service > /dev/null 2>&1 || :
%dir %{_localstatedir}/cache/app-info
%dir %{_localstatedir}/cache/app-info/icons
%dir %{_localstatedir}/cache/app-info/xmls
%dir %{_localstatedir}/cache/PackageKit
%{_datadir}/bash-completion/completions/pkcon
%dir %{_libdir}/packagekit-backend
%config(noreplace) %{_sysconfdir}/PackageKit/PackageKit.conf
@ -200,6 +220,7 @@ systemctl disable packagekit-offline-update.service > /dev/null 2>&1 || :
%{_unitdir}/system-update.target.wants/
%{_libexecdir}/pk-*offline-update
%{_libdir}/packagekit-backend/libpk_backend_dnf.so
%pycached %{python3_sitelib}/dnf-plugins/notify_packagekit.py
%files glib
%{_libdir}/*packagekit-glib2.so.*
@ -234,6 +255,9 @@ systemctl disable packagekit-offline-update.service > /dev/null 2>&1 || :
%{_datadir}/vala/vapi/packagekit-glib2.deps
%changelog
* Mon Jan 15 2024 Milan Crha <mcrha@redhat.com> - 1.2.6-1
- Resolves: RHEL-21560 (Rebase PackageKit to 1.2.6 version)
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 1.2.4-2
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688

Loading…
Cancel
Save