Compare commits
No commits in common. 'i9' and 'c9' have entirely different histories.
@ -0,0 +1,252 @@
|
|||||||
|
From 56d3e10ecb666da53a77d17e9ac7524f3e1341d8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Evan Goode <mail@evangoo.de>
|
||||||
|
Date: Tue, 24 Jan 2023 09:53:47 -0500
|
||||||
|
Subject: [PATCH 1/4] Add reboot option to DNF Automatic (RhBug:2124793)
|
||||||
|
|
||||||
|
Add ability in DNF Automatic to automatically trigger a reboot after an
|
||||||
|
upgrade. The `reboot` option supports three settings: ``never`` does not
|
||||||
|
reboot the system (current behavior). ``when-changed`` triggers a reboot
|
||||||
|
after any upgrade. ``when-needed`` triggers a reboot only when rebooting
|
||||||
|
is necessary to apply changes, such as when systemd or the kernel is
|
||||||
|
upgraded. The `reboot_command` option allows customizing the command
|
||||||
|
used to reboot (default is `shutdown -r`).
|
||||||
|
|
||||||
|
= changelog =
|
||||||
|
msg: Add `reboot` option to DNF Automatic
|
||||||
|
type: enhancement
|
||||||
|
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2124793
|
||||||
|
---
|
||||||
|
dnf/automatic/main.py | 9 +++++++++
|
||||||
|
dnf/base.py | 14 ++++++++++++++
|
||||||
|
doc/automatic.rst | 12 ++++++++++++
|
||||||
|
etc/dnf/automatic.conf | 9 +++++++++
|
||||||
|
tests/automatic/test_main.py | 4 ++++
|
||||||
|
5 files changed, 48 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/dnf/automatic/main.py b/dnf/automatic/main.py
|
||||||
|
index b53d9c00..b68962c2 100644
|
||||||
|
--- a/dnf/automatic/main.py
|
||||||
|
+++ b/dnf/automatic/main.py
|
||||||
|
@@ -24,6 +24,7 @@ from __future__ import unicode_literals
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import logging
|
||||||
|
+import os
|
||||||
|
import random
|
||||||
|
import socket
|
||||||
|
import time
|
||||||
|
@@ -179,6 +180,9 @@ class CommandsConfig(Config):
|
||||||
|
libdnf.conf.VectorString(['default', 'security'])))
|
||||||
|
self.add_option('random_sleep', libdnf.conf.OptionNumberInt32(300))
|
||||||
|
self.add_option('network_online_timeout', libdnf.conf.OptionNumberInt32(60))
|
||||||
|
+ self.add_option('reboot', libdnf.conf.OptionEnumString('never',
|
||||||
|
+ libdnf.conf.VectorString(['never', 'when-changed', 'when-needed'])))
|
||||||
|
+ self.add_option('reboot_command', libdnf.conf.OptionString('shutdown -r'))
|
||||||
|
|
||||||
|
def imply(self):
|
||||||
|
if self.apply_updates:
|
||||||
|
@@ -340,6 +344,11 @@ def main(args):
|
||||||
|
base.do_transaction()
|
||||||
|
emitters.notify_applied()
|
||||||
|
emitters.commit()
|
||||||
|
+
|
||||||
|
+ if (conf.commands.reboot == 'when-changed' or
|
||||||
|
+ (conf.commands.reboot == 'when-needed' and base.reboot_needed())):
|
||||||
|
+ if os.waitstatus_to_exitcode(os.system(conf.commands.reboot_command)) != 0:
|
||||||
|
+ return 1
|
||||||
|
except dnf.exceptions.Error as exc:
|
||||||
|
logger.error(_('Error: %s'), ucd(exc))
|
||||||
|
return 1
|
||||||
|
diff --git a/dnf/base.py b/dnf/base.py
|
||||||
|
index 154eb4e3..24c5a444 100644
|
||||||
|
--- a/dnf/base.py
|
||||||
|
+++ b/dnf/base.py
|
||||||
|
@@ -2790,6 +2790,20 @@ class Base(object):
|
||||||
|
|
||||||
|
return skipped_conflicts, skipped_dependency
|
||||||
|
|
||||||
|
+ def reboot_needed(self):
|
||||||
|
+ """Check whether a system reboot is recommended following the transaction
|
||||||
|
+
|
||||||
|
+ :return: bool
|
||||||
|
+ """
|
||||||
|
+ if not self.transaction:
|
||||||
|
+ return False
|
||||||
|
+
|
||||||
|
+ # List taken from DNF needs-restarting
|
||||||
|
+ need_reboot = frozenset(('kernel', 'kernel-rt', 'glibc',
|
||||||
|
+ 'linux-firmware', 'systemd', 'dbus',
|
||||||
|
+ 'dbus-broker', 'dbus-daemon'))
|
||||||
|
+ changed_pkgs = self.transaction.install_set | self.transaction.remove_set
|
||||||
|
+ return any(pkg.name in need_reboot for pkg in changed_pkgs)
|
||||||
|
|
||||||
|
def _msg_installed(pkg):
|
||||||
|
name = ucd(pkg)
|
||||||
|
diff --git a/doc/automatic.rst b/doc/automatic.rst
|
||||||
|
index b8e47ad1..ade0ca1a 100644
|
||||||
|
--- a/doc/automatic.rst
|
||||||
|
+++ b/doc/automatic.rst
|
||||||
|
@@ -90,6 +90,18 @@ Setting the mode of operation of the program.
|
||||||
|
|
||||||
|
What kind of upgrades to look at. ``default`` signals looking for all available updates, ``security`` only those with an issued security advisory.
|
||||||
|
|
||||||
|
+``reboot``
|
||||||
|
+ either one of ``never``, ``when-changed``, ``when-needed``, default: ``never``
|
||||||
|
+
|
||||||
|
+ When the system should reboot following upgrades. ``never`` does not reboot the system. ``when-changed`` triggers a reboot after any upgrade. ``when-needed`` triggers a reboot only when rebooting is necessary to apply changes, such as when systemd or the kernel is upgraded.
|
||||||
|
+
|
||||||
|
+``reboot_command``
|
||||||
|
+ string, default: ``shutdown -r``
|
||||||
|
+
|
||||||
|
+ Specify the command to run to trigger a reboot of the system. For example, add a 5-minute delay and a wall message by using ``shutdown -r +5 'Rebooting after upgrading packages'``
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+
|
||||||
|
----------------------
|
||||||
|
``[emitters]`` section
|
||||||
|
----------------------
|
||||||
|
diff --git a/etc/dnf/automatic.conf b/etc/dnf/automatic.conf
|
||||||
|
index 1f7e9402..9735447f 100644
|
||||||
|
--- a/etc/dnf/automatic.conf
|
||||||
|
+++ b/etc/dnf/automatic.conf
|
||||||
|
@@ -21,6 +21,15 @@ download_updates = yes
|
||||||
|
# install.timer override this setting.
|
||||||
|
apply_updates = no
|
||||||
|
|
||||||
|
+# When the system should reboot following upgrades:
|
||||||
|
+# never = don't reboot after upgrades
|
||||||
|
+# when-changed = reboot after any changes
|
||||||
|
+# when-needed = reboot when necessary to apply changes
|
||||||
|
+reboot = never
|
||||||
|
+
|
||||||
|
+# The command that is run to trigger a system reboot.
|
||||||
|
+reboot_command = "shutdown -r"
|
||||||
|
+
|
||||||
|
|
||||||
|
[emitters]
|
||||||
|
# Name to use for this system in messages that are emitted. Default is the
|
||||||
|
diff --git a/tests/automatic/test_main.py b/tests/automatic/test_main.py
|
||||||
|
index 27ffa407..dc4acd52 100644
|
||||||
|
--- a/tests/automatic/test_main.py
|
||||||
|
+++ b/tests/automatic/test_main.py
|
||||||
|
@@ -49,3 +49,7 @@ class TestConfig(tests.support.TestCase):
|
||||||
|
conf = dnf.automatic.main.AutomaticConfig(FILE, downloadupdates=True, installupdates=False)
|
||||||
|
self.assertTrue(conf.commands.download_updates)
|
||||||
|
self.assertFalse(conf.commands.apply_updates)
|
||||||
|
+
|
||||||
|
+ # test that reboot is "never" by default
|
||||||
|
+ conf = dnf.automatic.main.AutomaticConfig(FILE)
|
||||||
|
+ self.assertEqual(conf.commands.reboot, 'never')
|
||||||
|
--
|
||||||
|
2.40.0
|
||||||
|
|
||||||
|
|
||||||
|
From 8d7608f3462deddf36d5a75ff66f847a30b78026 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Evan Goode <mail@evangoo.de>
|
||||||
|
Date: Tue, 24 Jan 2023 09:59:22 -0500
|
||||||
|
Subject: [PATCH 2/4] Add Evan Goode to AUTHORS
|
||||||
|
|
||||||
|
---
|
||||||
|
AUTHORS | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/AUTHORS b/AUTHORS
|
||||||
|
index 50bff95b..e802a51e 100644
|
||||||
|
--- a/AUTHORS
|
||||||
|
+++ b/AUTHORS
|
||||||
|
@@ -69,6 +69,7 @@ DNF CONTRIBUTORS
|
||||||
|
Dave Johansen <davejohansen@gmail.com>
|
||||||
|
Dylan Pindur <dylanpindur@gmail.com>
|
||||||
|
Eduard Cuba <ecuba@redhat.com>
|
||||||
|
+ Evan Goode <egoode@redhat.com>
|
||||||
|
Filipe Brandenburger <filbranden@gmail.com>
|
||||||
|
Frank Dana <ferdnyc@gmail.com>
|
||||||
|
George Machitidze <giomac@gmail.com>
|
||||||
|
--
|
||||||
|
2.40.0
|
||||||
|
|
||||||
|
|
||||||
|
From 9deed331cb7a1890e1f11a57c989c300b1641a88 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Evan Goode <mail@evangoo.de>
|
||||||
|
Date: Tue, 24 Jan 2023 17:12:46 -0500
|
||||||
|
Subject: [PATCH 3/4] DNF Automatic reboot: 5-minute delay and wall by default
|
||||||
|
|
||||||
|
---
|
||||||
|
dnf/automatic/main.py | 2 +-
|
||||||
|
doc/automatic.rst | 4 ++--
|
||||||
|
etc/dnf/automatic.conf | 2 +-
|
||||||
|
3 files changed, 4 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dnf/automatic/main.py b/dnf/automatic/main.py
|
||||||
|
index b68962c2..a03c359f 100644
|
||||||
|
--- a/dnf/automatic/main.py
|
||||||
|
+++ b/dnf/automatic/main.py
|
||||||
|
@@ -182,7 +182,7 @@ class CommandsConfig(Config):
|
||||||
|
self.add_option('network_online_timeout', libdnf.conf.OptionNumberInt32(60))
|
||||||
|
self.add_option('reboot', libdnf.conf.OptionEnumString('never',
|
||||||
|
libdnf.conf.VectorString(['never', 'when-changed', 'when-needed'])))
|
||||||
|
- self.add_option('reboot_command', libdnf.conf.OptionString('shutdown -r'))
|
||||||
|
+ self.add_option('reboot_command', libdnf.conf.OptionString('shutdown -r +5 \'Rebooting after applying package updates\''))
|
||||||
|
|
||||||
|
def imply(self):
|
||||||
|
if self.apply_updates:
|
||||||
|
diff --git a/doc/automatic.rst b/doc/automatic.rst
|
||||||
|
index ade0ca1a..329c2f46 100644
|
||||||
|
--- a/doc/automatic.rst
|
||||||
|
+++ b/doc/automatic.rst
|
||||||
|
@@ -96,9 +96,9 @@ Setting the mode of operation of the program.
|
||||||
|
When the system should reboot following upgrades. ``never`` does not reboot the system. ``when-changed`` triggers a reboot after any upgrade. ``when-needed`` triggers a reboot only when rebooting is necessary to apply changes, such as when systemd or the kernel is upgraded.
|
||||||
|
|
||||||
|
``reboot_command``
|
||||||
|
- string, default: ``shutdown -r``
|
||||||
|
+ string, default: ``shutdown -r +5 'Rebooting after applying package updates'``
|
||||||
|
|
||||||
|
- Specify the command to run to trigger a reboot of the system. For example, add a 5-minute delay and a wall message by using ``shutdown -r +5 'Rebooting after upgrading packages'``
|
||||||
|
+ Specify the command to run to trigger a reboot of the system. For example, to skip the 5-minute delay and wall message, use ``shutdown -r``
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/etc/dnf/automatic.conf b/etc/dnf/automatic.conf
|
||||||
|
index 9735447f..e61b12af 100644
|
||||||
|
--- a/etc/dnf/automatic.conf
|
||||||
|
+++ b/etc/dnf/automatic.conf
|
||||||
|
@@ -28,7 +28,7 @@ apply_updates = no
|
||||||
|
reboot = never
|
||||||
|
|
||||||
|
# The command that is run to trigger a system reboot.
|
||||||
|
-reboot_command = "shutdown -r"
|
||||||
|
+reboot_command = "shutdown -r +5 'Rebooting after applying package updates'"
|
||||||
|
|
||||||
|
|
||||||
|
[emitters]
|
||||||
|
--
|
||||||
|
2.40.0
|
||||||
|
|
||||||
|
|
||||||
|
From b002f47a763e442277913a06df963b0ca91deb54 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Evan Goode <mail@evangoo.de>
|
||||||
|
Date: Wed, 25 Jan 2023 09:47:59 -0500
|
||||||
|
Subject: [PATCH 4/4] DNF Automatic: error message for failed reboot command
|
||||||
|
|
||||||
|
---
|
||||||
|
dnf/automatic/main.py | 4 +++-
|
||||||
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/dnf/automatic/main.py b/dnf/automatic/main.py
|
||||||
|
index a03c359f..11c35ecf 100644
|
||||||
|
--- a/dnf/automatic/main.py
|
||||||
|
+++ b/dnf/automatic/main.py
|
||||||
|
@@ -347,7 +347,9 @@ def main(args):
|
||||||
|
|
||||||
|
if (conf.commands.reboot == 'when-changed' or
|
||||||
|
(conf.commands.reboot == 'when-needed' and base.reboot_needed())):
|
||||||
|
- if os.waitstatus_to_exitcode(os.system(conf.commands.reboot_command)) != 0:
|
||||||
|
+ exit_code = os.waitstatus_to_exitcode(os.system(conf.commands.reboot_command))
|
||||||
|
+ if exit_code != 0:
|
||||||
|
+ logger.error('Error: reboot command returned nonzero exit code: %d', exit_code)
|
||||||
|
return 1
|
||||||
|
except dnf.exceptions.Error as exc:
|
||||||
|
logger.error(_('Error: %s'), ucd(exc))
|
||||||
|
--
|
||||||
|
2.40.0
|
||||||
|
|
@ -1,33 +0,0 @@
|
|||||||
From 98e0b5658215116761cf2f56d312a8d2871b00a7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: tigro <arkadiy.sheyn@softline.com>
|
|
||||||
Date: Tue, 29 Aug 2023 13:32:05 +0300
|
|
||||||
Subject: [PATCH] Set fastestmirror=True by default
|
|
||||||
|
|
||||||
---
|
|
||||||
etc/dnf/dnf-strict.conf | 1 +
|
|
||||||
etc/dnf/dnf.conf | 1 +
|
|
||||||
2 files changed, 2 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/etc/dnf/dnf-strict.conf b/etc/dnf/dnf-strict.conf
|
|
||||||
index 3d08d07..ebaf324 100644
|
|
||||||
--- a/etc/dnf/dnf-strict.conf
|
|
||||||
+++ b/etc/dnf/dnf-strict.conf
|
|
||||||
@@ -3,4 +3,5 @@ gpgcheck=1
|
|
||||||
installonly_limit=3
|
|
||||||
clean_requirements_on_remove=True
|
|
||||||
best=True
|
|
||||||
+fastestmirror=True
|
|
||||||
skip_if_unavailable=False
|
|
||||||
diff --git a/etc/dnf/dnf.conf b/etc/dnf/dnf.conf
|
|
||||||
index bc665d2..043005d 100644
|
|
||||||
--- a/etc/dnf/dnf.conf
|
|
||||||
+++ b/etc/dnf/dnf.conf
|
|
||||||
@@ -5,4 +5,5 @@ gpgcheck=True
|
|
||||||
installonly_limit=3
|
|
||||||
clean_requirements_on_remove=True
|
|
||||||
best=False
|
|
||||||
+fastestmirror=True
|
|
||||||
skip_if_unavailable=True
|
|
||||||
--
|
|
||||||
2.41.0
|
|
||||||
|
|
@ -0,0 +1,45 @@
|
|||||||
|
From b0caa16589763699174f47a3e36a703e1af32ed4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kyle Walker <kwalker@redhat.com>
|
||||||
|
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 24c5a44..7e97e21 100644
|
||||||
|
--- a/dnf/base.py
|
||||||
|
+++ b/dnf/base.py
|
||||||
|
@@ -1543,6 +1543,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()
|
||||||
|
|
||||||
|
@@ -1595,6 +1597,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
|
||||||
|
|
@ -0,0 +1,66 @@
|
|||||||
|
From fcc21cf217a7dfaaf79ca36b5afab6344380eae1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Marek Blaha <mblaha@redhat.com>
|
||||||
|
Date: Mon, 3 Apr 2023 12:19:40 +0200
|
||||||
|
Subject: [PATCH] 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 | 23 ++++++++++++++++-------
|
||||||
|
1 file changed, 16 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dnf/automatic/main.py b/dnf/automatic/main.py
|
||||||
|
index 11c35ec..756531e 100644
|
||||||
|
--- a/dnf/automatic/main.py
|
||||||
|
+++ b/dnf/automatic/main.py
|
||||||
|
@@ -182,7 +182,8 @@ class CommandsConfig(Config):
|
||||||
|
self.add_option('network_online_timeout', libdnf.conf.OptionNumberInt32(60))
|
||||||
|
self.add_option('reboot', libdnf.conf.OptionEnumString('never',
|
||||||
|
libdnf.conf.VectorString(['never', 'when-changed', 'when-needed'])))
|
||||||
|
- self.add_option('reboot_command', libdnf.conf.OptionString('shutdown -r +5 \'Rebooting after applying package updates\''))
|
||||||
|
+ self.add_option('reboot_command', libdnf.conf.OptionString(
|
||||||
|
+ 'shutdown -r +5 \'Rebooting after applying package updates\''))
|
||||||
|
|
||||||
|
def imply(self):
|
||||||
|
if self.apply_updates:
|
||||||
|
@@ -255,21 +256,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
|
||||||
|
|
@ -0,0 +1,39 @@
|
|||||||
|
From e62164e450c05d626e4ca2b5dc2728939686b423 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jan Kolarik <jkolarik@redhat.com>
|
||||||
|
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 756531e7..f6f4049b 100644
|
||||||
|
--- a/dnf/automatic/main.py
|
||||||
|
+++ b/dnf/automatic/main.py
|
||||||
|
@@ -351,6 +351,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()
|
||||||
|
|
||||||
|
--
|
||||||
|
2.40.1
|
||||||
|
|
@ -0,0 +1,63 @@
|
|||||||
|
From 0f979bd00d22d52f4970897207bd43a74db90bcc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Evan Goode <mail@evangoo.de>
|
||||||
|
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 3ee66bac..0e6cea01 100644
|
||||||
|
--- a/doc/command_ref.rst
|
||||||
|
+++ b/doc/command_ref.rst
|
||||||
|
@@ -710,6 +710,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
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,53 @@
|
|||||||
|
From 422794199b7b8a5f7426effc04979804cf31b6f7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Anish Bhatt <anish.bhatt@salesforce.com>
|
||||||
|
Date: Mon, 10 Jul 2023 10:09:17 -0700
|
||||||
|
Subject: [PATCH] When parsing over a KVP list, do not return till the whole
|
||||||
|
list is parsed
|
||||||
|
|
||||||
|
---
|
||||||
|
dnf/repodict.py | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dnf/repodict.py b/dnf/repodict.py
|
||||||
|
index ffa0f8ed..82c05ac0 100644
|
||||||
|
--- a/dnf/repodict.py
|
||||||
|
+++ b/dnf/repodict.py
|
||||||
|
@@ -79,8 +79,8 @@ class RepoDict(dict):
|
||||||
|
if isinstance(value, str):
|
||||||
|
substituted.append(
|
||||||
|
libdnf.conf.ConfigParser.substitute(value, conf.substitutions))
|
||||||
|
- if substituted:
|
||||||
|
- return substituted
|
||||||
|
+ if substituted:
|
||||||
|
+ return substituted
|
||||||
|
return values
|
||||||
|
|
||||||
|
repo = dnf.repo.Repo(repoid, conf)
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
||||||
|
|
||||||
|
From d750fcb27686f73e352ae4575db150aa954aeb10 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Anish Bhatt <anish.bhatt@salesforce.com>
|
||||||
|
Date: Mon, 10 Jul 2023 10:10:30 -0700
|
||||||
|
Subject: [PATCH] Add to authors
|
||||||
|
|
||||||
|
---
|
||||||
|
AUTHORS | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/AUTHORS b/AUTHORS
|
||||||
|
index e802a51e..699a92c4 100644
|
||||||
|
--- a/AUTHORS
|
||||||
|
+++ b/AUTHORS
|
||||||
|
@@ -63,6 +63,7 @@ DNF CONTRIBUTORS
|
||||||
|
Adam Williamson <awilliam@redhat.com>
|
||||||
|
Albert Uchytil <auchytil@redhat.com>
|
||||||
|
Alberto Ruiz <aruiz@redhat.com>
|
||||||
|
+ Anish Bhatt <anish.bhatt@salesforce.com>
|
||||||
|
Baurzhan Muftakhidinov <baurthefirst@gmail.com>
|
||||||
|
Christopher Meng <cickumqt@gmail.com>
|
||||||
|
Daniel Mach <dmach@redhat.com>
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
@ -0,0 +1,55 @@
|
|||||||
|
From cbc552f3f2ef72c8cb46e068aef841eee9206e30 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Marek Blaha <mblaha@redhat.com>
|
||||||
|
Date: Wed, 20 Sep 2023 09:15:03 +0200
|
||||||
|
Subject: [PATCH] base: Add obsoleters of only latest versions
|
||||||
|
|
||||||
|
Resolves situations where a package is in older version obsoleted, but
|
||||||
|
there is newer (not obsoleted) version available.
|
||||||
|
This patch covers installation of group packages and arch specific
|
||||||
|
packages. The rest is in hawkey library.
|
||||||
|
|
||||||
|
Relevant bugs:
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=2183279
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=2176263
|
||||||
|
---
|
||||||
|
dnf/base.py | 17 +++++++++++++++--
|
||||||
|
1 file changed, 15 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dnf/base.py b/dnf/base.py
|
||||||
|
index 7e97e21..50869ec 100644
|
||||||
|
--- a/dnf/base.py
|
||||||
|
+++ b/dnf/base.py
|
||||||
|
@@ -1684,7 +1684,16 @@ class Base(object):
|
||||||
|
sltr.set(provides="({} if {})".format(comps_pkg.name, comps_pkg.requires))
|
||||||
|
else:
|
||||||
|
if self.conf.obsoletes:
|
||||||
|
- query = query.union(self.sack.query().filterm(obsoletes=query))
|
||||||
|
+ # If there is no installed package in the pkgs_list, add only
|
||||||
|
+ # obsoleters of the latest versions. Otherwise behave
|
||||||
|
+ # consistently with upgrade and add all obsoleters.
|
||||||
|
+ # See https://bugzilla.redhat.com/show_bug.cgi?id=2176263
|
||||||
|
+ # for details of the problem.
|
||||||
|
+ if query.installed():
|
||||||
|
+ query = query.union(self.sack.query().filterm(obsoletes=query))
|
||||||
|
+ else:
|
||||||
|
+ query = query.union(self.sack.query().filterm(
|
||||||
|
+ obsoletes=query.filter(latest_per_arch_by_priority=True)))
|
||||||
|
sltr.set(pkg=query)
|
||||||
|
self._goal.install(select=sltr, optional=not strict)
|
||||||
|
return remove_query
|
||||||
|
@@ -1921,7 +1930,11 @@ class Base(object):
|
||||||
|
sltr = dnf.selector.Selector(self.sack)
|
||||||
|
q = self.sack.query().filterm(pkg=packages)
|
||||||
|
if self.conf.obsoletes:
|
||||||
|
- q = q.union(self.sack.query().filterm(obsoletes=q))
|
||||||
|
+ # use only obsoletes of the latest versions
|
||||||
|
+ # See https://bugzilla.redhat.com/show_bug.cgi?id=2176263
|
||||||
|
+ # for details of the problem.
|
||||||
|
+ q = q.union(self.sack.query().filterm(
|
||||||
|
+ obsoletes=q.filter(latest_per_arch_by_priority=True)))
|
||||||
|
sltr = sltr.set(pkg=q)
|
||||||
|
if reponame is not None:
|
||||||
|
sltr = sltr.set(reponame=reponame)
|
||||||
|
--
|
||||||
|
libgit2 1.6.4
|
||||||
|
|
@ -0,0 +1,79 @@
|
|||||||
|
From 0592ff47bc1b9029eb9b25d59410062038fdacd3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jaroslav Mracek <jmracek@redhat.com>
|
||||||
|
Date: Thu, 15 Feb 2024 11:28:59 +0100
|
||||||
|
Subject: [PATCH] Add all candidates for reinstall to solver
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Upstream commit: 96f8d79c37e119ff56f730797865121b63241a6b
|
||||||
|
Resolves: https://issues.redhat.com/browse/RHEL-25005
|
||||||
|
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
dnf/base.py | 9 ++++++---
|
||||||
|
dnf/query.py | 5 ++++-
|
||||||
|
tests/test_queries.py | 7 ++++++-
|
||||||
|
3 files changed, 16 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dnf/base.py b/dnf/base.py
|
||||||
|
index 50869ec4..adb5ad6f 100644
|
||||||
|
--- a/dnf/base.py
|
||||||
|
+++ b/dnf/base.py
|
||||||
|
@@ -2333,19 +2333,22 @@ class Base(object):
|
||||||
|
|
||||||
|
if not installed_pkgs:
|
||||||
|
raise dnf.exceptions.PackagesNotInstalledError(
|
||||||
|
- 'no package matched', pkg_spec, available_nevra2pkg.values())
|
||||||
|
+ 'no package matched', pkg_spec, available_q.run())
|
||||||
|
|
||||||
|
cnt = 0
|
||||||
|
clean_deps = self.conf.clean_requirements_on_remove
|
||||||
|
+ strict = self.conf.strict
|
||||||
|
for installed_pkg in installed_pkgs:
|
||||||
|
try:
|
||||||
|
- available_pkg = available_nevra2pkg[ucd(installed_pkg)]
|
||||||
|
+ available_pkgs = available_nevra2pkg[ucd(installed_pkg)]
|
||||||
|
except KeyError:
|
||||||
|
if not remove_na:
|
||||||
|
continue
|
||||||
|
self._goal.erase(installed_pkg, clean_deps=clean_deps)
|
||||||
|
else:
|
||||||
|
- self._goal.install(available_pkg)
|
||||||
|
+ sltr = dnf.selector.Selector(self.sack)
|
||||||
|
+ sltr.set(pkg=available_pkgs)
|
||||||
|
+ self._goal.install(select=sltr, optional=(not strict))
|
||||||
|
cnt += 1
|
||||||
|
|
||||||
|
if cnt == 0:
|
||||||
|
diff --git a/dnf/query.py b/dnf/query.py
|
||||||
|
index ab4139bf..02e631a6 100644
|
||||||
|
--- a/dnf/query.py
|
||||||
|
+++ b/dnf/query.py
|
||||||
|
@@ -43,4 +43,7 @@ def _by_provides(sack, patterns, ignore_case=False, get_query=False):
|
||||||
|
return q.run()
|
||||||
|
|
||||||
|
def _per_nevra_dict(pkg_list):
|
||||||
|
- return {ucd(pkg):pkg for pkg in pkg_list}
|
||||||
|
+ nevra_dic = {}
|
||||||
|
+ for pkg in pkg_list:
|
||||||
|
+ nevra_dic.setdefault(ucd(pkg), []).append(pkg)
|
||||||
|
+ return nevra_dic
|
||||||
|
diff --git a/tests/test_queries.py b/tests/test_queries.py
|
||||||
|
index cdcb7ca4..e0253008 100644
|
||||||
|
--- a/tests/test_queries.py
|
||||||
|
+++ b/tests/test_queries.py
|
||||||
|
@@ -128,4 +128,9 @@ class DictsTest(tests.support.TestCase):
|
||||||
|
dct = dnf.query._per_nevra_dict(pkgs)
|
||||||
|
self.assertCountEqual(dct.keys(),
|
||||||
|
["lotus-3-16.x86_64", "lotus-3-16.i686"])
|
||||||
|
- self.assertCountEqual(dct.values(), pkgs)
|
||||||
|
+ test_list = []
|
||||||
|
+ for list_items in dct.values():
|
||||||
|
+ for item in list_items:
|
||||||
|
+ test_list.append(item)
|
||||||
|
+
|
||||||
|
+ self.assertCountEqual(test_list, pkgs)
|
||||||
|
--
|
||||||
|
2.44.0
|
||||||
|
|
@ -0,0 +1,41 @@
|
|||||||
|
From 657197afd95f387d0c60a288b7cdcbfa914f9cd2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jaroslav Mracek <jmracek@redhat.com>
|
||||||
|
Date: Mon, 11 Mar 2024 12:36:48 +0100
|
||||||
|
Subject: [PATCH 1/4] Fix handling installonly packages reasons
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Upstream commit: a4d815e4df87f5afbae9d37c7faf6a9871d50b53
|
||||||
|
|
||||||
|
The original code took the first item from all remaining packages.
|
||||||
|
It means a random reason and use it to keep installonly package reason.
|
||||||
|
|
||||||
|
Related: https://issues.redhat.com/browse/RHEL-15902
|
||||||
|
Closes: https://github.com/rpm-software-management/dnf/issues/2061
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
dnf/base.py | 6 ++++--
|
||||||
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dnf/base.py b/dnf/base.py
|
||||||
|
index adb5ad6f..b8237183 100644
|
||||||
|
--- a/dnf/base.py
|
||||||
|
+++ b/dnf/base.py
|
||||||
|
@@ -815,9 +815,11 @@ class Base(object):
|
||||||
|
if erasures:
|
||||||
|
remaining_installed_query = self.sack.query(flags=hawkey.IGNORE_EXCLUDES).installed()
|
||||||
|
remaining_installed_query.filterm(pkg__neq=erasures)
|
||||||
|
+ remaining_installed_query.apply()
|
||||||
|
for pkg in erasures:
|
||||||
|
- if remaining_installed_query.filter(name=pkg.name):
|
||||||
|
- remaining = remaining_installed_query[0]
|
||||||
|
+ tmp_remaining_installed_query = remaining_installed_query.filter(name=pkg.name, arch=pkg.arch)
|
||||||
|
+ if tmp_remaining_installed_query:
|
||||||
|
+ remaining = tmp_remaining_installed_query[0]
|
||||||
|
ts.get_reason(remaining)
|
||||||
|
self.history.set_reason(remaining, ts.get_reason(remaining))
|
||||||
|
self._ds_callback.pkg_added(pkg, 'e')
|
||||||
|
--
|
||||||
|
2.45.0
|
||||||
|
|
@ -0,0 +1,36 @@
|
|||||||
|
From 64ca173adf414354c158e429ffec23e4560bb65f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jaroslav Mracek <jmracek@redhat.com>
|
||||||
|
Date: Fri, 8 Mar 2024 12:51:26 +0100
|
||||||
|
Subject: [PATCH 2/4] Remove confusing sentence from documentation
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Upstream commit: 824a95e1786b460102d9bf4a2cec0ce7973f882e
|
||||||
|
|
||||||
|
Installonly packages are handled by autoremove command in a similar
|
||||||
|
way like other package.
|
||||||
|
|
||||||
|
Resolves: https://issues.redhat.com/browse/RHEL-15902
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
doc/command_ref.rst | 3 ---
|
||||||
|
1 file changed, 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/doc/command_ref.rst b/doc/command_ref.rst
|
||||||
|
index 0e6cea01..b92a1f10 100644
|
||||||
|
--- a/doc/command_ref.rst
|
||||||
|
+++ b/doc/command_ref.rst
|
||||||
|
@@ -501,9 +501,6 @@ Autoremove Command
|
||||||
|
|
||||||
|
Removes all "leaf" packages from the system that were originally installed as dependencies of user-installed packages, but which are no longer required by any such package.
|
||||||
|
|
||||||
|
-Packages listed in :ref:`installonlypkgs <installonlypkgs-label>` are never automatically removed by
|
||||||
|
-this command.
|
||||||
|
-
|
||||||
|
``dnf [options] autoremove <spec>...``
|
||||||
|
|
||||||
|
This is an alias for the :ref:`\remove_command-label` command with clean_requirements_on_remove set to
|
||||||
|
--
|
||||||
|
2.45.0
|
||||||
|
|
@ -0,0 +1,36 @@
|
|||||||
|
From 2ea32ace13f6a30f86e03b690f284c0ec0992a19 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jaroslav Mracek <jmracek@redhat.com>
|
||||||
|
Date: Fri, 8 Mar 2024 12:56:57 +0100
|
||||||
|
Subject: [PATCH 3/4] Remove "leaf" word from documentation
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Upstream commit: a6d4cd745ce27c09d6cdb4302177b2bfed600549
|
||||||
|
|
||||||
|
Leaf packages term is not define in documentation and it even
|
||||||
|
represent different set of packages that are showed by leaves command.
|
||||||
|
|
||||||
|
Related: https://issues.redhat.com/browse/RHELDOCS-17711
|
||||||
|
Resolves: https://issues.redhat.com/browse/RHEL-15902
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
doc/command_ref.rst | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/doc/command_ref.rst b/doc/command_ref.rst
|
||||||
|
index b92a1f10..8991df2f 100644
|
||||||
|
--- a/doc/command_ref.rst
|
||||||
|
+++ b/doc/command_ref.rst
|
||||||
|
@@ -499,7 +499,7 @@ Autoremove Command
|
||||||
|
|
||||||
|
``dnf [options] autoremove``
|
||||||
|
|
||||||
|
- Removes all "leaf" packages from the system that were originally installed as dependencies of user-installed packages, but which are no longer required by any such package.
|
||||||
|
+ Removes all packages from the system that were originally installed as dependencies of user-installed packages, but which are no longer required by any such package.
|
||||||
|
|
||||||
|
``dnf [options] autoremove <spec>...``
|
||||||
|
|
||||||
|
--
|
||||||
|
2.45.0
|
||||||
|
|
@ -0,0 +1,37 @@
|
|||||||
|
From c09865aa3af8248c69b7aa064fe6e96f68e03de1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jaroslav Mracek <jmracek@redhat.com>
|
||||||
|
Date: Fri, 8 Mar 2024 14:06:26 +0100
|
||||||
|
Subject: [PATCH 4/4] Update documentation of history userinstalled command
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Upstream commit: 929d9133971b53eabfd65d989ded0de8f72f95ea
|
||||||
|
|
||||||
|
The described behavior differs from current behavior therefore
|
||||||
|
it might create a confusion.
|
||||||
|
|
||||||
|
Resolves: https://issues.redhat.com/browse/RHEL-15902
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
doc/command_ref.rst | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/doc/command_ref.rst b/doc/command_ref.rst
|
||||||
|
index 8991df2f..ffb84407 100644
|
||||||
|
--- a/doc/command_ref.rst
|
||||||
|
+++ b/doc/command_ref.rst
|
||||||
|
@@ -795,8 +795,8 @@ transactions and act according to this information (assuming the
|
||||||
|
the current state of RPMDB, it will not undo the transaction.
|
||||||
|
|
||||||
|
``dnf history userinstalled``
|
||||||
|
- Show all installonly packages, packages installed outside of DNF and packages not
|
||||||
|
- installed as dependency. I.e. it lists packages that will stay on the system when
|
||||||
|
+ Show all packages installed by user, installed from a group or a module profile, and packages
|
||||||
|
+ installed outside of DNF. I.e. it lists packages that will stay on the system when
|
||||||
|
:ref:`\autoremove_command-label` or :ref:`\remove_command-label` along with
|
||||||
|
`clean_requirements_on_remove` configuration option set to True is executed. Note the same
|
||||||
|
results can be accomplished with ``dnf repoquery --userinstalled``, and the repoquery
|
||||||
|
--
|
||||||
|
2.45.0
|
||||||
|
|
@ -0,0 +1,39 @@
|
|||||||
|
From 5388d980c8137c3ee6924f145bd284169d838fad Mon Sep 17 00:00:00 2001
|
||||||
|
From: Evan Goode <mail@evangoo.de>
|
||||||
|
Date: Tue, 30 Jan 2024 21:36:46 +0000
|
||||||
|
Subject: [PATCH] automatic: Use add_security_filters, not
|
||||||
|
_update_security_filters
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Upstream commit: 0b4b8cc8940a4073b33f1bb772651ae27e55f299
|
||||||
|
Resolves: https://issues.redhat.com/browse/RHEL-21874
|
||||||
|
|
||||||
|
It seems that these two approaches for selecting security updates
|
||||||
|
sometimes disagree. The regular `dnf update` command uses
|
||||||
|
base.add_security_filters to select security updates, so dnf-automatic
|
||||||
|
should do the same.
|
||||||
|
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
dnf/automatic/main.py | 3 +--
|
||||||
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dnf/automatic/main.py b/dnf/automatic/main.py
|
||||||
|
index f6f4049b..caef627f 100644
|
||||||
|
--- a/dnf/automatic/main.py
|
||||||
|
+++ b/dnf/automatic/main.py
|
||||||
|
@@ -375,8 +375,7 @@ def main(args):
|
||||||
|
|
||||||
|
def upgrade(base, upgrade_type):
|
||||||
|
if upgrade_type == 'security':
|
||||||
|
- base._update_security_filters.append(base.sack.query().upgrades().filterm(
|
||||||
|
- advisory_type='security'))
|
||||||
|
+ base.add_security_filters("gte", ("security",))
|
||||||
|
base.upgrade_all()
|
||||||
|
elif upgrade_type == 'default':
|
||||||
|
base.upgrade_all()
|
||||||
|
--
|
||||||
|
2.45.0
|
||||||
|
|
@ -0,0 +1,38 @@
|
|||||||
|
From c24e1521813dc002994f243c2b9de331b763b434 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pavla Kratochvilova <pkratoch@redhat.com>
|
||||||
|
Date: Fri, 5 Apr 2024 14:42:38 +0200
|
||||||
|
Subject: [PATCH 1/2] remove --duplicates: when no duplicates, exit with 0
|
||||||
|
(RHEL-6424)
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Upstream commit: 720338fed8124b120b56cc99cc0b13dfe48ffe95
|
||||||
|
|
||||||
|
If no duplicates are present, then the command succesfully removed all
|
||||||
|
duplicates and should exit with 0 and write the message to stdout
|
||||||
|
instead of stderr.
|
||||||
|
|
||||||
|
Resolves: https://issues.redhat.com/browse/RHEL-6424
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
dnf/cli/commands/remove.py | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/dnf/cli/commands/remove.py b/dnf/cli/commands/remove.py
|
||||||
|
index e455ba6e..af9622fd 100644
|
||||||
|
--- a/dnf/cli/commands/remove.py
|
||||||
|
+++ b/dnf/cli/commands/remove.py
|
||||||
|
@@ -92,7 +92,8 @@ class RemoveCommand(commands.Command):
|
||||||
|
instonly = self.base._get_installonly_query(q.installed())
|
||||||
|
dups = q.duplicated().difference(instonly)
|
||||||
|
if not dups:
|
||||||
|
- raise dnf.exceptions.Error(_('No duplicated packages found for removal.'))
|
||||||
|
+ logger.info(_('No duplicated packages found for removal.'))
|
||||||
|
+ return
|
||||||
|
|
||||||
|
for (name, arch), pkgs_list in dups._na_dict().items():
|
||||||
|
if len(pkgs_list) < 2:
|
||||||
|
--
|
||||||
|
2.45.0
|
||||||
|
|
@ -0,0 +1,38 @@
|
|||||||
|
From 1e78096d569eecbd3201c821cb3484328caf8789 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pavla Kratochvilova <pkratoch@redhat.com>
|
||||||
|
Date: Fri, 5 Apr 2024 14:43:04 +0200
|
||||||
|
Subject: [PATCH 2/2] remove --oldinstallonly: when no old installonly
|
||||||
|
packages, exit with 0
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Upstream commit: 87eb5a7a3561381b5ef5e70548f49288251300fc
|
||||||
|
|
||||||
|
If no old installonly packages are present, then the command succesfully
|
||||||
|
removed all of them and should exit with 0 and write the message to
|
||||||
|
stdout instead of stderr.
|
||||||
|
|
||||||
|
Resolves: https://issues.redhat.com/browse/RHEL-6424
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
dnf/cli/commands/remove.py | 3 +--
|
||||||
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dnf/cli/commands/remove.py b/dnf/cli/commands/remove.py
|
||||||
|
index af9622fd..32e78d6d 100644
|
||||||
|
--- a/dnf/cli/commands/remove.py
|
||||||
|
+++ b/dnf/cli/commands/remove.py
|
||||||
|
@@ -124,8 +124,7 @@ class RemoveCommand(commands.Command):
|
||||||
|
for pkg in instonly:
|
||||||
|
self.base.package_remove(pkg)
|
||||||
|
else:
|
||||||
|
- raise dnf.exceptions.Error(
|
||||||
|
- _('No old installonly packages found for removal.'))
|
||||||
|
+ logger.info(_('No old installonly packages found for removal.'))
|
||||||
|
return
|
||||||
|
|
||||||
|
# Remove groups.
|
||||||
|
--
|
||||||
|
2.45.0
|
||||||
|
|
@ -0,0 +1,138 @@
|
|||||||
|
From 9870192e1acdfa6bb786faf8ae7f989795e52003 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jaroslav Mracek <jmracek@redhat.com>
|
||||||
|
Date: Wed, 22 May 2024 11:09:34 +0200
|
||||||
|
Subject: [PATCH 1/2] Limit queries to nevra forms when provided by command
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Upstream commit: b3b9b3a48ca5efd9935f3f12bb65530a51ade09c
|
||||||
|
|
||||||
|
Command `dnf install-n <provide>` does not install only according
|
||||||
|
to package mame but still search in provides. The patch limits
|
||||||
|
searrch only to NEVRA forms for install, remove, autoremove,
|
||||||
|
and repoquery commands.
|
||||||
|
|
||||||
|
Resolves partially: https://issues.redhat.com/browse/RHEL-5747
|
||||||
|
Resolves: https://issues.redhat.com/browse/RHEL-38470
|
||||||
|
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
dnf/base.py | 14 ++++++++++++--
|
||||||
|
dnf/cli/commands/repoquery.py | 5 +++--
|
||||||
|
doc/api_base.rst | 6 +++++-
|
||||||
|
doc/command_ref.rst | 7 +++++--
|
||||||
|
4 files changed, 25 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dnf/base.py b/dnf/base.py
|
||||||
|
index b8237183..13222407 100644
|
||||||
|
--- a/dnf/base.py
|
||||||
|
+++ b/dnf/base.py
|
||||||
|
@@ -2061,9 +2061,14 @@ class Base(object):
|
||||||
|
def install(self, pkg_spec, reponame=None, strict=True, forms=None):
|
||||||
|
# :api
|
||||||
|
"""Mark package(s) given by pkg_spec and reponame for installation."""
|
||||||
|
+ kwargs = {'forms': forms, 'with_src': False}
|
||||||
|
+ if forms:
|
||||||
|
+ kwargs['with_nevra'] = True
|
||||||
|
+ kwargs['with_provides'] = False
|
||||||
|
+ kwargs['with_filenames'] = False
|
||||||
|
|
||||||
|
subj = dnf.subject.Subject(pkg_spec)
|
||||||
|
- solution = subj.get_best_solution(self.sack, forms=forms, with_src=False)
|
||||||
|
+ solution = subj.get_best_solution(self.sack, **kwargs)
|
||||||
|
|
||||||
|
if self.conf.multilib_policy == "all" or subj._is_arch_specified(solution):
|
||||||
|
q = solution['query']
|
||||||
|
@@ -2303,8 +2308,13 @@ class Base(object):
|
||||||
|
def remove(self, pkg_spec, reponame=None, forms=None):
|
||||||
|
# :api
|
||||||
|
"""Mark the specified package for removal."""
|
||||||
|
+ kwargs = {'forms': forms}
|
||||||
|
+ if forms:
|
||||||
|
+ kwargs['with_nevra'] = True
|
||||||
|
+ kwargs['with_provides'] = False
|
||||||
|
+ kwargs['with_filenames'] = False
|
||||||
|
|
||||||
|
- matches = dnf.subject.Subject(pkg_spec).get_best_query(self.sack, forms=forms)
|
||||||
|
+ matches = dnf.subject.Subject(pkg_spec).get_best_query(self.sack, **kwargs)
|
||||||
|
installed = [
|
||||||
|
pkg for pkg in matches.installed()
|
||||||
|
if reponame is None or
|
||||||
|
diff --git a/dnf/cli/commands/repoquery.py b/dnf/cli/commands/repoquery.py
|
||||||
|
index dcd7996f..e8ca38c5 100644
|
||||||
|
--- a/dnf/cli/commands/repoquery.py
|
||||||
|
+++ b/dnf/cli/commands/repoquery.py
|
||||||
|
@@ -447,9 +447,10 @@ class RepoQueryCommand(commands.Command):
|
||||||
|
if self.opts.key:
|
||||||
|
remote_packages = self._add_add_remote_packages()
|
||||||
|
|
||||||
|
- kwark = {}
|
||||||
|
+ kwark = {'with_provides': False}
|
||||||
|
if self.opts.command in self.nevra_forms:
|
||||||
|
kwark["forms"] = [self.nevra_forms[self.opts.command]]
|
||||||
|
+ kwark['with_filenames'] = False
|
||||||
|
pkgs = []
|
||||||
|
query_results = q.filter(empty=True)
|
||||||
|
|
||||||
|
@@ -460,7 +461,7 @@ class RepoQueryCommand(commands.Command):
|
||||||
|
for key in self.opts.key:
|
||||||
|
query_results = query_results.union(
|
||||||
|
dnf.subject.Subject(key, ignore_case=True).get_best_query(
|
||||||
|
- self.base.sack, with_provides=False, query=q, **kwark))
|
||||||
|
+ self.base.sack, query=q, **kwark))
|
||||||
|
q = query_results
|
||||||
|
|
||||||
|
if self.opts.recent:
|
||||||
|
diff --git a/doc/api_base.rst b/doc/api_base.rst
|
||||||
|
index 389b28ec..95d2d570 100644
|
||||||
|
--- a/doc/api_base.rst
|
||||||
|
+++ b/doc/api_base.rst
|
||||||
|
@@ -280,7 +280,11 @@
|
||||||
|
.. method:: install(pkg_spec, reponame=None, strict=True, forms=None)
|
||||||
|
|
||||||
|
Mark packages matching `pkg_spec` for installation.
|
||||||
|
- `reponame` can be a name of a repository or a list of repository names. If given, the selection of available packages is limited to packages from these repositories. If strict is set to False, the installation ignores packages with dependency solving problems. Parameter `forms` has the same meaning as in :meth:`dnf.subject.Subject.get_best_query`.
|
||||||
|
+ `reponame` can be a name of a repository or a list of repository names. If given, the selection of available
|
||||||
|
+ packages is limited to packages from these repositories. If strict is set to False, the installation ignores
|
||||||
|
+ packages with dependency solving problems. Parameter `forms` is list of pattern forms from `hawkey`_.
|
||||||
|
+ Leaving the parameter to ``None`` results in using a reasonable default list of forms. When forms is specified,
|
||||||
|
+ method will not match `pkg_spec` with provides and file provides.
|
||||||
|
|
||||||
|
.. method:: package_downgrade(pkg, strict=False)
|
||||||
|
|
||||||
|
diff --git a/doc/command_ref.rst b/doc/command_ref.rst
|
||||||
|
index ffb84407..e97c0d60 100644
|
||||||
|
--- a/doc/command_ref.rst
|
||||||
|
+++ b/doc/command_ref.rst
|
||||||
|
@@ -857,7 +857,8 @@ Install Command
|
||||||
|
are considered correct, the resulting package is picked simply by lexicographical order.
|
||||||
|
|
||||||
|
There are also a few specific install commands ``install-n``, ``install-na`` and
|
||||||
|
- ``install-nevra`` that allow the specification of an exact argument in the NEVRA format.
|
||||||
|
+ ``install-nevra`` that allow the specification of an exact argument in the NEVRA format. As a consequence, <spec>
|
||||||
|
+ will be not matched with provides and file provides.
|
||||||
|
|
||||||
|
See also :ref:`\configuration_files_replacement_policy-label`.
|
||||||
|
|
||||||
|
@@ -1190,7 +1191,8 @@ Remove Command
|
||||||
|
Removes old installonly packages, keeping only latest versions and version of running kernel.
|
||||||
|
|
||||||
|
There are also a few specific remove commands ``remove-n``, ``remove-na`` and ``remove-nevra``
|
||||||
|
- that allow the specification of an exact argument in the NEVRA format.
|
||||||
|
+ that allow the specification of an exact argument in the NEVRA format. As a consequence, <spec>
|
||||||
|
+ will be not matched with provides and file provides.
|
||||||
|
|
||||||
|
Remove Examples
|
||||||
|
---------------
|
||||||
|
@@ -1254,6 +1256,7 @@ Repoquery Command
|
||||||
|
|
||||||
|
There are also a few specific repoquery commands ``repoquery-n``, ``repoquery-na`` and ``repoquery-nevra``
|
||||||
|
that allow the specification of an exact argument in the NEVRA format (does not affect arguments of options like --whatprovides <arg>, ...).
|
||||||
|
+ As a consequence, <spec> will be not matched with file provides.
|
||||||
|
|
||||||
|
Select Options
|
||||||
|
--------------
|
||||||
|
--
|
||||||
|
2.45.1
|
||||||
|
|
@ -0,0 +1,35 @@
|
|||||||
|
From b406aa778031abe550b84bdbdd6826ac3cf0866f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jaroslav Mracek <jmracek@redhat.com>
|
||||||
|
Date: Thu, 23 May 2024 11:25:29 +0200
|
||||||
|
Subject: [PATCH 2/2] [doc] Remove provide of spec definition for repoquery
|
||||||
|
command
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Upstream commit: f211e1a41a3d3180481e930836ee1a52a7a32487
|
||||||
|
|
||||||
|
Repoquery command never matched spec with provides.
|
||||||
|
|
||||||
|
Resolves: https://issues.redhat.com/browse/RHEL-38470
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
doc/command_ref.rst | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/doc/command_ref.rst b/doc/command_ref.rst
|
||||||
|
index e97c0d60..c419e7ed 100644
|
||||||
|
--- a/doc/command_ref.rst
|
||||||
|
+++ b/doc/command_ref.rst
|
||||||
|
@@ -1265,7 +1265,7 @@ Together with ``<package-file-spec>``, control what packages are displayed in th
|
||||||
|
packages to those matching the specification. All packages are considered if no ``<package-file-spec>`` is specified.
|
||||||
|
|
||||||
|
``<package-file-spec>``
|
||||||
|
- Package specification in the NEVRA format (name[-[epoch:]version[-release]][.arch]), a package provide or a file provide. See :ref:`Specifying Packages
|
||||||
|
+ Package specification in the NEVRA format (name[-[epoch:]version[-release]][.arch]) or a file provide. See :ref:`Specifying Packages
|
||||||
|
<specifying_packages-label>`.
|
||||||
|
|
||||||
|
``-a``, ``--all``
|
||||||
|
--
|
||||||
|
2.45.1
|
||||||
|
|
@ -0,0 +1,40 @@
|
|||||||
|
From 103d442551bfa11a2dae72fd31941ba1d5435bb6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jan Kolarik <jkolarik@redhat.com>
|
||||||
|
Date: Tue, 30 Apr 2024 06:50:14 +0000
|
||||||
|
Subject: [PATCH] man: Improve upgrade-minimal command docs (RHEL-6417)
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Upstream commit: 4a2b425d3f0b7ea95f9584834e86a15ad3c447ab
|
||||||
|
|
||||||
|
Making the man pages for the `upgrade-minimal` command clearer about how packages with advisories are upgraded.
|
||||||
|
|
||||||
|
Resolves: https://issues.redhat.com/browse/RHEL-6417
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
doc/command_ref.rst | 6 +++---
|
||||||
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/doc/command_ref.rst b/doc/command_ref.rst
|
||||||
|
index c419e7ed..42dd6e8a 100644
|
||||||
|
--- a/doc/command_ref.rst
|
||||||
|
+++ b/doc/command_ref.rst
|
||||||
|
@@ -1761,11 +1761,11 @@ Upgrade-Minimal Command
|
||||||
|
| Deprecated aliases: ``update-minimal``
|
||||||
|
|
||||||
|
``dnf [options] upgrade-minimal``
|
||||||
|
- Updates each package to the latest available version that provides a bugfix, enhancement
|
||||||
|
- or a fix for a security issue (security).
|
||||||
|
+ Updates each package to the nearest available version that provides
|
||||||
|
+ a bugfix, enhancement or a fix for a security issue (security).
|
||||||
|
|
||||||
|
``dnf [options] upgrade-minimal <package-spec>...``
|
||||||
|
- Updates each specified package to the latest available version that provides
|
||||||
|
+ Updates each specified package to the nearest available version that provides
|
||||||
|
a bugfix, enhancement or a fix for security issue (security). Updates
|
||||||
|
dependencies as necessary.
|
||||||
|
|
||||||
|
--
|
||||||
|
2.45.2
|
||||||
|
|
@ -0,0 +1,38 @@
|
|||||||
|
From 9ceb9b3591899aaa9bb4932bc20be2fa650cbddc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pavla Kratochvilova <pkratoch@redhat.com>
|
||||||
|
Date: Mon, 18 Mar 2024 11:58:08 +0100
|
||||||
|
Subject: [PATCH] doc: Makecache with timer tries only one mirror
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Upstream commit: a6d82221ae32045f0f788708a52d2f2bf5c5740b
|
||||||
|
Related: https://bugzilla.redhat.com/show_bug.cgi?id=922667
|
||||||
|
Related: https://issues.redhat.com/browse/RHEL-1342
|
||||||
|
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
doc/command_ref.rst | 5 +++--
|
||||||
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/doc/command_ref.rst b/doc/command_ref.rst
|
||||||
|
index 42dd6e8a..36817c00 100644
|
||||||
|
--- a/doc/command_ref.rst
|
||||||
|
+++ b/doc/command_ref.rst
|
||||||
|
@@ -973,10 +973,11 @@ Makecache Command
|
||||||
|
|
||||||
|
``dnf [options] makecache --timer``
|
||||||
|
Like plain ``makecache``, but instructs DNF to be more resource-aware,
|
||||||
|
- meaning it will not do anything if running on battery power and will terminate
|
||||||
|
+ meaning it will not do anything if running on battery power, it will terminate
|
||||||
|
immediately if it's too soon after the last successful ``makecache`` run
|
||||||
|
(see :manpage:`dnf.conf(5)`, :ref:`metadata_timer_sync
|
||||||
|
- <metadata_timer_sync-label>`).
|
||||||
|
+ <metadata_timer_sync-label>`), and if the first mirror in a repository mirrorlist fails,
|
||||||
|
+ it will not try to synchronize the metadata from more mirrors for that repository.
|
||||||
|
|
||||||
|
.. _mark_command-label:
|
||||||
|
|
||||||
|
--
|
||||||
|
2.45.2
|
||||||
|
|
@ -1,32 +0,0 @@
|
|||||||
diff -aruN dnf-4.12.0/dnf/const.py.in dnf-4.12.0_inferit/dnf/const.py.in
|
|
||||||
--- dnf-4.12.0/dnf/const.py.in 2023-03-06 22:24:09.997342302 +0300
|
|
||||||
+++ dnf-4.12.0_inferit/dnf/const.py.in 2023-03-10 16:25:23.296678018 +0300
|
|
||||||
@@ -54,4 +54,4 @@
|
|
||||||
USER_AGENT = "dnf/%s" % VERSION
|
|
||||||
|
|
||||||
BUGTRACKER_COMPONENT=NAME.lower()
|
|
||||||
-BUGTRACKER='https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=%s' % BUGTRACKER_COMPONENT
|
|
||||||
+BUGTRACKER='https://bugs.msvsphere-os.ru/'
|
|
||||||
diff -aruN dnf-4.12.0/doc/conf.py.in dnf-4.12.0_inferit/doc/conf.py.in
|
|
||||||
--- dnf-4.12.0/doc/conf.py.in 2023-03-06 22:24:09.997342302 +0300
|
|
||||||
+++ dnf-4.12.0_inferit/doc/conf.py.in 2023-03-10 16:25:59.344542624 +0300
|
|
||||||
@@ -267,5 +267,5 @@
|
|
||||||
.. _DNF: https://github.com/rpm-software-management/dnf/
|
|
||||||
.. _hawkey: http://rpm-software-management.github.io/hawkey/
|
|
||||||
.. _YUM: http://yum.baseurl.org/
|
|
||||||
-.. _bugzilla: https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=dnf
|
|
||||||
+.. _bugzilla: https://bugs.msvsphere-os.ru/
|
|
||||||
"""
|
|
||||||
diff -aruN dnf-4.12.0/tests/test_config.py dnf-4.12.0_inferit/tests/test_config.py
|
|
||||||
--- dnf-4.12.0/tests/test_config.py 2023-03-06 22:24:09.998342298 +0300
|
|
||||||
+++ dnf-4.12.0_inferit/tests/test_config.py 2023-03-10 16:26:54.330336107 +0300
|
|
||||||
@@ -55,8 +55,7 @@
|
|
||||||
def test_bugtracker(self):
|
|
||||||
conf = Conf()
|
|
||||||
self.assertEqual(conf.bugtracker_url,
|
|
||||||
- "https://bugzilla.redhat.com/enter_bug.cgi" +
|
|
||||||
- "?product=Fedora&component=dnf")
|
|
||||||
+ "https://bugs.msvsphere-os.ru/")
|
|
||||||
|
|
||||||
def test_conf_from_file(self):
|
|
||||||
conf = Conf()
|
|
Loading…
Reference in new issue