Compare commits
No commits in common. "c8" and "changed/a9/dnf-4.12.0-4.el9.alma" have entirely different histories.
c8
...
changed/a9
1
.dnf.metadata
Normal file
1
.dnf.metadata
Normal file
@ -0,0 +1 @@
|
|||||||
|
71cc8d130f8f7327f57e9b96a271a0f9a18e7e0e SOURCES/dnf-4.12.0.tar.gz
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
|||||||
SOURCES/dnf-4.7.0.tar.gz
|
SOURCES/dnf-4.12.0.tar.gz
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
From 88a6289a4f72b11253c01a5a5d834b74d5abb6c3 Mon Sep 17 00:00:00 2001
|
From 5ce5ed1ea08ad6e198c1c1642c4d9ea2db6eab86 Mon Sep 17 00:00:00 2001
|
||||||
From: Laszlo Ersek <lersek@redhat.com>
|
From: Laszlo Ersek <lersek@redhat.com>
|
||||||
Date: Sun, 24 Apr 2022 09:08:28 +0200
|
Date: Sun, 24 Apr 2022 09:08:28 +0200
|
||||||
Subject: [PATCH] Base.reset: plug (temporary) leak of libsolv's page file
|
Subject: [PATCH] Base.reset: plug (temporary) leak of libsolv's page file
|
||||||
@ -249,13 +249,12 @@ from a different origin. In other words, if you don't have commit
|
|||||||
will mask this DNF fix.
|
will mask this DNF fix.
|
||||||
|
|
||||||
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
|
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
|
||||||
(cherry picked from commit 5ce5ed1ea08ad6e198c1c1642c4d9ea2db6eab86)
|
|
||||||
---
|
---
|
||||||
dnf/base.py | 41 +++++++++++++++++++++++++++++++++++++++++
|
dnf/base.py | 41 +++++++++++++++++++++++++++++++++++++++++
|
||||||
1 file changed, 41 insertions(+)
|
1 file changed, 41 insertions(+)
|
||||||
|
|
||||||
diff --git a/dnf/base.py b/dnf/base.py
|
diff --git a/dnf/base.py b/dnf/base.py
|
||||||
index babca31d..852fcdd8 100644
|
index caace028..520574b4 100644
|
||||||
--- a/dnf/base.py
|
--- a/dnf/base.py
|
||||||
+++ b/dnf/base.py
|
+++ b/dnf/base.py
|
||||||
@@ -72,6 +72,7 @@ import dnf.transaction
|
@@ -72,6 +72,7 @@ import dnf.transaction
|
||||||
@ -266,7 +265,7 @@ index babca31d..852fcdd8 100644
|
|||||||
import hawkey
|
import hawkey
|
||||||
import itertools
|
import itertools
|
||||||
import logging
|
import logging
|
||||||
@@ -568,6 +569,46 @@ class Base(object):
|
@@ -569,6 +570,46 @@ class Base(object):
|
||||||
self._comps_trans = dnf.comps.TransactionBunch()
|
self._comps_trans = dnf.comps.TransactionBunch()
|
||||||
self._transaction = None
|
self._transaction = None
|
||||||
self._update_security_filters = []
|
self._update_security_filters = []
|
@ -1,26 +0,0 @@
|
|||||||
From 423c987b6b14ec0a6277181ac7c038b50033296d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Pavla Kratochvilova <pkratoch@redhat.com>
|
|
||||||
Date: Wed, 19 May 2021 12:58:30 +0200
|
|
||||||
Subject: [PATCH] Set top-level directory for unittest
|
|
||||||
|
|
||||||
In some build environments, the top-level directory is not added to
|
|
||||||
the sys.path and the tests fail. This fixes the issue.
|
|
||||||
---
|
|
||||||
tests/CMakeLists.txt | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
|
|
||||||
index b15cc62b..dedc46fd 100644
|
|
||||||
--- a/tests/CMakeLists.txt
|
|
||||||
+++ b/tests/CMakeLists.txt
|
|
||||||
@@ -1,6 +1,6 @@
|
|
||||||
ADD_TEST(
|
|
||||||
NAME test
|
|
||||||
- COMMAND ${PYTHON_EXECUTABLE} -m unittest discover -s tests
|
|
||||||
+ COMMAND ${PYTHON_EXECUTABLE} -m unittest discover -s tests -t ${PROJECT_SOURCE_DIR}
|
|
||||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
|
|
||||||
|
|
||||||
# For libdnf built with sanitizers, has no effect otherwise.
|
|
||||||
--
|
|
||||||
2.35.1
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
From 25bc75cbe63289864c09ab25144ee4af232bd8f4 Mon Sep 17 00:00:00 2001
|
From f32eff294aecaac0fd71cd8888a25fa7929460b9 Mon Sep 17 00:00:00 2001
|
||||||
From: =?UTF-8?q?Ale=C5=A1=20Mat=C4=9Bj?= <amatej@redhat.com>
|
From: =?UTF-8?q?Ale=C5=A1=20Mat=C4=9Bj?= <amatej@redhat.com>
|
||||||
Date: Mon, 4 Jul 2022 09:43:25 +0200
|
Date: Mon, 4 Jul 2022 09:43:25 +0200
|
||||||
Subject: [PATCH] Add only relevant pkgs to upgrade transaction (RhBug:2097757)
|
Subject: [PATCH] Add only relevant pkgs to upgrade transaction (RhBug:2097757)
|
||||||
@ -30,10 +30,10 @@ This can also be seen in CI test case: rpm-software-management/ci-dnf-stack#1130
|
|||||||
1 file changed, 18 insertions(+), 1 deletion(-)
|
1 file changed, 18 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/dnf/base.py b/dnf/base.py
|
diff --git a/dnf/base.py b/dnf/base.py
|
||||||
index 852fcdd8..82466831 100644
|
index caace028..92fb3bd0 100644
|
||||||
--- a/dnf/base.py
|
--- a/dnf/base.py
|
||||||
+++ b/dnf/base.py
|
+++ b/dnf/base.py
|
||||||
@@ -2135,7 +2135,24 @@ class Base(object):
|
@@ -2118,7 +2118,24 @@ class Base(object):
|
||||||
query.filterm(reponame=reponame)
|
query.filterm(reponame=reponame)
|
||||||
query = self._merge_update_filters(query, pkg_spec=pkg_spec, upgrade=True)
|
query = self._merge_update_filters(query, pkg_spec=pkg_spec, upgrade=True)
|
||||||
if query:
|
if query:
|
@ -1,36 +0,0 @@
|
|||||||
From 8522c4651678097157fd9f133a451c892021d30b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Alexander Kanavin <alex.kanavin@gmail.com>
|
|
||||||
Date: Tue, 4 May 2021 22:03:30 +0200
|
|
||||||
Subject: [PATCH] dnf/rpm/miscutils.py: fix usage of _()
|
|
||||||
|
|
||||||
Specifically:
|
|
||||||
- an import of _ was missing
|
|
||||||
- _ was reused for a different purpose
|
|
||||||
---
|
|
||||||
dnf/rpm/miscutils.py | 3 ++-
|
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/dnf/rpm/miscutils.py b/dnf/rpm/miscutils.py
|
|
||||||
index 235aaf28..7e33d4c4 100644
|
|
||||||
--- a/dnf/rpm/miscutils.py
|
|
||||||
+++ b/dnf/rpm/miscutils.py
|
|
||||||
@@ -22,6 +22,7 @@ import subprocess
|
|
||||||
import logging
|
|
||||||
|
|
||||||
from dnf.i18n import ucd
|
|
||||||
+from dnf.i18n import _
|
|
||||||
from shutil import which
|
|
||||||
|
|
||||||
|
|
||||||
@@ -46,7 +47,7 @@ def _verifyPkgUsingRpmkeys(package, installroot):
|
|
||||||
env={'LC_ALL': 'C'},
|
|
||||||
stdout=subprocess.PIPE,
|
|
||||||
cwd='/') as p:
|
|
||||||
- data, _ = p.communicate()
|
|
||||||
+ data, err = p.communicate()
|
|
||||||
if p.returncode != 0 or data != (package.encode('ascii', 'strict') + b': digests signatures OK\n'):
|
|
||||||
return 0
|
|
||||||
else:
|
|
||||||
--
|
|
||||||
2.35.1
|
|
||||||
|
|
@ -1,56 +0,0 @@
|
|||||||
From f109c57ab18d8b1a80e707df3c3f7ad8930bdd42 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Demi Marie Obenour <demi@invisiblethingslab.com>
|
|
||||||
Date: Tue, 27 Apr 2021 21:07:19 -0400
|
|
||||||
Subject: [PATCH] Pass the package to rpmkeys stdin
|
|
||||||
|
|
||||||
This avoids having to compute the expected stdout value, which will
|
|
||||||
always be the constant "-: digests signatures OK\n".
|
|
||||||
---
|
|
||||||
dnf/rpm/miscutils.py | 10 ++++++----
|
|
||||||
1 file changed, 6 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dnf/rpm/miscutils.py b/dnf/rpm/miscutils.py
|
|
||||||
index 7e33d4c4..5f2621c2 100644
|
|
||||||
--- a/dnf/rpm/miscutils.py
|
|
||||||
+++ b/dnf/rpm/miscutils.py
|
|
||||||
@@ -29,7 +29,8 @@ from shutil import which
|
|
||||||
logger = logging.getLogger('dnf')
|
|
||||||
|
|
||||||
|
|
||||||
-def _verifyPkgUsingRpmkeys(package, installroot):
|
|
||||||
+def _verifyPkgUsingRpmkeys(package, installroot, fdno):
|
|
||||||
+ os.lseek(fdno, 0, os.SEEK_SET)
|
|
||||||
rpmkeys_binary = '/usr/bin/rpmkeys'
|
|
||||||
if not os.path.isfile(rpmkeys_binary):
|
|
||||||
rpmkeys_binary = which("rpmkeys")
|
|
||||||
@@ -40,15 +41,16 @@ def _verifyPkgUsingRpmkeys(package, installroot):
|
|
||||||
logger.critical(_('Cannot find rpmkeys executable to verify signatures.'))
|
|
||||||
return 0
|
|
||||||
|
|
||||||
- args = ('rpmkeys', '--checksig', '--root', installroot, '--define', '_pkgverify_level all', '--', package)
|
|
||||||
+ args = ('rpmkeys', '--checksig', '--root', installroot, '--define', '_pkgverify_level all', '-')
|
|
||||||
with subprocess.Popen(
|
|
||||||
args=args,
|
|
||||||
executable=rpmkeys_binary,
|
|
||||||
env={'LC_ALL': 'C'},
|
|
||||||
+ stdin=fdno,
|
|
||||||
stdout=subprocess.PIPE,
|
|
||||||
cwd='/') as p:
|
|
||||||
data, err = p.communicate()
|
|
||||||
- if p.returncode != 0 or data != (package.encode('ascii', 'strict') + b': digests signatures OK\n'):
|
|
||||||
+ if p.returncode != 0 or data != b'-: digests signatures OK\n':
|
|
||||||
return 0
|
|
||||||
else:
|
|
||||||
return 1
|
|
||||||
@@ -85,7 +87,7 @@ def checkSig(ts, package):
|
|
||||||
|
|
||||||
if siginfo == '(none)':
|
|
||||||
value = 4
|
|
||||||
- elif "Key ID" in siginfo and _verifyPkgUsingRpmkeys(package, ts.ts.rootDir):
|
|
||||||
+ elif "Key ID" in siginfo and _verifyPkgUsingRpmkeys(package, ts.ts.rootDir, fdno):
|
|
||||||
value = 0
|
|
||||||
else:
|
|
||||||
raise ValueError('Unexpected return value %r from hdr.sprintf when checking signature.' % siginfo)
|
|
||||||
--
|
|
||||||
2.35.1
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
From fea1f456d3d5f3015ebcff4008959916bdaaf6d6 Mon Sep 17 00:00:00 2001
|
From 776241568cb10e3a671c574b25e06b63d86e7ac0 Mon Sep 17 00:00:00 2001
|
||||||
From: =?UTF-8?q?Ale=C5=A1=20Mat=C4=9Bj?= <amatej@redhat.com>
|
From: =?UTF-8?q?Ale=C5=A1=20Mat=C4=9Bj?= <amatej@redhat.com>
|
||||||
Date: Mon, 4 Jul 2022 09:46:29 +0200
|
Date: Mon, 4 Jul 2022 09:46:29 +0200
|
||||||
Subject: [PATCH] Use `installed_all` because `installed_query` is filtered
|
Subject: [PATCH] Use `installed_all` because `installed_query` is filtered
|
||||||
@ -20,10 +20,10 @@ Therefore, we need to use `installed_all`.
|
|||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/dnf/base.py b/dnf/base.py
|
diff --git a/dnf/base.py b/dnf/base.py
|
||||||
index 82466831..e606d9fa 100644
|
index 92fb3bd0..1b0f07ed 100644
|
||||||
--- a/dnf/base.py
|
--- a/dnf/base.py
|
||||||
+++ b/dnf/base.py
|
+++ b/dnf/base.py
|
||||||
@@ -2152,7 +2152,7 @@ class Base(object):
|
@@ -2135,7 +2135,7 @@ class Base(object):
|
||||||
# packages. Otherwise if for example kernel-1 and kernel-3 were installed and present in the
|
# packages. Otherwise if for example kernel-1 and kernel-3 were installed and present in the
|
||||||
# transaction libsolv could decide to install kernel-2 because it is an upgrade for kernel-1 even
|
# transaction libsolv could decide to install kernel-2 because it is an upgrade for kernel-1 even
|
||||||
# though we don't want it because there already is a newer version present.
|
# though we don't want it because there already is a newer version present.
|
6965
SOURCES/0004-Update-translations-RHEL-9.1.patch
Normal file
6965
SOURCES/0004-Update-translations-RHEL-9.1.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,174 +0,0 @@
|
|||||||
From 9798e9ee85f1ba39c816fa08fd3d6168cc8b29e8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Demi Marie Obenour <demi@invisiblethingslab.com>
|
|
||||||
Date: Fri, 9 Apr 2021 13:03:03 -0400
|
|
||||||
Subject: [PATCH] Use rpmkeys alone to verify signature
|
|
||||||
|
|
||||||
This avoids having to actually parse the package to check its signature,
|
|
||||||
which reduces attack surface. If the output of rpmkeys cannot be
|
|
||||||
parsed, we assume the package is corrupt (the most likely cause).
|
|
||||||
---
|
|
||||||
dnf/rpm/miscutils.py | 126 ++++++++++++++++++++++---------------------
|
|
||||||
1 file changed, 66 insertions(+), 60 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dnf/rpm/miscutils.py b/dnf/rpm/miscutils.py
|
|
||||||
index 5f2621c2..9d5b2860 100644
|
|
||||||
--- a/dnf/rpm/miscutils.py
|
|
||||||
+++ b/dnf/rpm/miscutils.py
|
|
||||||
@@ -13,47 +13,84 @@
|
|
||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
# Copyright 2003 Duke University
|
|
||||||
|
|
||||||
-from __future__ import print_function, absolute_import
|
|
||||||
-from __future__ import unicode_literals
|
|
||||||
+from __future__ import print_function, absolute_import, unicode_literals
|
|
||||||
|
|
||||||
-import rpm
|
|
||||||
import os
|
|
||||||
import subprocess
|
|
||||||
import logging
|
|
||||||
-
|
|
||||||
-from dnf.i18n import ucd
|
|
||||||
-from dnf.i18n import _
|
|
||||||
from shutil import which
|
|
||||||
|
|
||||||
+from dnf.i18n import _
|
|
||||||
|
|
||||||
-logger = logging.getLogger('dnf')
|
|
||||||
+_logger = logging.getLogger('dnf')
|
|
||||||
+_rpmkeys_binary = None
|
|
||||||
|
|
||||||
+def _find_rpmkeys_binary():
|
|
||||||
+ global _rpmkeys_binary
|
|
||||||
+ if _rpmkeys_binary is None:
|
|
||||||
+ _rpmkeys_binary = which("rpmkeys")
|
|
||||||
+ _logger.debug(_('Using rpmkeys executable at %s to verify signatures'),
|
|
||||||
+ _rpmkeys_binary)
|
|
||||||
+ return _rpmkeys_binary
|
|
||||||
|
|
||||||
-def _verifyPkgUsingRpmkeys(package, installroot, fdno):
|
|
||||||
- os.lseek(fdno, 0, os.SEEK_SET)
|
|
||||||
- rpmkeys_binary = '/usr/bin/rpmkeys'
|
|
||||||
- if not os.path.isfile(rpmkeys_binary):
|
|
||||||
- rpmkeys_binary = which("rpmkeys")
|
|
||||||
- logger.info(_('Using rpmkeys executable from {path} to verify signature for package: {package}.').format(
|
|
||||||
- path=rpmkeys_binary, package=package))
|
|
||||||
+def _process_rpm_output(data):
|
|
||||||
+ # No signatures or digests = corrupt package.
|
|
||||||
+ # There is at least one line for -: and another (empty) entry after the
|
|
||||||
+ # last newline.
|
|
||||||
+ if len(data) < 3 or data[0] != b'-:' or data[-1]:
|
|
||||||
+ return 2
|
|
||||||
+ seen_sig, missing_key, not_trusted, not_signed = False, False, False, False
|
|
||||||
+ for i in data[1:-1]:
|
|
||||||
+ if b': BAD' in i:
|
|
||||||
+ return 2
|
|
||||||
+ elif i.endswith(b': NOKEY'):
|
|
||||||
+ missing_key = True
|
|
||||||
+ elif i.endswith(b': NOTTRUSTED'):
|
|
||||||
+ not_trusted = True
|
|
||||||
+ elif i.endswith(b': NOTFOUND'):
|
|
||||||
+ not_signed = True
|
|
||||||
+ elif not i.endswith(b': OK'):
|
|
||||||
+ return 2
|
|
||||||
+ if not_trusted:
|
|
||||||
+ return 3
|
|
||||||
+ elif missing_key:
|
|
||||||
+ return 1
|
|
||||||
+ elif not_signed:
|
|
||||||
+ return 4
|
|
||||||
+ # we still check return code, so this is safe
|
|
||||||
+ return 0
|
|
||||||
|
|
||||||
- if not os.path.isfile(rpmkeys_binary):
|
|
||||||
- logger.critical(_('Cannot find rpmkeys executable to verify signatures.'))
|
|
||||||
- return 0
|
|
||||||
+def _verifyPackageUsingRpmkeys(package, installroot):
|
|
||||||
+ rpmkeys_binary = _find_rpmkeys_binary()
|
|
||||||
+ if rpmkeys_binary is None or not os.path.isfile(rpmkeys_binary):
|
|
||||||
+ _logger.critical(_('Cannot find rpmkeys executable to verify signatures.'))
|
|
||||||
+ return 2
|
|
||||||
|
|
||||||
- args = ('rpmkeys', '--checksig', '--root', installroot, '--define', '_pkgverify_level all', '-')
|
|
||||||
+ # "--define=_pkgverify_level all" enforces signature checking;
|
|
||||||
+ # "--define=_pkgverify_flags 0x0" ensures that all signatures and digests
|
|
||||||
+ # are checked.
|
|
||||||
+ args = ('rpmkeys', '--checksig', '--root', installroot, '--verbose',
|
|
||||||
+ '--define=_pkgverify_level all', '--define=_pkgverify_flags 0x0',
|
|
||||||
+ '-')
|
|
||||||
with subprocess.Popen(
|
|
||||||
args=args,
|
|
||||||
executable=rpmkeys_binary,
|
|
||||||
env={'LC_ALL': 'C'},
|
|
||||||
- stdin=fdno,
|
|
||||||
stdout=subprocess.PIPE,
|
|
||||||
- cwd='/') as p:
|
|
||||||
- data, err = p.communicate()
|
|
||||||
- if p.returncode != 0 or data != b'-: digests signatures OK\n':
|
|
||||||
- return 0
|
|
||||||
- else:
|
|
||||||
- return 1
|
|
||||||
+ cwd='/',
|
|
||||||
+ stdin=package) as p:
|
|
||||||
+ data = p.communicate()[0]
|
|
||||||
+ returncode = p.returncode
|
|
||||||
+ if type(returncode) is not int:
|
|
||||||
+ raise AssertionError('Popen set return code to non-int')
|
|
||||||
+ # rpmkeys can return something other than 0 or 1 in the case of a
|
|
||||||
+ # fatal error (OOM, abort() called, SIGSEGV, etc)
|
|
||||||
+ if returncode >= 2 or returncode < 0:
|
|
||||||
+ return 2
|
|
||||||
+ ret = _process_rpm_output(data.split(b'\n'))
|
|
||||||
+ if ret:
|
|
||||||
+ return ret
|
|
||||||
+ return 2 if returncode else 0
|
|
||||||
|
|
||||||
def checkSig(ts, package):
|
|
||||||
"""Takes a transaction set and a package, check it's sigs,
|
|
||||||
@@ -63,40 +100,9 @@ def checkSig(ts, package):
|
|
||||||
return 3 if the key is not trusted
|
|
||||||
return 4 if the pkg is not gpg or pgp signed"""
|
|
||||||
|
|
||||||
- value = 4
|
|
||||||
- currentflags = ts.setVSFlags(0)
|
|
||||||
- fdno = os.open(package, os.O_RDONLY)
|
|
||||||
+ fdno = os.open(package, os.O_RDONLY|os.O_NOCTTY|os.O_CLOEXEC)
|
|
||||||
try:
|
|
||||||
- hdr = ts.hdrFromFdno(fdno)
|
|
||||||
- except rpm.error as e:
|
|
||||||
- if str(e) == "public key not available":
|
|
||||||
- value = 1
|
|
||||||
- elif str(e) == "public key not trusted":
|
|
||||||
- value = 3
|
|
||||||
- elif str(e) == "error reading package header":
|
|
||||||
- value = 2
|
|
||||||
- else:
|
|
||||||
- raise ValueError('Unexpected error value %r from ts.hdrFromFdno when checking signature.' % str(e))
|
|
||||||
- else:
|
|
||||||
- # checks signature from an hdr
|
|
||||||
- string = '%|DSAHEADER?{%{DSAHEADER:pgpsig}}:{%|RSAHEADER?{%{RSAHEADER:pgpsig}}:' \
|
|
||||||
- '{%|SIGGPG?{%{SIGGPG:pgpsig}}:{%|SIGPGP?{%{SIGPGP:pgpsig}}:{(none)}|}|}|}|'
|
|
||||||
- try:
|
|
||||||
- siginfo = hdr.sprintf(string)
|
|
||||||
- siginfo = ucd(siginfo)
|
|
||||||
-
|
|
||||||
- if siginfo == '(none)':
|
|
||||||
- value = 4
|
|
||||||
- elif "Key ID" in siginfo and _verifyPkgUsingRpmkeys(package, ts.ts.rootDir, fdno):
|
|
||||||
- value = 0
|
|
||||||
- else:
|
|
||||||
- raise ValueError('Unexpected return value %r from hdr.sprintf when checking signature.' % siginfo)
|
|
||||||
- except UnicodeDecodeError:
|
|
||||||
- pass
|
|
||||||
-
|
|
||||||
- del hdr
|
|
||||||
-
|
|
||||||
- os.close(fdno)
|
|
||||||
-
|
|
||||||
- ts.setVSFlags(currentflags) # put things back like they were before
|
|
||||||
+ value = _verifyPackageUsingRpmkeys(fdno, ts.ts.rootDir)
|
|
||||||
+ finally:
|
|
||||||
+ os.close(fdno)
|
|
||||||
return value
|
|
||||||
--
|
|
||||||
2.35.1
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
|||||||
From 185330e5d5f5e07f40ed08c706fd997abffd5e78 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Ale=C5=A1=20Mat=C4=9Bj?= <amatej@redhat.com>
|
|
||||||
Date: Thu, 3 Jun 2021 11:23:31 +0200
|
|
||||||
Subject: [PATCH] Lower _pkgverify_level to signature for signature checking
|
|
||||||
with rpmkeys
|
|
||||||
|
|
||||||
We don't want to be veryfing digests as well when checking signatures.
|
|
||||||
It would break legacy package installation in FIPS mode due to MD5
|
|
||||||
digest being unverifiable (see https://access.redhat.com/solutions/5221661)
|
|
||||||
|
|
||||||
Follow up for https://github.com/rpm-software-management/dnf/pull/1753
|
|
||||||
---
|
|
||||||
dnf/rpm/miscutils.py | 7 +++----
|
|
||||||
1 file changed, 3 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dnf/rpm/miscutils.py b/dnf/rpm/miscutils.py
|
|
||||||
index 9d5b2860..46ef4754 100644
|
|
||||||
--- a/dnf/rpm/miscutils.py
|
|
||||||
+++ b/dnf/rpm/miscutils.py
|
|
||||||
@@ -66,11 +66,10 @@ def _verifyPackageUsingRpmkeys(package, installroot):
|
|
||||||
_logger.critical(_('Cannot find rpmkeys executable to verify signatures.'))
|
|
||||||
return 2
|
|
||||||
|
|
||||||
- # "--define=_pkgverify_level all" enforces signature checking;
|
|
||||||
- # "--define=_pkgverify_flags 0x0" ensures that all signatures and digests
|
|
||||||
- # are checked.
|
|
||||||
+ # "--define=_pkgverify_level signature" enforces signature checking;
|
|
||||||
+ # "--define=_pkgverify_flags 0x0" ensures that all signatures are checked.
|
|
||||||
args = ('rpmkeys', '--checksig', '--root', installroot, '--verbose',
|
|
||||||
- '--define=_pkgverify_level all', '--define=_pkgverify_flags 0x0',
|
|
||||||
+ '--define=_pkgverify_level signature', '--define=_pkgverify_flags 0x0',
|
|
||||||
'-')
|
|
||||||
with subprocess.Popen(
|
|
||||||
args=args,
|
|
||||||
--
|
|
||||||
2.35.1
|
|
||||||
|
|
@ -1,101 +0,0 @@
|
|||||||
From 6766d3af1993d48f5548746e68268e674e52bd1d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Gary Leydon <gary.leydon@yale.edu>
|
|
||||||
Date: Fri, 21 May 2021 14:13:59 -0400
|
|
||||||
Subject: [PATCH] add default colors to documentation
|
|
||||||
|
|
||||||
---
|
|
||||||
doc/conf_ref.rst | 24 ++++++++++++------------
|
|
||||||
1 file changed, 12 insertions(+), 12 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/doc/conf_ref.rst b/doc/conf_ref.rst
|
|
||||||
index ec5bac2a..fcaa0319 100644
|
|
||||||
--- a/doc/conf_ref.rst
|
|
||||||
+++ b/doc/conf_ref.rst
|
|
||||||
@@ -498,72 +498,72 @@ configuration file by your distribution to override the DNF defaults.
|
|
||||||
:ref:`color <color-label>`
|
|
||||||
|
|
||||||
Color of available packages that are older than installed packages.
|
|
||||||
- The option is used during list operations.
|
|
||||||
+ The option is used during list operations. Default is dim,cyan.
|
|
||||||
|
|
||||||
``color_list_available_install``
|
|
||||||
:ref:`color <color-label>`
|
|
||||||
|
|
||||||
Color of packages that are available for installation and none of their versions in installed.
|
|
||||||
- The option is used during list operations.
|
|
||||||
+ The option is used during list operations. Default is normal.
|
|
||||||
|
|
||||||
``color_list_available_reinstall``
|
|
||||||
:ref:`color <color-label>`
|
|
||||||
|
|
||||||
- Color of available packages that are identical to installed versions and are available for reinstalls.
|
|
||||||
+ Color of available packages that are identical to installed versions and are available for reinstalls. Default is bold,underline,green.
|
|
||||||
The option is used during list operations.
|
|
||||||
|
|
||||||
``color_list_available_upgrade``
|
|
||||||
:ref:`color <color-label>`
|
|
||||||
|
|
||||||
- Color of available packages that are newer than installed packages.
|
|
||||||
+ Color of available packages that are newer than installed packages. Default is bold,blue.
|
|
||||||
The option is used during list operations.
|
|
||||||
|
|
||||||
``color_list_installed_extra``
|
|
||||||
:ref:`color <color-label>`
|
|
||||||
|
|
||||||
Color of installed packages that do not have any version among available packages.
|
|
||||||
- The option is used during list operations.
|
|
||||||
+ The option is used during list operations. Default is bold,red.
|
|
||||||
|
|
||||||
``color_list_installed_newer``
|
|
||||||
:ref:`color <color-label>`
|
|
||||||
|
|
||||||
Color of installed packages that are newer than any version among available packages.
|
|
||||||
- The option is used during list operations.
|
|
||||||
+ The option is used during list operations. Default is bold,yellow.
|
|
||||||
|
|
||||||
``color_list_installed_older``
|
|
||||||
:ref:`color <color-label>`
|
|
||||||
|
|
||||||
Color of installed packages that are older than any version among available packages.
|
|
||||||
- The option is used during list operations.
|
|
||||||
+ The option is used during list operations. Default is bold.
|
|
||||||
|
|
||||||
``color_list_installed_reinstall``
|
|
||||||
:ref:`color <color-label>`
|
|
||||||
|
|
||||||
Color of installed packages that are among available packages and can be reinstalled.
|
|
||||||
- The option is used during list operations.
|
|
||||||
+ The option is used during list operations. Default is normal.
|
|
||||||
|
|
||||||
``color_search_match``
|
|
||||||
:ref:`color <color-label>`
|
|
||||||
|
|
||||||
- Color of patterns matched in search output.
|
|
||||||
+ Color of patterns matched in search output. Default is bold.
|
|
||||||
|
|
||||||
``color_update_installed``
|
|
||||||
:ref:`color <color-label>`
|
|
||||||
|
|
||||||
- Color of removed packages.
|
|
||||||
+ Color of removed packages. Default is normal.
|
|
||||||
This option is used during displaying transactions.
|
|
||||||
|
|
||||||
``color_update_local``
|
|
||||||
:ref:`color <color-label>`
|
|
||||||
|
|
||||||
Color of local packages that are installed from the @commandline repository.
|
|
||||||
- This option is used during displaying transactions.
|
|
||||||
+ This option is used during displaying transactions. Default is bold.
|
|
||||||
|
|
||||||
``color_update_remote``
|
|
||||||
:ref:`color <color-label>`
|
|
||||||
|
|
||||||
Color of packages that are installed/upgraded/downgraded from remote repositories.
|
|
||||||
- This option is used during displaying transactions.
|
|
||||||
+ This option is used during displaying transactions. Default is normal.
|
|
||||||
|
|
||||||
|
|
||||||
==============
|
|
||||||
--
|
|
||||||
2.35.1
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
|||||||
From 276e3b1d19bfad2a72f75ecbcce478e4f1e575db Mon Sep 17 00:00:00 2001
|
|
||||||
From: Gary Leydon <gary.leydon@yale.edu>
|
|
||||||
Date: Fri, 21 May 2021 14:16:21 -0400
|
|
||||||
Subject: [PATCH] add author
|
|
||||||
|
|
||||||
---
|
|
||||||
AUTHORS | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/AUTHORS b/AUTHORS
|
|
||||||
index 1981dc4e..f8c9eb83 100644
|
|
||||||
--- a/AUTHORS
|
|
||||||
+++ b/AUTHORS
|
|
||||||
@@ -95,3 +95,4 @@ DNF CONTRIBUTORS
|
|
||||||
Vladan Kudlac <vladankudlac@gmail.com>
|
|
||||||
Will Woods <wwoods@redhat.com>
|
|
||||||
Furkan Karcıoğlu <krc440002@gmail.com>
|
|
||||||
+ Gary Leydon <gary.leydon@yale.edu>
|
|
||||||
--
|
|
||||||
2.35.1
|
|
||||||
|
|
@ -1,75 +0,0 @@
|
|||||||
From 5cfe87de2ecd645c2aa8b210bd98171e8dd72fe5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Gary Leydon <gary.leydon@yale.edu>
|
|
||||||
Date: Thu, 27 May 2021 11:52:42 -0400
|
|
||||||
Subject: [PATCH] update colors according to libdnf/libdnf/conf/ConfigMain.cpp
|
|
||||||
|
|
||||||
---
|
|
||||||
doc/conf_ref.rst | 16 ++++++++--------
|
|
||||||
1 file changed, 8 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/doc/conf_ref.rst b/doc/conf_ref.rst
|
|
||||||
index fcaa0319..016bd00c 100644
|
|
||||||
--- a/doc/conf_ref.rst
|
|
||||||
+++ b/doc/conf_ref.rst
|
|
||||||
@@ -498,13 +498,13 @@ configuration file by your distribution to override the DNF defaults.
|
|
||||||
:ref:`color <color-label>`
|
|
||||||
|
|
||||||
Color of available packages that are older than installed packages.
|
|
||||||
- The option is used during list operations. Default is dim,cyan.
|
|
||||||
+ The option is used during list operations. Default is magenta.
|
|
||||||
|
|
||||||
``color_list_available_install``
|
|
||||||
:ref:`color <color-label>`
|
|
||||||
|
|
||||||
Color of packages that are available for installation and none of their versions in installed.
|
|
||||||
- The option is used during list operations. Default is normal.
|
|
||||||
+ The option is used during list operations. Default is bold,cyan.
|
|
||||||
|
|
||||||
``color_list_available_reinstall``
|
|
||||||
:ref:`color <color-label>`
|
|
||||||
@@ -534,36 +534,36 @@ configuration file by your distribution to override the DNF defaults.
|
|
||||||
:ref:`color <color-label>`
|
|
||||||
|
|
||||||
Color of installed packages that are older than any version among available packages.
|
|
||||||
- The option is used during list operations. Default is bold.
|
|
||||||
+ The option is used during list operations. Default is yellow.
|
|
||||||
|
|
||||||
``color_list_installed_reinstall``
|
|
||||||
:ref:`color <color-label>`
|
|
||||||
|
|
||||||
Color of installed packages that are among available packages and can be reinstalled.
|
|
||||||
- The option is used during list operations. Default is normal.
|
|
||||||
+ The option is used during list operations. Default is cyan.
|
|
||||||
|
|
||||||
``color_search_match``
|
|
||||||
:ref:`color <color-label>`
|
|
||||||
|
|
||||||
- Color of patterns matched in search output. Default is bold.
|
|
||||||
+ Color of patterns matched in search output. Default is bold,magenta.
|
|
||||||
|
|
||||||
``color_update_installed``
|
|
||||||
:ref:`color <color-label>`
|
|
||||||
|
|
||||||
- Color of removed packages. Default is normal.
|
|
||||||
+ Color of removed packages. Default is red.
|
|
||||||
This option is used during displaying transactions.
|
|
||||||
|
|
||||||
``color_update_local``
|
|
||||||
:ref:`color <color-label>`
|
|
||||||
|
|
||||||
Color of local packages that are installed from the @commandline repository.
|
|
||||||
- This option is used during displaying transactions. Default is bold.
|
|
||||||
+ This option is used during displaying transactions. Default is green.
|
|
||||||
|
|
||||||
``color_update_remote``
|
|
||||||
:ref:`color <color-label>`
|
|
||||||
|
|
||||||
Color of packages that are installed/upgraded/downgraded from remote repositories.
|
|
||||||
- This option is used during displaying transactions. Default is normal.
|
|
||||||
+ This option is used during displaying transactions. Default is bold,green.
|
|
||||||
|
|
||||||
|
|
||||||
==============
|
|
||||||
--
|
|
||||||
2.35.1
|
|
||||||
|
|
@ -1,81 +0,0 @@
|
|||||||
From f5cb86b83aedaa18fd784d06d8f1479b9127c6f5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Marek Blaha <mblaha@redhat.com>
|
|
||||||
Date: Wed, 6 Oct 2021 09:43:37 +0200
|
|
||||||
Subject: [PATCH] Fix reporting irrecoverable errors on packages download
|
|
||||||
|
|
||||||
The original _irrecoverable property returns random dictionary - either
|
|
||||||
packages irrecoverable errors, or global fatal error or even new empty
|
|
||||||
dictionary. This makes it prone to programmer errors like:
|
|
||||||
|
|
||||||
errs._irrecoverable[pkg] = [err]
|
|
||||||
|
|
||||||
which may lead to setting the error into the newly created empty
|
|
||||||
dictionary instead of packages errors dictionary as intended.
|
|
||||||
|
|
||||||
I turned the property to method which I consider more clear.
|
|
||||||
---
|
|
||||||
dnf/base.py | 8 ++++----
|
|
||||||
dnf/repo.py | 9 ++++-----
|
|
||||||
2 files changed, 8 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dnf/base.py b/dnf/base.py
|
|
||||||
index 0949ddf8..b0a378c2 100644
|
|
||||||
--- a/dnf/base.py
|
|
||||||
+++ b/dnf/base.py
|
|
||||||
@@ -1165,8 +1165,8 @@ class Base(object):
|
|
||||||
progress.start(len(payloads), est_remote_size)
|
|
||||||
errors = dnf.repo._download_payloads(payloads, drpm)
|
|
||||||
|
|
||||||
- if errors._irrecoverable:
|
|
||||||
- raise dnf.exceptions.DownloadError(errors._irrecoverable)
|
|
||||||
+ if errors._irrecoverable():
|
|
||||||
+ raise dnf.exceptions.DownloadError(errors._irrecoverable())
|
|
||||||
|
|
||||||
remote_size = sum(errors._bandwidth_used(pload)
|
|
||||||
for pload in payloads)
|
|
||||||
@@ -1191,8 +1191,8 @@ class Base(object):
|
|
||||||
progress.start(len(payloads), est_remote_size)
|
|
||||||
errors = dnf.repo._download_payloads(payloads, drpm)
|
|
||||||
|
|
||||||
- if errors._irrecoverable:
|
|
||||||
- raise dnf.exceptions.DownloadError(errors._irrecoverable)
|
|
||||||
+ if errors._irrecoverable():
|
|
||||||
+ raise dnf.exceptions.DownloadError(errors._irrecoverable())
|
|
||||||
|
|
||||||
remote_size += \
|
|
||||||
sum(errors._bandwidth_used(pload) for pload in payloads)
|
|
||||||
diff --git a/dnf/repo.py b/dnf/repo.py
|
|
||||||
index b5c9849e..b454e981 100644
|
|
||||||
--- a/dnf/repo.py
|
|
||||||
+++ b/dnf/repo.py
|
|
||||||
@@ -112,7 +112,7 @@ def _download_payloads(payloads, drpm):
|
|
||||||
errs._skipped.add(pkg)
|
|
||||||
continue
|
|
||||||
pkg.repo._repo.expire()
|
|
||||||
- errs._irrecoverable[pkg] = [err]
|
|
||||||
+ errs._pkg_irrecoverable[pkg] = [err]
|
|
||||||
|
|
||||||
return errs
|
|
||||||
|
|
||||||
@@ -131,15 +131,14 @@ def _update_saving(saving, payloads, errs):
|
|
||||||
|
|
||||||
class _DownloadErrors(object):
|
|
||||||
def __init__(self):
|
|
||||||
- self._val_irrecoverable = {}
|
|
||||||
+ self._pkg_irrecoverable = {}
|
|
||||||
self._val_recoverable = {}
|
|
||||||
self._fatal = None
|
|
||||||
self._skipped = set()
|
|
||||||
|
|
||||||
- @property
|
|
||||||
def _irrecoverable(self):
|
|
||||||
- if self._val_irrecoverable:
|
|
||||||
- return self._val_irrecoverable
|
|
||||||
+ if self._pkg_irrecoverable:
|
|
||||||
+ return self._pkg_irrecoverable
|
|
||||||
if self._fatal:
|
|
||||||
return {'': [self._fatal]}
|
|
||||||
return {}
|
|
||||||
--
|
|
||||||
2.35.1
|
|
||||||
|
|
@ -1,68 +0,0 @@
|
|||||||
From ca3d7f06c8f4c1c901dc853ac33c06976b46c61e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Marek Blaha <mblaha@redhat.com>
|
|
||||||
Date: Wed, 6 Oct 2021 09:56:05 +0200
|
|
||||||
Subject: [PATCH] Add fail_fast parameter to download_payloads methods
|
|
||||||
|
|
||||||
Unlike in the rpm transaction, reposync needs to switch the fail_fast
|
|
||||||
off to download as much packages from repository as possible.
|
|
||||||
---
|
|
||||||
dnf/base.py | 6 +++---
|
|
||||||
dnf/repo.py | 4 ++--
|
|
||||||
2 files changed, 5 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dnf/base.py b/dnf/base.py
|
|
||||||
index b0a378c2..c258a5a7 100644
|
|
||||||
--- a/dnf/base.py
|
|
||||||
+++ b/dnf/base.py
|
|
||||||
@@ -1151,7 +1151,7 @@ class Base(object):
|
|
||||||
timer()
|
|
||||||
self._trans_success = True
|
|
||||||
|
|
||||||
- def _download_remote_payloads(self, payloads, drpm, progress, callback_total):
|
|
||||||
+ def _download_remote_payloads(self, payloads, drpm, progress, callback_total, fail_fast=True):
|
|
||||||
lock = dnf.lock.build_download_lock(self.conf.cachedir, self.conf.exit_on_lock)
|
|
||||||
with lock:
|
|
||||||
beg_download = time.time()
|
|
||||||
@@ -1163,7 +1163,7 @@ class Base(object):
|
|
||||||
progress.start(len(payloads), est_remote_size, total_drpms=total_drpm)
|
|
||||||
else:
|
|
||||||
progress.start(len(payloads), est_remote_size)
|
|
||||||
- errors = dnf.repo._download_payloads(payloads, drpm)
|
|
||||||
+ errors = dnf.repo._download_payloads(payloads, drpm, fail_fast)
|
|
||||||
|
|
||||||
if errors._irrecoverable():
|
|
||||||
raise dnf.exceptions.DownloadError(errors._irrecoverable())
|
|
||||||
@@ -1189,7 +1189,7 @@ class Base(object):
|
|
||||||
est_remote_size = sum(pload.download_size
|
|
||||||
for pload in payloads)
|
|
||||||
progress.start(len(payloads), est_remote_size)
|
|
||||||
- errors = dnf.repo._download_payloads(payloads, drpm)
|
|
||||||
+ errors = dnf.repo._download_payloads(payloads, drpm, fail_fast)
|
|
||||||
|
|
||||||
if errors._irrecoverable():
|
|
||||||
raise dnf.exceptions.DownloadError(errors._irrecoverable())
|
|
||||||
diff --git a/dnf/repo.py b/dnf/repo.py
|
|
||||||
index b454e981..bb422309 100644
|
|
||||||
--- a/dnf/repo.py
|
|
||||||
+++ b/dnf/repo.py
|
|
||||||
@@ -84,7 +84,7 @@ def _pkg2payload(pkg, progress, *factories):
|
|
||||||
raise ValueError(_('no matching payload factory for %s') % pkg)
|
|
||||||
|
|
||||||
|
|
||||||
-def _download_payloads(payloads, drpm):
|
|
||||||
+def _download_payloads(payloads, drpm, fail_fast=True):
|
|
||||||
# download packages
|
|
||||||
def _download_sort_key(payload):
|
|
||||||
return not hasattr(payload, 'delta')
|
|
||||||
@@ -94,7 +94,7 @@ def _download_payloads(payloads, drpm):
|
|
||||||
for pload in sorted(payloads, key=_download_sort_key)]
|
|
||||||
errs = _DownloadErrors()
|
|
||||||
try:
|
|
||||||
- libdnf.repo.PackageTarget.downloadPackages(libdnf.repo.VectorPPackageTarget(targets), True)
|
|
||||||
+ libdnf.repo.PackageTarget.downloadPackages(libdnf.repo.VectorPPackageTarget(targets), fail_fast)
|
|
||||||
except RuntimeError as e:
|
|
||||||
errs._fatal = str(e)
|
|
||||||
drpm.wait()
|
|
||||||
--
|
|
||||||
2.35.1
|
|
||||||
|
|
@ -1,139 +0,0 @@
|
|||||||
From f0f037db8219b1e74be4ed86f5eea53b63ca1d88 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hr=C3=A1zk=C3=BD?= <lhrazky@redhat.com>
|
|
||||||
Date: Tue, 20 Jul 2021 15:29:59 +0200
|
|
||||||
Subject: [PATCH] comps: Make the install_or_skip() method not catch CompsError
|
|
||||||
anymore
|
|
||||||
|
|
||||||
According to its docstring, the original intention of the method was to
|
|
||||||
not fail on installing an already installed group/environment.
|
|
||||||
|
|
||||||
However, the CompsError is no longer thrown when attempting to install
|
|
||||||
an already installed group or environment. It was changed to logging a
|
|
||||||
warning directly in 5210b9dc and then the check was removed completely
|
|
||||||
in 217ca0fa.
|
|
||||||
|
|
||||||
For the other case for which an instance of CompsError can be thrown
|
|
||||||
from the install_group() and install_environment() methods, which is
|
|
||||||
when a group or environment is not found, we certainly want to throw an
|
|
||||||
error (see the linked bugs), therefore there's no reason to catch the
|
|
||||||
exception anymore.
|
|
||||||
|
|
||||||
The install_or_skip() method is preserved as part of the API so as not
|
|
||||||
to break compatibility any more than necessary.
|
|
||||||
|
|
||||||
msg: API: Raise CompsError when group/env not found in install_group and install_environment
|
|
||||||
type: bugfix
|
|
||||||
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1947958
|
|
||||||
related: https://bugzilla.redhat.com/show_bug.cgi?id=1943206
|
|
||||||
---
|
|
||||||
dnf/base.py | 8 ++------
|
|
||||||
dnf/cli/commands/group.py | 4 ++--
|
|
||||||
dnf/comps.py | 20 ++++++++++----------
|
|
||||||
doc/api_base.rst | 4 ++--
|
|
||||||
4 files changed, 16 insertions(+), 20 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dnf/base.py b/dnf/base.py
|
|
||||||
index c258a5a7..babca31d 100644
|
|
||||||
--- a/dnf/base.py
|
|
||||||
+++ b/dnf/base.py
|
|
||||||
@@ -1668,9 +1668,7 @@ class Base(object):
|
|
||||||
if not isinstance(types, int):
|
|
||||||
types = libdnf.transaction.listToCompsPackageType(types)
|
|
||||||
|
|
||||||
- trans = dnf.comps.install_or_skip(solver._environment_install,
|
|
||||||
- env_id, types, exclude or set(),
|
|
||||||
- strict, exclude_groups)
|
|
||||||
+ trans = solver._environment_install(env_id, types, exclude or set(), strict, exclude_groups)
|
|
||||||
if not trans:
|
|
||||||
return 0
|
|
||||||
return self._add_comps_trans(trans)
|
|
||||||
@@ -1713,9 +1711,7 @@ class Base(object):
|
|
||||||
if not isinstance(pkg_types, int):
|
|
||||||
pkg_types = libdnf.transaction.listToCompsPackageType(pkg_types)
|
|
||||||
|
|
||||||
- trans = dnf.comps.install_or_skip(solver._group_install,
|
|
||||||
- grp_id, pkg_types, exclude_pkgnames,
|
|
||||||
- strict)
|
|
||||||
+ trans = solver._group_install(grp_id, pkg_types, exclude_pkgnames, strict)
|
|
||||||
if not trans:
|
|
||||||
return 0
|
|
||||||
if strict:
|
|
||||||
diff --git a/dnf/cli/commands/group.py b/dnf/cli/commands/group.py
|
|
||||||
index cf542799..fd723c48 100644
|
|
||||||
--- a/dnf/cli/commands/group.py
|
|
||||||
+++ b/dnf/cli/commands/group.py
|
|
||||||
@@ -244,9 +244,9 @@ class GroupCommand(commands.Command):
|
|
||||||
types = tuple(self.base.conf.group_package_types)
|
|
||||||
pkg_types = libdnf.transaction.listToCompsPackageType(types)
|
|
||||||
for env_id in res.environments:
|
|
||||||
- dnf.comps.install_or_skip(solver._environment_install, env_id, pkg_types)
|
|
||||||
+ solver._environment_install(env_id, pkg_types)
|
|
||||||
for group_id in res.groups:
|
|
||||||
- dnf.comps.install_or_skip(solver._group_install, group_id, pkg_types)
|
|
||||||
+ solver._group_install(group_id, pkg_types)
|
|
||||||
|
|
||||||
def _mark_remove(self, patterns):
|
|
||||||
q = CompsQuery(self.base.comps, self.base.history,
|
|
||||||
diff --git a/dnf/comps.py b/dnf/comps.py
|
|
||||||
index 89765337..461eb274 100644
|
|
||||||
--- a/dnf/comps.py
|
|
||||||
+++ b/dnf/comps.py
|
|
||||||
@@ -93,15 +93,15 @@ def _fn_display_order(group):
|
|
||||||
|
|
||||||
def install_or_skip(install_fnc, grp_or_env_id, types, exclude=None,
|
|
||||||
strict=True, exclude_groups=None):
|
|
||||||
- """Either mark in persistor as installed given `grp_or_env` (group
|
|
||||||
- or environment) or skip it (if it's already installed).
|
|
||||||
- `install_fnc` has to be Solver._group_install
|
|
||||||
- or Solver._environment_install.
|
|
||||||
- """
|
|
||||||
- try:
|
|
||||||
- return install_fnc(grp_or_env_id, types, exclude, strict, exclude_groups)
|
|
||||||
- except dnf.comps.CompsError as e:
|
|
||||||
- logger.warning("%s, %s", ucd(e)[:-1], _("skipping."))
|
|
||||||
+ """
|
|
||||||
+ Installs a group or an environment identified by grp_or_env_id.
|
|
||||||
+ This method is preserved for API compatibility. It used to catch an
|
|
||||||
+ exception thrown when a gorup or env was already installed, which is no
|
|
||||||
+ longer thrown.
|
|
||||||
+ `install_fnc` has to be Solver._group_install or
|
|
||||||
+ Solver._environment_install.
|
|
||||||
+ """
|
|
||||||
+ return install_fnc(grp_or_env_id, types, exclude, strict, exclude_groups)
|
|
||||||
|
|
||||||
|
|
||||||
class _Langs(object):
|
|
||||||
@@ -592,7 +592,7 @@ class Solver(object):
|
|
||||||
assert dnf.util.is_string_type(group_id)
|
|
||||||
return self.history.env.is_removable_group(group_id)
|
|
||||||
|
|
||||||
- def _environment_install(self, env_id, pkg_types, exclude, strict=True, exclude_groups=None):
|
|
||||||
+ def _environment_install(self, env_id, pkg_types, exclude=None, strict=True, exclude_groups=None):
|
|
||||||
assert dnf.util.is_string_type(env_id)
|
|
||||||
comps_env = self.comps._environment_by_id(env_id)
|
|
||||||
if not comps_env:
|
|
||||||
diff --git a/doc/api_base.rst b/doc/api_base.rst
|
|
||||||
index 20d7945e..03396b69 100644
|
|
||||||
--- a/doc/api_base.rst
|
|
||||||
+++ b/doc/api_base.rst
|
|
||||||
@@ -179,7 +179,7 @@
|
|
||||||
|
|
||||||
.. method:: group_install(group_id, pkg_types, exclude=None, strict=True)
|
|
||||||
|
|
||||||
- Mark group with corresponding `group_id` installed and mark the packages in the group for installation. Return the number of packages that the operation has marked for installation. `pkg_types` is a sequence of strings determining the kinds of packages to be installed, where the respective groups can be selected by including ``"mandatory"``, ``"default"`` or ``"optional"`` in it. If `exclude` is given, it has to be an iterable of package name glob patterns: :meth:`.group_install` will then not mark the respective packages for installation whenever possible. Parameter `strict` is a boolean indicating whether group packages that exist but are non-installable due to e.g. dependency issues should be skipped (False) or cause transaction to fail to resolve (True).
|
|
||||||
+ Mark group with corresponding `group_id` installed and mark the packages in the group for installation. Return the number of packages that the operation has marked for installation. `pkg_types` is a sequence of strings determining the kinds of packages to be installed, where the respective groups can be selected by including ``"mandatory"``, ``"default"`` or ``"optional"`` in it. If `exclude` is given, it has to be an iterable of package name glob patterns: :meth:`.group_install` will then not mark the respective packages for installation whenever possible. Parameter `strict` is a boolean indicating whether group packages that exist but are non-installable due to e.g. dependency issues should be skipped (False) or cause transaction to fail to resolve (True). Raises :exc:`dnf.exceptions.CompsError` in case the group doesn't exist.
|
|
||||||
|
|
||||||
.. method:: group_remove(group_id)
|
|
||||||
|
|
||||||
@@ -191,7 +191,7 @@
|
|
||||||
|
|
||||||
.. method:: environment_install(env_id, types, exclude=None, strict=True, exclude_groups=None)
|
|
||||||
|
|
||||||
- Similar to :meth:`.group_install` but operates on environmental groups. `exclude_groups` is an iterable of group IDs that will not be marked as installed.
|
|
||||||
+ Similar to :meth:`.group_install` but operates on environmental groups. `exclude_groups` is an iterable of group IDs that will not be marked as installed. Raises :exc:`dnf.exceptions.CompsError` in case the group doesn't exist.
|
|
||||||
|
|
||||||
.. method:: environment_remove(env_id)
|
|
||||||
|
|
||||||
--
|
|
||||||
2.35.1
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
|||||||
From 683b92811abcb6cbbc00353010ec18e2cf655912 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jaroslav Mracek <jmracek@redhat.com>
|
|
||||||
Date: Mon, 6 Sep 2021 12:40:59 +0200
|
|
||||||
Subject: [PATCH] [doc] Improve description of multilib_policy=all
|
|
||||||
(RhBug:1996681,1995630)
|
|
||||||
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=1996681
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=1995630
|
|
||||||
---
|
|
||||||
doc/conf_ref.rst | 4 +++-
|
|
||||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/doc/conf_ref.rst b/doc/conf_ref.rst
|
|
||||||
index 016bd00c..83b14ecd 100644
|
|
||||||
--- a/doc/conf_ref.rst
|
|
||||||
+++ b/doc/conf_ref.rst
|
|
||||||
@@ -351,7 +351,9 @@ configuration file by your distribution to override the DNF defaults.
|
|
||||||
``multilib_policy``
|
|
||||||
:ref:`string <string-label>`
|
|
||||||
|
|
||||||
- Controls how multilib packages are treated during install operations. Can either be ``"best"`` (the default) for the depsolver to prefer packages which best match the system's architecture, or ``"all"`` to install all available packages with compatible architectures.
|
|
||||||
+ Controls how multilib packages are treated during install operations. Can either be ``"best"`` (the default) for
|
|
||||||
+ the depsolver to prefer packages which best match the system's architecture, or ``"all"`` to install packages for
|
|
||||||
+ all available architectures.
|
|
||||||
|
|
||||||
.. _obsoletes_conf_option-label:
|
|
||||||
|
|
||||||
--
|
|
||||||
2.35.1
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
|||||||
From db52d259645daf8ca0ae06e829787d36171f2d5b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jaroslav Rohel <jrohel@redhat.com>
|
|
||||||
Date: Wed, 20 Oct 2021 09:20:03 +0200
|
|
||||||
Subject: [PATCH] Fix: Python dnf API does not respect cacheonly
|
|
||||||
(RhBug:1862970)
|
|
||||||
|
|
||||||
`Repo` object has always been constructed with default synchronization
|
|
||||||
strategy. The configuration option `cacheonly` was ignored. DNF
|
|
||||||
application set synchronization strategy later in the `Cli` object
|
|
||||||
during processing demands.
|
|
||||||
|
|
||||||
The fix takes into account the `cacheonly` option during the construction
|
|
||||||
of the `Repo` object. Synchronization strategy may still be overriden
|
|
||||||
during demand processing.
|
|
||||||
---
|
|
||||||
dnf/repo.py | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/dnf/repo.py b/dnf/repo.py
|
|
||||||
index bb422309..1822cf01 100644
|
|
||||||
--- a/dnf/repo.py
|
|
||||||
+++ b/dnf/repo.py
|
|
||||||
@@ -434,7 +434,7 @@ class Repo(dnf.conf.RepoConf):
|
|
||||||
self._pkgdir = None
|
|
||||||
self._key_import = _NullKeyImport()
|
|
||||||
self.metadata = None # :api
|
|
||||||
- self._repo.setSyncStrategy(self.DEFAULT_SYNC)
|
|
||||||
+ self._repo.setSyncStrategy(SYNC_ONLY_CACHE if parent_conf and parent_conf.cacheonly else self.DEFAULT_SYNC)
|
|
||||||
if parent_conf:
|
|
||||||
self._repo.setSubstitutions(parent_conf.substitutions)
|
|
||||||
self._substitutions = dnf.conf.substitutions.Substitutions()
|
|
||||||
--
|
|
||||||
2.35.1
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
|||||||
From f8025df597685a0bd0c347b1a60c280f03bdca6f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jaroslav Rohel <jrohel@redhat.com>
|
|
||||||
Date: Fri, 5 Nov 2021 08:52:56 +0100
|
|
||||||
Subject: [PATCH] Documentation: API notes for cacheonly
|
|
||||||
|
|
||||||
---
|
|
||||||
doc/conf_ref.rst | 3 +++
|
|
||||||
1 file changed, 3 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/doc/conf_ref.rst b/doc/conf_ref.rst
|
|
||||||
index 83b14ecd..75bcdf75 100644
|
|
||||||
--- a/doc/conf_ref.rst
|
|
||||||
+++ b/doc/conf_ref.rst
|
|
||||||
@@ -129,6 +129,9 @@ configuration file by your distribution to override the DNF defaults.
|
|
||||||
If set to ``True`` DNF will run entirely from system cache, will not update
|
|
||||||
the cache and will use it even in case it is expired. Default is ``False``.
|
|
||||||
|
|
||||||
+ API Notes: Must be set before repository objects are created. Plugins must set
|
|
||||||
+ this in the pre_config hook. Later changes are ignored.
|
|
||||||
+
|
|
||||||
.. _check_config_file_age-label:
|
|
||||||
|
|
||||||
``check_config_file_age``
|
|
||||||
--
|
|
||||||
2.35.1
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
|||||||
From 6af9938c87cf409f886f21b59ec45c54eda6c8b2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jaroslav Mracek <jmracek@redhat.com>
|
|
||||||
Date: Tue, 2 Nov 2021 14:23:22 +0100
|
|
||||||
Subject: [PATCH] Allow destdir option with modulesync command
|
|
||||||
|
|
||||||
---
|
|
||||||
dnf/cli/cli.py | 2 +-
|
|
||||||
doc/command_ref.rst | 2 +-
|
|
||||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dnf/cli/cli.py b/dnf/cli/cli.py
|
|
||||||
index 65769978..a315201c 100644
|
|
||||||
--- a/dnf/cli/cli.py
|
|
||||||
+++ b/dnf/cli/cli.py
|
|
||||||
@@ -810,7 +810,7 @@ class Cli(object):
|
|
||||||
if opts.destdir is not None:
|
|
||||||
self.base.conf.destdir = opts.destdir
|
|
||||||
if not self.base.conf.downloadonly and opts.command not in (
|
|
||||||
- 'download', 'system-upgrade', 'reposync'):
|
|
||||||
+ 'download', 'system-upgrade', 'reposync', 'modulesync'):
|
|
||||||
logger.critical(_('--destdir or --downloaddir must be used with --downloadonly '
|
|
||||||
'or download or system-upgrade command.')
|
|
||||||
)
|
|
||||||
diff --git a/doc/command_ref.rst b/doc/command_ref.rst
|
|
||||||
index f96c0eac..42aec72c 100644
|
|
||||||
--- a/doc/command_ref.rst
|
|
||||||
+++ b/doc/command_ref.rst
|
|
||||||
@@ -182,7 +182,7 @@ Options
|
|
||||||
``--downloaddir=<path>, --destdir=<path>``
|
|
||||||
Redirect downloaded packages to provided directory. The option has to be used together with the \-\
|
|
||||||
:ref:`-downloadonly <downloadonly-label>` command line option, with the
|
|
||||||
- ``download`` command (dnf-plugins-core) or with the ``system-upgrade`` command
|
|
||||||
+ ``download``, ``modulesync`` or ``reposync`` commands (dnf-plugins-core) or with the ``system-upgrade`` command
|
|
||||||
(dnf-plugins-extras).
|
|
||||||
|
|
||||||
.. _downloadonly-label:
|
|
||||||
--
|
|
||||||
2.35.1
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -1,57 +0,0 @@
|
|||||||
From 27f26c607c44b8331b23c861241a8509c2452531 Mon Sep 17 00:00:00 2001
|
|
||||||
From: sbluhm <stefan.bluhm@clacee.eu>
|
|
||||||
Date: Sun, 9 Jan 2022 14:30:19 +0100
|
|
||||||
Subject: [PATCH] Add documentation for query api flags
|
|
||||||
|
|
||||||
= changelog =
|
|
||||||
msg: Add documentation for query api flags
|
|
||||||
type: enhancement
|
|
||||||
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2035577
|
|
||||||
---
|
|
||||||
AUTHORS | 1 +
|
|
||||||
doc/api_sack.rst | 14 +++++++++++++-
|
|
||||||
2 files changed, 14 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/AUTHORS b/AUTHORS
|
|
||||||
index f8c9eb83..0077c7ea 100644
|
|
||||||
--- a/AUTHORS
|
|
||||||
+++ b/AUTHORS
|
|
||||||
@@ -91,6 +91,7 @@ DNF CONTRIBUTORS
|
|
||||||
Petr Spacek <pspacek@redhat.com>
|
|
||||||
Rob Cutmore <robcutmore@gmail.com>
|
|
||||||
Satoshi Matsumoto <kaorimatz@gmail.com>
|
|
||||||
+ Stefan Bluhm <stefan.bluhm@clacee.eu>
|
|
||||||
Tomas Kasparek <tkasparek@redhat.com>
|
|
||||||
Vladan Kudlac <vladankudlac@gmail.com>
|
|
||||||
Will Woods <wwoods@redhat.com>
|
|
||||||
diff --git a/doc/api_sack.rst b/doc/api_sack.rst
|
|
||||||
index 79719878..ac843fc9 100644
|
|
||||||
--- a/doc/api_sack.rst
|
|
||||||
+++ b/doc/api_sack.rst
|
|
||||||
@@ -25,10 +25,22 @@
|
|
||||||
|
|
||||||
The package sack. Contains metadata information about all known packages, installed and available.
|
|
||||||
|
|
||||||
- .. method:: query()
|
|
||||||
+ .. method:: query(flags=hawkey.APPLY_EXCLUDES)
|
|
||||||
|
|
||||||
Return a :class:`Query<dnf.query.Query>` for querying packages contained in this sack.
|
|
||||||
|
|
||||||
+ :ref:`Package filtering <excluded_packages-label>` is applied when creating the query object. The behavior can be adapted using flags. Possible flags:
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ ============================== ===========================================================================
|
|
||||||
+ Flag Value meaning
|
|
||||||
+ ============================== ===========================================================================
|
|
||||||
+ hawkey.APPLY_EXCLUDES Apply all package filtering.
|
|
||||||
+ hawkey.IGNORE_EXCLUDES Ignore all package filtering.
|
|
||||||
+ hawkey.IGNORE_REGULAR_EXCLUDES Ignore regular excludes defined by configuration files or the command line.
|
|
||||||
+ hawkey.IGNORE_MODULAR_EXCLUDES Ignore modular filtering.
|
|
||||||
+ ============================== ===========================================================================
|
|
||||||
+
|
|
||||||
.. function:: rpmdb_sack(base)
|
|
||||||
|
|
||||||
Returns a new instance of sack containing only installed packages (@System repo). Useful to get list of the installed RPMs after transaction.
|
|
||||||
--
|
|
||||||
2.35.1
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
|||||||
From 9bd0423e1e543ed5f83924ec61aa253eced24cf8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Marek Blaha <mblaha@redhat.com>
|
|
||||||
Date: Mon, 14 Mar 2022 09:49:52 +0100
|
|
||||||
Subject: [PATCH] Fix processing of download errors (RhBug: 2024527)
|
|
||||||
|
|
||||||
Users with different than english locale are not able to update their
|
|
||||||
systems in case that some of updates are already downloaded in the dnf
|
|
||||||
cache (e.g. using dnf-automatic).
|
|
||||||
|
|
||||||
The error string is taken from librepo target where it is stored
|
|
||||||
untranslated. Therefore we need to compare untranslated versions of the
|
|
||||||
string.
|
|
||||||
|
|
||||||
= changelog =
|
|
||||||
msg: Fix download errors handling in non-english locales
|
|
||||||
type: bugfix
|
|
||||||
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2024527
|
|
||||||
---
|
|
||||||
dnf/repo.py | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/dnf/repo.py b/dnf/repo.py
|
|
||||||
index 1822cf01..ec1a2537 100644
|
|
||||||
--- a/dnf/repo.py
|
|
||||||
+++ b/dnf/repo.py
|
|
||||||
@@ -108,7 +108,7 @@ def _download_payloads(payloads, drpm, fail_fast=True):
|
|
||||||
callbacks = tgt.getCallbacks()
|
|
||||||
payload = callbacks.package_pload
|
|
||||||
pkg = payload.pkg
|
|
||||||
- if err == _('Already downloaded'):
|
|
||||||
+ if err == 'Already downloaded':
|
|
||||||
errs._skipped.add(pkg)
|
|
||||||
continue
|
|
||||||
pkg.repo._repo.expire()
|
|
||||||
--
|
|
||||||
2.35.1
|
|
||||||
|
|
@ -1,81 +0,0 @@
|
|||||||
From 0da73ea1304005b796842d96679d6ea31cdeea3c Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Ale=C5=A1=20Mat=C4=9Bj?= <amatej@redhat.com>
|
|
||||||
Date: Tue, 1 Mar 2022 12:42:23 +0100
|
|
||||||
Subject: [PATCH] Fix unittests that relied on checksum being at the end of
|
|
||||||
solvfiles
|
|
||||||
|
|
||||||
---
|
|
||||||
tests/test_fill_sack_from_repos_in_cache.py | 26 +++++++++++----------
|
|
||||||
1 file changed, 14 insertions(+), 12 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/tests/test_fill_sack_from_repos_in_cache.py b/tests/test_fill_sack_from_repos_in_cache.py
|
|
||||||
index a8de287c..30d02cfe 100644
|
|
||||||
--- a/tests/test_fill_sack_from_repos_in_cache.py
|
|
||||||
+++ b/tests/test_fill_sack_from_repos_in_cache.py
|
|
||||||
@@ -39,7 +39,7 @@ TEST_REPO_NAME = "test-repo"
|
|
||||||
|
|
||||||
|
|
||||||
class FillSackFromReposInCacheTest(unittest.TestCase):
|
|
||||||
- def _create_cache_for_repo(self, repopath, tmpdir):
|
|
||||||
+ def _create_cache_for_repo(self, repopath, tmpdir, repo_name=TEST_REPO_NAME):
|
|
||||||
conf = dnf.conf.MainConf()
|
|
||||||
conf.cachedir = os.path.join(tmpdir, "cache")
|
|
||||||
conf.installroot = tmpdir
|
|
||||||
@@ -49,7 +49,7 @@ class FillSackFromReposInCacheTest(unittest.TestCase):
|
|
||||||
|
|
||||||
base = dnf.Base(conf=conf)
|
|
||||||
|
|
||||||
- repoconf = dnf.repo.Repo(TEST_REPO_NAME, base.conf)
|
|
||||||
+ repoconf = dnf.repo.Repo(repo_name, base.conf)
|
|
||||||
repoconf.baseurl = repopath
|
|
||||||
repoconf.enable()
|
|
||||||
|
|
||||||
@@ -194,6 +194,8 @@ class FillSackFromReposInCacheTest(unittest.TestCase):
|
|
||||||
|
|
||||||
def test_exception_with_checksum_mismatch_and_only_repomd(self):
|
|
||||||
self._setUp_from_repo_path(os.path.join(os.path.abspath(os.path.dirname(__file__)), "repos/rpm"))
|
|
||||||
+ self._create_cache_for_repo(os.path.join(os.path.abspath(os.path.dirname(__file__)), "repos/drpm"),
|
|
||||||
+ self.tmpdir, "drpm-repo")
|
|
||||||
|
|
||||||
# Remove xml metadata except repomd
|
|
||||||
# repomd.xml is not compressed and doesn't end with .gz
|
|
||||||
@@ -201,12 +203,11 @@ class FillSackFromReposInCacheTest(unittest.TestCase):
|
|
||||||
for f in repodata_without_repomd:
|
|
||||||
os.remove(f)
|
|
||||||
|
|
||||||
- # Modify checksum of solv file so it doesn't match with repomd
|
|
||||||
- solv = glob.glob(os.path.join(self.tmpdir, "cache/*.solv"))[0]
|
|
||||||
- with open(solv, "a") as opensolv:
|
|
||||||
- opensolv.write("appended text to change checksum")
|
|
||||||
+ # Replace solvfile of test-repo with solvfile from drpm-repo which has different data (different checksum)
|
|
||||||
+ shutil.move(os.path.join(self.tmpdir, "cache/drpm-repo.solv"),
|
|
||||||
+ os.path.join(self.tmpdir, "cache/test-repo.solv"))
|
|
||||||
|
|
||||||
- # Now we only have cache with solvx, modified solv file and just repomd
|
|
||||||
+ # Now we only have cache with solvx, mismatching solv file and just repomd
|
|
||||||
# Since we don't have original xml metadata we cannot regenerate solv -> fail (exception)
|
|
||||||
|
|
||||||
self.assertRaises(dnf.exceptions.RepoError,
|
|
||||||
@@ -214,13 +215,14 @@ class FillSackFromReposInCacheTest(unittest.TestCase):
|
|
||||||
|
|
||||||
def test_checksum_mistmatch_regenerates_solv(self):
|
|
||||||
self._setUp_from_repo_path(os.path.join(os.path.abspath(os.path.dirname(__file__)), "repos/rpm"))
|
|
||||||
+ self._create_cache_for_repo(os.path.join(os.path.abspath(os.path.dirname(__file__)), "repos/drpm"),
|
|
||||||
+ self.tmpdir, "drpm-repo")
|
|
||||||
|
|
||||||
- # Modify checksum of solv file so it doesn't match with repomd
|
|
||||||
- solv = glob.glob(os.path.join(self.tmpdir, "cache/*.solv"))[0]
|
|
||||||
- with open(solv, "a") as opensolv:
|
|
||||||
- opensolv.write("appended text to change checksum")
|
|
||||||
+ # Replace solvfile of test-repo with solvfile from drpm-repo which has different data (different checksum)
|
|
||||||
+ shutil.move(os.path.join(self.tmpdir, "cache/drpm-repo.solv"),
|
|
||||||
+ os.path.join(self.tmpdir, "cache/test-repo.solv"))
|
|
||||||
|
|
||||||
- # Now we only have cache with solvx, modified solv file and xml metadata.
|
|
||||||
+ # Now we only have cache with solvx, mismatching solv file and xml metadata.
|
|
||||||
# Checksum mistmatch causes regeneration of solv file and repo works.
|
|
||||||
|
|
||||||
self.test_base.fill_sack_from_repos_in_cache(load_system_repo=False)
|
|
||||||
--
|
|
||||||
2.35.1
|
|
||||||
|
|
@ -1,64 +0,0 @@
|
|||||||
From fe87499e6745795b1dc6225fa102a1242eb9ffc8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hr=C3=A1zk=C3=BD?= <lhrazky@redhat.com>
|
|
||||||
Date: Thu, 17 Feb 2022 18:46:22 +0100
|
|
||||||
Subject: [PATCH] cli/commands/history: Fix history undo on a Reason Change
|
|
||||||
|
|
||||||
The previous reason needs to be fetched from the history db. It's
|
|
||||||
inefficient to parse the nevra after it was serialized in a previous
|
|
||||||
step, but that would need bigger code restructuring.
|
|
||||||
|
|
||||||
= changelog =
|
|
||||||
msg: Fix history undo on a Reason Change
|
|
||||||
type: bugfix
|
|
||||||
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2053014
|
|
||||||
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2010259
|
|
||||||
---
|
|
||||||
dnf.spec | 2 +-
|
|
||||||
dnf/cli/commands/history.py | 11 +++++++++++
|
|
||||||
2 files changed, 12 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/dnf.spec b/dnf.spec
|
|
||||||
index 02c8b577..36c3932e 100644
|
|
||||||
--- a/dnf.spec
|
|
||||||
+++ b/dnf.spec
|
|
||||||
@@ -2,7 +2,7 @@
|
|
||||||
%define __cmake_in_source_build 1
|
|
||||||
|
|
||||||
# default dependencies
|
|
||||||
-%global hawkey_version 0.61.1
|
|
||||||
+%global hawkey_version 0.66.0
|
|
||||||
%global libcomps_version 0.1.8
|
|
||||||
%global libmodulemd_version 2.9.3
|
|
||||||
%global rpm_version 4.14.0
|
|
||||||
diff --git a/dnf/cli/commands/history.py b/dnf/cli/commands/history.py
|
|
||||||
index 293d93fc..21d04a1a 100644
|
|
||||||
--- a/dnf/cli/commands/history.py
|
|
||||||
+++ b/dnf/cli/commands/history.py
|
|
||||||
@@ -223,6 +223,7 @@ class HistoryCommand(commands.Command):
|
|
||||||
"Reinstall": "Reinstalled",
|
|
||||||
"Obsoleted": "Install",
|
|
||||||
"Obsolete": "Obsoleted",
|
|
||||||
+ "Reason Change": "Reason Change",
|
|
||||||
}
|
|
||||||
|
|
||||||
data = serialize_transaction(trans)
|
|
||||||
@@ -235,6 +236,16 @@ class HistoryCommand(commands.Command):
|
|
||||||
if ti["action"] == "Install" and ti.get("reason", None) == "clean":
|
|
||||||
ti["reason"] = "dependency"
|
|
||||||
|
|
||||||
+ if ti["action"] == "Reason Change" and "nevra" in ti:
|
|
||||||
+ subj = hawkey.Subject(ti["nevra"])
|
|
||||||
+ nevra = subj.get_nevra_possibilities(forms=[hawkey.FORM_NEVRA])[0]
|
|
||||||
+ reason = self.output.history.swdb.resolveRPMTransactionItemReason(
|
|
||||||
+ nevra.name,
|
|
||||||
+ nevra.arch,
|
|
||||||
+ trans.tids()[0] - 1
|
|
||||||
+ )
|
|
||||||
+ ti["reason"] = libdnf.transaction.TransactionItemReasonToString(reason)
|
|
||||||
+
|
|
||||||
if ti.get("repo_id") == hawkey.SYSTEM_REPO_NAME:
|
|
||||||
# erase repo_id, because it's not possible to perform forward actions from the @System repo
|
|
||||||
ti["repo_id"] = None
|
|
||||||
--
|
|
||||||
2.35.1
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
|||||||
From 55f6691d5663c59b675064b04e19288365e92d24 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Nicola Sella <nsella@redhat.com>
|
|
||||||
Date: Tue, 15 Mar 2022 16:26:10 +0100
|
|
||||||
Subject: [PATCH] Fix remove when no repos are enabled (RhBz:2064341)
|
|
||||||
|
|
||||||
msg: When no repositories are enabled, dnf group exits and does not
|
|
||||||
remove an installed group.
|
|
||||||
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2064341
|
|
||||||
type: bugfix
|
|
||||||
---
|
|
||||||
dnf/cli/commands/group.py | 3 ++-
|
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/dnf/cli/commands/group.py b/dnf/cli/commands/group.py
|
|
||||||
index fd723c48..c5c23230 100644
|
|
||||||
--- a/dnf/cli/commands/group.py
|
|
||||||
+++ b/dnf/cli/commands/group.py
|
|
||||||
@@ -358,7 +358,8 @@ class GroupCommand(commands.Command):
|
|
||||||
else:
|
|
||||||
demands.available_repos = True
|
|
||||||
|
|
||||||
- commands._checkEnabledRepo(self.base)
|
|
||||||
+ if cmd not in ('remove'):
|
|
||||||
+ commands._checkEnabledRepo(self.base)
|
|
||||||
|
|
||||||
if cmd in ('install', 'upgrade'):
|
|
||||||
commands._checkGPGKey(self.base, self.cli)
|
|
||||||
--
|
|
||||||
2.35.1
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
|||||||
From 8f05ee29b7398fa6d18c7113a533f1d8726239df Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jaroslav Rohel <jrohel@redhat.com>
|
|
||||||
Date: Tue, 12 Apr 2022 12:25:05 +0200
|
|
||||||
Subject: [PATCH] [doc] Improve "proxy" configuration option documentation
|
|
||||||
(RhBug:2072332)
|
|
||||||
|
|
||||||
---
|
|
||||||
doc/conf_ref.rst | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/doc/conf_ref.rst b/doc/conf_ref.rst
|
|
||||||
index 75bcdf75..885a4560 100644
|
|
||||||
--- a/doc/conf_ref.rst
|
|
||||||
+++ b/doc/conf_ref.rst
|
|
||||||
@@ -833,10 +833,10 @@ configuration.
|
|
||||||
``proxy``
|
|
||||||
:ref:`string <string-label>`
|
|
||||||
|
|
||||||
- URL of a proxy server to connect through. Set to an empty string to disable the proxy setting inherited from the main section and use direct connection instead. The expected format of this option is ``<scheme>://<ip-or-hostname>[:port]``.
|
|
||||||
+ URL of a proxy server to connect through. Set to an empty string in the repository configuration to disable proxy setting inherited from the main section. The expected format of this option is ``<scheme>://<ip-or-hostname>[:port]``.
|
|
||||||
(For backward compatibility, '_none_' can be used instead of the empty string.)
|
|
||||||
|
|
||||||
- Note: The curl environment variables (such as ``http_proxy``) are effective if this option is unset. See the ``curl`` man page for details.
|
|
||||||
+ Note: The curl environment variables (such as ``http_proxy``) are effective if this option is unset (or '_none_' is set in the repository configuration). See the ``curl`` man page for details.
|
|
||||||
|
|
||||||
``proxy_username``
|
|
||||||
:ref:`string <string-label>`
|
|
||||||
--
|
|
||||||
2.35.1
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
|||||||
From 00f3016ec0d79186f08c2f0ebf450bdc3dab1311 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Ale=C5=A1=20Mat=C4=9Bj?= <amatej@redhat.com>
|
|
||||||
Date: Thu, 23 Jun 2022 09:33:45 +0200
|
|
||||||
Subject: [PATCH] doc: Describe how gpg keys are stored for `repo_ggpcheck`
|
|
||||||
(RhBug:2020678)
|
|
||||||
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=2020678
|
|
||||||
---
|
|
||||||
doc/conf_ref.rst | 6 ++++++
|
|
||||||
1 file changed, 6 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/doc/conf_ref.rst b/doc/conf_ref.rst
|
|
||||||
index 885a4560..decb49ff 100644
|
|
||||||
--- a/doc/conf_ref.rst
|
|
||||||
+++ b/doc/conf_ref.rst
|
|
||||||
@@ -906,6 +906,12 @@ configuration.
|
|
||||||
:ref:`boolean <boolean-label>`
|
|
||||||
|
|
||||||
Whether to perform GPG signature check on this repository's metadata. The default is False.
|
|
||||||
+ Note that GPG keys for this check are stored separately from GPG keys used in package signature
|
|
||||||
+ verification. Furthermore, they are also stored separately for each repository.
|
|
||||||
+
|
|
||||||
+ This means that dnf may ask to import the same key multiple times. For example, when a key was
|
|
||||||
+ already imported for package signature verification and this option is turned on, it may be needed
|
|
||||||
+ to import it again for the repository.
|
|
||||||
|
|
||||||
``retries``
|
|
||||||
:ref:`integer <integer-label>`
|
|
||||||
--
|
|
||||||
2.36.1
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
|||||||
From 66a37245e82c60b972ee35879f9c29c27466a27b Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Ale=C5=A1=20Mat=C4=9Bj?= <amatej@redhat.com>
|
|
||||||
Date: Mon, 25 Jul 2022 12:44:17 +0200
|
|
||||||
Subject: [PATCH] Don't include resolved advisories for obsoletes with sec.
|
|
||||||
filters (RhBug:2101421)
|
|
||||||
|
|
||||||
This makes the obsoletes security filters consistent with upgrade
|
|
||||||
security filters.
|
|
||||||
|
|
||||||
This API is used from check-update and from Info and List commands.
|
|
||||||
- For check-update we don't want to include resolved advisories to have
|
|
||||||
identical result to the actual update. That is bz2101421 use case.
|
|
||||||
- For Info and List commands the --obsoletes switch: "List packages
|
|
||||||
installed on the system that are obsoleted by packages in any known
|
|
||||||
repository." Given this specification in makes sense not to
|
|
||||||
consider resolved advisories when we also use security filters.
|
|
||||||
|
|
||||||
There is still a general case when someone uses the API or any potential
|
|
||||||
future use and I think it is best to have the behavior unified for
|
|
||||||
"upgrades" and "obsoletes".
|
|
||||||
|
|
||||||
= changelog =
|
|
||||||
msg: Don't include resolved advisories for obsoletes filtering with security filters
|
|
||||||
type: bugfix
|
|
||||||
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2101421
|
|
||||||
|
|
||||||
Tests: https://github.com/rpm-software-management/ci-dnf-stack/pull/1134
|
|
||||||
---
|
|
||||||
dnf/base.py | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/dnf/base.py b/dnf/base.py
|
|
||||||
index e606d9fa..e623d98e 100644
|
|
||||||
--- a/dnf/base.py
|
|
||||||
+++ b/dnf/base.py
|
|
||||||
@@ -1565,7 +1565,7 @@ class Base(object):
|
|
||||||
obsoletes = query_for_repo(
|
|
||||||
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)
|
|
||||||
+ obsoletes = self._merge_update_filters(obsoletes, warning=False, upgrade=True)
|
|
||||||
obsoletesTuples = []
|
|
||||||
for new in obsoletes:
|
|
||||||
obsoleted_reldeps = new.obsoletes
|
|
||||||
--
|
|
||||||
2.37.1
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
|||||||
From 553a2c585db50599d5028ea6bb6462281bb88d02 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jaroslav Mracek <jmracek@redhat.com>
|
|
||||||
Date: Mon, 11 Jul 2022 12:27:14 +0200
|
|
||||||
Subject: [PATCH] Set default value for variable to prevent crash
|
|
||||||
(RhBug:2091636)
|
|
||||||
|
|
||||||
It ensure that read of file ended successfully.
|
|
||||||
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=2091636
|
|
||||||
---
|
|
||||||
dnf/conf/substitutions.py | 4 +++-
|
|
||||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/dnf/conf/substitutions.py b/dnf/conf/substitutions.py
|
|
||||||
index 703e4a4f..1281bdf0 100644
|
|
||||||
--- a/dnf/conf/substitutions.py
|
|
||||||
+++ b/dnf/conf/substitutions.py
|
|
||||||
@@ -53,6 +53,7 @@ class Substitutions(dict):
|
|
||||||
continue
|
|
||||||
for fsvar in fsvars:
|
|
||||||
filepath = os.path.join(dir_fsvars, fsvar)
|
|
||||||
+ val = None
|
|
||||||
if os.path.isfile(filepath):
|
|
||||||
try:
|
|
||||||
with open(filepath) as fp:
|
|
||||||
@@ -61,4 +62,5 @@ class Substitutions(dict):
|
|
||||||
val = val[:-1]
|
|
||||||
except (OSError, IOError):
|
|
||||||
continue
|
|
||||||
- self[fsvar] = val
|
|
||||||
+ if val is not None:
|
|
||||||
+ self[fsvar] = val
|
|
||||||
--
|
|
||||||
2.37.1
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
|||||||
From 96a5bd61ab3b35f00f0b52bcd6428c7aea7d1ca5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jan Kolarik <jkolarik@redhat.com>
|
|
||||||
Date: Wed, 7 Sep 2022 14:27:07 +0200
|
|
||||||
Subject: [PATCH] Add doc related to --destdir and --downloadonly options
|
|
||||||
(RhBug:2100811)
|
|
||||||
|
|
||||||
= changelog =
|
|
||||||
type: bugfix
|
|
||||||
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2100811
|
|
||||||
---
|
|
||||||
doc/command_ref.rst | 4 ++++
|
|
||||||
1 file changed, 4 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/doc/command_ref.rst b/doc/command_ref.rst
|
|
||||||
index 42aec72c..7a02448c 100644
|
|
||||||
--- a/doc/command_ref.rst
|
|
||||||
+++ b/doc/command_ref.rst
|
|
||||||
@@ -190,6 +190,10 @@ Options
|
|
||||||
``--downloadonly``
|
|
||||||
Download the resolved package set without performing any rpm transaction (install/upgrade/erase).
|
|
||||||
|
|
||||||
+ Packages are removed after the next successful transaction. This applies also when used together
|
|
||||||
+ with ``--destdir`` option as the directory is considered as a part of the DNF cache. To persist
|
|
||||||
+ the packages, use the ``download`` command instead.
|
|
||||||
+
|
|
||||||
``-e <error level>, --errorlevel=<error level>``
|
|
||||||
Error output level. This is an integer value between 0 (no error output) and
|
|
||||||
10 (shows all error messages), default is 3. Deprecated, use ``-v`` instead.
|
|
||||||
--
|
|
||||||
2.37.1
|
|
||||||
|
|
@ -1,79 +0,0 @@
|
|||||||
From aa724a639a641943ecf39038fd694abc2037e66d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jan Kolarik <jkolarik@redhat.com>
|
|
||||||
Date: Mon, 22 Aug 2022 10:38:30 +0200
|
|
||||||
Subject: [PATCH] Expose plugin unload method to API (RhBug:2047251)
|
|
||||||
|
|
||||||
= changelog =
|
|
||||||
type: bugfix
|
|
||||||
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2047251
|
|
||||||
---
|
|
||||||
dnf/base.py | 5 +++++
|
|
||||||
dnf/plugin.py | 1 +
|
|
||||||
doc/api_base.rst | 4 ++++
|
|
||||||
tests/api/test_dnf_base.py | 7 +++++++
|
|
||||||
4 files changed, 17 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/dnf/base.py b/dnf/base.py
|
|
||||||
index e623d98e..4ddfae15 100644
|
|
||||||
--- a/dnf/base.py
|
|
||||||
+++ b/dnf/base.py
|
|
||||||
@@ -316,6 +316,11 @@ class Base(object):
|
|
||||||
"""Run plugins configure() method."""
|
|
||||||
self._plugins._run_config()
|
|
||||||
|
|
||||||
+ def unload_plugins(self):
|
|
||||||
+ # :api
|
|
||||||
+ """Run plugins unload() method."""
|
|
||||||
+ self._plugins._unload()
|
|
||||||
+
|
|
||||||
def update_cache(self, timer=False):
|
|
||||||
# :api
|
|
||||||
|
|
||||||
diff --git a/dnf/plugin.py b/dnf/plugin.py
|
|
||||||
index 06066e79..87c1f08f 100644
|
|
||||||
--- a/dnf/plugin.py
|
|
||||||
+++ b/dnf/plugin.py
|
|
||||||
@@ -164,6 +164,7 @@ class Plugins(object):
|
|
||||||
self._caller('transaction')
|
|
||||||
|
|
||||||
def _unload(self):
|
|
||||||
+ logger.debug(_('Plugins were unloaded'))
|
|
||||||
del sys.modules[DYNAMIC_PACKAGE]
|
|
||||||
|
|
||||||
def unload_removed_plugins(self, transaction):
|
|
||||||
diff --git a/doc/api_base.rst b/doc/api_base.rst
|
|
||||||
index 03396b69..35cbeef5 100644
|
|
||||||
--- a/doc/api_base.rst
|
|
||||||
+++ b/doc/api_base.rst
|
|
||||||
@@ -97,6 +97,10 @@
|
|
||||||
|
|
||||||
Configure plugins by running their configure() method.
|
|
||||||
|
|
||||||
+ .. method:: unload_plugins()
|
|
||||||
+
|
|
||||||
+ Unload all plugins.
|
|
||||||
+
|
|
||||||
.. method:: fill_sack([load_system_repo=True, load_available_repos=True])
|
|
||||||
|
|
||||||
Setup the package sack. If `load_system_repo` is ``True``, load information about packages in the local RPMDB into the sack. Else no package is considered installed during dependency solving. If `load_available_repos` is ``True``, load information about packages from the available repositories into the sack.
|
|
||||||
diff --git a/tests/api/test_dnf_base.py b/tests/api/test_dnf_base.py
|
|
||||||
index 33598189..e84e272b 100644
|
|
||||||
--- a/tests/api/test_dnf_base.py
|
|
||||||
+++ b/tests/api/test_dnf_base.py
|
|
||||||
@@ -95,6 +95,13 @@ class DnfBaseApiTest(TestCase):
|
|
||||||
|
|
||||||
self.base.configure_plugins()
|
|
||||||
|
|
||||||
+ def test_unload_plugins(self):
|
|
||||||
+ # Base.unload_plugins()
|
|
||||||
+ self.assertHasAttr(self.base, "unload_plugins")
|
|
||||||
+
|
|
||||||
+ self.base.init_plugins()
|
|
||||||
+ self.base.unload_plugins()
|
|
||||||
+
|
|
||||||
def test_update_cache(self):
|
|
||||||
# Base.update_cache(self, timer=False)
|
|
||||||
self.assertHasAttr(self.base, "update_cache")
|
|
||||||
--
|
|
||||||
2.37.1
|
|
||||||
|
|
@ -1,105 +0,0 @@
|
|||||||
From 7ba2cd6a86945e0ec6f9ed866e2ef6b6759ee092 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jan Kolarik <jkolarik@redhat.com>
|
|
||||||
Date: Thu, 25 Aug 2022 08:06:34 +0200
|
|
||||||
Subject: [PATCH] Add support for group upgrade rollback (RhBug:2016070)
|
|
||||||
|
|
||||||
= changelog =
|
|
||||||
type: bugfix
|
|
||||||
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2016070
|
|
||||||
---
|
|
||||||
dnf/db/group.py | 8 +++++++-
|
|
||||||
dnf/transaction_sr.py | 24 ++++++++++++++++++++++++
|
|
||||||
2 files changed, 31 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/dnf/db/group.py b/dnf/db/group.py
|
|
||||||
index 4dc8cb06..312e3b98 100644
|
|
||||||
--- a/dnf/db/group.py
|
|
||||||
+++ b/dnf/db/group.py
|
|
||||||
@@ -34,14 +34,16 @@ class PersistorBase(object):
|
|
||||||
self._installed = {}
|
|
||||||
self._removed = {}
|
|
||||||
self._upgraded = {}
|
|
||||||
+ self._downgraded = {}
|
|
||||||
|
|
||||||
def __len__(self):
|
|
||||||
- return len(self._installed) + len(self._removed) + len(self._upgraded)
|
|
||||||
+ return len(self._installed) + len(self._removed) + len(self._upgraded) + len(self._downgraded)
|
|
||||||
|
|
||||||
def clean(self):
|
|
||||||
self._installed = {}
|
|
||||||
self._removed = {}
|
|
||||||
self._upgraded = {}
|
|
||||||
+ self._downgraded = {}
|
|
||||||
|
|
||||||
def _get_obj_id(self, obj):
|
|
||||||
raise NotImplementedError
|
|
||||||
@@ -62,6 +64,10 @@ class PersistorBase(object):
|
|
||||||
self._upgraded[self._get_obj_id(obj)] = obj
|
|
||||||
self._add_to_history(obj, libdnf.transaction.TransactionItemAction_UPGRADE)
|
|
||||||
|
|
||||||
+ def downgrade(self, obj):
|
|
||||||
+ self._downgraded[self._get_obj_id(obj)] = obj
|
|
||||||
+ self._add_to_history(obj, libdnf.transaction.TransactionItemAction_DOWNGRADE)
|
|
||||||
+
|
|
||||||
def new(self, obj_id, name, translated_name, pkg_types):
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
diff --git a/dnf/transaction_sr.py b/dnf/transaction_sr.py
|
|
||||||
index dae8d300..5d403a3e 100644
|
|
||||||
--- a/dnf/transaction_sr.py
|
|
||||||
+++ b/dnf/transaction_sr.py
|
|
||||||
@@ -416,6 +416,16 @@ class TransactionReplay(object):
|
|
||||||
if swdb_group is not None:
|
|
||||||
self._base.history.group.upgrade(swdb_group)
|
|
||||||
|
|
||||||
+ def _swdb_group_downgrade(self, group_id, pkg_types, pkgs):
|
|
||||||
+ if not self._base.history.group.get(group_id):
|
|
||||||
+ self._raise_or_warn(self._ignore_installed, _("Group id '%s' is not installed.") % group_id)
|
|
||||||
+ return
|
|
||||||
+
|
|
||||||
+ swdb_group = self._create_swdb_group(group_id, pkg_types, pkgs)
|
|
||||||
+
|
|
||||||
+ if swdb_group is not None:
|
|
||||||
+ self._base.history.group.downgrade(swdb_group)
|
|
||||||
+
|
|
||||||
def _swdb_group_remove(self, group_id, pkg_types, pkgs):
|
|
||||||
if not self._base.history.group.get(group_id):
|
|
||||||
self._raise_or_warn(self._ignore_installed, _("Group id '%s' is not installed.") % group_id)
|
|
||||||
@@ -482,6 +492,16 @@ class TransactionReplay(object):
|
|
||||||
if swdb_env is not None:
|
|
||||||
self._base.history.env.upgrade(swdb_env)
|
|
||||||
|
|
||||||
+ def _swdb_environment_downgrade(self, env_id, pkg_types, groups):
|
|
||||||
+ if not self._base.history.env.get(env_id):
|
|
||||||
+ self._raise_or_warn(self._ignore_installed, _("Environment id '%s' is not installed.") % env_id)
|
|
||||||
+ return
|
|
||||||
+
|
|
||||||
+ swdb_env = self._create_swdb_environment(env_id, pkg_types, groups)
|
|
||||||
+
|
|
||||||
+ if swdb_env is not None:
|
|
||||||
+ self._base.history.env.downgrade(swdb_env)
|
|
||||||
+
|
|
||||||
def _swdb_environment_remove(self, env_id, pkg_types, groups):
|
|
||||||
if not self._base.history.env.get(env_id):
|
|
||||||
self._raise_or_warn(self._ignore_installed, _("Environment id '%s' is not installed.") % env_id)
|
|
||||||
@@ -535,6 +555,8 @@ class TransactionReplay(object):
|
|
||||||
self._swdb_group_install(group_id, pkg_types, group_data["packages"])
|
|
||||||
elif action == "Upgrade":
|
|
||||||
self._swdb_group_upgrade(group_id, pkg_types, group_data["packages"])
|
|
||||||
+ elif action == "Downgraded":
|
|
||||||
+ self._swdb_group_downgrade(group_id, pkg_types, group_data["packages"])
|
|
||||||
elif action == "Removed":
|
|
||||||
self._swdb_group_remove(group_id, pkg_types, group_data["packages"])
|
|
||||||
else:
|
|
||||||
@@ -564,6 +586,8 @@ class TransactionReplay(object):
|
|
||||||
self._swdb_environment_install(env_id, pkg_types, env_data["groups"])
|
|
||||||
elif action == "Upgrade":
|
|
||||||
self._swdb_environment_upgrade(env_id, pkg_types, env_data["groups"])
|
|
||||||
+ elif action == "Downgraded":
|
|
||||||
+ self._swdb_environment_downgrade(env_id, pkg_types, env_data["groups"])
|
|
||||||
elif action == "Removed":
|
|
||||||
self._swdb_environment_remove(env_id, pkg_types, env_data["groups"])
|
|
||||||
else:
|
|
||||||
--
|
|
||||||
2.37.1
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
|||||||
From 46562dc76e50d86eed99a102af74a1187a4303e4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Nicola Sella <nsella@redhat.com>
|
|
||||||
Date: Thu, 11 Aug 2022 13:56:11 +0200
|
|
||||||
Subject: [PATCH] Fix upgrade from file to noarch pkg (RhBug:2006018)
|
|
||||||
|
|
||||||
= changelog =
|
|
||||||
msg: Fix upgrade pkg from file when installed pkg is noarch and upgrades
|
|
||||||
to a different arch
|
|
||||||
type: bugfix
|
|
||||||
resolves: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=2006018
|
|
||||||
---
|
|
||||||
dnf/base.py | 6 +++++-
|
|
||||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/dnf/base.py b/dnf/base.py
|
|
||||||
index 4ddfae15..aba411ea 100644
|
|
||||||
--- a/dnf/base.py
|
|
||||||
+++ b/dnf/base.py
|
|
||||||
@@ -2109,7 +2109,11 @@ class Base(object):
|
|
||||||
sltr.set(pkg=[pkg])
|
|
||||||
self._goal.upgrade(select=sltr)
|
|
||||||
return 1
|
|
||||||
- q = installed.filter(name=pkg.name, arch=[pkg.arch, "noarch"])
|
|
||||||
+ # do not filter by arch if the package is noarch
|
|
||||||
+ if pkg.arch == "noarch":
|
|
||||||
+ q = installed.filter(name=pkg.name)
|
|
||||||
+ else:
|
|
||||||
+ q = installed.filter(name=pkg.name, arch=[pkg.arch, "noarch"])
|
|
||||||
if not q:
|
|
||||||
msg = _("Package %s not installed, cannot update it.")
|
|
||||||
logger.warning(msg, pkg.name)
|
|
||||||
--
|
|
||||||
2.37.1
|
|
||||||
|
|
@ -1,62 +0,0 @@
|
|||||||
From 7a265cf17fe3531e45dde8ae622c496bef1e17ae Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jan Kolarik <jkolarik@redhat.com>
|
|
||||||
Date: Wed, 10 Aug 2022 16:24:08 +0200
|
|
||||||
Subject: [PATCH] Allow passing plugin parameters with dashes in names
|
|
||||||
(RhBug:1980712)
|
|
||||||
|
|
||||||
= changelog =
|
|
||||||
type: bugfix
|
|
||||||
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1980712
|
|
||||||
---
|
|
||||||
dnf/plugin.py | 20 +++++++++++++++++---
|
|
||||||
1 file changed, 17 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dnf/plugin.py b/dnf/plugin.py
|
|
||||||
index 87c1f08f..b083727d 100644
|
|
||||||
--- a/dnf/plugin.py
|
|
||||||
+++ b/dnf/plugin.py
|
|
||||||
@@ -225,17 +225,17 @@ def _get_plugins_files(paths, disable_plugins, enable_plugins):
|
|
||||||
matched = True
|
|
||||||
enable_pattern_tested = False
|
|
||||||
for pattern_skip in disable_plugins:
|
|
||||||
- if fnmatch.fnmatch(plugin_name, pattern_skip):
|
|
||||||
+ if _plugin_name_matches_pattern(plugin_name, pattern_skip):
|
|
||||||
pattern_disable_found.add(pattern_skip)
|
|
||||||
matched = False
|
|
||||||
for pattern_enable in enable_plugins:
|
|
||||||
- if fnmatch.fnmatch(plugin_name, pattern_enable):
|
|
||||||
+ if _plugin_name_matches_pattern(plugin_name, pattern_enable):
|
|
||||||
matched = True
|
|
||||||
pattern_enable_found.add(pattern_enable)
|
|
||||||
enable_pattern_tested = True
|
|
||||||
if not enable_pattern_tested:
|
|
||||||
for pattern_enable in enable_plugins:
|
|
||||||
- if fnmatch.fnmatch(plugin_name, pattern_enable):
|
|
||||||
+ if _plugin_name_matches_pattern(plugin_name, pattern_enable):
|
|
||||||
pattern_enable_found.add(pattern_enable)
|
|
||||||
if matched:
|
|
||||||
plugins.append(fn)
|
|
||||||
@@ -250,6 +250,20 @@ def _get_plugins_files(paths, disable_plugins, enable_plugins):
|
|
||||||
return plugins
|
|
||||||
|
|
||||||
|
|
||||||
+def _plugin_name_matches_pattern(plugin_name, pattern):
|
|
||||||
+ """
|
|
||||||
+ Checks plugin name matches the pattern.
|
|
||||||
+
|
|
||||||
+ The alternative plugin name using dashes instead of underscores is tried
|
|
||||||
+ in case of original name is not matched.
|
|
||||||
+
|
|
||||||
+ (see https://bugzilla.redhat.com/show_bug.cgi?id=1980712)
|
|
||||||
+ """
|
|
||||||
+
|
|
||||||
+ try_names = set((plugin_name, plugin_name.replace('_', '-')))
|
|
||||||
+ return any(fnmatch.fnmatch(name, pattern) for name in try_names)
|
|
||||||
+
|
|
||||||
+
|
|
||||||
def register_command(command_class):
|
|
||||||
# :api
|
|
||||||
"""A class decorator for automatic command registration."""
|
|
||||||
--
|
|
||||||
2.37.1
|
|
||||||
|
|
@ -1,97 +0,0 @@
|
|||||||
From 9700b8fabd102fcf289281c3c04238da90d7b28e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jan Kolarik <jkolarik@redhat.com>
|
|
||||||
Date: Tue, 13 Sep 2022 14:35:10 +0200
|
|
||||||
Subject: [PATCH] Fix plugins unit tests + unload plugins upon their deletion
|
|
||||||
|
|
||||||
=changelog=
|
|
||||||
type: bugfix
|
|
||||||
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2134309
|
|
||||||
---
|
|
||||||
dnf/plugin.py | 8 ++++++--
|
|
||||||
tests/api/test_dnf_base.py | 24 +++++++++++++++++++-----
|
|
||||||
2 files changed, 25 insertions(+), 7 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dnf/plugin.py b/dnf/plugin.py
|
|
||||||
index b083727d..d2f46ce3 100644
|
|
||||||
--- a/dnf/plugin.py
|
|
||||||
+++ b/dnf/plugin.py
|
|
||||||
@@ -98,6 +98,9 @@ class Plugins(object):
|
|
||||||
self.plugin_cls = []
|
|
||||||
self.plugins = []
|
|
||||||
|
|
||||||
+ def __del__(self):
|
|
||||||
+ self._unload()
|
|
||||||
+
|
|
||||||
def _caller(self, method):
|
|
||||||
for plugin in self.plugins:
|
|
||||||
try:
|
|
||||||
@@ -164,8 +167,9 @@ class Plugins(object):
|
|
||||||
self._caller('transaction')
|
|
||||||
|
|
||||||
def _unload(self):
|
|
||||||
- logger.debug(_('Plugins were unloaded'))
|
|
||||||
- del sys.modules[DYNAMIC_PACKAGE]
|
|
||||||
+ if DYNAMIC_PACKAGE in sys.modules:
|
|
||||||
+ logger.log(dnf.logging.DDEBUG, 'Plugins were unloaded.')
|
|
||||||
+ del sys.modules[DYNAMIC_PACKAGE]
|
|
||||||
|
|
||||||
def unload_removed_plugins(self, transaction):
|
|
||||||
"""
|
|
||||||
diff --git a/tests/api/test_dnf_base.py b/tests/api/test_dnf_base.py
|
|
||||||
index e84e272b..19754b07 100644
|
|
||||||
--- a/tests/api/test_dnf_base.py
|
|
||||||
+++ b/tests/api/test_dnf_base.py
|
|
||||||
@@ -7,10 +7,23 @@ from __future__ import unicode_literals
|
|
||||||
import dnf
|
|
||||||
import dnf.conf
|
|
||||||
|
|
||||||
+import tests.support
|
|
||||||
+
|
|
||||||
from .common import TestCase
|
|
||||||
from .common import TOUR_4_4
|
|
||||||
|
|
||||||
|
|
||||||
+def conf_with_empty_plugins():
|
|
||||||
+ """
|
|
||||||
+ Use empty configuration to avoid importing plugins from default paths
|
|
||||||
+ which would lead to crash of other tests.
|
|
||||||
+ """
|
|
||||||
+ conf = tests.support.FakeConf()
|
|
||||||
+ conf.plugins = True
|
|
||||||
+ conf.pluginpath = []
|
|
||||||
+ return conf
|
|
||||||
+
|
|
||||||
+
|
|
||||||
class DnfBaseApiTest(TestCase):
|
|
||||||
def setUp(self):
|
|
||||||
self.base = dnf.Base(dnf.conf.Conf())
|
|
||||||
@@ -75,13 +88,12 @@ class DnfBaseApiTest(TestCase):
|
|
||||||
self.assertHasType(self.base.transaction, dnf.db.group.RPMTransaction)
|
|
||||||
|
|
||||||
def test_init_plugins(self):
|
|
||||||
- # Base.init_plugins(disabled_glob=(), enable_plugins=(), cli=None)
|
|
||||||
+ # Base.init_plugins()
|
|
||||||
self.assertHasAttr(self.base, "init_plugins")
|
|
||||||
|
|
||||||
- # disable plugins to avoid calling dnf.plugin.Plugins._load() multiple times
|
|
||||||
- # which causes the tests to crash
|
|
||||||
- self.base.conf.plugins = False
|
|
||||||
- self.base.init_plugins(disabled_glob=(), enable_plugins=(), cli=None)
|
|
||||||
+ self.base._conf = conf_with_empty_plugins()
|
|
||||||
+
|
|
||||||
+ self.base.init_plugins()
|
|
||||||
|
|
||||||
def test_pre_configure_plugins(self):
|
|
||||||
# Base.pre_configure_plugins()
|
|
||||||
@@ -99,6 +111,8 @@ class DnfBaseApiTest(TestCase):
|
|
||||||
# Base.unload_plugins()
|
|
||||||
self.assertHasAttr(self.base, "unload_plugins")
|
|
||||||
|
|
||||||
+ self.base._conf = conf_with_empty_plugins()
|
|
||||||
+
|
|
||||||
self.base.init_plugins()
|
|
||||||
self.base.unload_plugins()
|
|
||||||
|
|
||||||
--
|
|
||||||
2.37.3
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
|||||||
From c9251d182be0bfa66345220cffe0842b44a061a8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jan Kolarik <jkolarik@redhat.com>
|
|
||||||
Date: Wed, 31 Aug 2022 07:49:39 +0200
|
|
||||||
Subject: [PATCH] Move system-upgrade plugin to core (RhBug:2054235)
|
|
||||||
|
|
||||||
Just doc fix.
|
|
||||||
|
|
||||||
= changelog =
|
|
||||||
type: bugfix
|
|
||||||
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2054235
|
|
||||||
---
|
|
||||||
doc/command_ref.rst | 3 +--
|
|
||||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/doc/command_ref.rst b/doc/command_ref.rst
|
|
||||||
index 7a02448c..bee6a109 100644
|
|
||||||
--- a/doc/command_ref.rst
|
|
||||||
+++ b/doc/command_ref.rst
|
|
||||||
@@ -182,8 +182,7 @@ Options
|
|
||||||
``--downloaddir=<path>, --destdir=<path>``
|
|
||||||
Redirect downloaded packages to provided directory. The option has to be used together with the \-\
|
|
||||||
:ref:`-downloadonly <downloadonly-label>` command line option, with the
|
|
||||||
- ``download``, ``modulesync`` or ``reposync`` commands (dnf-plugins-core) or with the ``system-upgrade`` command
|
|
||||||
- (dnf-plugins-extras).
|
|
||||||
+ ``download``, ``modulesync``, ``reposync`` or ``system-upgrade`` commands (dnf-plugins-core).
|
|
||||||
|
|
||||||
.. _downloadonly-label:
|
|
||||||
|
|
||||||
--
|
|
||||||
2.37.3
|
|
||||||
|
|
@ -1,58 +0,0 @@
|
|||||||
From a32b2f7d596247124ad6ff5ab71bc83bf78f0518 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jan Kolarik <jkolarik@redhat.com>
|
|
||||||
Date: Tue, 13 Sep 2022 13:55:35 +0200
|
|
||||||
Subject: [PATCH] Add support for rollback of group upgrade rollback
|
|
||||||
(RhBug:2016070)
|
|
||||||
|
|
||||||
= changelog =
|
|
||||||
type: bugfix
|
|
||||||
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2016070
|
|
||||||
---
|
|
||||||
dnf/transaction_sr.py | 20 ++++++++++++--------
|
|
||||||
1 file changed, 12 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dnf/transaction_sr.py b/dnf/transaction_sr.py
|
|
||||||
index 5d403a3e..b389f152 100644
|
|
||||||
--- a/dnf/transaction_sr.py
|
|
||||||
+++ b/dnf/transaction_sr.py
|
|
||||||
@@ -553,12 +553,14 @@ class TransactionReplay(object):
|
|
||||||
|
|
||||||
if action == "Install":
|
|
||||||
self._swdb_group_install(group_id, pkg_types, group_data["packages"])
|
|
||||||
- elif action == "Upgrade":
|
|
||||||
- self._swdb_group_upgrade(group_id, pkg_types, group_data["packages"])
|
|
||||||
- elif action == "Downgraded":
|
|
||||||
- self._swdb_group_downgrade(group_id, pkg_types, group_data["packages"])
|
|
||||||
elif action == "Removed":
|
|
||||||
self._swdb_group_remove(group_id, pkg_types, group_data["packages"])
|
|
||||||
+ # Groups are not versioned, but a reverse transaction could be applied,
|
|
||||||
+ # therefore we treat both actions the same way
|
|
||||||
+ elif action == "Upgrade" or action == "Upgraded":
|
|
||||||
+ self._swdb_group_upgrade(group_id, pkg_types, group_data["packages"])
|
|
||||||
+ elif action == "Downgrade" or action == "Downgraded":
|
|
||||||
+ self._swdb_group_downgrade(group_id, pkg_types, group_data["packages"])
|
|
||||||
else:
|
|
||||||
errors.append(TransactionError(
|
|
||||||
_('Unexpected value of group action "{action}" for group "{group}".')
|
|
||||||
@@ -584,12 +586,14 @@ class TransactionReplay(object):
|
|
||||||
|
|
||||||
if action == "Install":
|
|
||||||
self._swdb_environment_install(env_id, pkg_types, env_data["groups"])
|
|
||||||
- elif action == "Upgrade":
|
|
||||||
- self._swdb_environment_upgrade(env_id, pkg_types, env_data["groups"])
|
|
||||||
- elif action == "Downgraded":
|
|
||||||
- self._swdb_environment_downgrade(env_id, pkg_types, env_data["groups"])
|
|
||||||
elif action == "Removed":
|
|
||||||
self._swdb_environment_remove(env_id, pkg_types, env_data["groups"])
|
|
||||||
+ # Environments are not versioned, but a reverse transaction could be applied,
|
|
||||||
+ # therefore we treat both actions the same way
|
|
||||||
+ elif action == "Upgrade" or action == "Upgraded":
|
|
||||||
+ self._swdb_environment_upgrade(env_id, pkg_types, env_data["groups"])
|
|
||||||
+ elif action == "Downgrade" or action == "Downgraded":
|
|
||||||
+ self._swdb_environment_downgrade(env_id, pkg_types, env_data["groups"])
|
|
||||||
else:
|
|
||||||
errors.append(TransactionError(
|
|
||||||
_('Unexpected value of environment action "{action}" for environment "{env}".')
|
|
||||||
--
|
|
||||||
2.37.3
|
|
||||||
|
|
@ -1,95 +0,0 @@
|
|||||||
From 97fe94c94f030f5596a3a3ac52748bdd7544ad52 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jan Kolarik <jkolarik@redhat.com>
|
|
||||||
Date: Tue, 1 Nov 2022 09:15:08 +0000
|
|
||||||
Subject: [PATCH] Document changes to offline-upgrade command (RhBug:1939975)
|
|
||||||
|
|
||||||
A support for security filters was added to the offline-upgrade command. This commit adds the documentation into the man pages.
|
|
||||||
|
|
||||||
= changelog =
|
|
||||||
type: bugfix
|
|
||||||
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1939975
|
|
||||||
---
|
|
||||||
doc/command_ref.rst | 28 ++++++++++++++--------------
|
|
||||||
1 file changed, 14 insertions(+), 14 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/doc/command_ref.rst b/doc/command_ref.rst
|
|
||||||
index bee6a109..7279b3a4 100644
|
|
||||||
--- a/doc/command_ref.rst
|
|
||||||
+++ b/doc/command_ref.rst
|
|
||||||
@@ -113,7 +113,7 @@ Options
|
|
||||||
|
|
||||||
``--advisory=<advisory>, --advisories=<advisory>``
|
|
||||||
Include packages corresponding to the advisory ID, Eg. FEDORA-2201-123.
|
|
||||||
- Applicable for the install, repoquery, updateinfo and upgrade commands.
|
|
||||||
+ Applicable for the ``install``, ``repoquery``, ``updateinfo``, ``upgrade`` and ``offline-upgrade`` (dnf-plugins-core) commands.
|
|
||||||
|
|
||||||
``--allowerasing``
|
|
||||||
Allow erasing of installed packages to resolve dependencies. This option could be used as an alternative to the ``yum swap`` command where packages to remove are not explicitly defined.
|
|
||||||
@@ -125,12 +125,12 @@ Options
|
|
||||||
Try the best available package versions in transactions. Specifically during :ref:`dnf upgrade <upgrade_command-label>`, which by default skips over updates that can not be installed for dependency reasons, the switch forces DNF to only consider the latest packages. When running into packages with broken dependencies, DNF will fail giving a reason why the latest version can not be installed.
|
|
||||||
|
|
||||||
``--bugfix``
|
|
||||||
- Include packages that fix a bugfix issue. Applicable for the install, repoquery, updateinfo and
|
|
||||||
- upgrade commands.
|
|
||||||
+ Include packages that fix a bugfix issue.
|
|
||||||
+ Applicable for the ``install``, ``repoquery``, ``updateinfo``, ``upgrade`` and ``offline-upgrade`` (dnf-plugins-core) commands.
|
|
||||||
|
|
||||||
``--bz=<bugzilla>, --bzs=<bugzilla>``
|
|
||||||
- Include packages that fix a Bugzilla ID, Eg. 123123. Applicable for the install, repoquery,
|
|
||||||
- updateinfo and upgrade commands.
|
|
||||||
+ Include packages that fix a Bugzilla ID, Eg. 123123.
|
|
||||||
+ Applicable for the ``install``, ``repoquery``, ``updateinfo``, ``upgrade`` and ``offline-upgrade`` (dnf-plugins-core) commands.
|
|
||||||
|
|
||||||
``-C, --cacheonly``
|
|
||||||
Run entirely from system cache, don't update the cache and use it even in case it is expired.
|
|
||||||
@@ -148,8 +148,8 @@ Options
|
|
||||||
|
|
||||||
``--cve=<cves>, --cves=<cves>``
|
|
||||||
Include packages that fix a CVE (Common Vulnerabilities and Exposures) ID
|
|
||||||
- (http://cve.mitre.org/about/), Eg. CVE-2201-0123. Applicable for the install, repoquery, updateinfo,
|
|
||||||
- and upgrade commands.
|
|
||||||
+ (http://cve.mitre.org/about/), Eg. CVE-2201-0123.
|
|
||||||
+ Applicable for the ``install``, ``repoquery``, ``updateinfo``, ``upgrade`` and ``offline-upgrade`` (dnf-plugins-core) commands.
|
|
||||||
|
|
||||||
``-d <debug level>, --debuglevel=<debug level>``
|
|
||||||
Debugging output level. This is an integer value between 0 (no additional information strings) and 10 (shows all debugging information, even that not understandable to the user), default is 2. Deprecated, use ``-v`` instead.
|
|
||||||
@@ -208,8 +208,8 @@ Options
|
|
||||||
Enable additional repositories by an id or a glob.
|
|
||||||
|
|
||||||
``--enhancement``
|
|
||||||
- Include enhancement relevant packages. Applicable for the install, repoquery, updateinfo and
|
|
||||||
- upgrade commands.
|
|
||||||
+ Include enhancement relevant packages.
|
|
||||||
+ Applicable for the ``install``, ``repoquery``, ``updateinfo``, ``upgrade`` and ``offline-upgrade`` (dnf-plugins-core) commands.
|
|
||||||
|
|
||||||
.. _exclude_option-label:
|
|
||||||
|
|
||||||
@@ -280,8 +280,8 @@ Options
|
|
||||||
``--setopt`` using configuration from ``/path/dnf.conf``.
|
|
||||||
|
|
||||||
``--newpackage``
|
|
||||||
- Include newpackage relevant packages. Applicable for the install, repoquery, updateinfo and
|
|
||||||
- upgrade commands.
|
|
||||||
+ Include newpackage relevant packages.
|
|
||||||
+ Applicable for the ``install``, ``repoquery``, ``updateinfo``, ``upgrade`` and ``offline-upgrade`` (dnf-plugins-core) commands.
|
|
||||||
|
|
||||||
``--noautoremove``
|
|
||||||
Disable removal of dependencies that are no longer used. It sets
|
|
||||||
@@ -353,11 +353,11 @@ Options
|
|
||||||
|
|
||||||
``--sec-severity=<severity>, --secseverity=<severity>``
|
|
||||||
Includes packages that provide a fix for an issue of the specified severity.
|
|
||||||
- Applicable for the install, repoquery, updateinfo and upgrade commands.
|
|
||||||
+ Applicable for the ``install``, ``repoquery``, ``updateinfo``, ``upgrade`` and ``offline-upgrade`` (dnf-plugins-core) commands.
|
|
||||||
|
|
||||||
``--security``
|
|
||||||
- Includes packages that provide a fix for a security issue. Applicable for the
|
|
||||||
- upgrade command.
|
|
||||||
+ Includes packages that provide a fix for a security issue.
|
|
||||||
+ Applicable for the ``install``, ``repoquery``, ``updateinfo``, ``upgrade`` and ``offline-upgrade`` (dnf-plugins-core) commands.
|
|
||||||
|
|
||||||
.. _setopt_option-label:
|
|
||||||
|
|
||||||
--
|
|
||||||
2.38.1
|
|
||||||
|
|
@ -1,114 +0,0 @@
|
|||||||
From f1fbef17862e033bf9518bd318339b405f2664dd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Nicola Sella <nsella@redhat.com>
|
|
||||||
Date: Mon, 22 Mar 2021 17:37:51 +0100
|
|
||||||
Subject: [PATCH 1/2] Better explain traceback of rpm.error with dnf
|
|
||||||
|
|
||||||
=changelog=
|
|
||||||
msg: Add dnf.error message to explain rpm.error traceback when package not found after resolving a transaction
|
|
||||||
type: bugfix
|
|
||||||
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1815327
|
|
||||||
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1887293
|
|
||||||
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1909845
|
|
||||||
---
|
|
||||||
dnf/db/group.py | 78 ++++++++++++++++++++++++++-----------------------
|
|
||||||
1 file changed, 41 insertions(+), 37 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dnf/db/group.py b/dnf/db/group.py
|
|
||||||
index 312e3b98..3a17019a 100644
|
|
||||||
--- a/dnf/db/group.py
|
|
||||||
+++ b/dnf/db/group.py
|
|
||||||
@@ -26,6 +26,7 @@ import dnf.exceptions
|
|
||||||
from dnf.i18n import _
|
|
||||||
from dnf.util import logger
|
|
||||||
|
|
||||||
+import rpm
|
|
||||||
|
|
||||||
class PersistorBase(object):
|
|
||||||
def __init__(self, history):
|
|
||||||
@@ -316,43 +317,46 @@ class RPMTransaction(object):
|
|
||||||
modular_problems = 0
|
|
||||||
|
|
||||||
for tsi in self:
|
|
||||||
- if tsi.action == libdnf.transaction.TransactionItemAction_DOWNGRADE:
|
|
||||||
- hdr = tsi.pkg._header
|
|
||||||
- modular_problems += self._test_fail_safe(hdr, tsi.pkg)
|
|
||||||
- ts.addInstall(hdr, tsi, 'u')
|
|
||||||
- elif tsi.action == libdnf.transaction.TransactionItemAction_DOWNGRADED:
|
|
||||||
- ts.addErase(tsi.pkg.idx)
|
|
||||||
- elif tsi.action == libdnf.transaction.TransactionItemAction_INSTALL:
|
|
||||||
- hdr = tsi.pkg._header
|
|
||||||
- modular_problems += self._test_fail_safe(hdr, tsi.pkg)
|
|
||||||
- ts.addInstall(hdr, tsi, 'i')
|
|
||||||
- elif tsi.action == libdnf.transaction.TransactionItemAction_OBSOLETE:
|
|
||||||
- hdr = tsi.pkg._header
|
|
||||||
- modular_problems += self._test_fail_safe(hdr, tsi.pkg)
|
|
||||||
- ts.addInstall(hdr, tsi, 'u')
|
|
||||||
- elif tsi.action == libdnf.transaction.TransactionItemAction_OBSOLETED:
|
|
||||||
- ts.addErase(tsi.pkg.idx)
|
|
||||||
- elif tsi.action == libdnf.transaction.TransactionItemAction_REINSTALL:
|
|
||||||
- # note: in rpm 4.12 there should not be set
|
|
||||||
- # rpm.RPMPROB_FILTER_REPLACEPKG to work
|
|
||||||
- hdr = tsi.pkg._header
|
|
||||||
- modular_problems += self._test_fail_safe(hdr, tsi.pkg)
|
|
||||||
- ts.addReinstall(hdr, tsi)
|
|
||||||
- elif tsi.action == libdnf.transaction.TransactionItemAction_REINSTALLED:
|
|
||||||
- # Required when multiple packages with the same NEVRA marked as installed
|
|
||||||
- ts.addErase(tsi.pkg.idx)
|
|
||||||
- elif tsi.action == libdnf.transaction.TransactionItemAction_REMOVE:
|
|
||||||
- ts.addErase(tsi.pkg.idx)
|
|
||||||
- elif tsi.action == libdnf.transaction.TransactionItemAction_UPGRADE:
|
|
||||||
- hdr = tsi.pkg._header
|
|
||||||
- modular_problems += self._test_fail_safe(hdr, tsi.pkg)
|
|
||||||
- ts.addInstall(hdr, tsi, 'u')
|
|
||||||
- elif tsi.action == libdnf.transaction.TransactionItemAction_UPGRADED:
|
|
||||||
- ts.addErase(tsi.pkg.idx)
|
|
||||||
- elif tsi.action == libdnf.transaction.TransactionItemAction_REASON_CHANGE:
|
|
||||||
- pass
|
|
||||||
- else:
|
|
||||||
- raise RuntimeError("TransactionItemAction not handled: %s" % tsi.action)
|
|
||||||
+ try:
|
|
||||||
+ if tsi.action == libdnf.transaction.TransactionItemAction_DOWNGRADE:
|
|
||||||
+ hdr = tsi.pkg._header
|
|
||||||
+ modular_problems += self._test_fail_safe(hdr, tsi.pkg)
|
|
||||||
+ ts.addInstall(hdr, tsi, 'u')
|
|
||||||
+ elif tsi.action == libdnf.transaction.TransactionItemAction_DOWNGRADED:
|
|
||||||
+ ts.addErase(tsi.pkg.idx)
|
|
||||||
+ elif tsi.action == libdnf.transaction.TransactionItemAction_INSTALL:
|
|
||||||
+ hdr = tsi.pkg._header
|
|
||||||
+ modular_problems += self._test_fail_safe(hdr, tsi.pkg)
|
|
||||||
+ ts.addInstall(hdr, tsi, 'i')
|
|
||||||
+ elif tsi.action == libdnf.transaction.TransactionItemAction_OBSOLETE:
|
|
||||||
+ hdr = tsi.pkg._header
|
|
||||||
+ modular_problems += self._test_fail_safe(hdr, tsi.pkg)
|
|
||||||
+ ts.addInstall(hdr, tsi, 'u')
|
|
||||||
+ elif tsi.action == libdnf.transaction.TransactionItemAction_OBSOLETED:
|
|
||||||
+ ts.addErase(tsi.pkg.idx)
|
|
||||||
+ elif tsi.action == libdnf.transaction.TransactionItemAction_REINSTALL:
|
|
||||||
+ # note: in rpm 4.12 there should not be set
|
|
||||||
+ # rpm.RPMPROB_FILTER_REPLACEPKG to work
|
|
||||||
+ hdr = tsi.pkg._header
|
|
||||||
+ modular_problems += self._test_fail_safe(hdr, tsi.pkg)
|
|
||||||
+ ts.addReinstall(hdr, tsi)
|
|
||||||
+ elif tsi.action == libdnf.transaction.TransactionItemAction_REINSTALLED:
|
|
||||||
+ # Required when multiple packages with the same NEVRA marked as installed
|
|
||||||
+ ts.addErase(tsi.pkg.idx)
|
|
||||||
+ elif tsi.action == libdnf.transaction.TransactionItemAction_REMOVE:
|
|
||||||
+ ts.addErase(tsi.pkg.idx)
|
|
||||||
+ elif tsi.action == libdnf.transaction.TransactionItemAction_UPGRADE:
|
|
||||||
+ hdr = tsi.pkg._header
|
|
||||||
+ modular_problems += self._test_fail_safe(hdr, tsi.pkg)
|
|
||||||
+ ts.addInstall(hdr, tsi, 'u')
|
|
||||||
+ elif tsi.action == libdnf.transaction.TransactionItemAction_UPGRADED:
|
|
||||||
+ ts.addErase(tsi.pkg.idx)
|
|
||||||
+ elif tsi.action == libdnf.transaction.TransactionItemAction_REASON_CHANGE:
|
|
||||||
+ pass
|
|
||||||
+ else:
|
|
||||||
+ raise RuntimeError("TransactionItemAction not handled: %s" % tsi.action)
|
|
||||||
+ except rpm.error as e:
|
|
||||||
+ raise dnf.exceptions.Error(_("An rpm exception occurred: %s" % e))
|
|
||||||
if modular_problems:
|
|
||||||
raise dnf.exceptions.Error(_("No available modular metadata for modular package"))
|
|
||||||
|
|
||||||
--
|
|
||||||
2.39.0
|
|
||||||
|
|
@ -1,50 +0,0 @@
|
|||||||
From 23742561dcb168604d9668815a8c1ebbdf516d39 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jan Kolarik <jkolarik@redhat.com>
|
|
||||||
Date: Wed, 23 Nov 2022 08:44:41 +0000
|
|
||||||
Subject: [PATCH 2/2] Ignore processing variable files with unsupported
|
|
||||||
encoding (RhBug:2141215)
|
|
||||||
|
|
||||||
This issue could be seen for example when there are some temporary files stored by text editors in the `/etc/dnf/vars` folder. These files could be in the binary format and causes `UnicodeDecodeError` exception to be thrown during processing of the var files.
|
|
||||||
|
|
||||||
= changelog =
|
|
||||||
type: bugfix
|
|
||||||
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2141215
|
|
||||||
---
|
|
||||||
dnf/conf/substitutions.py | 9 ++++++---
|
|
||||||
1 file changed, 6 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dnf/conf/substitutions.py b/dnf/conf/substitutions.py
|
|
||||||
index 1281bdf0..4d0f0d55 100644
|
|
||||||
--- a/dnf/conf/substitutions.py
|
|
||||||
+++ b/dnf/conf/substitutions.py
|
|
||||||
@@ -18,13 +18,15 @@
|
|
||||||
# Red Hat, Inc.
|
|
||||||
#
|
|
||||||
|
|
||||||
+import logging
|
|
||||||
import os
|
|
||||||
import re
|
|
||||||
|
|
||||||
-import dnf
|
|
||||||
-import dnf.exceptions
|
|
||||||
+from dnf.i18n import _
|
|
||||||
|
|
||||||
ENVIRONMENT_VARS_RE = re.compile(r'^DNF_VAR_[A-Za-z0-9_]+$')
|
|
||||||
+logger = logging.getLogger('dnf')
|
|
||||||
+
|
|
||||||
|
|
||||||
class Substitutions(dict):
|
|
||||||
# :api
|
|
||||||
@@ -60,7 +62,8 @@ class Substitutions(dict):
|
|
||||||
val = fp.readline()
|
|
||||||
if val and val[-1] == '\n':
|
|
||||||
val = val[:-1]
|
|
||||||
- except (OSError, IOError):
|
|
||||||
+ except (OSError, IOError, UnicodeDecodeError) as e:
|
|
||||||
+ logger.warning(_("Error when parsing a variable from file '{0}': {1}").format(filepath, e))
|
|
||||||
continue
|
|
||||||
if val is not None:
|
|
||||||
self[fsvar] = val
|
|
||||||
--
|
|
||||||
2.39.0
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -1,45 +0,0 @@
|
|||||||
From 33c354ed52be8f8fa2d43aff8ba1fe1540e1744c 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 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
|
|
||||||
|
|
@ -1,56 +0,0 @@
|
|||||||
From 2658062d4c176201d0decf03929a89b44761c072 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Marek Blaha <mblaha@redhat.com>
|
|
||||||
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
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
|||||||
From 46aeabda1980621ca0f87528e0a81b4f59d886f0 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 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
|
|
||||||
|
|
@ -1,63 +0,0 @@
|
|||||||
From a74209ff53c9a51293b45434196dff49002c5691 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 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
|
|
||||||
|
|
@ -1,85 +0,0 @@
|
|||||||
From 29f4df4bf7bf7cb9099dbc7c834441ce4e75b623 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Miro Hrončok <miro@hroncok.cz>
|
|
||||||
Date: Wed, 23 Feb 2022 13:25:12 +0100
|
|
||||||
Subject: [PATCH] RHEL-1245: Remove /usr/bin from sys.path to avoid accidentally importing garbage
|
|
||||||
|
|
||||||
See https://bugzilla.redhat.com/show_bug.cgi?id=2057340
|
|
||||||
and https://github.com/benjaminp/six/issues/359
|
|
||||||
|
|
||||||
dnf should never import Python modules from /usr/bin but users can
|
|
||||||
have files in there that look like Python modules and Python will
|
|
||||||
try to import them and fail.
|
|
||||||
|
|
||||||
Consider a tool that is *not* written in Python and is called "copy.pyc".
|
|
||||||
Naturally, it resides in /usr/bin/copy.pyc and dnf fails:
|
|
||||||
|
|
||||||
Traceback (most recent call last):
|
|
||||||
File "/usr/bin/dnf", line 57, in <module>
|
|
||||||
from dnf.cli import main
|
|
||||||
File "/usr/lib/python3.10/site-packages/dnf/__init__.py", line 30, in <module>
|
|
||||||
import dnf.base
|
|
||||||
File "/usr/lib/python3.10/site-packages/dnf/base.py", line 31, in <module>
|
|
||||||
from copy import deepcopy
|
|
||||||
ImportError: bad magic number in 'copy': b'...'
|
|
||||||
|
|
||||||
Similarly, a tool actually written in Python, called "copy.py"
|
|
||||||
might as well own /usr/bin/copy.py and dnf fails as well:
|
|
||||||
|
|
||||||
Traceback (most recent call last):
|
|
||||||
File "/usr/bin/dnf", line 57, in <module>
|
|
||||||
from dnf.cli import main
|
|
||||||
File "/usr/lib/python3.10/site-packages/dnf/__init__.py", line 30, in <module>
|
|
||||||
import dnf.base
|
|
||||||
File "/usr/lib/python3.10/site-packages/dnf/base.py", line 31, in <module>
|
|
||||||
from copy import deepcopy
|
|
||||||
ImportError: cannot import name 'deepcopy' from 'copy' (/usr/bin/copy.py)
|
|
||||||
|
|
||||||
Either problem can happen for a variety of names.
|
|
||||||
We better not let that happen.
|
|
||||||
|
|
||||||
A more general solution that would prevent Python doing this entirely
|
|
||||||
does not exists yet, see https://discuss.python.org/t/4235
|
|
||||||
|
|
||||||
Hence, proposing this to dnf, which is a critical piece of the system.
|
|
||||||
---
|
|
||||||
bin/dnf-automatic.in | 6 +++++-
|
|
||||||
bin/dnf.in | 6 +++++-
|
|
||||||
2 files changed, 10 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/bin/dnf-automatic.in b/bin/dnf-automatic.in
|
|
||||||
index 5b06aa2..17e35a0 100755
|
|
||||||
--- a/bin/dnf-automatic.in
|
|
||||||
+++ b/bin/dnf-automatic.in
|
|
||||||
@@ -23,7 +23,11 @@ import os
|
|
||||||
import sys
|
|
||||||
|
|
||||||
here = sys.path[0]
|
|
||||||
-if here != '/usr/bin':
|
|
||||||
+if here == '/usr/bin':
|
|
||||||
+ # we never import Python modules from /usr/bin
|
|
||||||
+ # removing this lowers the risk of accidental imports of weird files
|
|
||||||
+ del sys.path[0]
|
|
||||||
+else:
|
|
||||||
# git checkout
|
|
||||||
dnf_toplevel = os.path.dirname(here)
|
|
||||||
sys.path[0] = dnf_toplevel
|
|
||||||
diff --git a/bin/dnf.in b/bin/dnf.in
|
|
||||||
index 645d0f0..55ceb3f 100755
|
|
||||||
--- a/bin/dnf.in
|
|
||||||
+++ b/bin/dnf.in
|
|
||||||
@@ -48,7 +48,11 @@ if __name__ != "__main__":
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
here = sys.path[0]
|
|
||||||
-if here != '/usr/bin':
|
|
||||||
+if here == '/usr/bin':
|
|
||||||
+ # we never import Python modules from /usr/bin
|
|
||||||
+ # removing this lowers the risk of accidental imports of weird files
|
|
||||||
+ del sys.path[0]
|
|
||||||
+else:
|
|
||||||
# git checkout
|
|
||||||
import os
|
|
||||||
dnf_toplevel = os.path.dirname(here)
|
|
||||||
--
|
|
||||||
libgit2 1.6.4
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -1,53 +0,0 @@
|
|||||||
From 8bc3b7a217de41c0a9bc52cd9cac50cde9e9ee65 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 89c6f3633f55acd31d44a487ce76dd89c12d795c 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 0077c7ea..eb1e0121 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
|
|
||||||
|
|
758
SPECS/dnf.spec
758
SPECS/dnf.spec
@ -2,13 +2,13 @@
|
|||||||
%define __cmake_in_source_build 1
|
%define __cmake_in_source_build 1
|
||||||
|
|
||||||
# default dependencies
|
# default dependencies
|
||||||
%global hawkey_version 0.63.0-8
|
%global hawkey_version 0.66.0
|
||||||
%global libcomps_version 0.1.8
|
%global libcomps_version 0.1.8
|
||||||
%global libmodulemd_version 2.9.3
|
%global libmodulemd_version 2.9.3
|
||||||
%global rpm_version 4.14.2-35
|
%global rpm_version 4.14.0
|
||||||
|
|
||||||
# conflicts
|
# conflicts
|
||||||
%global conflicts_dnf_plugins_core_version 4.0.20
|
%global conflicts_dnf_plugins_core_version 4.0.24-3
|
||||||
%global conflicts_dnf_plugins_extras_version 4.0.4
|
%global conflicts_dnf_plugins_extras_version 4.0.4
|
||||||
%global conflicts_dnfdaemon_version 0.3.19
|
%global conflicts_dnfdaemon_version 0.3.19
|
||||||
|
|
||||||
@ -65,65 +65,20 @@
|
|||||||
It supports RPMs, modules and comps groups & environments.
|
It supports RPMs, modules and comps groups & environments.
|
||||||
|
|
||||||
Name: dnf
|
Name: dnf
|
||||||
Version: 4.7.0
|
Version: 4.12.0
|
||||||
Release: 20%{?dist}.alma
|
Release: 4%{?dist}.alma
|
||||||
Summary: %{pkg_summary}
|
Summary: %{pkg_summary}
|
||||||
# For a breakdown of the licensing, see PACKAGE-LICENSING
|
# For a breakdown of the licensing, see PACKAGE-LICENSING
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
URL: https://github.com/rpm-software-management/dnf
|
URL: https://github.com/rpm-software-management/dnf
|
||||||
Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz
|
Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz
|
||||||
|
|
||||||
# Patches are stored in the upstream repository in this branch:
|
# Upstream commit which fixes leak of libsolv's page file descriptors.
|
||||||
# https://github.com/rpm-software-management/dnf/tree/rhel-8.7
|
# https://github.com/rpm-software-management/dnf/commit/5ce5ed1ea08ad6e198c1c1642c4d9ea2db6eab86
|
||||||
# Use "git format-patch -N" to regenerate the patch files.
|
Patch0001: 0001-Base.reset-plug-temporary-leak-of-libsolv-s-page-fil.patch
|
||||||
Patch0001: 0001-Set-top-level-directory-for-unittest.patch
|
Patch0002: 0002-Add-only-relevant-pkgs-to-upgrade-transaction-RhBug-.patch
|
||||||
Patch0002: 0002-dnf-rpm-miscutils.py-fix-usage-of-_.patch
|
Patch0003: 0003-Use-installed_all-because-installed_query-is-filtere.patch
|
||||||
Patch0003: 0003-Pass-the-package-to-rpmkeys-stdin.patch
|
Patch0004: 0004-Update-translations-RHEL-9.1.patch
|
||||||
Patch0004: 0004-Use-rpmkeys-alone-to-verify-signature.patch
|
|
||||||
Patch0005: 0005-Lower-_pkgverify_level-to-signature-for-signature-ch.patch
|
|
||||||
Patch0006: 0006-add-default-colors-to-documentation.patch
|
|
||||||
Patch0007: 0007-add-author.patch
|
|
||||||
Patch0008: 0008-update-colors-according-to-libdnf-libdnf-conf-Config.patch
|
|
||||||
Patch0009: 0009-Fix-reporting-irrecoverable-errors-on-packages-downl.patch
|
|
||||||
Patch0010: 0010-Add-fail_fast-parameter-to-download_payloads-methods.patch
|
|
||||||
Patch0011: 0011-comps-Make-the-install_or_skip-method-not-catch-Comp.patch
|
|
||||||
Patch0012: 0012-doc-Improve-description-of-multilib_policy-all-RhBug.patch
|
|
||||||
Patch0013: 0013-Fix-Python-dnf-API-does-not-respect-cacheonly-RhBug-.patch
|
|
||||||
Patch0014: 0014-Documentation-API-notes-for-cacheonly.patch
|
|
||||||
Patch0015: 0015-Allow-destdir-option-with-modulesync-command.patch
|
|
||||||
Patch0016: 0016-Update-translations-RhBug-2017270.patch
|
|
||||||
Patch0017: 0017-Add-documentation-for-query-api-flags.patch
|
|
||||||
Patch0018: 0018-Fix-processing-of-download-errors-RhBug-2024527.patch
|
|
||||||
Patch0019: 0019-Fix-unittests-that-relied-on-checksum-being-at-the-e.patch
|
|
||||||
Patch0020: 0020-cli-commands-history-Fix-history-undo-on-a-Reason-Ch.patch
|
|
||||||
Patch0021: 0021-Fix-remove-when-no-repos-are-enabled-RhBz-2064341.patch
|
|
||||||
Patch0022: 0022-doc-Improve-proxy-configuration-option-documentation.patch
|
|
||||||
Patch0023: 0023-Base.reset-plug-temporary-leak-of-libsolv-s-page-fil.patch
|
|
||||||
Patch0024: 0024-doc-Describe-how-gpg-keys-are-stored-for-repo_ggpche.patch
|
|
||||||
Patch0025: 0025-Add-only-relevant-pkgs-to-upgrade-transaction-RhBug-.patch
|
|
||||||
Patch0026: 0026-Use-installed_all-because-installed_query-is-filtere.patch
|
|
||||||
Patch0027: 0027-Don-t-include-resolved-advisories-for-obsoletes-with.patch
|
|
||||||
Patch0028: 0028-Set-default-value-for-variable-to-prevent-crash-RhBu.patch
|
|
||||||
Patch0029: 0029-Add-doc-related-to-destdir-and-downloadonly-options-.patch
|
|
||||||
Patch0030: 0030-Expose-plugin-unload-method-to-API-RhBug-2047251.patch
|
|
||||||
Patch0031: 0031-Add-support-for-group-upgrade-rollback-RhBug-2016070.patch
|
|
||||||
Patch0032: 0032-Fix-upgrade-from-file-to-noarch-pkg-RhBug-2006018.patch
|
|
||||||
Patch0033: 0033-Allow-passing-plugin-parameters-with-dashes-in-names.patch
|
|
||||||
Patch0034: 0034-Fix-plugins-unit-tests-unload-plugins-upon-their-del.patch
|
|
||||||
Patch0035: 0035-Move-system-upgrade-plugin-to-core-RhBug-2054235.patch
|
|
||||||
Patch0036: 0036-Add-support-for-rollback-of-group-upgrade-rollback-R.patch
|
|
||||||
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
|
|
||||||
Patch0045: 0045-RHEL-1245-Remove-usrbin-from-syspath-noimpor-garbage.patch
|
|
||||||
Patch0046: 0046-RHEL-6393-Fix-japanese-translations.patch
|
|
||||||
Patch0047: 0047-RHEL-11786-Fix-substitution-in-kvp-in-add_new_repo.patch
|
|
||||||
|
|
||||||
|
|
||||||
#Almalinux patches
|
#Almalinux patches
|
||||||
Patch10000: almalinux_bugtracker.patch
|
Patch10000: almalinux_bugtracker.patch
|
||||||
@ -141,7 +96,6 @@ Requires: python-dbus
|
|||||||
Requires: %{_bindir}/sqlite3
|
Requires: %{_bindir}/sqlite3
|
||||||
%else
|
%else
|
||||||
Recommends: (python3-dbus if NetworkManager)
|
Recommends: (python3-dbus if NetworkManager)
|
||||||
Recommends: (%{_bindir}/sqlite3 if bash-completion)
|
|
||||||
%endif
|
%endif
|
||||||
Provides: dnf-command(alias)
|
Provides: dnf-command(alias)
|
||||||
Provides: dnf-command(autoremove)
|
Provides: dnf-command(autoremove)
|
||||||
@ -211,6 +165,8 @@ Requires: python3-gpg
|
|||||||
Requires: %{name}-data = %{version}-%{release}
|
Requires: %{name}-data = %{version}-%{release}
|
||||||
%if 0%{?fedora}
|
%if 0%{?fedora}
|
||||||
Recommends: deltarpm
|
Recommends: deltarpm
|
||||||
|
# required for DNSSEC main.gpgkey_dns_verification https://dnf.readthedocs.io/en/latest/conf_ref.html
|
||||||
|
Recommends: python3-unbound
|
||||||
%endif
|
%endif
|
||||||
Requires: python3-hawkey >= %{hawkey_version}
|
Requires: python3-hawkey >= %{hawkey_version}
|
||||||
Requires: python3-libdnf >= %{hawkey_version}
|
Requires: python3-libdnf >= %{hawkey_version}
|
||||||
@ -218,12 +174,10 @@ Requires: python3-libcomps >= %{libcomps_version}
|
|||||||
Requires: python3-libdnf
|
Requires: python3-libdnf
|
||||||
BuildRequires: python3-rpm >= %{rpm_version}
|
BuildRequires: python3-rpm >= %{rpm_version}
|
||||||
Requires: python3-rpm >= %{rpm_version}
|
Requires: python3-rpm >= %{rpm_version}
|
||||||
# required for DNSSEC main.gpgkey_dns_verification https://dnf.readthedocs.io/en/latest/conf_ref.html
|
|
||||||
Recommends: python3-unbound
|
|
||||||
%if 0%{?rhel} && 0%{?rhel} <= 7
|
%if 0%{?rhel} && 0%{?rhel} <= 7
|
||||||
Requires: rpm-plugin-systemd-inhibit
|
Requires: rpm-plugin-systemd-inhibit
|
||||||
%else
|
%else
|
||||||
Recommends: rpm-plugin-systemd-inhibit
|
Recommends: (rpm-plugin-systemd-inhibit if systemd)
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%description -n python3-%{name}
|
%description -n python3-%{name}
|
||||||
@ -308,22 +262,13 @@ popd
|
|||||||
|
|
||||||
|
|
||||||
%post automatic
|
%post automatic
|
||||||
%systemd_post dnf-automatic.timer
|
%systemd_post dnf-automatic.timer dnf-automatic-notifyonly.timer dnf-automatic-download.timer dnf-automatic-install.timer
|
||||||
%systemd_post dnf-automatic-notifyonly.timer
|
|
||||||
%systemd_post dnf-automatic-download.timer
|
|
||||||
%systemd_post dnf-automatic-install.timer
|
|
||||||
|
|
||||||
%preun automatic
|
%preun automatic
|
||||||
%systemd_preun dnf-automatic.timer
|
%systemd_preun dnf-automatic.timer dnf-automatic-notifyonly.timer dnf-automatic-download.timer dnf-automatic-install.timer
|
||||||
%systemd_preun dnf-automatic-notifyonly.timer
|
|
||||||
%systemd_preun dnf-automatic-download.timer
|
|
||||||
%systemd_preun dnf-automatic-install.timer
|
|
||||||
|
|
||||||
%postun automatic
|
%postun automatic
|
||||||
%systemd_postun_with_restart dnf-automatic.timer
|
%systemd_postun_with_restart dnf-automatic.timer dnf-automatic-notifyonly.timer dnf-automatic-download.timer dnf-automatic-install.timer
|
||||||
%systemd_postun_with_restart dnf-automatic-notifyonly.timer
|
|
||||||
%systemd_postun_with_restart dnf-automatic-download.timer
|
|
||||||
%systemd_postun_with_restart dnf-automatic-install.timer
|
|
||||||
|
|
||||||
|
|
||||||
%files -f %{name}.lang
|
%files -f %{name}.lang
|
||||||
@ -426,152 +371,155 @@ popd
|
|||||||
%{python3_sitelib}/%{name}/automatic/
|
%{python3_sitelib}/%{name}/automatic/
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Wed Mar 27 2024 Eduard Abdullin <eabdullin@almalinux.org> - 4.7.0-20.alma
|
* Tue Nov 15 2022 Eduard Abdullin <eabdullin@almalinux.org> - 4.12.0-4.alma
|
||||||
- AlmaLinux changes
|
- Added patch for almalinux bugtracker
|
||||||
|
|
||||||
* Mon Oct 16 2023 Jaroslav Rohel <jrohel@redhat.com> - 4.7.0-20
|
* Thu Sep 15 2022 Marek Blaha <mblaha@redhat.com> - 4.12.0-4
|
||||||
- Remove /usr/bin from sys.path to avoid accidentally importing garbage (RHEL-1245)
|
|
||||||
- Fix japanese translations (RHEL-6393)
|
|
||||||
- Fix substitution in kay-value-pair list in add_new_repo (RHEL-11786)
|
|
||||||
* Wed Jun 28 2023 Jaroslav Rohel <jrohel@redhat.com> - 4.7.0-19
|
|
||||||
- Document symbols in `dnf history list` output (RhBug:2172067)
|
|
||||||
* Wed May 31 2023 Nicola Sella <nsella@redhat.com> - 4.7.0-18
|
|
||||||
- Return an error when transaction fails (RhBug:2170093)
|
|
||||||
|
|
||||||
* Wed May 17 2023 Jaroslav Rohel <jrohel@redhat.com> - 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 <mblaha@redhat.com> - 4.7.0-16
|
|
||||||
- Update translations
|
- Update translations
|
||||||
|
|
||||||
* Thu Jan 05 2023 Nicola Sella <nsella@redhat.com> - 4.7.0-15
|
* Tue Jul 19 2022 Lukas Hrazky <lhrazky@redhat.com> - 4.12.0-3
|
||||||
- Ignore processing variable files with unsupported encoding (RhBug:2141215)
|
|
||||||
- Better explain traceback of rpm.error with dnf
|
|
||||||
* Wed Nov 30 2022 Nicola Sella <nsella@redhat.com> - 4.7.0-14
|
|
||||||
- Document changes to offline-upgrade command (RhBug:1939975,2139324)
|
|
||||||
|
|
||||||
* Wed Oct 26 2022 Nicola Sella <nsella@redhat.com> - 4.7.0-13
|
|
||||||
- Add support for rollback of group upgrade rollback (RhBug:2016070)
|
|
||||||
- Move system-upgrade plugin to core (RhBug:2054235)
|
|
||||||
- Fix plugins unit tests + unload plugins upon their deletion (RhBug:2134309)
|
|
||||||
|
|
||||||
* Tue Sep 13 2022 Lukas Hrazky <lhrazky@redhat.com> - 4.7.0-12
|
|
||||||
- Allow passing plugin parameters with dashes in names (RhBug:1980712)
|
|
||||||
- Fix upgrade from file to noarch pkg (RhBug:2006018)
|
|
||||||
- Add support for group upgrade rollback (RhBug:2016070)
|
|
||||||
- Expose plugin unload method to API (RhBug:2047251)
|
|
||||||
- Add doc related to --destdir and --downloadonly options (RhBug:2100811)
|
|
||||||
- Set default value for variable to prevent crash (RhBug:2091636)
|
|
||||||
- Don't include resolved advisories for obsoletes with sec. filters (RhBug:2101421)
|
|
||||||
|
|
||||||
* Tue Jul 19 2022 Lukas Hrazky <lhrazky@redhat.com> - 4.7.0-11
|
|
||||||
- [doc] Describe how gpg keys are stored for `repo_ggpcheck`
|
|
||||||
- Add only relevant pkgs to upgrade transaction (RhBug:2097757)
|
- Add only relevant pkgs to upgrade transaction (RhBug:2097757)
|
||||||
|
|
||||||
* Tue May 24 2022 Richard W.M. Jones <rjones@redhat.com> - 4.7.0-10
|
* Thu Apr 28 2022 Richard W.M. Jones <rjones@redhat.com> - 4.12.0-2
|
||||||
- Backport fix for leaks of libsolv's page file descriptors in Base object
|
- Backport fix for leak of libsolv's page file descriptors
|
||||||
resolves: rhbz#2087734
|
|
||||||
- Include instructions for regenerating patches.
|
|
||||||
|
|
||||||
* Wed May 04 2022 Lukas Hrazky <lhrazky@redhat.com> - 4.7.0-8
|
* Thu Apr 28 2022 Pavla Kratochvilova <pkratoch@redhat.com> - 4.12.0-1
|
||||||
- Add documentation for query api flags
|
|
||||||
- Fix processing of download errors
|
|
||||||
- Fix history undo on a Reason Change
|
|
||||||
- Fix remove when no repos are enabled
|
|
||||||
- Improve "proxy" configuration option documentation
|
|
||||||
|
|
||||||
* Fri Jan 14 2022 Pavla Kratochvilova <pkratoch@redhat.com> - 4.7.0-7
|
|
||||||
- Rebuild with new release number
|
|
||||||
|
|
||||||
* Tue Jan 11 2022 Pavla Kratochvilova <pkratoch@redhat.com> - 4.7.0-6
|
|
||||||
- Allow destdir option with modulesync command
|
- Allow destdir option with modulesync command
|
||||||
|
- Add documentation for query api flags (RhBug:2035577)
|
||||||
|
- Fix swap command to work with local rpm files correctly (RhBug:2036434)
|
||||||
|
- Fix regression in verifying signatures using rpmkeys
|
||||||
|
- Fix decompression of groups.xml (RhBug:2030255)
|
||||||
|
- Fix history undo on a Reason Change (RhBug:2010259,2053014)
|
||||||
|
- Remove /usr/bin from sys.path to avoid accidentally importing garbage
|
||||||
|
- Fix python3.11 build: remove deprecated, update traceback regex
|
||||||
|
- fix dnf mark error when history sqlite missing
|
||||||
|
- [doc] clarify effect of --enablerepo and --disablerepo options (RhBug:2031414)
|
||||||
|
- [doc] default values for module_obsoletes and module_stream_switch (RhBug: 2051846)
|
||||||
|
- dnf.conf: hint users where to find more info about defaults and other options
|
||||||
|
- Fix unittests that relied on checksum being at the end of solvfiles
|
||||||
|
- completion: remove unnecessary echo
|
||||||
|
- Fix remove when no repos are enabled (RhBug:2064341)
|
||||||
|
- Add loongarch support for dnf
|
||||||
|
- Add spaces between words to fix typos (RhBug:2077296)
|
||||||
|
- [doc] Improve "proxy" configuration option documentation (RhBug:2072332)
|
||||||
|
- Fix download errors handling in non-english locales (RhBug:2024527)
|
||||||
|
|
||||||
* Tue Nov 09 2021 Pavla Kratochvilova <pkratoch@redhat.com> - 4.7.0-5
|
* Mon Feb 07 2022 Pavla Kratochvilova <pkratoch@redhat.com> - 4.10.0-4
|
||||||
- Bump release number because of conflicting version of 8.5 build
|
- Use rpm.TransactionSet.dbCookie() to determining if rpmdb has changed (RhBug:2043476)
|
||||||
|
|
||||||
* Tue Nov 09 2021 Pavla Kratochvilova <pkratoch@redhat.com> - 4.7.0-4
|
* Mon Jan 24 2022 Pavla Kratochvilova <pkratoch@redhat.com> - 4.10.0-3
|
||||||
- Add fail_fast parameter to _download_remote_payloads() method
|
- Don't recommend python3-unbound (RhBug:1947925)
|
||||||
- Throw CompsError when a group or environment is not found for the install methods
|
- Recommend rpm-plugin-systemd-inhibit only if systemd (RhBug:1947924)
|
||||||
- Respect cacheonly in python dnf API (RhBug:1862970)
|
- Don't recommend %{_bindir}/sqlite3 for bash-completion (RhBug:1947924)
|
||||||
|
|
||||||
|
* Tue Dec 07 2021 Pavla Kratochvilova <pkratoch@redhat.com> - 4.10.0-2
|
||||||
|
- Respect cacheonly in python dnf API (RhBug:2026849)
|
||||||
- [doc] Improve description of multilib_policy=all (RhBug:1996681,1995630)
|
- [doc] Improve description of multilib_policy=all (RhBug:1996681,1995630)
|
||||||
|
|
||||||
|
* Mon Oct 25 2021 Pavla Kratochvilova <pkratoch@redhat.com> - 4.10.0-1
|
||||||
|
- Update to 4.10.0
|
||||||
|
- Do not assume that a remote rpm is complete if present
|
||||||
|
- Use positive percentage for "Failed delta RPMs" message
|
||||||
|
- Remove redundant new line in Groups output
|
||||||
|
- Format empty group names outputs to <name-unset>
|
||||||
- [doc] Document default colors
|
- [doc] Document default colors
|
||||||
|
- Use rpmkeys alone to verify signature
|
||||||
|
- Add dnf.error message to explain rpm.error traceback when package not found after resolving a transaction (RhBug:1815327,1887293,1909845)
|
||||||
|
- [API] Add method "set_or_append_opt_value" to BaseConfig (RhBug:1967925)
|
||||||
|
- Add aliases for commands: info, updateinfo, provides (RhBug:1938333)
|
||||||
|
- Add report about demodularized rpms into module info (RhBug:1805260)
|
||||||
|
- Remove DNSSEC errors on COPR group email keys
|
||||||
|
- Add support for autodetecting packages to be excluded from being installed as weak dependencies (RhBug:1699672)
|
||||||
|
- Add support for excluding packages to be installed as weak dependencies (RhBug:1699672)
|
||||||
|
- Add fail_fast parameter to download_payloads methods for use in reposync
|
||||||
|
- Acquire all relevant locks during "dnf clean"
|
||||||
|
- API: Raise CompsError when group/env not found in install_group and install_environment (RhBug:1947958)
|
||||||
|
|
||||||
* Mon Aug 16 2021 Pavla Kratochvilova <pkratoch@redhat.com> - 4.7.0-3
|
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 4.7.0-2
|
||||||
- Improve signature checking using rpmkeys (RhBug:1967454)
|
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
|
||||||
|
Related: rhbz#1991688
|
||||||
|
|
||||||
* Tue Jul 27 2021 Pavla Kratochvilova <pkratoch@redhat.com> - 4.7.0-2
|
* Wed Jun 02 2021 Pavla Kratochvilova <pkratoch@redhat.com> - 4.7.0-1
|
||||||
- Fix covscan issue: dnf/rpm/miscutils.py: fix usage of _()
|
|
||||||
|
|
||||||
* Wed May 19 2021 Pavla Kratochvilova <pkratoch@redhat.com> - 4.7.0-1
|
|
||||||
- Update to 4.7.0
|
- Update to 4.7.0
|
||||||
- New optional parameter for filter_modules enables following modular obsoletes based on a config option module_obsoletes
|
|
||||||
- Fix module remove --all when no match spec (RhBug:1904490)
|
|
||||||
- Make an error message more informative (RhBug:1814831)
|
|
||||||
- Expand history to full term size when output is redirected (RhBug:1852577) (RhBug:1852577,1906970)
|
|
||||||
- Print additional information when verifying GPG key using DNS
|
|
||||||
- Enhanced detection of plugins removed in transaction (RhBug:1929163)
|
|
||||||
- Improve repo config path ordering to fix a comps merging issue (RhBug:1928181)
|
- Improve repo config path ordering to fix a comps merging issue (RhBug:1928181)
|
||||||
- Keep reason when package is removed (RhBug:1921063)
|
- Keep reason when package is removed (RhBug:1921063)
|
||||||
- Improve mechanism for application of security filters (RhBug:1918475)
|
- Improve mechanism for application of security filters (RhBug:1918475)
|
||||||
|
- [doc] Add description for new API
|
||||||
- [API] Add new method for reset of security filters
|
- [API] Add new method for reset of security filters
|
||||||
- Remove hardcoded logfile permissions (RhBug:1910084)
|
|
||||||
- Preserve file mode during log rotation (RhBug:1910084)
|
|
||||||
- Increase loglevel in case of invalid config options
|
|
||||||
- Prevent traceback (catch ValueError) if pkg is from cmdline
|
|
||||||
- Check for specific key string when verifing signatures (RhBug:1915990)
|
|
||||||
- Use rpmkeys binary to verify package signature (RhBug:1915990)
|
|
||||||
- [doc] Improve description of modular filtering
|
|
||||||
- [doc] deprecated alias for dnf repoquery --deplist <deplist_option-label>
|
|
||||||
- [doc] Describe install with just a name and obsoletes (RhBug:1902279)
|
|
||||||
- [doc] Fix: "sslcacert" contains path to the file
|
|
||||||
- [doc] Added proxy ssl configuration options, increase libdnf require
|
|
||||||
- [doc] Update documentation for module_obsoletes and module_stream_switch
|
|
||||||
- [doc] Improve documentation for Hotfix repositories
|
- [doc] Improve documentation for Hotfix repositories
|
||||||
- [doc] fix: "makecache" command downloads only enabled repositories
|
- [doc] fix: "makecache" command downloads only enabled repositories
|
||||||
|
- Use libdnf.utils.checksum_{check,value}
|
||||||
- [doc] Add info that maximum parallel downloads is 20
|
- [doc] Add info that maximum parallel downloads is 20
|
||||||
|
- Increase loglevel in case of invalid config options
|
||||||
- [doc] installonly_limit documentation follows behavior
|
- [doc] installonly_limit documentation follows behavior
|
||||||
- [doc] Add documentation for config option sslverifystatus (RhBug:1814383)
|
- Prevent traceback (catch ValueError) if pkg is from cmdline
|
||||||
|
- Add documentation for config option sslverifystatus (RhBug:1814383)
|
||||||
|
- Check for specific key string when verifing signatures (RhBug:1915990)
|
||||||
|
- Use rpmkeys binary to verify package signature (RhBug:1915990)
|
||||||
|
- Bugs fixed (RhBug:1916783)
|
||||||
|
- Preserve file mode during log rotation (RhBug:1910084)
|
||||||
|
|
||||||
|
* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 4.6.1-2
|
||||||
|
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
|
||||||
|
|
||||||
|
* Tue Mar 02 2021 Nicola Sella <nsella@redhat.com> - 4.6.1-1
|
||||||
|
- Update to 4.6.1
|
||||||
|
- Fix recreate script
|
||||||
|
- Add unit test for fill_sack_from_repos_in_cache (RhBug:1865803)
|
||||||
|
- Add docs and examples for fill_sack_from_repos_in_cache (RhBug:1865803)
|
||||||
|
- [spec] remove python2 support
|
||||||
|
- Remove problematic language
|
||||||
- The noroot plugin no longer exists, remove mention
|
- The noroot plugin no longer exists, remove mention
|
||||||
|
- Run tests for fill_sack_from_repos_in_cache in installroot (RhBug:1865803)
|
||||||
|
- expand history to full term size when output is redirected (RhBug:1852577) (RhBug:1852577,1906970)
|
||||||
|
- [doc] Fix: "sslcacert" contains path to the file
|
||||||
|
- [doc] Added proxy ssl configuration options, increase libdnf require
|
||||||
|
- Set persistdir and substitutions for fill_sack_from_repos_in_cache tests (RhBug:1865803)
|
||||||
|
- Update documentation for module_obsoletes and module_stream_switch
|
||||||
|
- print additional information when verifying GPG key using DNS
|
||||||
|
- Bugs fixed (RhBug:1897573)
|
||||||
|
- Remove hardcoded logfile permissions (RhBug:1910084)
|
||||||
|
- Enhanced detection of plugins removed in transaction (RhBug:1929163)
|
||||||
|
|
||||||
* Thu Feb 11 2021 Nicola Sella <nsella@redhat.com> - 4.4.2-10
|
* Thu Jan 28 2021 Nicola Sella <nsella@redhat.com> - 4.6.0-1
|
||||||
- Allow stream switching if option enabled
|
- Update to 4.6.0
|
||||||
|
|
||||||
* Tue Feb 09 2021 Nicola Sella <nsella@redhat.com> - 4.4.2-9
|
|
||||||
- Set persistdir for fill_sack_from_repos_in_cache tests (RhBug:1865803)
|
|
||||||
|
|
||||||
* Mon Feb 08 2021 Nicola Sella <nsella@redhat.com> - 4.4.2-8
|
|
||||||
- Add api function: fill_sack_from_repos_in_cache (RhBug:1865803)
|
|
||||||
- Add tests and docs for fill_sack_from_repos_in_cache (RhBug:1865803)
|
|
||||||
- Run tests for fill_sack_from_repos_in_cache in installroot
|
|
||||||
|
|
||||||
* Fri Feb 05 2021 Nicola Sella <nsella@redhat.com> - 4.4.2-7
|
|
||||||
- Make log rotated permissions match initial log permissions (RhBug:1894344)
|
|
||||||
- Add new attribute for Package - from_repo
|
|
||||||
- Change behaviour of Package().from_repo
|
|
||||||
- Package: add a get_header() method
|
|
||||||
|
|
||||||
* Fri Jan 29 2021 Nicola Sella <nsella@redhat.com> - 4.4.2-6
|
|
||||||
- yum.misc.decompress() to handle uncompressed files (RhBug:1895059)
|
|
||||||
- Module switch command
|
|
||||||
|
|
||||||
* Fri Jan 15 2021 Nicola Sella <nsella@redhat.com> - 4.4.2-5
|
|
||||||
- Fix patch for dnf history operations
|
|
||||||
|
|
||||||
* Thu Jan 14 2021 Nicola Sella <nsella@redhat.com> - 4.4.2-4
|
|
||||||
- `dnf history` operations that work with comps correctly
|
|
||||||
- Remove sourcepackages from install/upgrade set
|
|
||||||
- Fix documentation of globs not supporting curly brackets
|
|
||||||
|
|
||||||
* Thu Jan 07 2021 Nicola Sella <nsella@redhat.com> - 4.4.2-3
|
|
||||||
- Backport patches
|
|
||||||
- Log scriptlets output also for API users (RhBug:1847340)
|
- Log scriptlets output also for API users (RhBug:1847340)
|
||||||
- Post transaction summary is logged for API users (RhBug:1855158)
|
- Fix module remove --all when no match spec (RhBug:1904490)
|
||||||
|
- yum.misc.decompress() to handle uncompressed files (RhBug:1895059)
|
||||||
|
- Make an error message more informative (RhBug:1814831)
|
||||||
|
- Add deprecation notice to help messages of deplist
|
||||||
|
- Remove Base._history_undo_operations() as it was replaced with transaction_sr code
|
||||||
|
- cli/output: Return number of listed packages from listPkgs()
|
||||||
|
- Clean up history command error handling
|
||||||
|
- [doc] Describe install with just a name and obsoletes (RhBug:1902279)
|
||||||
|
- Add api function fill_sack_from_repos_in_cache to allow loading a repo cache with repomd and (solv file or primary xml) only (RhBug:1865803)
|
||||||
|
- Packages installed/removed via DNF API are logged into dnf.log (RhBug:1855158)
|
||||||
|
- Support comps groups in history redo (RhBug:1657123,1809565,1809639)
|
||||||
|
- Support comps groups in history rollback (RhBug:1657123,1809565,1809639)
|
||||||
|
- Support comps groups in history undo (RhBug:1657123,1809565,1809639)
|
||||||
|
- New optional parameter for filter_modules enables following modular obsoletes based on a config option module_obsoletes
|
||||||
|
- Add get_header() method to the Package class (RhBug:1876606)
|
||||||
|
- Fix documentation of globs not supporting curly brackets (RhBug:1913418)
|
||||||
|
|
||||||
* Wed Nov 11 2020 Nicola Sella <nsella@redhat.com> - 4.4.2-2
|
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.5.2-2
|
||||||
- Backport patch Revert "Fix --setopt=cachedir writing outside of installroot"
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||||
|
|
||||||
* Tue Nov 10 2020 Nicola Sella <nsella@redhat.com> - 4.4.2-1
|
* Thu Dec 03 2020 Nicola Sella <nsella@redhat.com> - 4.5.2-1
|
||||||
|
- Update to 4.5.2
|
||||||
|
- Change behaviour of Package().from_repo
|
||||||
|
|
||||||
|
* Wed Dec 02 2020 Nicola Sella <nsella@redhat.com> - 4.5.1-1
|
||||||
|
- Add a get_current() method to SwdbInterface
|
||||||
|
- Add `from_repo` attribute for Package class (RhBug:1898968,1879168)
|
||||||
|
- Correct description of Package().reponane attribute
|
||||||
|
- Add unittest for new API
|
||||||
|
- Make rotated log file (mode, owner, group) match previous log settings (RhBug:1894344)
|
||||||
|
- [doc] Improve description of modular filtering
|
||||||
|
- [doc] add documentation for from_repo
|
||||||
|
- [doc] deprecated alias for dnf repoquery --deplist <deplist_option-label>
|
||||||
|
- New config option module_allow_stream_switch allows switching enabled streams
|
||||||
|
|
||||||
|
* Mon Nov 23 2020 Nicola Sella <nsella@redhat.com> - 4.4.2-1
|
||||||
- Update to 4.4.2
|
- Update to 4.4.2
|
||||||
- spec: Fix building with new cmake macros (backport from downstream)
|
- spec: Fix building with new cmake macros (backport from downstream)
|
||||||
- Warn about key retrieval over http:
|
- Warn about key retrieval over http:
|
||||||
@ -579,99 +527,114 @@ popd
|
|||||||
- Add vendor to dnf API (RhBug:1876561)
|
- Add vendor to dnf API (RhBug:1876561)
|
||||||
- Add allow_vendor_change option (RhBug:1788371) (RhBug:1788371)
|
- Add allow_vendor_change option (RhBug:1788371) (RhBug:1788371)
|
||||||
|
|
||||||
* Tue Jul 28 2020 Marek Blaha <mblaha@redhat.com> - 4.2.23-4
|
* Thu Oct 29 2020 Adam Williamson <awilliam@redhat.com> - 4.4.0-3
|
||||||
- Update translations
|
- Rebuild to keep NVR ahead of Fedora 32
|
||||||
|
|
||||||
* Fri Jul 17 2020 Nicola Sella <nsella@redhat.com> - 4.2.23-3
|
* Tue Oct 13 2020 Ales Matej <amatej@redhat.com> - 4.4.0-2
|
||||||
|
- Increase required libdnf (hawkey) version
|
||||||
|
|
||||||
|
* Wed Oct 07 2020 Nicola Sella <nsella@redhat.com> - 4.4.0-1
|
||||||
|
- Update to 4.4.0
|
||||||
|
- Handle empty comps group name (RhBug:1826198)
|
||||||
|
- Remove dead history info code (RhBug:1845800)
|
||||||
|
- Improve command emmitter in dnf-automatic
|
||||||
|
- Enhance --querytags and --qf help output
|
||||||
|
- [history] add option --reverse to history list (RhBug:1846692)
|
||||||
- Add logfilelevel configuration (RhBug:1802074)
|
- Add logfilelevel configuration (RhBug:1802074)
|
||||||
|
- Don't turn off stdout/stderr logging longer than necessary (RhBug:1843280)
|
||||||
|
- Mention the date/time that updates were applied
|
||||||
|
- [dnf-automatic] Wait for internet connection (RhBug:1816308)
|
||||||
- [doc] Enhance repo variables documentation (RhBug:1848161,1848615)
|
- [doc] Enhance repo variables documentation (RhBug:1848161,1848615)
|
||||||
|
- Add librepo logger for handling messages from librepo (RhBug:1816573)
|
||||||
|
- [doc] Add package-name-spec to the list of possible specs
|
||||||
|
- [doc] Do not use <package-nevr-spec>
|
||||||
|
- [doc] Add section to explain -n, -na and -nevra suffixes
|
||||||
|
- Add alias 'ls' for list command
|
||||||
|
- README: Reference Fedora Weblate instead of Zanata
|
||||||
|
- remove log_lock.pid after reboot(Rhbug:1863006)
|
||||||
|
- comps: Raise CompsError when removing a non-existent group
|
||||||
|
- Add methods for working with comps to RPMTransactionItemWrapper
|
||||||
|
- Implement storing and replaying a transaction
|
||||||
|
- Log failure to access last makecache time as warning
|
||||||
|
- [doc] Document Substitutions class
|
||||||
|
- Dont document removed attribute ``reports`` for get_best_selector
|
||||||
|
- Change the debug log timestamps from UTC to local time
|
||||||
|
|
||||||
* Wed Jun 10 2020 Ales Matej <amatej@redhat.com> - 4.2.23-2
|
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.23-2
|
||||||
- Handle empty comps group name (RhBug:1826198)
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
* Tue Jun 02 2020 Nicola Sella <nsella@redhat.com> - 4.2.23-1
|
* Tue Jun 02 2020 Nicola Sella <nsella@redhat.com> - 4.2.23-1
|
||||||
- Update to 4.2.23
|
- Fix behavior of install-n, autoremove-n, remove-n, repoquery-n
|
||||||
- Fix behavior of `install-n` command
|
- Fix behavior of localinstall and list-updateinfo aliases
|
||||||
- Fix behavior of `localinstall` command
|
- Add updated field to verbose output of updateinfo list (RhBug: 1801092)
|
||||||
- Fix behavior of `autoremove-n` command
|
- Add comment option to transaction (RhBug:1773679)
|
||||||
- Fix behavior of `remove-n` command
|
|
||||||
- Fix behavior of `repoquery-n` command
|
|
||||||
- Fix behavior of `list-updateinfo` and related aliases
|
|
||||||
- Refactor code in `repoinfo` to use opts.command correctly.
|
|
||||||
- Add myself to list of contributors
|
|
||||||
- Add updated to verbose output of updateinfo list (RhBug: 1801092)
|
|
||||||
- Fix a couple of missed grammatical errors in updateinfo docs.
|
|
||||||
- Add comment option (RhBug:1773679)
|
|
||||||
- Better wording of dnssec email parsing error.
|
|
||||||
- Print nicer DnssecErrors (RhBug:1813244)
|
|
||||||
- Add new API for handling gpg signatures (RhBug:1339617)
|
- Add new API for handling gpg signatures (RhBug:1339617)
|
||||||
- Verify GPG signatures (RhBug:1793298)
|
- Verify GPG signatures when running dnf-automatic (RhBug:1793298)
|
||||||
- Fix a syntax typo
|
- Fix up Conflicts: on python-dnf-plugins-extras
|
||||||
- Fix up Conflicts: on python-dnf-plugins-extras so it actually works
|
|
||||||
- [doc] Move yum-plugin-post-transaction-actions to dnf-plugins-core
|
- [doc] Move yum-plugin-post-transaction-actions to dnf-plugins-core
|
||||||
- Remove args "--set-enabled", "--set-disabled" from DNF (RhBug:1727882)
|
- Remove args "--set-enabled", "--set-disabled" from DNF (RhBug:1727882)
|
||||||
- Search command is now alphabetical (RhBug:1811802)
|
- Search command is now alphabetical (RhBug:1811802)
|
||||||
- Fix downloading packages with full URL as their location
|
- Fix downloading packages with full URL as their location
|
||||||
- repo: catch libdnf.error.Error in addition to RuntimeError in load() (RhBug:1788182)
|
- repo: catch libdnf.error.Error in addition to RuntimeError in load() (RhBug:1788182)
|
||||||
- History tbl to max size when redirect to file (RhBug:1786335,1786316)
|
- History table to max size when redirect to file (RhBug:1786335,1786316)
|
||||||
|
|
||||||
* Mon Apr 06 2020 Ales Matej <amatej@redhat.com> - 4.2.21-1
|
* Sat May 23 2020 Miro Hrončok <mhroncok@redhat.com> - 4.2.21-2
|
||||||
|
- Rebuilt for Python 3.9
|
||||||
|
|
||||||
|
* Wed Apr 01 2020 Aleš Matěj <amatej@redhat.com> - 4.2.21-1
|
||||||
- Update to 4.2.21
|
- Update to 4.2.21
|
||||||
- Running with tsflags=test doesn't update log files
|
|
||||||
- Allow disabling individual aliases config files (RhBug:1680566)
|
|
||||||
- List arguments: only first empty value is used (RhBug:1788154)
|
|
||||||
- Report missing profiles or default as broken module (RhBug:1790967)
|
|
||||||
- Format history table to use actual terminal width (RhBug:1786316)
|
|
||||||
- Handle custom exceptions from libdnf
|
|
||||||
- Fix _skipped_packages to return only skipped (RhBug:1774617)
|
|
||||||
- Add setter for tsi.reason
|
|
||||||
- Add new hook for commands: Run_resolved
|
|
||||||
- Clean also .yaml repository metadata
|
|
||||||
- Use WantedBy=timers.target for all dnf timers (RhBug:1798475)
|
|
||||||
- Fix completion helper if solv files not in roon cache (RhBug:1714376)
|
- Fix completion helper if solv files not in roon cache (RhBug:1714376)
|
||||||
- Add bash completion for 'dnf module' (RhBug:1565614)
|
- Add bash completion for 'dnf module' (RhBug:1565614)
|
||||||
- Check command no longer reports missing %pre and %post deps (RhBug:1543449)
|
- Check command no longer reports missing %pre and %post deps (RhBug:1543449)
|
||||||
- Check if arguments can be encoded in 'utf-8'
|
- Check if arguments can be encoded in 'utf-8'
|
||||||
|
- [doc] Remove incorrect information about includepkgs (RhBug:1813460)
|
||||||
- Fix crash with "dnf -d 6 repolist" (RhBug:1812682)
|
- Fix crash with "dnf -d 6 repolist" (RhBug:1812682)
|
||||||
- Do not print the first empty line for repoinfo
|
- Do not print the first empty line for repoinfo
|
||||||
- Redirect logger and repo download progress when --verbose
|
- Redirect logger and repo download progress when --verbose
|
||||||
- Respect repo priority when listing packages (RhBug:1800342)
|
- Respect repo priority when listing packages (RhBug:1800342)
|
||||||
- Remove misleading green color from the "broken dependencies" lines (RhBug:1814192)
|
|
||||||
- [repoquery] Fix rich deps matching by using provide expansion from libdnf (RhBug:1534123)
|
|
||||||
- [repoquery] Do not protect running kernel for --unsafisfied (RhBug:1750745)
|
|
||||||
- [doc] Document the retries config option only works for packages (RhBug:1783041)
|
|
||||||
- [doc] repoquery --what* with multiple arguments (RhBug:1790262)
|
|
||||||
- [doc] Remove incorrect information about includepkgs (RhBug:1813460)
|
|
||||||
- [doc] Document that list and info commands respect repo priority
|
- [doc] Document that list and info commands respect repo priority
|
||||||
|
- [repoquery] Do not protect running kernel for --unsafisfied (RhBug:1750745)
|
||||||
|
- Remove misleading green color from the "broken dependencies" lines (RhBug:1814192)
|
||||||
- [doc] Document color options
|
- [doc] Document color options
|
||||||
|
|
||||||
* Tue Feb 18 2020 Ales Matej <amatej@redhat.com> - 4.2.17-6
|
* Mon Feb 24 2020 Aleš Matěj <amatej@redhat.com> - 4.2.19-1
|
||||||
- Sort packages in transaction output by nevra (RhBug:1773436)
|
- List arguments: only first empty value is used (RhBug:1788154)
|
||||||
- Add support of commandline packages by repoquery (RhBug:1784148)
|
- Report missing profiles or default as broken module (RhBug:1790967)
|
||||||
- [doc] Document that the include option was removed (RhBug:1786072)
|
- repoquery: fix rich deps matching by using provide expansion from libdnf (RhBug:1534123)
|
||||||
- New API function for setting loggers (RhBug:1788212)
|
- [documentation] repoquery --what* with multiple arguments (RhBug:1790262)
|
||||||
|
- Format history table to use actual terminal width (RhBug:1786316)
|
||||||
|
- Update `dnf alias` documentation
|
||||||
|
- Handle custom exceptions from libdnf
|
||||||
|
- Fix _skipped_packages to return only skipped (RhBug:1774617)
|
||||||
|
- Add setter for tsi.reason
|
||||||
|
- Add new hook for commands: Run_resolved
|
||||||
|
- Add doc entry: include url (RhBug 1786072)
|
||||||
|
- Clean also .yaml repository metadata
|
||||||
|
- New API function base.setup_loggers() (RhBug:1788212)
|
||||||
|
- Use WantedBy=timers.target for all dnf timers (RhBug:1798475)
|
||||||
|
|
||||||
* Fri Jan 31 2020 Marek Blaha <mblaha@redhat.com> - 4.2.17-5
|
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.18-2
|
||||||
- [translations] Update translations from zanata (RhBug:1754959)
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||||
|
|
||||||
* Mon Jan 13 2020 Ales Matej <amatej@redhat.com> - 4.2.17-4
|
* Wed Jan 15 2020 Aleš Matěj <amatej@redhat.com> - 4.2.18-1
|
||||||
- Fix alias processing with '\' escaping (RhBug:1680482)
|
- [doc] Remove note about user-agent whitelist
|
||||||
- [doc] Explain the backslash notation also near the example (RhBug:1680482)
|
|
||||||
- Better descriptions for infinite aliases recursion (RhBug:1680488)
|
|
||||||
- Improve help for 'dnf module' command (RhBug:1758447)
|
|
||||||
- Unify downgrade exit codes with upgrade (RhBug:1759847)
|
|
||||||
- Honor priority with check-update (RhBug:1769466)
|
|
||||||
- Add shell restriction with local packages (RhBug:1773483)
|
|
||||||
- Restore functionality of remove --oldinstallonly (RhBug:1774670)
|
|
||||||
|
|
||||||
* Thu Dec 12 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 4.2.17-3
|
|
||||||
- Do a substitution of variables in repo_id (RhBug:1748841)
|
- Do a substitution of variables in repo_id (RhBug:1748841)
|
||||||
- Respect order of config files in aliases.d (RhBug:1680489)
|
- Respect order of config files in aliases.d (RhBug:1680489)
|
||||||
- [doc] Remove note about user-agent whitelist (RhBug:1777255)
|
- Unify downgrade exit codes with upgrade (RhBug:1759847)
|
||||||
|
- Improve help for 'dnf module' command (RhBug:1758447)
|
||||||
|
- Add shell restriction for local packages (RhBug:1773483)
|
||||||
- Fix detection of the latest module (RhBug:1781769)
|
- Fix detection of the latest module (RhBug:1781769)
|
||||||
|
- Document the retries config option only works for packages (RhBug:1783041)
|
||||||
|
- Sort packages in transaction output by nevra (RhBug:1773436)
|
||||||
|
- Honor repo priority with check-update (RhBug:1769466)
|
||||||
|
- Strip '\' from aliases when processing (RhBug:1680482)
|
||||||
|
- Print the whole alias definition in case of infinite recursion (RhBug:1680488)
|
||||||
|
- Add support of commandline packages by repoquery (RhBug:1784148)
|
||||||
|
- Running with tsflags=test doesn't update log files
|
||||||
|
- Restore functionality of remove --oldinstallonly
|
||||||
|
- Allow disabling individual aliases config files (RhBug:1680566)
|
||||||
|
|
||||||
* Mon Nov 25 2019 Ales Matej <amatej@redhat.com> - 4.2.17-2
|
* Fri Nov 29 2019 Ales Matej <amatej@redhat.com> - 4.2.17-1
|
||||||
- Update to 4.2.17
|
|
||||||
- Enable versionlock for check-update command (RhBug:1750620)
|
- Enable versionlock for check-update command (RhBug:1750620)
|
||||||
- Add error message when no active modules matched (RhBug:1696204)
|
- Add error message when no active modules matched (RhBug:1696204)
|
||||||
- Log mirror failures as warning when repo load fails (RhBug:1713627)
|
- Log mirror failures as warning when repo load fails (RhBug:1713627)
|
||||||
@ -688,9 +651,15 @@ popd
|
|||||||
- Fix assumptions about ARMv8 and the way the rpm features work (RhBug:1691430)
|
- Fix assumptions about ARMv8 and the way the rpm features work (RhBug:1691430)
|
||||||
- Add Requires information into module info commands
|
- Add Requires information into module info commands
|
||||||
- Enhance inheritance of transaction reasons (RhBug:1672618,1769788)
|
- Enhance inheritance of transaction reasons (RhBug:1672618,1769788)
|
||||||
|
- Make DNF compatible with FIPS mode (RhBug:1762032)
|
||||||
|
- Return always alphabetically sorted modular profiles
|
||||||
|
|
||||||
* Wed Nov 13 2019 Ales Matej <amatej@redhat.com> - 4.2.16-1
|
* Tue Nov 12 2019 Ales Matej <amatej@redhat.com> - 4.2.15-2
|
||||||
- Update to 4.2.16
|
- Revert: Fix messages for starting and failing scriptlets (RhBug:1724779)
|
||||||
|
- Fix traceback when trying to install package with fileconflict
|
||||||
|
|
||||||
|
* Wed Nov 06 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 4.2.15-1
|
||||||
|
- Update to 4.2.15
|
||||||
- Fix downloading local packages into destdir (RhBug:1727137)
|
- Fix downloading local packages into destdir (RhBug:1727137)
|
||||||
- Report skipped packages with identical nevra only once (RhBug:1643109)
|
- Report skipped packages with identical nevra only once (RhBug:1643109)
|
||||||
- Restore functionality of dnf remove --duplicates (RhBug:1674296)
|
- Restore functionality of dnf remove --duplicates (RhBug:1674296)
|
||||||
@ -710,50 +679,63 @@ popd
|
|||||||
- Add --ids option to the group command (RhBug:1706382)
|
- Add --ids option to the group command (RhBug:1706382)
|
||||||
- Add --with_cve and --with_bz options to the updateinfo command (RhBug:1750528)
|
- Add --with_cve and --with_bz options to the updateinfo command (RhBug:1750528)
|
||||||
|
|
||||||
* Tue Oct 22 2019 Ales Matej <amatej@redhat.com> - 4.2.11-1
|
* Tue Oct 01 2019 Ales Matej <amatej@redhat.com> - 4.2.11-2
|
||||||
- Update to 4.2.11
|
- Fix required hawkey_version
|
||||||
|
|
||||||
|
* Tue Oct 01 2019 Ales Matej <amatej@redhat.com> - 4.2.11-1
|
||||||
- Improve modularity documentation (RhBug:1730162,1730162,1730807,1734081)
|
- Improve modularity documentation (RhBug:1730162,1730162,1730807,1734081)
|
||||||
- Fix detection whether system is running on battery (used by metadata caching timer) (RhBug:1498680)
|
- Fix detection whether system is running on battery (used by metadata caching timer) (RhBug:1498680)
|
||||||
- New repoquery queryformat: %{reason}
|
- New repoquery queryformat: %{reason}
|
||||||
- Print rpm errors during test transaction (RhBug:1730348)
|
- Print rpm errors during test transaction (RhBug:1730348)
|
||||||
|
- Fix: --setopt and repo with dots
|
||||||
- Fix incorrectly marked profile and stream after failed rpm transaction check (RhBug:1719679)
|
- Fix incorrectly marked profile and stream after failed rpm transaction check (RhBug:1719679)
|
||||||
- Show transaction errors inside dnf shell (RhBug:1743644)
|
- Show transaction errors inside dnf shell (RhBug:1743644)
|
||||||
|
- Don't reinstall modified packages with the same NEVRA (RhBug:1644241)
|
||||||
- dnf-automatic now respects versionlock excludes (RhBug:1746562)
|
- dnf-automatic now respects versionlock excludes (RhBug:1746562)
|
||||||
- [doc] Add user_agent and countme options
|
- Fully enable the modular fail safe mechanism (RhBug:1616167)
|
||||||
|
|
||||||
|
* Tue Sep 10 2019 Jaroslav Mracek <jmracek@redhat.com> - 4.2.9-3
|
||||||
|
- Backport patch to fix reinstalling packages with a different buildtime
|
||||||
|
|
||||||
|
* Fri Aug 16 2019 Miro Hrončok <mhroncok@redhat.com> - 4.2.9-2
|
||||||
|
- Rebuilt for Python 3.8
|
||||||
|
|
||||||
|
* Tue Aug 13 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 4.2.9-1
|
||||||
|
- Update to 4.2.9
|
||||||
|
- Accept multiple specs in repoquery options (RhBug:1667898)
|
||||||
|
- Prevent switching modules in all cases (RhBug:1706215)
|
||||||
- [history] Don't store failed transactions as succeeded
|
- [history] Don't store failed transactions as succeeded
|
||||||
- [history] Do not require root for informative commands
|
- [history] Do not require root for informative commands
|
||||||
- [dnssec] Fix UnicodeWarning when using new rpm (RhBug:1699650)
|
- [dnssec] Fix UnicodeWarning when using new rpm (RhBug:1699650)
|
||||||
|
- Print rpm error messages during transaction (RhBug:1677199)
|
||||||
|
- Report missing default profile as an error (RhBug:1669527)
|
||||||
- Apply excludes before modular excludes (RhBug:1709453)
|
- Apply excludes before modular excludes (RhBug:1709453)
|
||||||
- Improve help for command line arguments (RhBug:1659328)
|
- Improve help for command line arguments (RhBug:1659328)
|
||||||
|
- [doc] Describe a behavior when plugin is removed (RhBug:1700741)
|
||||||
- Add new modular API method ModuleBase.get_modules
|
- Add new modular API method ModuleBase.get_modules
|
||||||
- Mark features used by ansible, anaconda and subscription-manager as an API
|
- Mark features used by ansible, anaconda and subscription-manager as an API
|
||||||
|
- Prevent printing empty Error Summary (RhBug: 1690414)
|
||||||
|
- [doc] Add user_agent and countme options
|
||||||
|
|
||||||
* Mon Oct 21 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 4.2.7-7
|
* Mon Aug 12 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 4.2.7-4
|
||||||
- Prevent reinstalling modified packages with same NEVRA (RhBug:1728252,1644241,1760825)
|
- Drop %%systemd_requires from main package
|
||||||
|
|
||||||
* Tue Sep 03 2019 Jaroslav Mracek <jmracek@redhat.com> - 4.2.7-6
|
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.7-3
|
||||||
- Remove patch to not fail when installing modular RPMs without modular metadata
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||||
|
|
||||||
* Fri Aug 30 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 4.2.7-5
|
* Mon Jul 22 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 4.2.7-2
|
||||||
- Fix: --setopt and repo with dots (RhBug:1746349)
|
- Revert patch: [rpm] add detection for armv7hcnl
|
||||||
|
|
||||||
* Wed Aug 14 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 4.2.7-4
|
* Thu Jul 04 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 4.2.7-1
|
||||||
- Prevent printing empty Error Summary (RhBug:1690414)
|
|
||||||
|
|
||||||
* Tue Aug 06 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 4.2.7-3
|
|
||||||
- Update localizations from zanata (RhBug:1689982)
|
|
||||||
- Accept multiple specs in repoquery options (RhBug:1667898,1656801)
|
|
||||||
- Prevent switching modules in all cases (RhBug:1706215)
|
|
||||||
- Change synchronization of rpm transaction to swdb (RhBug:1737328)
|
|
||||||
- Print rpm error messages during transaction (RhBug:1677199)
|
|
||||||
- Report missing default profile as an error (RhBug:1669527,1724564)
|
|
||||||
- Describe a behavior when plugin is removed (RhBug:1700741)
|
|
||||||
|
|
||||||
* Thu Jul 04 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 4.2.7-2
|
|
||||||
- Add patch to not fail when installing modular RPMs without modular metadata
|
|
||||||
|
|
||||||
* Tue Jun 11 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 4.2.7-1
|
|
||||||
- Update to 4.2.7
|
- Update to 4.2.7
|
||||||
|
- librepo: Turn on debug logging only if debuglevel is greater than 2
|
||||||
|
(RhBug:1355764,1580022)
|
||||||
|
- Fix issues with terminal hangs when attempting bash completion
|
||||||
|
(RhBug:1702854)
|
||||||
|
- Rename man page from dnf.automatic to dnf-automatic to match command name
|
||||||
|
- [provides] Enhanced detecting of file provides (RhBug:1702621)
|
||||||
|
- [provides] Sort the output packages alphabetically
|
||||||
|
- Set default to skip_if_unavailable=false (RhBug:1679509)
|
||||||
- Fix package reinstalls during yum module remove (RhBug:1700529)
|
- Fix package reinstalls during yum module remove (RhBug:1700529)
|
||||||
- Fail when "-c" option is given nonexistent file (RhBug:1512457)
|
- Fail when "-c" option is given nonexistent file (RhBug:1512457)
|
||||||
- Reuse empty lock file instead of stopping dnf (RhBug:1581824)
|
- Reuse empty lock file instead of stopping dnf (RhBug:1581824)
|
||||||
@ -763,78 +745,77 @@ popd
|
|||||||
- Fix group install/upgrade when group is not available (RhBug:1707624)
|
- Fix group install/upgrade when group is not available (RhBug:1707624)
|
||||||
- Report not matching plugins when using --enableplugin/--disableplugin
|
- Report not matching plugins when using --enableplugin/--disableplugin
|
||||||
(RhBug:1673289) (RhBug:1467304)
|
(RhBug:1673289) (RhBug:1467304)
|
||||||
- Add support of modular FailSafe (RhBug:1623128)
|
- Add support of modular FailSafe (RhBug:1623128) (temporarily with warnings
|
||||||
|
instead of errors when installing modular RPMs without modular metadata)
|
||||||
- Replace logrotate with build-in log rotation for dnf.log and dnf.rpm.log
|
- Replace logrotate with build-in log rotation for dnf.log and dnf.rpm.log
|
||||||
(RhBug:1702690)
|
(RhBug:1702690)
|
||||||
|
|
||||||
* Mon May 13 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 4.2.6-1
|
* Thu Jun 27 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 4.2.5-2
|
||||||
- Update to 4.2.6
|
- Backport patches to enhance synchronization of rpm transaction to swdb
|
||||||
- Use improved config parser that preserves order of data
|
|
||||||
- Follow RPM security policy for package verification
|
* Thu Apr 25 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 4.2.5-1
|
||||||
- Update modules regardless of installed profiles
|
- Update to 4.2.5
|
||||||
- [conf] Use environment variables prefixed with DNF_VAR_
|
|
||||||
- Allow adjustment of repo from --repofrompath (RhBug:1689591)
|
|
||||||
- Allow globs in setopt in repoid part
|
|
||||||
- Add command abbreviations (RhBug:1634232)
|
|
||||||
- Installroot now requires absolute path
|
|
||||||
- librepo: Turn on debug logging only if debuglevel is greater than 2 (RhBug:1355764,1580022)
|
|
||||||
- Document cachedir option (RhBug:1691365)
|
|
||||||
- Enhance documentation - API examples
|
|
||||||
- Enhance documentation of --whatdepends option (RhBug:1687070)
|
|
||||||
- Update documentation: implemented plugins; options; deprecated commands (RhBug:1670835,1673278)
|
|
||||||
- [doc] Add info of relation update_cache with fill_sack (RhBug:1658694)
|
|
||||||
- Rename man page from dnf.automatic to dnf-automatic to match command name
|
|
||||||
- Fix alias list command (RhBug:1666325)
|
|
||||||
- Fix behavior of ``--bz`` option when specifying more values
|
|
||||||
- Add protection of yum package (RhBug:1639363)
|
|
||||||
- Fix ``list --showduplicates`` (RhBug:1655605)
|
|
||||||
- Retain order of headers in search results (RhBug:1613860)
|
|
||||||
- Solve traceback with the "dnf install @module" (RhBug:1688823)
|
|
||||||
- Fix multilib obsoletes (RhBug:1672947)
|
- Fix multilib obsoletes (RhBug:1672947)
|
||||||
- Do not remove group package if other packages depend on it
|
- Do not remove group package if other packages depend on it
|
||||||
- Remove duplicates from "dnf list" and "dnf info" outputs
|
- Remove duplicates from "dnf list" and "dnf info" outputs
|
||||||
- Fix the installation of completion_helper.py
|
- Installroot now requires absolute path
|
||||||
|
- Allow globs in setopt in repoid part
|
||||||
- Fix formatting of message about free space required
|
- Fix formatting of message about free space required
|
||||||
|
- [doc] Add info of relation update_cache with fill_sack (RhBug:1658694)
|
||||||
- Fix installation failiure when duplicit RPMs are specified (RhBug:1687286)
|
- Fix installation failiure when duplicit RPMs are specified (RhBug:1687286)
|
||||||
- Fix issues with terminal hangs when attempting bash completion (RhBug:1702854)
|
- Add command abbreviations (RhBug:1634232)
|
||||||
- Allow plugins to terminate dnf (RhBug:1701807)
|
- Allow plugins to terminate dnf (RhBug:1701807)
|
||||||
- [provides] Enhanced detecting of file provides (RhBug:1702621)
|
|
||||||
- [provides] Sort the output packages alphabetically
|
|
||||||
|
|
||||||
* Mon Apr 08 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 4.0.9.2-6
|
* Thu Apr 04 15:15:12 CET 2019 Robert-André Mauchin <zebob.m@gmail.com> - 4.2.2-2
|
||||||
- Backport patch to unify --help with man for module-spec (RhBug:1678689)
|
- Add patch fixing the installation of completion_helper.py
|
||||||
|
- Fix #1695853
|
||||||
|
|
||||||
* Thu Feb 14 2019 Jaroslav Mracek <jmracek@redhat.com> - 4.0.9.2-5
|
* Wed Mar 27 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 4.2.2-1
|
||||||
- Backport patch to not allow direct module switch
|
- [conf] Use environment variables prefixed with DNF_VAR_
|
||||||
|
- Enhance documentation of --whatdepends option (RhBug:1687070)
|
||||||
|
- Allow adjustment of repo from --repofrompath (RhBug:1689591)
|
||||||
|
- Document cachedir option (RhBug:1691365)
|
||||||
|
- Retain order of headers in search results (RhBug:1613860)
|
||||||
|
- Solve traceback with the "dnf install @module" (RhBug:1688823)
|
||||||
|
- Build "yum" instead of "dnf-yum" on Fedora 31
|
||||||
|
|
||||||
* Fri Feb 08 2019 Jaroslav Mracek <jmracek@redhat.com> - 4.0.9.2-4
|
* Mon Mar 11 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 4.2.1-1
|
||||||
- Backport patch to add support for modular updateinfoxml data
|
- Do not allow direct module switch (RhBug:1669491)
|
||||||
|
- Use improved config parser that preserves order of data
|
||||||
|
- Fix alias list command (RhBug:1666325)
|
||||||
|
- Postpone yum conflict to F31
|
||||||
|
- Update documentation: implemented plugins; options; deprecated commands (RhBug:1670835,1673278)
|
||||||
|
- Support zchunk (".zck") compression
|
||||||
|
- Fix behavior of ``--bz`` option when specifying more values
|
||||||
|
- Follow RPM security policy for package verification
|
||||||
|
- Update modules regardless of installed profiles
|
||||||
|
- Add protection of yum package (RhBug:1639363)
|
||||||
|
- Fix ``list --showduplicates`` (RhBug:1655605)
|
||||||
|
|
||||||
* Thu Feb 07 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 4.0.9.2-3
|
* Wed Feb 13 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 4.1.0-1
|
||||||
- Backport patch: Fix minor problem with suggestion printed to terminal
|
- Update to 4.1.0
|
||||||
|
|
||||||
* Wed Feb 06 2019 Jaroslav Mracek <jmracek@redhat.com> - 4.0.9.2-2
|
|
||||||
- Backport patches for: RHEL should use --best option by default for dnf / libdnf (RhBug:1670776)
|
|
||||||
- Add --nobest dnf option to revert the new default behavior from commandline
|
|
||||||
|
|
||||||
* Fri Jan 04 2019 Jaroslav Mracek <jmracek@redhat.com> - 4.0.9.2-1
|
|
||||||
- Print information about skipped packages after the transaction
|
|
||||||
- Sort reported skipped packages, force ignore_weak
|
|
||||||
- Allow to enable modules that break default modules (RhBug:1648839)
|
- Allow to enable modules that break default modules (RhBug:1648839)
|
||||||
|
- Enhance documentation - API examples
|
||||||
|
- Add --nobest option
|
||||||
|
- Revert commit that adds best as default behavior
|
||||||
|
|
||||||
* Mon Dec 17 2018 Daniel Mach <dmach@redhat.com> - 4.0.9.1-1
|
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.10-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Dec 12 2018 Jaroslav Mracek <jmracek@redhat.com> - 4.0.10-1
|
||||||
|
- Update to 4.0.10
|
||||||
- Updated difference YUM vs. DNF for yum-updateonboot
|
- Updated difference YUM vs. DNF for yum-updateonboot
|
||||||
- Added new command ``dnf alias [options] [list|add|delete] [<name>...]`` to allow the user to
|
- Added new command ``dnf alias [options] [list|add|delete] [<name>...]`` to allow the user to
|
||||||
define and manage a list of aliases
|
define and manage a list of aliases
|
||||||
- Enhanced documentation
|
- Enhanced documentation
|
||||||
- Unifying return codes for remove operations
|
- Unifying return codes for remove operations
|
||||||
- [transaction] Make transaction content available for commands
|
- [transaction] Make transaction content available for commands
|
||||||
|
- Triggering transaction hooks if no transaction (RhBug:1650157)
|
||||||
- Add hotfix packages to install pool (RhBug:1654738)
|
- Add hotfix packages to install pool (RhBug:1654738)
|
||||||
- Report group operation in transaction table
|
- Report group operation in transaction table
|
||||||
- [sack] Change algorithm to calculate rpmdb_version
|
- [sack] Change algorithm to calculate rpmdb_version
|
||||||
- Add basic integration with %_pkgverify_level (RhBug:1614351)
|
|
||||||
|
|
||||||
* Fri Nov 23 2018 Jaroslav Mracek <jmracek@redhat.com> - 4.0.9-1
|
* Thu Nov 22 2018 Jaroslav Mracek <jmracek@redhat.com> - 4.0.9-1
|
||||||
- Added dnf.repo.Repo.get_http_headers
|
- Added dnf.repo.Repo.get_http_headers
|
||||||
- Added dnf.repo.Repo.set_http_headers
|
- Added dnf.repo.Repo.set_http_headers
|
||||||
- Added dnf.repo.Repo.add_metadata_type_to_download
|
- Added dnf.repo.Repo.add_metadata_type_to_download
|
||||||
@ -847,8 +828,8 @@ popd
|
|||||||
- [module] Fix dnf remove @<module>
|
- [module] Fix dnf remove @<module>
|
||||||
- [transaction] Make transaction content available for plugins
|
- [transaction] Make transaction content available for plugins
|
||||||
|
|
||||||
* Mon Nov 19 2018 Jaroslav Mracek <jmracek@redhat.com> - 4.0.4-2
|
* Wed Nov 07 2018 Jaroslav Mracek <jmracek@redhat.com> - 4.0.4-2
|
||||||
- Backport patches for setting cachedir with --setopt
|
- Backport fixes for RHBZ#1642796 from upstream master
|
||||||
|
|
||||||
* Mon Oct 15 2018 Jaroslav Mracek <jmracek@redhat.com> - 4.0.4-1
|
* Mon Oct 15 2018 Jaroslav Mracek <jmracek@redhat.com> - 4.0.4-1
|
||||||
- Update to 4.0.4
|
- Update to 4.0.4
|
||||||
@ -858,6 +839,12 @@ popd
|
|||||||
- Calculate sack version from all installed packages (RhBug:1624291)
|
- Calculate sack version from all installed packages (RhBug:1624291)
|
||||||
- [module] Allow to enable module dependencies (RhBug:1622566)
|
- [module] Allow to enable module dependencies (RhBug:1622566)
|
||||||
|
|
||||||
|
* Tue Oct 09 2018 Adam Williamson <awilliam@redhat.com> - 3.6.1-3
|
||||||
|
- Backport fixes for RHBZ#1616118 from upstream master
|
||||||
|
|
||||||
|
* Sat Sep 29 2018 Kevin Fenzi <kevin@scrye.com> - 3.6.1-2
|
||||||
|
- Temp re-add python2 package to get rawhide composes working again.
|
||||||
|
|
||||||
* Tue Sep 25 2018 Jaroslav Mracek <jmracek@redhat.com> - 3.6.1-1
|
* Tue Sep 25 2018 Jaroslav Mracek <jmracek@redhat.com> - 3.6.1-1
|
||||||
- [module] Improved module commands list, info
|
- [module] Improved module commands list, info
|
||||||
- [module] Reports error from module solver
|
- [module] Reports error from module solver
|
||||||
@ -877,50 +864,15 @@ popd
|
|||||||
- Unify behavior of remove and module remove (RhBug:1629848)
|
- Unify behavior of remove and module remove (RhBug:1629848)
|
||||||
- Change behavior of disabled module for module install (RhBug:1629711)
|
- Change behavior of disabled module for module install (RhBug:1629711)
|
||||||
- Allow enablement on disabled plugin (RhBug:1614539)
|
- Allow enablement on disabled plugin (RhBug:1614539)
|
||||||
- Resolves: rhbz#1622585 - [modularity] dnf should not be proposing distro-sync
|
|
||||||
- Resolves: rhbz#1614531 - dnf 3.2 does not depsolve correctly
|
* Thu Sep 20 2018 Adam Williamson <awilliam@redhat.com> - 3.5.1-2
|
||||||
- Bug 1564369 - don't show duplicate errors in dnf output
|
- Backport PR #1038 to make compose fail on missing group packages again
|
||||||
- Resolves: rhbz#1597257 - dnf should accept localinstall command, at least as an alias
|
|
||||||
- Resolves: rhbz#1613860 - dnf search behaviour is slightly confusing
|
|
||||||
- Resolves: rhbz#1625586 - Advise user about alternatives to the non-existing "python" package
|
|
||||||
- Resolves: rhbz#1614346 - dnf rollback doesn't work after install/downgrade/upgrade
|
|
||||||
- Resolves: rhbz#1612752 - platform-python should be used in completion_helper
|
|
||||||
- Resolves: rhbz#1618421 - dnf module install fails to find non-modular dependencies
|
|
||||||
- Bug 1629655 - not helpful/complete error message when specifying wrong stream or profile
|
|
||||||
- Bug 1629709 - disabled modules should be identified in the module listing
|
|
||||||
- Bug 1630761 - [usability] unable to determine if a stream with [d] is enabled or not
|
|
||||||
- Bug 1625270 - there is ???% [=== when baseurl is wrong
|
|
||||||
- Resolves: rhbz#1624056 - quoted baseurl is error out
|
|
||||||
|
|
||||||
* Mon Sep 10 2018 Jaroslav Mracek <jmracek@redhat.com> - 3.5.1-1
|
* Mon Sep 10 2018 Jaroslav Mracek <jmracek@redhat.com> - 3.5.1-1
|
||||||
- [module] Fixed list and info subcommands (RhBug:1623388) (RhBug:1623535)
|
- [module] Fixed list and info subcommands
|
||||||
|
|
||||||
* Fri Sep 07 2018 Jaroslav Mracek <jmracek@redhat.com> - 3.5.0-1
|
* Fri Sep 07 2018 Jaroslav Mracek <jmracek@redhat.com> - 3.5.0-1
|
||||||
- New implementation of modularity
|
- New implementation of modularity
|
||||||
- dnf makecache should not fail in red color if no enabled repos (RhBug:1622090)
|
|
||||||
- [modularity] dnf module profile command doesn't work (RhBug:1622580)
|
|
||||||
- [modularity] incorrect output in dnf module list (RhBug:1623398)
|
|
||||||
- [modularity] dnf could be smarter when installing what's already installed (RhBug:1622599)
|
|
||||||
- [modularity] dnf module install circular error on missing dependency (RhBug:1620233)
|
|
||||||
- not descriptive output in dnf verbose (RhBug:1612718)
|
|
||||||
- RFE: provide way to query all packages from module (RhBug:1569068)
|
|
||||||
|
|
||||||
* Fri Aug 31 2018 Daniel Mach <dmach@redhat.com> - 3.4.0-1
|
|
||||||
- [history] Fix 'attempt to write a readonly database' error in addConsoleOutputLine().
|
|
||||||
- [spec] Improve YUM v3 compat layer.
|
|
||||||
- [doc] document missing link from yum-rhn-plugin to dnf-plugin-spacewalk (RhBug:1580356)
|
|
||||||
- [doc] document difference between yum and dnf when listing packages (RhBug:1615834)
|
|
||||||
- [doc] document missing download functionality after transaction table is displayed (RhBug:1585140)
|
|
||||||
- [systemd] dnf-makecache.timer: move the ordering after network to .service
|
|
||||||
- [translations] Update translations from zanata.
|
|
||||||
- [cli] Fix 'already installed' message output.
|
|
||||||
- [module] change 'module_nsvp' to 'module_spec'
|
|
||||||
- [module] show module profiles without ', ...'
|
|
||||||
- [module] unify usability of RepoModuleDict.get_info*(); fix traceback
|
|
||||||
- [security] fix update count (RhBug:1585138)
|
|
||||||
- [cli] enable reposync to use --destdir (RhBug:1582152)
|
|
||||||
- [repo] Replace dnf.repo.Repo with libdnf implementation.
|
|
||||||
- [dnf] Limit DeprecationWarning to dnf.* modules only.
|
|
||||||
|
|
||||||
* Mon Aug 13 2018 Daniel Mach <dmach@redhat.com> - 3.3.0-1
|
* Mon Aug 13 2018 Daniel Mach <dmach@redhat.com> - 3.3.0-1
|
||||||
- [misc] Fallback to os.getuid() if /proc/self/loginuid can't be read (RhBug:1597005)
|
- [misc] Fallback to os.getuid() if /proc/self/loginuid can't be read (RhBug:1597005)
|
||||||
@ -937,6 +889,9 @@ popd
|
|||||||
- [output] Use libdnf wrapper for smartcols
|
- [output] Use libdnf wrapper for smartcols
|
||||||
- [conf] Do not traceback on empty option (RhBug:1613577)
|
- [conf] Do not traceback on empty option (RhBug:1613577)
|
||||||
|
|
||||||
|
* Wed Aug 08 2018 Adam Williamson <awilliam@redhat.com> - 3.2.0-2
|
||||||
|
- Fix a crash that breaks Rawhide composes (RhBug:1613577)
|
||||||
|
|
||||||
* Tue Aug 07 2018 Daniel Mach <dmach@redhat.com> - 3.2.0-1
|
* Tue Aug 07 2018 Daniel Mach <dmach@redhat.com> - 3.2.0-1
|
||||||
- [sack] Use module_platform_id option.
|
- [sack] Use module_platform_id option.
|
||||||
- [module] Switch module persistor to libdnf implementation.
|
- [module] Switch module persistor to libdnf implementation.
|
||||||
@ -957,7 +912,7 @@ popd
|
|||||||
- [module] Assume a 'default' profile exists for all modules (RhBug:1568165)
|
- [module] Assume a 'default' profile exists for all modules (RhBug:1568165)
|
||||||
- [base] Introduce easy installation of package, group and module specs.
|
- [base] Introduce easy installation of package, group and module specs.
|
||||||
|
|
||||||
* Thu Jul 19 2018 Daniel Mach <dmach@redhat.com> - 3.0.4-1
|
* Sun Jul 22 2018 Daniel Mach <dmach@redhat.com> - 3.0.4-1
|
||||||
- [transaction] Fix 'TransactionItem not found for key' error.
|
- [transaction] Fix 'TransactionItem not found for key' error.
|
||||||
- [module] Allow removing module profile without specifying a stream.
|
- [module] Allow removing module profile without specifying a stream.
|
||||||
- [module] Fix 'BaseCli' object has no attribute '_yumdb' error.
|
- [module] Fix 'BaseCli' object has no attribute '_yumdb' error.
|
||||||
@ -969,6 +924,16 @@ popd
|
|||||||
- [transaction] Cache TransactionItem during handling of RPM callback (RhBug:1599597)
|
- [transaction] Cache TransactionItem during handling of RPM callback (RhBug:1599597)
|
||||||
- [systemd] dnf-makecache.timer: move to multi-user to fix loop
|
- [systemd] dnf-makecache.timer: move to multi-user to fix loop
|
||||||
|
|
||||||
|
* Mon Jul 16 2018 Adam Williamson <awilliam@redhat.com> - 3.0.3-4
|
||||||
|
- Backport fix for dnf-makecache.timer loop from git
|
||||||
|
- Resolves: rhbz#1600823
|
||||||
|
|
||||||
|
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.3-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 12 2018 Martin Hatina <mhatina@redhat.com> - 3.0.3-2
|
||||||
|
- Ensure that correct python version is used for build
|
||||||
|
|
||||||
* Thu Jul 12 2018 Martin Hatina <mhatina@redhat.com> - 3.0.3-1
|
* Thu Jul 12 2018 Martin Hatina <mhatina@redhat.com> - 3.0.3-1
|
||||||
- Bug fix release
|
- Bug fix release
|
||||||
|
|
||||||
@ -1039,6 +1004,59 @@ popd
|
|||||||
- Resolves: rhbz#1505185
|
- Resolves: rhbz#1505185
|
||||||
- Resolves: rhbz#1305232
|
- Resolves: rhbz#1305232
|
||||||
|
|
||||||
|
* Sat Jun 16 2018 Miro Hrončok <mhroncok@redhat.com> - 2.7.5-18
|
||||||
|
- Rebuilt for Python 3.7
|
||||||
|
|
||||||
|
* Wed Jun 06 2018 Marek Blaha <mblaha@redhat.com> - 2.7.5-17
|
||||||
|
- Demote deltarpm to weak dependencies again
|
||||||
|
|
||||||
|
* Tue May 29 2018 Martin Hatina <mhatina@redhat.com> - 2.7.5-16
|
||||||
|
- Apply util-Correctly-source-errno.EEXIST patch
|
||||||
|
|
||||||
|
* Mon May 28 2018 Martin Hatina <mhatina@redhat.com> - 2.7.5-15
|
||||||
|
- Do not require libdnf
|
||||||
|
|
||||||
|
* Fri May 25 2018 Martin Hatina <mhatina@redhat.com> - 2.7.5-14
|
||||||
|
- Fix patch applying.
|
||||||
|
|
||||||
|
* Fri May 25 2018 Martin Hatina <mhatina@redhat.com> - 2.7.5-13
|
||||||
|
- Rebase to dnf from dnf-2-modularity-6 release.
|
||||||
|
|
||||||
|
* Wed Apr 18 2018 Daniel Mach <dmach@redhat.com> - 2.7.5-12
|
||||||
|
- Fix defaults loading.
|
||||||
|
|
||||||
|
* Tue Apr 17 2018 Martin Hatina <mhatina@redhat.com> - 2.7.5-11
|
||||||
|
- Rebase to dnf from dnf-2-modularity-4 release.
|
||||||
|
|
||||||
|
* Mon Mar 26 2018 Martin Hatina <mhatina@redhat.com> - 2.7.5-10
|
||||||
|
- Require libmodulemd.
|
||||||
|
|
||||||
|
* Mon Mar 26 2018 Martin Hatina <mhatina@redhat.com> - 2.7.5-9
|
||||||
|
- Rebase to dnf from dnf-2-modularity-3 release.
|
||||||
|
|
||||||
|
* Mon Feb 12 2018 Daniel Mach <dmach@redhat.com> - 2.7.5-8
|
||||||
|
- Rebase to dnf from dnf-2-modularity branch.
|
||||||
|
|
||||||
|
* Thu Feb 08 2018 Igor Gnatenko <ignatenko@redhat.com> - 2.7.5-7
|
||||||
|
- Demote deltarpm to weak dependencies
|
||||||
|
|
||||||
|
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.7.5-6
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jan 03 2018 Igor Gnatenko <ignatenko@redhat.com> - 2.7.5-5
|
||||||
|
- Use %%systemd_requires
|
||||||
|
- Update Python 2 dependency declarations to new packaging standards
|
||||||
|
(See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
|
||||||
|
|
||||||
|
* Wed Nov 29 2017 Jaroslav Mracek <jmracek@redhat.com> - 2.7.5-4
|
||||||
|
- Fix problem with demands.cacheonly that caused problems for system-upgrade
|
||||||
|
|
||||||
|
* Tue Nov 07 2017 Igor Gnatenko <ignatenko@redhat.com> - 2.7.5-3
|
||||||
|
- Remove platform-python subpackage
|
||||||
|
|
||||||
|
* Fri Oct 27 2017 Igor Gnatenko <ignatenko@redhat.com> - 2.7.5-2
|
||||||
|
- Enable usage of rich deps for NM integration
|
||||||
|
|
||||||
* Wed Oct 18 2017 Igor Gnatenko <ignatenko@redhat.com> - 2.7.5-1
|
* Wed Oct 18 2017 Igor Gnatenko <ignatenko@redhat.com> - 2.7.5-1
|
||||||
- Improve performance for excludes and includes handling (RHBZ #1500361)
|
- Improve performance for excludes and includes handling (RHBZ #1500361)
|
||||||
- Fixed problem of handling checksums for local repositories (RHBZ #1502106)
|
- Fixed problem of handling checksums for local repositories (RHBZ #1502106)
|
||||||
|
Loading…
Reference in New Issue
Block a user