diff --git a/SOURCES/0041-Omit-src-RPMs-from-check-update-RhBug-2151910.patch b/SOURCES/0041-Omit-src-RPMs-from-check-update-RhBug-2151910.patch new file mode 100644 index 0000000..57a2db5 --- /dev/null +++ b/SOURCES/0041-Omit-src-RPMs-from-check-update-RhBug-2151910.patch @@ -0,0 +1,45 @@ +From 33c354ed52be8f8fa2d43aff8ba1fe1540e1744c Mon Sep 17 00:00:00 2001 +From: Kyle Walker +Date: Tue, 20 Dec 2022 08:42:03 -0500 +Subject: [PATCH] Omit src RPMs from check-update (RhBug: 2151910) + +The current check-update operation relies on src RPMs not being included +in the available repos. When those repos are enabled, *.src RPMs can be +emitted as updates that are available. Those RPMs are not updated in the +traditional fashion and can cause confusion to end users. + +This change unconditionally filters out src packages in the +_list_patterns() callpath. + += changelog = +type: bugfix +resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2151910 +--- + dnf/base.py | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/dnf/base.py b/dnf/base.py +index aba411e..8c19276 100644 +--- a/dnf/base.py ++++ b/dnf/base.py +@@ -1519,6 +1519,8 @@ class Base(object): + updates = query_for_repo(q).filterm(upgrades_by_priority=True) + # reduce a query to security upgrades if they are specified + updates = self._merge_update_filters(updates, upgrade=True) ++ # reduce a query to remove src RPMs ++ updates.filterm(arch__neq=['src', 'nosrc']) + # reduce a query to latest packages + updates = updates.latest().run() + +@@ -1571,6 +1573,8 @@ class Base(object): + self.sack.query()).filter(obsoletes_by_priority=inst) + # reduce a query to security upgrades if they are specified + obsoletes = self._merge_update_filters(obsoletes, warning=False, upgrade=True) ++ # reduce a query to remove src RPMs ++ obsoletes.filterm(arch__neq=['src', 'nosrc']) + obsoletesTuples = [] + for new in obsoletes: + obsoleted_reldeps = new.obsoletes +-- +libgit2 1.3.2 + diff --git a/SOURCES/0042-Backport-automatic-Fix-onl-detect-proxy-RhBz2022440.patch b/SOURCES/0042-Backport-automatic-Fix-onl-detect-proxy-RhBz2022440.patch new file mode 100644 index 0000000..59025bd --- /dev/null +++ b/SOURCES/0042-Backport-automatic-Fix-onl-detect-proxy-RhBz2022440.patch @@ -0,0 +1,56 @@ +From 2658062d4c176201d0decf03929a89b44761c072 Mon Sep 17 00:00:00 2001 +From: Marek Blaha +Date: Mon, 3 Apr 2023 12:19:40 +0200 +Subject: [PATCH] Backport: automatic: Fix online detection with proxy (RhBz:2022440) + +In case the proxy is configured (either for a repo of globally) it is +used also for detecting whether the system is online. + +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2022440 +--- + dnf/automatic/main.py | 20 ++++++++++++++------ + 1 file changed, 14 insertions(+), 6 deletions(-) + +diff --git a/dnf/automatic/main.py b/dnf/automatic/main.py +index b53d9c0..93ce13c 100644 +--- a/dnf/automatic/main.py ++++ b/dnf/automatic/main.py +@@ -251,21 +251,29 @@ def wait_for_network(repos, timeout): + 'http': 80, + 'https': 443, + 'ftp': 21, ++ 'socks': 1080, ++ 'socks5': 1080, + } + + def remote_address(url_list): + for url in url_list: + parsed_url = dnf.pycomp.urlparse.urlparse(url) +- if parsed_url.hostname and parsed_url.scheme in remote_schemes: +- yield (parsed_url.hostname, +- parsed_url.port or remote_schemes[parsed_url.scheme]) ++ if (not parsed_url.hostname) \ ++ or (not parsed_url.port and parsed_url.scheme not in remote_schemes): ++ # skip urls without hostname or without recognized port ++ continue ++ yield (parsed_url.hostname, ++ parsed_url.port or remote_schemes[parsed_url.scheme]) + + # collect possible remote repositories urls + addresses = set() + for repo in repos.iter_enabled(): +- addresses.update(remote_address(repo.baseurl)) +- addresses.update(remote_address([repo.mirrorlist])) +- addresses.update(remote_address([repo.metalink])) ++ if repo.proxy: ++ addresses.update(remote_address([repo.proxy])) ++ else: ++ addresses.update(remote_address(repo.baseurl)) ++ addresses.update(remote_address([repo.mirrorlist])) ++ addresses.update(remote_address([repo.metalink])) + + if not addresses: + # there is no remote repository enabled so network connection should not be needed +-- +libgit2 1.3.2 + diff --git a/SOURCES/0043-automatic-Return-an-error-when-transaction-fails-RhB.patch b/SOURCES/0043-automatic-Return-an-error-when-transaction-fails-RhB.patch new file mode 100644 index 0000000..7688df9 --- /dev/null +++ b/SOURCES/0043-automatic-Return-an-error-when-transaction-fails-RhB.patch @@ -0,0 +1,39 @@ +From 46aeabda1980621ca0f87528e0a81b4f59d886f0 Mon Sep 17 00:00:00 2001 +From: Jan Kolarik +Date: Thu, 20 Apr 2023 10:10:14 +0000 +Subject: [PATCH] automatic: Return an error when transaction fails + (RhBug:2170093) + +In case of no global error occurred within the transaction, we still need to check state of individual transaction items for any failure. + +This is matching the logic in `BaseCli.do_transaction` method, where the error is emitted after printing the transaction summary. + += changelog = +msg: automatic: Return an error when transaction fails +type: bugfix +resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2170093 +--- + dnf/automatic/main.py | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/dnf/automatic/main.py b/dnf/automatic/main.py +index 93ce13cc..ccd9ab64 100644 +--- a/dnf/automatic/main.py ++++ b/dnf/automatic/main.py +@@ -346,6 +346,13 @@ def main(args): + + gpgsigcheck(base, trans.install_set) + base.do_transaction() ++ ++ # In case of no global error occurred within the transaction, ++ # we need to check state of individual transaction items. ++ for tsi in trans: ++ if tsi.state == libdnf.transaction.TransactionItemState_ERROR: ++ raise dnf.exceptions.Error(_('Transaction failed')) ++ + emitters.notify_applied() + emitters.commit() + except dnf.exceptions.Error as exc: +-- +2.40.1 + diff --git a/SOURCES/0044-Document-symbols-in-dnf-history-list-output.patch b/SOURCES/0044-Document-symbols-in-dnf-history-list-output.patch new file mode 100644 index 0000000..9f006d4 --- /dev/null +++ b/SOURCES/0044-Document-symbols-in-dnf-history-list-output.patch @@ -0,0 +1,63 @@ +From a74209ff53c9a51293b45434196dff49002c5691 Mon Sep 17 00:00:00 2001 +From: Evan Goode +Date: Tue, 30 May 2023 20:48:54 +0000 +Subject: [PATCH] Document symbols in `dnf history list` output + +This patch adds documentation for the symbols shown in the "Action(s)" +and "Altered" columns of `dnf history list` + +The "Action(s)" column abbreviates the names of transaction actions when +there was more than one action, e.g. a transaction that both installs +and upgrades packages would be displayed as "I, U". + +The "Altered" column prints some extra symbols when something unusual +happened with the transaction, like if any warnings were printed or if +it completed with a non-zero status. + +Some language was taken from the yum man pages: +https://github.com/rpm-software-management/yum/blob/master/docs/yum.8. +It appears we no longer use the "P" or "s" symbols. + +Resolves https://bugzilla.redhat.com/show_bug.cgi?id=2172067 +(RhBug:2172067) + += changelog = +msg: Document the symbols in the output of `dnf history list` +type: bugfix +resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2172067 +--- + doc/command_ref.rst | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git a/doc/command_ref.rst b/doc/command_ref.rst +index 7279b3a4..f8149e86 100644 +--- a/doc/command_ref.rst ++++ b/doc/command_ref.rst +@@ -701,6 +701,24 @@ transactions and act according to this information (assuming the + which specifies a transaction by a package which it manipulated. When no + transaction is specified, list all known transactions. + ++ The "Action(s)" column lists each type of action taken in the transaction. The possible values are: ++ ++ * Install (I): a new package was installed on the system ++ * Downgrade (D): an older version of a package replaced the previously-installed version ++ * Obsolete (O): an obsolete package was replaced by a new package ++ * Upgrade (U): a newer version of the package replaced the previously-installed version ++ * Remove (E): a package was removed from the system ++ * Reinstall (R): a package was reinstalled with the same version ++ * Reason change (C): a package was kept in the system but its reason for being installed changed ++ ++ The "Altered" column lists the number of actions taken in each transaction, possibly followed by one or two the following symbols: ++ ++ * ``>``: The RPM database was changed, outside DNF, after the transaction ++ * ``<``: The RPM database was changed, outside DNF, before the transaction ++ * ``*``: The transaction aborted before completion ++ * ``#``: The transaction completed, but with a non-zero status ++ * ``E``: The transaction completed successfully, but had warning/error output ++ + ``--reverse`` + The order of ``history list`` output is printed in reverse order. + +-- +2.40.1 + diff --git a/SPECS/dnf.spec b/SPECS/dnf.spec index b894a17..ce6b095 100644 --- a/SPECS/dnf.spec +++ b/SPECS/dnf.spec @@ -66,7 +66,7 @@ It supports RPMs, modules and comps groups & environments. Name: dnf Version: 4.7.0 -Release: 16%{?dist} +Release: 19%{?dist} Summary: %{pkg_summary} # For a breakdown of the licensing, see PACKAGE-LICENSING License: GPLv2+ @@ -116,7 +116,10 @@ Patch0037: 0037-Document-changes-to-offline-upgrade-command.patch Patch0038: 0038-Better-explain-traceback-of-rpm.error-with-dnf.patch Patch0039: 0039-Ignore-processing-variable-files-with-unsupported-en.patch Patch0040: 0040-Update-translations.patch - +Patch0041: 0041-Omit-src-RPMs-from-check-update-RhBug-2151910.patch +Patch0042: 0042-Backport-automatic-Fix-onl-detect-proxy-RhBz2022440.patch +Patch0043: 0043-automatic-Return-an-error-when-transaction-fails-RhB.patch +Patch0044: 0044-Document-symbols-in-dnf-history-list-output.patch BuildArch: noarch @@ -417,6 +420,16 @@ popd %{python3_sitelib}/%{name}/automatic/ %changelog +* Wed Jun 28 2023 Jaroslav Rohel - 4.7.0-19 +- Document symbols in `dnf history list` output (RhBug:2172067) + +* Wed May 31 2023 Nicola Sella - 4.7.0-18 +- Return an error when transaction fails (RhBug:2170093) + +* Wed May 17 2023 Jaroslav Rohel - 4.7.0-17 +- Omit src RPMs from check-update (RhBug:2151910,2203069) +- automatic: Fix online detection with proxy (RhBug:2022440,2189851) + * Wed Mar 08 2023 Marek Blaha - 4.7.0-16 - Update translations