Compare commits
No commits in common. 'c9' and 'i10c-beta' have entirely different histories.
@ -1 +1 @@
|
||||
d9a1561a5c4d238340b3db6d081c70b86841c291 SOURCES/dnf-plugins-core-4.3.0.tar.gz
|
||||
715947e57229503a74702cfd32f22240fa7bc2f6 SOURCES/dnf-plugins-core-4.7.0.tar.gz
|
||||
|
@ -1 +1 @@
|
||||
SOURCES/dnf-plugins-core-4.3.0.tar.gz
|
||||
SOURCES/dnf-plugins-core-4.7.0.tar.gz
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,88 @@
|
||||
From 78a541bff0eb234e77b64c058ef51b0650208c1a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Thu, 6 Jun 2024 13:11:12 +0200
|
||||
Subject: [PATCH] needs-restarting: Revert using systemd start time
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Since commit a0ac8717219a1ec9f466162e87f40afa9aa65284 "dnf
|
||||
needs-restarting -s" failed to spot services started withing few
|
||||
seconds before updating their RPM package.
|
||||
|
||||
The cause was using systemd start time instead of a kernel boot time
|
||||
when computing an absolute start time of processes.
|
||||
|
||||
This patch removes using the systemd start time until a proper fix is
|
||||
found.
|
||||
|
||||
https://issues.redhat.com/browse/RHEL-39775
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
doc/needs_restarting.rst | 6 +-----
|
||||
plugins/needs_restarting.py | 24 ------------------------
|
||||
2 files changed, 1 insertion(+), 29 deletions(-)
|
||||
|
||||
diff --git a/doc/needs_restarting.rst b/doc/needs_restarting.rst
|
||||
index 26f401b..be3cc03 100644
|
||||
--- a/doc/needs_restarting.rst
|
||||
+++ b/doc/needs_restarting.rst
|
||||
@@ -36,12 +36,8 @@ Description
|
||||
Note that in most cases a process should survive update of its binary and libraries it is using without requiring to be restarted for proper operation. There are however specific cases when this does not apply. Separately, processes often need to be restarted to reflect security updates.
|
||||
|
||||
.. note::
|
||||
- Needs-restarting will try to guess the boot time using three different methods:
|
||||
+ Needs-restarting will try to guess the boot time using two different methods:
|
||||
|
||||
- ``UnitsLoadStartTimestamp``
|
||||
- D-Bus property on ``/org/freedesktop/systemd1``.
|
||||
- Works unless the system was not booted with systemd,
|
||||
- such as in (most) containers.
|
||||
``st_mtime of /proc/1``
|
||||
Reflects the time the first process was run after booting.
|
||||
This works for all known cases except machines without
|
||||
diff --git a/plugins/needs_restarting.py b/plugins/needs_restarting.py
|
||||
index 8a41753..86777a2 100644
|
||||
--- a/plugins/needs_restarting.py
|
||||
+++ b/plugins/needs_restarting.py
|
||||
@@ -218,11 +218,6 @@ class ProcessStart(object):
|
||||
We have two sources from which to derive the boot time. These values vary
|
||||
depending on containerization, existence of a Real Time Clock, etc.
|
||||
For our purposes we want the latest derived value.
|
||||
- - UnitsLoadStartTimestamp property on /org/freedesktop/systemd1
|
||||
- The start time of the service manager, according to systemd itself.
|
||||
- Seems to be more reliable than UserspaceTimestamp when the RTC is
|
||||
- in local time. Works unless the system was not booted with systemd,
|
||||
- such as in (most) containers.
|
||||
- st_mtime of /proc/1
|
||||
Reflects the time the first process was run after booting
|
||||
This works for all known cases except machines without
|
||||
@@ -233,25 +228,6 @@ class ProcessStart(object):
|
||||
Does not work on containers which share their kernel with the
|
||||
host - there the host kernel uptime is returned
|
||||
"""
|
||||
- units_load_start_timestamp = None
|
||||
- try:
|
||||
- bus = dbus.SystemBus()
|
||||
- systemd1 = bus.get_object(
|
||||
- 'org.freedesktop.systemd1',
|
||||
- '/org/freedesktop/systemd1'
|
||||
- )
|
||||
- props = dbus.Interface(
|
||||
- systemd1,
|
||||
- dbus.PROPERTIES_IFACE
|
||||
- )
|
||||
- units_load_start_timestamp = props.Get(
|
||||
- 'org.freedesktop.systemd1.Manager',
|
||||
- 'UnitsLoadStartTimestamp'
|
||||
- )
|
||||
- if units_load_start_timestamp != 0:
|
||||
- return int(units_load_start_timestamp / (1000 * 1000))
|
||||
- except dbus.exceptions.DBusException as e:
|
||||
- logger.debug("D-Bus error getting boot time from systemd: {}".format(e))
|
||||
|
||||
proc_1_boot_time = int(os.stat('/proc/1').st_mtime)
|
||||
if os.path.isfile('/proc/uptime'):
|
||||
--
|
||||
2.45.2
|
||||
|
@ -1,78 +0,0 @@
|
||||
From 307641a869134de4ebd496d1a78e5ff128a26293 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kolarik <jkolarik@redhat.com>
|
||||
Date: Fri, 30 Sep 2022 11:36:26 +0000
|
||||
Subject: [PATCH 2/4] Add a warning when using `system-upgrade` on RHEL
|
||||
|
||||
---
|
||||
dnf-plugins-core.spec | 3 +--
|
||||
doc/system-upgrade.rst | 6 ++++--
|
||||
plugins/system_upgrade.py | 4 ++++
|
||||
3 files changed, 9 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dnf-plugins-core.spec b/dnf-plugins-core.spec
|
||||
index 4df6e44..1ee87a1 100644
|
||||
--- a/dnf-plugins-core.spec
|
||||
+++ b/dnf-plugins-core.spec
|
||||
@@ -148,14 +148,13 @@ Summary: Core Plugins for DNF
|
||||
%{?python_provide:%python_provide python3-%{name}}
|
||||
BuildRequires: python3-dbus
|
||||
BuildRequires: python3-devel
|
||||
+BuildRequires: python3-distro
|
||||
BuildRequires: python3-dnf >= %{dnf_lowest_compatible}
|
||||
BuildRequires: python3-systemd
|
||||
BuildRequires: pkgconfig(systemd)
|
||||
BuildRequires: systemd
|
||||
%{?systemd_ordering}
|
||||
-%if 0%{?fedora}
|
||||
Requires: python3-distro
|
||||
-%endif
|
||||
Requires: python3-dbus
|
||||
Requires: python3-dnf >= %{dnf_lowest_compatible}
|
||||
Requires: python3-hawkey >= %{hawkey_version}
|
||||
diff --git a/doc/system-upgrade.rst b/doc/system-upgrade.rst
|
||||
index 3110460..87b7319 100644
|
||||
--- a/doc/system-upgrade.rst
|
||||
+++ b/doc/system-upgrade.rst
|
||||
@@ -27,13 +27,15 @@ DNF system-upgrades plugin provides three commands: ``system-upgrade``, ``offlin
|
||||
``offline-distrosync``. Only ``system-upgrade`` command requires increase of distribution major
|
||||
version (``--releasever``) compared to installed version.
|
||||
|
||||
-``dnf system-upgrade`` can be used to upgrade a Fedora system to a new major
|
||||
-release. It replaces fedup (the old Fedora Upgrade tool). Before you proceed ensure that your system
|
||||
+``dnf system-upgrade`` is a recommended way to upgrade a system to a new major release.
|
||||
+It replaces fedup (the old Fedora Upgrade tool). Before you proceed ensure that your system
|
||||
is fully upgraded (``dnf --refresh upgrade``).
|
||||
|
||||
The ``system-upgrade`` command also performes additional actions necessary for the upgrade of the
|
||||
system, for example an upgrade of groups and environments.
|
||||
|
||||
+.. WARNING:: The ``system-upgrade`` command is not supported on the RHEL distribution.
|
||||
+
|
||||
--------
|
||||
Synopsis
|
||||
--------
|
||||
diff --git a/plugins/system_upgrade.py b/plugins/system_upgrade.py
|
||||
index fee6762..0baf978 100644
|
||||
--- a/plugins/system_upgrade.py
|
||||
+++ b/plugins/system_upgrade.py
|
||||
@@ -20,6 +20,7 @@
|
||||
"""system_upgrade.py - DNF plugin to handle major-version system upgrades."""
|
||||
|
||||
from subprocess import call, Popen, check_output, CalledProcessError
|
||||
+import distro
|
||||
import json
|
||||
import os
|
||||
import os.path
|
||||
@@ -451,6 +452,9 @@ class SystemUpgradeCommand(dnf.cli.Command):
|
||||
|
||||
def configure_download(self):
|
||||
if 'system-upgrade' == self.opts.command or 'fedup' == self.opts.command:
|
||||
+ if distro.id() == 'rhel':
|
||||
+ logger.warning(_('WARNING: this operation is not supported on the RHEL distribution. '
|
||||
+ 'Proceed at your own risk.'))
|
||||
help_url = get_url_from_os_release()
|
||||
if help_url:
|
||||
msg = _('Additional information for System Upgrade: {}')
|
||||
--
|
||||
2.38.1
|
||||
|
@ -0,0 +1,105 @@
|
||||
From 73ef31daf47fe0a90f0cda225c585ba4ceec9420 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Fri, 14 Jun 2024 17:46:04 +0200
|
||||
Subject: [PATCH] spec: Fix symbolic links to packaged files
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Upstream commit: 73ef31daf47fe0a90f0cda225c585ba4ceec9420
|
||||
|
||||
Some relative symlinks had an incorrect nesting:
|
||||
|
||||
$ rpm -qlv dnf-plugins-core-4.7.0-2.el10.noarch | grep dnf-offline
|
||||
lrwxrwxrwx 1 root root 70 Jun 6 02:00 /usr/share/man/man8/dnf-offline-distrosync.8.gz -> ../../../../../../../../../usr/share/man/man8/dnf4-system-upgrade.8.gz
|
||||
lrwxrwxrwx 1 root root 70 Jun 6 02:00 /usr/share/man/man8/dnf-offline-upgrade.8.gz -> ../../../../../../../../../usr/share/man/man8/dnf4-system-upgrade.8.gz
|
||||
|
||||
Also rpmlint and recenct rpmbuild complained on using absolute
|
||||
symlinks:
|
||||
|
||||
dnf-plugins-core.noarch: W: symlink-should-be-relative /usr/share/man/man8/dnf4-offline-distrosync.8.gz /usr/share/man/man8/dnf4-system-upgrade.8.gz
|
||||
dnf-plugins-core.noarch: W: symlink-should-be-relative /usr/share/man/man8/dnf4-offline-upgrade.8.gz /usr/share/man/man8/dnf4-system-upgrade.8.gz
|
||||
|
||||
This patch fixes all these issues.
|
||||
|
||||
Resolves: https://issues.redhat.com/browse/RHEL-40564
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
dnf-plugins-core.spec | 46 +++++++++++++++++++++----------------------
|
||||
1 file changed, 23 insertions(+), 23 deletions(-)
|
||||
|
||||
diff --git a/dnf-plugins-core.spec b/dnf-plugins-core.spec
|
||||
index f0984dd..969233b 100644
|
||||
--- a/dnf-plugins-core.spec
|
||||
+++ b/dnf-plugins-core.spec
|
||||
@@ -498,15 +498,15 @@ pushd %{buildroot}%{_unitdir}/system-update.target.wants/
|
||||
ln -sr ../dnf-system-upgrade.service
|
||||
popd
|
||||
|
||||
-ln -sf %{_mandir}/man8/dnf4-system-upgrade.8.gz %{buildroot}%{_mandir}/man8/dnf4-offline-upgrade.8.gz
|
||||
-ln -sf %{_mandir}/man8/dnf4-system-upgrade.8.gz %{buildroot}%{_mandir}/man8/dnf4-offline-distrosync.8.gz
|
||||
+ln -sf dnf4-system-upgrade.8.gz %{buildroot}%{_mandir}/man8/dnf4-offline-upgrade.8.gz
|
||||
+ln -sf dnf4-system-upgrade.8.gz %{buildroot}%{_mandir}/man8/dnf4-offline-distrosync.8.gz
|
||||
%endif
|
||||
|
||||
%if %{without dnf5_obsoletes_dnf}
|
||||
for file in %{buildroot}%{_mandir}/man8/dnf4[-.]*; do
|
||||
dir=$(dirname $file)
|
||||
filename=$(basename $file)
|
||||
- ln -sr $file $dir/${filename/dnf4/dnf}
|
||||
+ ln -sf $filename $dir/${filename/dnf4/dnf}
|
||||
done
|
||||
%endif
|
||||
|
||||
@@ -522,28 +522,28 @@ rm -vf %{buildroot}%{_libexecdir}/dnf-utils-*
|
||||
|
||||
%if %{with yumutils}
|
||||
mkdir -p %{buildroot}%{_bindir}
|
||||
-ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/debuginfo-install
|
||||
-ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/needs-restarting
|
||||
-ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/find-repos-of-install
|
||||
-ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/repo-graph
|
||||
-ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/package-cleanup
|
||||
-ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/repoclosure
|
||||
-ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/repodiff
|
||||
-ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/repomanage
|
||||
-ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/repoquery
|
||||
-ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/reposync
|
||||
-ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/repotrack
|
||||
-ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/yum-builddep
|
||||
-ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/yum-config-manager
|
||||
-ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/yum-debug-dump
|
||||
-ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/yum-debug-restore
|
||||
-ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/yum-groups-manager
|
||||
-ln -sf %{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/yumdownloader
|
||||
+ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/debuginfo-install
|
||||
+ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/needs-restarting
|
||||
+ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/find-repos-of-install
|
||||
+ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/repo-graph
|
||||
+ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/package-cleanup
|
||||
+ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/repoclosure
|
||||
+ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/repodiff
|
||||
+ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/repomanage
|
||||
+ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/repoquery
|
||||
+ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/reposync
|
||||
+ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/repotrack
|
||||
+ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/yum-builddep
|
||||
+ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/yum-config-manager
|
||||
+ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/yum-debug-dump
|
||||
+ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/yum-debug-restore
|
||||
+ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/yum-groups-manager
|
||||
+ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/yumdownloader
|
||||
# These commands don't have a dedicated man page, so let's just point them
|
||||
# to the utils page which contains their descriptions.
|
||||
-ln -sf %{_mandir}/man1/%{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/man1/find-repos-of-install.1.gz
|
||||
-ln -sf %{_mandir}/man1/%{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/man1/repoquery.1.gz
|
||||
-ln -sf %{_mandir}/man1/%{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/man1/repotrack.1.gz
|
||||
+ln -sf %{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/man1/find-repos-of-install.1.gz
|
||||
+ln -sf %{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/man1/repoquery.1.gz
|
||||
+ln -sf %{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/man1/repotrack.1.gz
|
||||
%endif
|
||||
|
||||
%check
|
||||
--
|
||||
2.45.2
|
||||
|
@ -0,0 +1,334 @@
|
||||
From 258ce716def8cf4e406da8eb4a80eace4865ac29 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Fri, 14 Jun 2024 13:57:42 +0200
|
||||
Subject: [PATCH] build: Disable debug plugin on Fedora > 40 and RHEL > 9
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Upstream commit: 918a17c540e69bd227a0534d3838c780341c600a
|
||||
Upstream commit: 0ea22cfbd572d6ca188c6eac73d86287d1ceb17d
|
||||
|
||||
This adds -DWITHOUT_DEBUG:str=1 CMake option to disable installing
|
||||
debug plugin (i.e. debug-dump and debug-restore).
|
||||
|
||||
The plugin is unhelp and broken.
|
||||
|
||||
https://issues.redhat.com/browse/RHEL-23706
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
CMakeLists.txt | 4 ++++
|
||||
README.rst | 8 +++++++
|
||||
dnf-plugins-core.spec | 50 +++++++++++++++++++++++++++++++++++++-----
|
||||
doc/CMakeLists.txt | 14 +++++++++---
|
||||
plugins/CMakeLists.txt | 2 ++
|
||||
5 files changed, 69 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index a1eea7b..a54e2c6 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -1,6 +1,10 @@
|
||||
PROJECT (dnf-plugins-core NONE)
|
||||
CMAKE_MINIMUM_REQUIRED (VERSION 2.4)
|
||||
|
||||
+if (NOT WITHOUT_DEBUG)
|
||||
+ set (WITHOUT_DEBUG "0")
|
||||
+endif()
|
||||
+
|
||||
if (NOT WITHOUT_LOCAL)
|
||||
set (WITHOUT_LOCAL "0")
|
||||
endif()
|
||||
diff --git a/README.rst b/README.rst
|
||||
index 031c013..321abfe 100644
|
||||
--- a/README.rst
|
||||
+++ b/README.rst
|
||||
@@ -26,6 +26,14 @@ From the DNF git checkout directory::
|
||||
cmake .. && make;
|
||||
popd;
|
||||
|
||||
+CMake optional switches::
|
||||
+
|
||||
+ -DWITHOUT_LOCAL:str=1
|
||||
+ Differnt string value than "0" disables installing a local plugin.
|
||||
+
|
||||
+ -DWITHOUT_DEBUG:str=1
|
||||
+ Differnt string value than "0" disables installing a debug plugin.
|
||||
+
|
||||
Then to run DNF::
|
||||
|
||||
PYTHONPATH=`readlink -f .` bin/dnf <arguments>
|
||||
diff --git a/dnf-plugins-core.spec b/dnf-plugins-core.spec
|
||||
index 969233b..a2fe33f 100644
|
||||
--- a/dnf-plugins-core.spec
|
||||
+++ b/dnf-plugins-core.spec
|
||||
@@ -10,6 +10,12 @@
|
||||
|
||||
%bcond dnf5_obsoletes_dnf %[0%{?fedora} > 40 || 0%{?rhel} > 11]
|
||||
|
||||
+%if (0%{?fedora} && 0%{?fedora} >= 41) || (0%{?rhel} && 0%{?rhel} >= 10)
|
||||
+%bcond_with debug_plugin
|
||||
+%else
|
||||
+%bcond_without debug_plugin
|
||||
+%endif
|
||||
+
|
||||
%if 0%{?rhel} && 0%{?rhel} <= 7
|
||||
%bcond_with python3
|
||||
%else
|
||||
@@ -56,8 +62,10 @@ Provides: dnf-command(builddep)
|
||||
Provides: dnf-command(changelog)
|
||||
Provides: dnf-command(config-manager)
|
||||
Provides: dnf-command(copr)
|
||||
+%if %{with debug_plugin}
|
||||
Provides: dnf-command(debug-dump)
|
||||
Provides: dnf-command(debug-restore)
|
||||
+%endif
|
||||
Provides: dnf-command(debuginfo-install)
|
||||
Provides: dnf-command(download)
|
||||
Provides: dnf-command(groups-manager)
|
||||
@@ -69,7 +77,9 @@ Provides: dnf-command(repodiff)
|
||||
Provides: dnf-command(system-upgrade)
|
||||
Provides: dnf-command(offline-upgrade)
|
||||
Provides: dnf-command(offline-distrosync)
|
||||
+%if %{with debug_plugin}
|
||||
Provides: dnf-plugins-extras-debug = %{version}-%{release}
|
||||
+%endif
|
||||
Provides: dnf-plugins-extras-repoclosure = %{version}-%{release}
|
||||
Provides: dnf-plugins-extras-repograph = %{version}-%{release}
|
||||
Provides: dnf-plugins-extras-repomanage = %{version}-%{release}
|
||||
@@ -95,7 +105,7 @@ Conflicts: dnf-plugins-extras-common-data < %{dnf_plugins_extra}
|
||||
|
||||
%description
|
||||
Core Plugins for DNF. This package enhances DNF with builddep, config-manager,
|
||||
-copr, debug, debuginfo-install, download, needs-restarting, groups-manager, repoclosure,
|
||||
+copr, %{?with_debug_plugin:debug, }debuginfo-install, download, needs-restarting, groups-manager, repoclosure,
|
||||
repograph, repomanage, reposync, changelog and repodiff commands. Additionally
|
||||
provides generate_completion_cache passive plugin.
|
||||
|
||||
@@ -122,11 +132,15 @@ Requires: python-dateutil
|
||||
Requires: python2-dbus
|
||||
Requires: python2-dateutil
|
||||
%endif
|
||||
+%if %{with debug_plugin}
|
||||
Provides: python2-dnf-plugins-extras-debug = %{version}-%{release}
|
||||
+%endif
|
||||
Provides: python2-dnf-plugins-extras-repoclosure = %{version}-%{release}
|
||||
Provides: python2-dnf-plugins-extras-repograph = %{version}-%{release}
|
||||
Provides: python2-dnf-plugins-extras-repomanage = %{version}-%{release}
|
||||
+%if %{with debug_plugin}
|
||||
Obsoletes: python2-dnf-plugins-extras-debug < %{dnf_plugins_extra}
|
||||
+%endif
|
||||
Obsoletes: python2-dnf-plugins-extras-repoclosure < %{dnf_plugins_extra}
|
||||
Obsoletes: python2-dnf-plugins-extras-repograph < %{dnf_plugins_extra}
|
||||
Obsoletes: python2-dnf-plugins-extras-repomanage < %{dnf_plugins_extra}
|
||||
@@ -138,7 +152,7 @@ Conflicts: python-%{name} < %{version}-%{release}
|
||||
|
||||
%description -n python2-%{name}
|
||||
Core Plugins for DNF, Python 2 interface. This package enhances DNF with builddep,
|
||||
-config-manager, copr, degug, debuginfo-install, download, needs-restarting,
|
||||
+config-manager, copr, %{?with_debug_plugin:debug, }debuginfo-install, download, needs-restarting,
|
||||
groups-manager, repoclosure, repograph, repomanage, reposync, changelog,
|
||||
repodiff, system-upgrade, offline-upgrade and offline-distrosync commands.
|
||||
Additionally provides generate_completion_cache passive plugin.
|
||||
@@ -163,12 +177,16 @@ Requires: python3-dnf >= %{dnf_lowest_compatible}
|
||||
Requires: python3-hawkey >= %{hawkey_version}
|
||||
Requires: python3-dateutil
|
||||
Requires: python3-systemd
|
||||
+%if %{with debug_plugin}
|
||||
Provides: python3-dnf-plugins-extras-debug = %{version}-%{release}
|
||||
+%endif
|
||||
Provides: python3-dnf-plugins-extras-repoclosure = %{version}-%{release}
|
||||
Provides: python3-dnf-plugins-extras-repograph = %{version}-%{release}
|
||||
Provides: python3-dnf-plugins-extras-repomanage = %{version}-%{release}
|
||||
Provides: python3-dnf-plugin-system-upgrade = %{version}-%{release}
|
||||
+%if %{with debug_plugin}
|
||||
Obsoletes: python3-dnf-plugins-extras-debug < %{dnf_plugins_extra}
|
||||
+%endif
|
||||
Obsoletes: python3-dnf-plugins-extras-repoclosure < %{dnf_plugins_extra}
|
||||
Obsoletes: python3-dnf-plugins-extras-repograph < %{dnf_plugins_extra}
|
||||
Obsoletes: python3-dnf-plugins-extras-repomanage < %{dnf_plugins_extra}
|
||||
@@ -181,7 +199,7 @@ Conflicts: python-%{name} < %{version}-%{release}
|
||||
|
||||
%description -n python3-%{name}
|
||||
Core Plugins for DNF, Python 3 interface. This package enhances DNF with builddep,
|
||||
-config-manager, copr, debug, debuginfo-install, download, needs-restarting,
|
||||
+config-manager, copr, %{?with_debug_plugin:debug, }debuginfo-install, download, needs-restarting,
|
||||
groups-manager, repoclosure, repograph, repomanage, reposync, changelog,
|
||||
repodiff, system-upgrade, offline-upgrade and offline-distrosync commands.
|
||||
Additionally provides generate_completion_cache passive plugin.
|
||||
@@ -209,7 +227,7 @@ Summary: Yum-utils CLI compatibility layer
|
||||
%description -n %{yum_utils_subpackage_name}
|
||||
As a Yum-utils CLI compatibility layer, supplies in CLI shims for
|
||||
debuginfo-install, repograph, package-cleanup, repoclosure, repomanage,
|
||||
-repoquery, reposync, repotrack, repodiff, builddep, config-manager, debug,
|
||||
+repoquery, reposync, repotrack, repodiff, builddep, config-manager,%{?with_debug_plugin: debug,}
|
||||
download and yum-groups-manager that use new implementations using DNF.
|
||||
%endif
|
||||
|
||||
@@ -467,14 +485,18 @@ mkdir build-py3
|
||||
%build
|
||||
%if %{with python2}
|
||||
pushd build-py2
|
||||
- %cmake ../ -DPYTHON_DESIRED:FILEPATH=%{__python2} -DWITHOUT_LOCAL:str=0%{?rhel}
|
||||
+ %cmake ../ -DPYTHON_DESIRED:FILEPATH=%{__python2} \
|
||||
+ -DWITHOUT_DEBUG:str=0%{!?with_debug_plugin:1} \
|
||||
+ -DWITHOUT_LOCAL:str=0%{?rhel}
|
||||
%make_build
|
||||
make doc-man
|
||||
popd
|
||||
%endif
|
||||
%if %{with python3}
|
||||
pushd build-py3
|
||||
- %cmake ../ -DPYTHON_DESIRED:FILEPATH=%{__python3} -DWITHOUT_LOCAL:str=0%{?rhel}
|
||||
+ %cmake ../ -DPYTHON_DESIRED:FILEPATH=%{__python3} \
|
||||
+ -DWITHOUT_DEBUG:str=0%{!?with_debug_plugin:1} \
|
||||
+ -DWITHOUT_LOCAL:str=0%{?rhel}
|
||||
%make_build
|
||||
make doc-man
|
||||
popd
|
||||
@@ -535,8 +557,10 @@ ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/reposync
|
||||
ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/repotrack
|
||||
ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/yum-builddep
|
||||
ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/yum-config-manager
|
||||
++%if %{with debug_plugin}
|
||||
ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/yum-debug-dump
|
||||
ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/yum-debug-restore
|
||||
++%endif
|
||||
ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/yum-groups-manager
|
||||
ln -srf %{buildroot}%{_libexecdir}/dnf-utils %{buildroot}%{_bindir}/yumdownloader
|
||||
# These commands don't have a dedicated man page, so let's just point them
|
||||
@@ -563,7 +587,9 @@ ln -sf %{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/man1/repotrack.1
|
||||
%{_mandir}/man8/dnf*-changelog.*
|
||||
%{_mandir}/man8/dnf*-config-manager.*
|
||||
%{_mandir}/man8/dnf*-copr.*
|
||||
+%if %{with debug_plugin}
|
||||
%{_mandir}/man8/dnf*-debug.*
|
||||
+%endif
|
||||
%{_mandir}/man8/dnf*-debuginfo-install.*
|
||||
%{_mandir}/man8/dnf*-download.*
|
||||
%{_mandir}/man8/dnf*-generate_completion_cache.*
|
||||
@@ -597,7 +623,9 @@ ln -sf %{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/man1/repotrack.1
|
||||
%{python2_sitelib}/dnf-plugins/changelog.*
|
||||
%{python2_sitelib}/dnf-plugins/config_manager.*
|
||||
%{python2_sitelib}/dnf-plugins/copr.*
|
||||
+%if %{with debug_plugin}
|
||||
%{python2_sitelib}/dnf-plugins/debug.*
|
||||
+%endif
|
||||
%{python2_sitelib}/dnf-plugins/debuginfo-install.*
|
||||
%{python2_sitelib}/dnf-plugins/download.*
|
||||
%{python2_sitelib}/dnf-plugins/generate_completion_cache.*
|
||||
@@ -623,7 +651,9 @@ ln -sf %{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/man1/repotrack.1
|
||||
%{python3_sitelib}/dnf-plugins/changelog.py
|
||||
%{python3_sitelib}/dnf-plugins/config_manager.py
|
||||
%{python3_sitelib}/dnf-plugins/copr.py
|
||||
+%if %{with debug_plugin}
|
||||
%{python3_sitelib}/dnf-plugins/debug.py
|
||||
+%endif
|
||||
%{python3_sitelib}/dnf-plugins/debuginfo-install.py
|
||||
%{python3_sitelib}/dnf-plugins/download.py
|
||||
%{python3_sitelib}/dnf-plugins/generate_completion_cache.py
|
||||
@@ -639,7 +669,9 @@ ln -sf %{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/man1/repotrack.1
|
||||
%{python3_sitelib}/dnf-plugins/__pycache__/changelog.*
|
||||
%{python3_sitelib}/dnf-plugins/__pycache__/config_manager.*
|
||||
%{python3_sitelib}/dnf-plugins/__pycache__/copr.*
|
||||
+%if %{with debug_plugin}
|
||||
%{python3_sitelib}/dnf-plugins/__pycache__/debug.*
|
||||
+%endif
|
||||
%{python3_sitelib}/dnf-plugins/__pycache__/debuginfo-install.*
|
||||
%{python3_sitelib}/dnf-plugins/__pycache__/download.*
|
||||
%{python3_sitelib}/dnf-plugins/__pycache__/generate_completion_cache.*
|
||||
@@ -673,8 +705,10 @@ ln -sf %{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/man1/repotrack.1
|
||||
%{_bindir}/repotrack
|
||||
%{_bindir}/yum-builddep
|
||||
%{_bindir}/yum-config-manager
|
||||
+%if %{with debug_plugin}
|
||||
%{_bindir}/yum-debug-dump
|
||||
%{_bindir}/yum-debug-restore
|
||||
+%endif
|
||||
%{_bindir}/yum-groups-manager
|
||||
%{_bindir}/yumdownloader
|
||||
%{_mandir}/man1/debuginfo-install.*
|
||||
@@ -686,8 +720,10 @@ ln -sf %{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/man1/repotrack.1
|
||||
%{_mandir}/man1/reposync.*
|
||||
%{_mandir}/man1/yum-builddep.*
|
||||
%{_mandir}/man1/yum-config-manager.*
|
||||
+%if %{with debug_plugin}
|
||||
%{_mandir}/man1/yum-debug-dump.*
|
||||
%{_mandir}/man1/yum-debug-restore.*
|
||||
+%endif
|
||||
%{_mandir}/man1/yum-groups-manager.*
|
||||
%{_mandir}/man1/yumdownloader.*
|
||||
%{_mandir}/man1/package-cleanup.*
|
||||
@@ -708,8 +744,10 @@ ln -sf %{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/man1/repotrack.1
|
||||
%exclude %{_mandir}/man1/reposync.*
|
||||
%exclude %{_mandir}/man1/yum-builddep.*
|
||||
%exclude %{_mandir}/man1/yum-config-manager.*
|
||||
+%if %{with debug_plugin}
|
||||
%exclude %{_mandir}/man1/yum-debug-dump.*
|
||||
%exclude %{_mandir}/man1/yum-debug-restore.*
|
||||
+%endif
|
||||
%exclude %{_mandir}/man1/yum-groups-manager.*
|
||||
%exclude %{_mandir}/man1/yumdownloader.*
|
||||
%exclude %{_mandir}/man1/package-cleanup.*
|
||||
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
|
||||
index 9fd3f7c..143a26c 100644
|
||||
--- a/doc/CMakeLists.txt
|
||||
+++ b/doc/CMakeLists.txt
|
||||
@@ -22,7 +22,6 @@ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/dnf4-builddep.8
|
||||
${CMAKE_CURRENT_BINARY_DIR}/dnf4-changelog.8
|
||||
${CMAKE_CURRENT_BINARY_DIR}/dnf4-config-manager.8
|
||||
${CMAKE_CURRENT_BINARY_DIR}/dnf4-copr.8
|
||||
- ${CMAKE_CURRENT_BINARY_DIR}/dnf4-debug.8
|
||||
${CMAKE_CURRENT_BINARY_DIR}/dnf4-debuginfo-install.8
|
||||
${CMAKE_CURRENT_BINARY_DIR}/dnf4-download.8
|
||||
${CMAKE_CURRENT_BINARY_DIR}/dnf4-generate_completion_cache.8
|
||||
@@ -48,6 +47,11 @@ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/dnf-migrate.8
|
||||
DESTINATION share/man/man8)
|
||||
endif()
|
||||
|
||||
+if (${WITHOUT_DEBUG} STREQUAL "0")
|
||||
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/dnf4-debug.8
|
||||
+ DESTINATION share/man/man8)
|
||||
+endif()
|
||||
+
|
||||
if (${WITHOUT_LOCAL} STREQUAL "0")
|
||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/dnf4-local.8
|
||||
DESTINATION share/man/man8)
|
||||
@@ -63,8 +67,6 @@ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/debuginfo-install.1
|
||||
${CMAKE_CURRENT_BINARY_DIR}/yum-builddep.1
|
||||
${CMAKE_CURRENT_BINARY_DIR}/yum-changelog.1
|
||||
${CMAKE_CURRENT_BINARY_DIR}/yum-config-manager.1
|
||||
- ${CMAKE_CURRENT_BINARY_DIR}/yum-debug-dump.1
|
||||
- ${CMAKE_CURRENT_BINARY_DIR}/yum-debug-restore.1
|
||||
${CMAKE_CURRENT_BINARY_DIR}/yum-groups-manager.1
|
||||
${CMAKE_CURRENT_BINARY_DIR}/yumdownloader.1
|
||||
${CMAKE_CURRENT_BINARY_DIR}/package-cleanup.1
|
||||
@@ -72,6 +74,12 @@ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/debuginfo-install.1
|
||||
${CMAKE_CURRENT_BINARY_DIR}/yum-utils.1
|
||||
DESTINATION share/man/man1)
|
||||
|
||||
+if (${WITHOUT_DEBUG} STREQUAL "0")
|
||||
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/yum-debug-dump.1
|
||||
+ ${CMAKE_CURRENT_BINARY_DIR}/yum-debug-restore.1
|
||||
+ DESTINATION share/man/man1)
|
||||
+endif()
|
||||
+
|
||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/yum-versionlock.conf.5
|
||||
DESTINATION share/man/man5)
|
||||
|
||||
diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt
|
||||
index 6f4fa6e..d2383a5 100644
|
||||
--- a/plugins/CMakeLists.txt
|
||||
+++ b/plugins/CMakeLists.txt
|
||||
@@ -1,6 +1,8 @@
|
||||
INSTALL (FILES builddep.py DESTINATION ${PYTHON_INSTALL_DIR}/dnf-plugins)
|
||||
INSTALL (FILES changelog.py DESTINATION ${PYTHON_INSTALL_DIR}/dnf-plugins)
|
||||
+if (${WITHOUT_DEBUG} STREQUAL "0")
|
||||
INSTALL (FILES debug.py DESTINATION ${PYTHON_INSTALL_DIR}/dnf-plugins)
|
||||
+endif()
|
||||
INSTALL (FILES debuginfo-install.py DESTINATION ${PYTHON_INSTALL_DIR}/dnf-plugins)
|
||||
INSTALL (FILES config_manager.py DESTINATION ${PYTHON_INSTALL_DIR}/dnf-plugins)
|
||||
INSTALL (FILES copr.py DESTINATION ${PYTHON_INSTALL_DIR}/dnf-plugins)
|
||||
--
|
||||
2.45.2
|
||||
|
@ -1,61 +0,0 @@
|
||||
From eef927ac825c1a07082e10ffbf11e16ecbd7688c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Tarc=C3=ADsio=20Ladeia=20de=20Oliveira?=
|
||||
<wyrquill@gmail.com>
|
||||
Date: Thu, 20 Oct 2022 22:16:59 -0300
|
||||
Subject: [PATCH 1/2] [offline-upgrade] Add security filters (RhBug:1939975)
|
||||
|
||||
Add support for security filter options that are available in the main
|
||||
`dnf` commands, that is, `--advisory`, `--bugfix`, `--security`, and
|
||||
`--enhancement`.
|
||||
|
||||
= changelog =
|
||||
msg: [offline-upgrade] Add support for security filters
|
||||
type: bugfix
|
||||
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1939975
|
||||
---
|
||||
plugins/system_upgrade.py | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/plugins/system_upgrade.py b/plugins/system_upgrade.py
|
||||
index 0baf978..ef1de73 100644
|
||||
--- a/plugins/system_upgrade.py
|
||||
+++ b/plugins/system_upgrade.py
|
||||
@@ -467,6 +467,9 @@ class SystemUpgradeCommand(dnf.cli.Command):
|
||||
logger.error(_("Operation aborted."))
|
||||
sys.exit(1)
|
||||
check_release_ver(self.base.conf, target=self.opts.releasever)
|
||||
+ elif 'offline-upgrade' == self.opts.command:
|
||||
+ self.cli._populate_update_security_filter(self.opts)
|
||||
+
|
||||
self.cli.demands.root_user = True
|
||||
self.cli.demands.resolving = True
|
||||
self.cli.demands.available_repos = True
|
||||
--
|
||||
2.38.1
|
||||
|
||||
|
||||
From 7e5d3028caa743f3e5ac7bf921c3ec39a4d2c85b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Tarc=C3=ADsio=20Ladeia=20de=20Oliveira?=
|
||||
<wyrquill@gmail.com>
|
||||
Date: Thu, 20 Oct 2022 22:27:22 -0300
|
||||
Subject: [PATCH 2/2] Add myself as contributor in AUTHORS
|
||||
|
||||
---
|
||||
AUTHORS | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/AUTHORS b/AUTHORS
|
||||
index 352e195..f098cb6 100644
|
||||
--- a/AUTHORS
|
||||
+++ b/AUTHORS
|
||||
@@ -32,6 +32,7 @@ DNF-PLUGINS-CORE CONTRIBUTORS
|
||||
Neal Gompa <ngompa13@gmail.com>
|
||||
Paul Howarth <paul@city-fan.org>
|
||||
Rickard Dybeck <r.dybeck@gmail.com>
|
||||
+ Tarcísio Ladeia de Oliveira <wyrquill@gmail.com>
|
||||
Tomas Babej <tomasbabej@gmail.com>
|
||||
Vladan Kudlac <vladankudlac@gmail.com>
|
||||
Wieland Hoffmann <themineo@gmail.com>
|
||||
--
|
||||
2.38.1
|
||||
|
@ -0,0 +1,33 @@
|
||||
From f0c08b4cae724057dc1183efacec45cb9032f1aa Mon Sep 17 00:00:00 2001
|
||||
From: Evan Goode <mail@evangoo.de>
|
||||
Date: Tue, 18 Jun 2024 16:53:34 -0400
|
||||
Subject: [PATCH] s/Differnt/Different
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
README.rst | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/README.rst b/README.rst
|
||||
index 321abfe..47410b2 100644
|
||||
--- a/README.rst
|
||||
+++ b/README.rst
|
||||
@@ -29,10 +29,10 @@ From the DNF git checkout directory::
|
||||
CMake optional switches::
|
||||
|
||||
-DWITHOUT_LOCAL:str=1
|
||||
- Differnt string value than "0" disables installing a local plugin.
|
||||
+ Different string value than "0" disables installing a local plugin.
|
||||
|
||||
-DWITHOUT_DEBUG:str=1
|
||||
- Differnt string value than "0" disables installing a debug plugin.
|
||||
+ Different string value than "0" disables installing a debug plugin.
|
||||
|
||||
Then to run DNF::
|
||||
|
||||
--
|
||||
2.45.2
|
||||
|
@ -1,62 +0,0 @@
|
||||
From e04aff1e65fb260912e7e0feeb201e17fa5abda4 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kolarik <jkolarik@redhat.com>
|
||||
Date: Fri, 16 Dec 2022 05:55:19 +0000
|
||||
Subject: [PATCH] system-upgrade: Show warning always for a downstream
|
||||
|
||||
As the distro package is not available in the BaseOS, the warning implementation will be shown always, but only in related downstreams.
|
||||
|
||||
= changelog =
|
||||
type: bugfix
|
||||
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2152846
|
||||
---
|
||||
dnf-plugins-core.spec | 3 ++-
|
||||
plugins/system_upgrade.py | 6 ++----
|
||||
2 files changed, 4 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/dnf-plugins-core.spec b/dnf-plugins-core.spec
|
||||
index 1ee87a1..4df6e44 100644
|
||||
--- a/dnf-plugins-core.spec
|
||||
+++ b/dnf-plugins-core.spec
|
||||
@@ -148,13 +148,14 @@ Summary: Core Plugins for DNF
|
||||
%{?python_provide:%python_provide python3-%{name}}
|
||||
BuildRequires: python3-dbus
|
||||
BuildRequires: python3-devel
|
||||
-BuildRequires: python3-distro
|
||||
BuildRequires: python3-dnf >= %{dnf_lowest_compatible}
|
||||
BuildRequires: python3-systemd
|
||||
BuildRequires: pkgconfig(systemd)
|
||||
BuildRequires: systemd
|
||||
%{?systemd_ordering}
|
||||
+%if 0%{?fedora}
|
||||
Requires: python3-distro
|
||||
+%endif
|
||||
Requires: python3-dbus
|
||||
Requires: python3-dnf >= %{dnf_lowest_compatible}
|
||||
Requires: python3-hawkey >= %{hawkey_version}
|
||||
diff --git a/plugins/system_upgrade.py b/plugins/system_upgrade.py
|
||||
index ef1de73..4f7620f 100644
|
||||
--- a/plugins/system_upgrade.py
|
||||
+++ b/plugins/system_upgrade.py
|
||||
@@ -20,7 +20,6 @@
|
||||
"""system_upgrade.py - DNF plugin to handle major-version system upgrades."""
|
||||
|
||||
from subprocess import call, Popen, check_output, CalledProcessError
|
||||
-import distro
|
||||
import json
|
||||
import os
|
||||
import os.path
|
||||
@@ -452,9 +451,8 @@ class SystemUpgradeCommand(dnf.cli.Command):
|
||||
|
||||
def configure_download(self):
|
||||
if 'system-upgrade' == self.opts.command or 'fedup' == self.opts.command:
|
||||
- if distro.id() == 'rhel':
|
||||
- logger.warning(_('WARNING: this operation is not supported on the RHEL distribution. '
|
||||
- 'Proceed at your own risk.'))
|
||||
+ logger.warning(_('WARNING: this operation is not supported on the RHEL distribution. '
|
||||
+ 'Proceed at your own risk.'))
|
||||
help_url = get_url_from_os_release()
|
||||
if help_url:
|
||||
msg = _('Additional information for System Upgrade: {}')
|
||||
--
|
||||
2.39.0
|
||||
|
@ -0,0 +1,117 @@
|
||||
From 755a2a3cdbacfc1a5b632361c044be38164018fa Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Tue, 25 Jun 2024 12:36:55 +0200
|
||||
Subject: [PATCH] Enable leaves and show-leaves plugins for RHEL
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
This effectively reverts commit
|
||||
8a7a02b1e9573d86f5e6a430c61bf514e4856d31 because RHEL enebles these
|
||||
plugins since RHEL 9.3.
|
||||
|
||||
Resolves: https://issues.redhat.com/browse/RHEL-44922
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
dnf-plugins-core.spec | 36 ++++--------------------------------
|
||||
1 file changed, 4 insertions(+), 32 deletions(-)
|
||||
|
||||
diff --git a/dnf-plugins-core.spec b/dnf-plugins-core.spec
|
||||
index 27933d1..bb06b8d 100644
|
||||
--- a/dnf-plugins-core.spec
|
||||
+++ b/dnf-plugins-core.spec
|
||||
@@ -231,7 +231,7 @@ repoquery, reposync, repotrack, repodiff, builddep, config-manager,%{?with_debug
|
||||
download and yum-groups-manager that use new implementations using DNF.
|
||||
%endif
|
||||
|
||||
-%if 0%{?rhel} == 0 && %{with python2}
|
||||
+%if %{with python2}
|
||||
%package -n python2-dnf-plugin-leaves
|
||||
Summary: Leaves Plugin for DNF
|
||||
Requires: python2-%{name} = %{version}-%{release}
|
||||
@@ -250,7 +250,7 @@ Leaves Plugin for DNF, Python 2 version. List all installed packages
|
||||
not required by any other installed package.
|
||||
%endif
|
||||
|
||||
-%if 0%{?rhel} == 0 && %{with python3}
|
||||
+%if %{with python3}
|
||||
%package -n python3-dnf-plugin-leaves
|
||||
Summary: Leaves Plugin for DNF
|
||||
Requires: python3-%{name} = %{version}-%{release}
|
||||
@@ -376,7 +376,7 @@ Pre transaction actions Plugin for DNF, Python 3 version. Plugin runs actions
|
||||
files.
|
||||
%endif
|
||||
|
||||
-%if 0%{?rhel} == 0 && %{with python2}
|
||||
+%if %{with python2}
|
||||
%package -n python2-dnf-plugin-show-leaves
|
||||
Summary: Leaves Plugin for DNF
|
||||
Requires: python2-%{name} = %{version}-%{release}
|
||||
@@ -397,7 +397,7 @@ packages that are no longer required by any other installed package
|
||||
after a transaction.
|
||||
%endif
|
||||
|
||||
-%if 0%{?rhel} == 0 && %{with python3}
|
||||
+%if %{with python3}
|
||||
%package -n python3-dnf-plugin-show-leaves
|
||||
Summary: Show-leaves Plugin for DNF
|
||||
Requires: python3-%{name} = %{version}-%{release}
|
||||
@@ -755,8 +755,6 @@ ln -sf %{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/man1/repotrack.1
|
||||
%exclude %{_mandir}/man1/yum-utils.*
|
||||
%endif
|
||||
|
||||
-%if 0%{?rhel} == 0
|
||||
-
|
||||
%if %{with python2}
|
||||
%files -n python2-dnf-plugin-leaves
|
||||
%{python2_sitelib}/dnf-plugins/leaves.*
|
||||
@@ -770,18 +768,6 @@ ln -sf %{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/man1/repotrack.1
|
||||
%{_mandir}/man8/dnf*-leaves.*
|
||||
%endif
|
||||
|
||||
-%else
|
||||
-%exclude %{_mandir}/man8/dnf*-leaves.*
|
||||
-%if %{with python2}
|
||||
-%exclude %{python2_sitelib}/dnf-plugins/leaves.*
|
||||
-%endif
|
||||
-%if %{with python3}
|
||||
-%exclude %{python3_sitelib}/dnf-plugins/leaves.*
|
||||
-%exclude %{python3_sitelib}/dnf-plugins/__pycache__/leaves.*
|
||||
-%endif
|
||||
-%endif
|
||||
-# endif 0%%{?rhel} == 0
|
||||
-
|
||||
%if 0%{?rhel} == 0 && %{with python2}
|
||||
%files -n python2-dnf-plugin-local
|
||||
%config(noreplace) %{_sysconfdir}/dnf/plugins/local.conf
|
||||
@@ -839,8 +825,6 @@ ln -sf %{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/man1/repotrack.1
|
||||
%{_mandir}/man8/dnf*-pre-transaction-actions.*
|
||||
%endif
|
||||
|
||||
-%if 0%{?rhel} == 0
|
||||
-
|
||||
%if %{with python2}
|
||||
%files -n python2-dnf-plugin-show-leaves
|
||||
%{python2_sitelib}/dnf-plugins/show_leaves.*
|
||||
@@ -854,18 +838,6 @@ ln -sf %{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/man1/repotrack.1
|
||||
%{_mandir}/man8/dnf*-show-leaves.*
|
||||
%endif
|
||||
|
||||
-%else
|
||||
-%exclude %{_mandir}/man8/dnf*-show-leaves.*
|
||||
-%if %{with python2}
|
||||
-%exclude %{python2_sitelib}/dnf-plugins/show_leaves.*
|
||||
-%endif
|
||||
-%if %{with python3}
|
||||
-%exclude %{python3_sitelib}/dnf-plugins/show_leaves.*
|
||||
-%exclude %{python3_sitelib}/dnf-plugins/__pycache__/show_leaves.*
|
||||
-%endif
|
||||
-%endif
|
||||
-# endif 0%%{?rhel} == 0
|
||||
-
|
||||
%if %{with python2}
|
||||
%files -n python2-dnf-plugin-versionlock
|
||||
%config(noreplace) %{_sysconfdir}/dnf/plugins/versionlock.conf
|
||||
--
|
||||
2.45.2
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,55 +0,0 @@
|
||||
From f65bb02d8c6fb6569c3e1db43c3b0e9f2a0ab283 Mon Sep 17 00:00:00 2001
|
||||
From: Todd Lewis <todd_lewis@unc.edu>
|
||||
Date: Wed, 16 Nov 2022 10:45:39 -0500
|
||||
Subject: [PATCH] Fix boot time derivation for systems with no rtc
|
||||
|
||||
That addresses https://bugzilla.redhat.com/show_bug.cgi?id=2137935
|
||||
---
|
||||
plugins/needs_restarting.py | 24 +++++++++++++++++++++++-
|
||||
1 file changed, 23 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/plugins/needs_restarting.py b/plugins/needs_restarting.py
|
||||
index 91dbe66..03831fa 100644
|
||||
--- a/plugins/needs_restarting.py
|
||||
+++ b/plugins/needs_restarting.py
|
||||
@@ -34,6 +34,7 @@ import functools
|
||||
import os
|
||||
import re
|
||||
import stat
|
||||
+import time
|
||||
|
||||
|
||||
# For which package updates we should recommend a reboot
|
||||
@@ -199,7 +200,28 @@ class ProcessStart(object):
|
||||
|
||||
@staticmethod
|
||||
def get_boot_time():
|
||||
- return int(os.stat('/proc/1').st_mtime)
|
||||
+ """
|
||||
+ We have two sources from which to derive the boot time. These values vary
|
||||
+ depending on containerization, existence of a Real Time Clock, etc.
|
||||
+ For our purposes we want the latest derived value.
|
||||
+ - st_mtime of /proc/1
|
||||
+ Reflects the time the first process was run after booting
|
||||
+ This works for all known cases except machines without
|
||||
+ a RTC - they awake at the start of the epoch.
|
||||
+ - /proc/uptime
|
||||
+ Seconds field of /proc/uptime subtracted from the current time
|
||||
+ Works for machines without RTC iff the current time is reasonably correct.
|
||||
+ Does not work on containers which share their kernel with the
|
||||
+ host - there the host kernel uptime is returned
|
||||
+ """
|
||||
+
|
||||
+ proc_1_boot_time = int(os.stat('/proc/1').st_mtime)
|
||||
+ if os.path.isfile('/proc/uptime'):
|
||||
+ with open('/proc/uptime', 'rb') as f:
|
||||
+ uptime = f.readline().strip().split()[0].strip()
|
||||
+ proc_uptime_boot_time = int(time.time() - float(uptime))
|
||||
+ return max(proc_1_boot_time, proc_uptime_boot_time)
|
||||
+ return proc_1_boot_time
|
||||
|
||||
@staticmethod
|
||||
def get_sc_clk_tck():
|
||||
--
|
||||
2.40.1
|
||||
|
@ -1,241 +0,0 @@
|
||||
From d5f5883623ada37b4cec5909a1032c4bc3123a9a Mon Sep 17 00:00:00 2001
|
||||
From: Cameron Rodriguez <rod.cam2014+dev@gmail.com>
|
||||
Date: Tue, 1 Nov 2022 02:25:52 -0400
|
||||
Subject: [PATCH] [system-upgrade] Add --poweroff option to reboot subcommand
|
||||
|
||||
= changelog =
|
||||
msg: Add --poweroff option to system-upgrade reboot
|
||||
type: enhancement
|
||||
---
|
||||
doc/system-upgrade.rst | 10 ++++++++++
|
||||
plugins/system_upgrade.py | 28 ++++++++++++++++++++++------
|
||||
tests/test_system_upgrade.py | 18 +++++++++++++++++-
|
||||
3 files changed, 49 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/doc/system-upgrade.rst b/doc/system-upgrade.rst
|
||||
index 87b7319..6a7785b 100644
|
||||
--- a/doc/system-upgrade.rst
|
||||
+++ b/doc/system-upgrade.rst
|
||||
@@ -44,6 +44,8 @@ Synopsis
|
||||
|
||||
``dnf system-upgrade reboot``
|
||||
|
||||
+``dnf system-upgrade reboot --poweroff``
|
||||
+
|
||||
``dnf system-upgrade clean``
|
||||
|
||||
``dnf system-upgrade log``
|
||||
@@ -54,6 +56,8 @@ Synopsis
|
||||
|
||||
``dnf offline-upgrade reboot``
|
||||
|
||||
+``dnf offline-upgrade reboot --poweroff``
|
||||
+
|
||||
``dnf offline-upgrade clean``
|
||||
|
||||
``dnf offline-upgrade log``
|
||||
@@ -64,6 +68,8 @@ Synopsis
|
||||
|
||||
``dnf offline-distrosync reboot``
|
||||
|
||||
+``dnf offline-distrosync reboot --poweroff``
|
||||
+
|
||||
``dnf offline-distrosync clean``
|
||||
|
||||
``dnf offline-distrosync log``
|
||||
@@ -116,6 +122,10 @@ Options
|
||||
``--distro-sync``. If both are specified, the last option will be used. The option cannot be
|
||||
used with the ``offline-distrosync`` command.
|
||||
|
||||
+``--poweroff``
|
||||
+ When applied with the ``reboot`` subcommand, the system will power off after
|
||||
+ upgrades are completed, instead of restarting.
|
||||
+
|
||||
``--number``
|
||||
Applied with ``log`` subcommand will show the log specified by the number.
|
||||
|
||||
diff --git a/plugins/system_upgrade.py b/plugins/system_upgrade.py
|
||||
index 4f7620f..b99dd8a 100644
|
||||
--- a/plugins/system_upgrade.py
|
||||
+++ b/plugins/system_upgrade.py
|
||||
@@ -61,16 +61,19 @@ DOWNLOAD_FINISHED_MSG = _( # Translators: do not change "reboot" here
|
||||
CANT_RESET_RELEASEVER = _(
|
||||
"Sorry, you need to use 'download --releasever' instead of '--network'")
|
||||
|
||||
-STATE_VERSION = 2
|
||||
+STATE_VERSION = 3
|
||||
|
||||
# --- Miscellaneous helper functions ------------------------------------------
|
||||
|
||||
|
||||
-def reboot():
|
||||
+def reboot(poweroff = False):
|
||||
if os.getenv("DNF_SYSTEM_UPGRADE_NO_REBOOT", default=False):
|
||||
logger.info(_("Reboot turned off, not rebooting."))
|
||||
else:
|
||||
- Popen(["systemctl", "reboot"])
|
||||
+ if poweroff:
|
||||
+ Popen(["systemctl", "poweroff"])
|
||||
+ else:
|
||||
+ Popen(["systemctl", "reboot"])
|
||||
|
||||
|
||||
def get_url_from_os_release():
|
||||
@@ -183,6 +186,7 @@ class State(object):
|
||||
upgrade_status = _prop("upgrade_status")
|
||||
upgrade_command = _prop("upgrade_command")
|
||||
distro_sync = _prop("distro_sync")
|
||||
+ poweroff_after = _prop("poweroff_after")
|
||||
enable_disable_repos = _prop("enable_disable_repos")
|
||||
module_platform_id = _prop("module_platform_id")
|
||||
|
||||
@@ -359,6 +363,10 @@ class SystemUpgradeCommand(dnf.cli.Command):
|
||||
action='store_false',
|
||||
help=_("keep installed packages if the new "
|
||||
"release's version is older"))
|
||||
+ parser.add_argument('--poweroff', dest='poweroff_after',
|
||||
+ action='store_true',
|
||||
+ help=_("power off system after the operation "
|
||||
+ "is completed"))
|
||||
parser.add_argument('tid', nargs=1, choices=CMDS,
|
||||
metavar="[%s]" % "|".join(CMDS))
|
||||
parser.add_argument('--number', type=int, help=_('which logs to show'))
|
||||
@@ -566,8 +574,13 @@ class SystemUpgradeCommand(dnf.cli.Command):
|
||||
if not self.opts.tid[0] == "reboot":
|
||||
return
|
||||
|
||||
+ self.state.poweroff_after = self.opts.poweroff_after
|
||||
+
|
||||
self.log_status(_("Rebooting to perform upgrade."),
|
||||
REBOOT_REQUESTED_ID)
|
||||
+
|
||||
+ # Explicit write since __exit__ doesn't seem to get called when rebooting
|
||||
+ self.state.write()
|
||||
reboot()
|
||||
|
||||
def run_download(self):
|
||||
@@ -686,12 +699,15 @@ class SystemUpgradeCommand(dnf.cli.Command):
|
||||
self.log_status(_("Download finished."), DOWNLOAD_FINISHED_ID)
|
||||
|
||||
def transaction_upgrade(self):
|
||||
- Plymouth.message(_("Upgrade complete! Cleaning up and rebooting..."))
|
||||
- self.log_status(_("Upgrade complete! Cleaning up and rebooting..."),
|
||||
+ power_op = "powering off" if self.state.poweroff_after else "rebooting"
|
||||
+
|
||||
+ Plymouth.message(_("Upgrade complete! Cleaning up and " + power_op + "..."))
|
||||
+ self.log_status(_("Upgrade complete! Cleaning up and " + power_op + "..."),
|
||||
UPGRADE_FINISHED_ID)
|
||||
+
|
||||
self.run_clean()
|
||||
if self.opts.tid[0] == "upgrade":
|
||||
- reboot()
|
||||
+ reboot(self.state.poweroff_after)
|
||||
|
||||
|
||||
class OfflineUpgradeCommand(SystemUpgradeCommand):
|
||||
diff --git a/tests/test_system_upgrade.py b/tests/test_system_upgrade.py
|
||||
index 6ef4c21..769720d 100644
|
||||
--- a/tests/test_system_upgrade.py
|
||||
+++ b/tests/test_system_upgrade.py
|
||||
@@ -322,7 +322,7 @@ class RebootCheckCommandTestCase(CommandTestCaseBase):
|
||||
def check_reboot(self, status='complete', lexists=False, command='system-upgrade',
|
||||
state_command='system-upgrade'):
|
||||
with patch('system_upgrade.os.path.lexists') as lexists_func:
|
||||
- self.command.state.state_version = 2
|
||||
+ self.command.state.state_version = 3
|
||||
self.command.state.download_status = status
|
||||
self.command.opts = mock.MagicMock()
|
||||
self.command.opts.command = command
|
||||
@@ -356,6 +356,7 @@ class RebootCheckCommandTestCase(CommandTestCaseBase):
|
||||
@patch('system_upgrade.reboot')
|
||||
def test_run_reboot(self, reboot, log_status, run_prepare):
|
||||
self.command.opts = mock.MagicMock()
|
||||
+ self.command.opts.poweroff_after = False
|
||||
self.command.opts.tid = ["reboot"]
|
||||
self.command.run_reboot()
|
||||
run_prepare.assert_called_once_with()
|
||||
@@ -363,6 +364,21 @@ class RebootCheckCommandTestCase(CommandTestCaseBase):
|
||||
log_status.call_args[0][1])
|
||||
self.assertTrue(reboot.called)
|
||||
|
||||
+ @patch('system_upgrade.SystemUpgradeCommand.run_prepare')
|
||||
+ @patch('system_upgrade.SystemUpgradeCommand.log_status')
|
||||
+ @patch('system_upgrade.reboot')
|
||||
+ def test_reboot_poweroff_after(self, reboot, log_status, run_prepare):
|
||||
+ self.command.opts = mock.MagicMock()
|
||||
+ self.command.opts.tid = ["reboot"]
|
||||
+ self.command.opts.poweroff_after = True
|
||||
+ self.command.run_reboot()
|
||||
+ run_prepare.assert_called_with()
|
||||
+ self.assertEqual(system_upgrade.REBOOT_REQUESTED_ID,
|
||||
+ log_status.call_args[0][1])
|
||||
+ self.assertTrue(self.command.state.poweroff_after)
|
||||
+ self.assertTrue(reboot.called)
|
||||
+
|
||||
+
|
||||
@patch('system_upgrade.SystemUpgradeCommand.run_prepare')
|
||||
@patch('system_upgrade.SystemUpgradeCommand.log_status')
|
||||
@patch('system_upgrade.reboot')
|
||||
--
|
||||
2.40.1
|
||||
|
||||
|
||||
From 52aec32ef129874dc28fc93947e5d32c78baff0c Mon Sep 17 00:00:00 2001
|
||||
From: Cameron Rodriguez <rod.cam2014+dev@gmail.com>
|
||||
Date: Tue, 1 Nov 2022 02:29:29 -0400
|
||||
Subject: [PATCH] Add Cameron Rodriguez to AUTHORS file
|
||||
|
||||
---
|
||||
AUTHORS | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/AUTHORS b/AUTHORS
|
||||
index f098cb6..a6102ec 100644
|
||||
--- a/AUTHORS
|
||||
+++ b/AUTHORS
|
||||
@@ -20,6 +20,7 @@ DNF-PLUGINS-CORE CONTRIBUTORS
|
||||
Adam Salih <salih.max@gmail.com>
|
||||
Alexander Todorov <atodorov@otb.bg>
|
||||
Anders Blomdell <anders.blomdell@gmail.com>
|
||||
+ Cameron Rodriguez <rod.cam2014+dev@gmail.com>
|
||||
Cyril Jouve <jv.cyril@gmail.com>
|
||||
David Michael <fedora.dm0@gmail.com>
|
||||
François Rigault <francois.rigault@amadeus.com>
|
||||
--
|
||||
2.40.1
|
||||
|
||||
|
||||
From dd081ebd4c46a79688f81ef639628189f8b78db3 Mon Sep 17 00:00:00 2001
|
||||
From: Cameron Rodriguez <rod.cam2014+dev@gmail.com>
|
||||
Date: Sun, 4 Dec 2022 10:06:08 -0500
|
||||
Subject: [PATCH] [offline-upgrade] Fix strings for l10n
|
||||
|
||||
---
|
||||
plugins/system_upgrade.py | 10 ++++++----
|
||||
1 file changed, 6 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/plugins/system_upgrade.py b/plugins/system_upgrade.py
|
||||
index b99dd8a..64195fd 100644
|
||||
--- a/plugins/system_upgrade.py
|
||||
+++ b/plugins/system_upgrade.py
|
||||
@@ -699,11 +699,13 @@ class SystemUpgradeCommand(dnf.cli.Command):
|
||||
self.log_status(_("Download finished."), DOWNLOAD_FINISHED_ID)
|
||||
|
||||
def transaction_upgrade(self):
|
||||
- power_op = "powering off" if self.state.poweroff_after else "rebooting"
|
||||
+ if self.state.poweroff_after:
|
||||
+ upgrade_complete_msg = _("Upgrade complete! Cleaning up and powering off...")
|
||||
+ else:
|
||||
+ upgrade_complete_msg = _("Upgrade complete! Cleaning up and rebooting...")
|
||||
|
||||
- Plymouth.message(_("Upgrade complete! Cleaning up and " + power_op + "..."))
|
||||
- self.log_status(_("Upgrade complete! Cleaning up and " + power_op + "..."),
|
||||
- UPGRADE_FINISHED_ID)
|
||||
+ Plymouth.message(upgrade_complete_msg)
|
||||
+ self.log_status(upgrade_complete_msg, UPGRADE_FINISHED_ID)
|
||||
|
||||
self.run_clean()
|
||||
if self.opts.tid[0] == "upgrade":
|
||||
--
|
||||
2.40.1
|
||||
|
@ -1,34 +0,0 @@
|
||||
From 52c980f191993b61a42438a478d1e5629ea36c9f Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Mracek <jmracek@redhat.com>
|
||||
Date: Mon, 27 Mar 2023 10:24:59 +0200
|
||||
Subject: [PATCH] Documentation update for reposync (RhBug:2132383,2182004)
|
||||
|
||||
The update describe the behavior when `-n` and `--download-metadata`
|
||||
is used.
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=2132383
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=2182004
|
||||
---
|
||||
doc/reposync.rst | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/doc/reposync.rst b/doc/reposync.rst
|
||||
index 0df00b9..bbf714c 100644
|
||||
--- a/doc/reposync.rst
|
||||
+++ b/doc/reposync.rst
|
||||
@@ -46,7 +46,11 @@ All general DNF options are accepted. Namely, the ``--repoid`` option can be use
|
||||
Delete local packages no longer present in repository.
|
||||
|
||||
``--download-metadata``
|
||||
- Download all repository metadata. Downloaded copy is instantly usable as a repository, no need to run createrepo_c on it.
|
||||
+ Download all repository metadata. Downloaded copy is instantly usable as a repository, no need to run createrepo_c
|
||||
+ on it. When the option is used with `--newest-only`, only latest packages will be downloaded, but metadata will
|
||||
+ still contain older packages. It might be useful to update metadata using `createrepo_c --update` to remove
|
||||
+ the packages with missing RPM files from metadata. Otherwise, DNF ends with an error due to the missing files
|
||||
+ whenever it tries to download older packages.
|
||||
|
||||
``-g, --gpgcheck``
|
||||
Remove packages that fail GPG signature checking after downloading. Exit code is ``1`` if at least one package was removed.
|
||||
--
|
||||
2.40.1
|
||||
|
@ -1,88 +0,0 @@
|
||||
From 169a79922d7cb8968ffd378b1c98959185ee417f Mon Sep 17 00:00:00 2001
|
||||
From: Andy Baugh <andy@troglodyne.net>
|
||||
Date: Fri, 28 Apr 2023 10:52:16 -0500
|
||||
Subject: [PATCH] Add fix and test assertion for "no systemd unit exists for
|
||||
pid"
|
||||
|
||||
= changelog =
|
||||
msg: Catch exception in needs-restarting.py when no systemd unit exists for pid
|
||||
type: bugfix
|
||||
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2122587
|
||||
related: None
|
||||
---
|
||||
plugins/needs_restarting.py | 18 ++++++++++++++----
|
||||
tests/test_needs_restarting.py | 15 +++++++++++++--
|
||||
2 files changed, 27 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/plugins/needs_restarting.py b/plugins/needs_restarting.py
|
||||
index 03831fa..8dbc965 100644
|
||||
--- a/plugins/needs_restarting.py
|
||||
+++ b/plugins/needs_restarting.py
|
||||
@@ -138,10 +138,20 @@ def get_service_dbus(pid):
|
||||
systemd_manager_object,
|
||||
'org.freedesktop.systemd1.Manager'
|
||||
)
|
||||
- service_proxy = bus.get_object(
|
||||
- 'org.freedesktop.systemd1',
|
||||
- systemd_manager_interface.GetUnitByPID(pid)
|
||||
- )
|
||||
+ service_proxy = None
|
||||
+ try:
|
||||
+ service_proxy = bus.get_object(
|
||||
+ 'org.freedesktop.systemd1',
|
||||
+ systemd_manager_interface.GetUnitByPID(pid)
|
||||
+ )
|
||||
+ except dbus.DBusException as e:
|
||||
+ # There is no unit for the pid. Usually error is 'NoUnitForPid'.
|
||||
+ # Considering what we do at the bottom (just return if not service)
|
||||
+ # Then there's really no reason to exit here on that exception.
|
||||
+ # Log what's happened then move on.
|
||||
+ msg = str(e)
|
||||
+ logger.warning("Failed to get systemd unit for PID {}: {}".format(pid, msg))
|
||||
+ return
|
||||
service_properties = dbus.Interface(
|
||||
service_proxy, dbus_interface="org.freedesktop.DBus.Properties")
|
||||
name = service_properties.Get(
|
||||
diff --git a/tests/test_needs_restarting.py b/tests/test_needs_restarting.py
|
||||
index 0ad70a5..7b629b4 100644
|
||||
--- a/tests/test_needs_restarting.py
|
||||
+++ b/tests/test_needs_restarting.py
|
||||
@@ -20,6 +20,8 @@ from __future__ import absolute_import
|
||||
from __future__ import print_function
|
||||
from __future__ import unicode_literals
|
||||
|
||||
+from unittest.mock import patch, Mock
|
||||
+import dbus
|
||||
import needs_restarting
|
||||
import tests.support
|
||||
|
||||
@@ -29,8 +31,6 @@ MM_FILE = '7fc4e1168000-7fc4e1169000 rw-s 1096dd000 00:05 7749' \
|
||||
' /dev/dri/card0'
|
||||
SO_FILE = '30efe06000-30efe07000 r--p 00006000 08:02 139936' \
|
||||
' /usr/lib64/libSM.so.6.0.1'
|
||||
-
|
||||
-
|
||||
class NeedsRestartingTest(tests.support.TestCase):
|
||||
def test_smap2opened_file(self):
|
||||
func = needs_restarting.smap2opened_file
|
||||
@@ -46,6 +46,17 @@ class NeedsRestartingTest(tests.support.TestCase):
|
||||
self.assertTrue(ofile.deleted)
|
||||
self.assertEqual(ofile.name, '/usr/lib64/libXfont.so.1.4.1;5408628d')
|
||||
|
||||
+ def test_get_service_dbus_nounitforpid(self):
|
||||
+ func = needs_restarting.get_service_dbus
|
||||
+ # So, This is gonna look kinda screwy unless you are aware of what
|
||||
+ # this proxies interface is actually doing. The GetUnitByPid function
|
||||
+ # is normally "dynamically" defined by the get_dbus_method at runtime.
|
||||
+ # As such there's no actual way to mock it out in any meaningful way
|
||||
+ # without create=True.
|
||||
+ with patch( "dbus.proxies.Interface.GetUnitByPID", create=True, side_effect=dbus.DBusException('org.freedesktop.systemd1.NoUnitForPID: PID 1234 does not belong to any loaded unit.') ), \
|
||||
+ patch( "dbus.SystemBus", return_value=Mock(spec=dbus.Bus) ), \
|
||||
+ patch( "dbus.bus.BusConnection.__new__", side_effect=dbus.DBusException("Never should hit this exception if mock above works")):
|
||||
+ self.assertIsNone(func(1234))
|
||||
|
||||
class OpenedFileTest(tests.support.TestCase):
|
||||
def test_presumed_name(self):
|
||||
--
|
||||
2.40.1
|
||||
|
@ -1,32 +0,0 @@
|
||||
From 7475f8df6d903764eaf8baaa87ec7a3a1a4d888c Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kolarik <jkolarik@redhat.com>
|
||||
Date: Fri, 9 Jun 2023 11:57:33 +0000
|
||||
Subject: [PATCH] system-upgrade: Wait until the upgrade is done before
|
||||
poweroff (RhBug:2211844)
|
||||
|
||||
Add a systemd dependency to wait until upgrade service is finished before executing the poweroff when passing the `--poweroff` option in `system-upgrade` plugin.
|
||||
|
||||
= changelog =
|
||||
msg: Fix systemd dependencies when using --poweroff option in system-upgrade plugin
|
||||
type: bugfix
|
||||
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2211844
|
||||
---
|
||||
etc/systemd/dnf-system-upgrade.service | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/etc/systemd/dnf-system-upgrade.service b/etc/systemd/dnf-system-upgrade.service
|
||||
index 2d23cfe..3e15920 100644
|
||||
--- a/etc/systemd/dnf-system-upgrade.service
|
||||
+++ b/etc/systemd/dnf-system-upgrade.service
|
||||
@@ -6,7 +6,7 @@ Documentation=http://www.freedesktop.org/wiki/Software/systemd/SystemUpdates
|
||||
DefaultDependencies=no
|
||||
Requires=sysinit.target
|
||||
After=sysinit.target systemd-journald.socket system-update-pre.target
|
||||
-Before=shutdown.target system-update.target
|
||||
+Before=poweroff.target reboot.target shutdown.target system-update.target
|
||||
OnFailure=dnf-system-upgrade-cleanup.service
|
||||
|
||||
[Service]
|
||||
--
|
||||
2.40.1
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue