Auto sync2gitlab import of dnf-4.7.0-10.el8.src.rpm
This commit is contained in:
parent
f0fd84c36a
commit
f7ab817f6d
@ -1,4 +1,4 @@
|
||||
From 6eff0fe7850624791f049a17a41d779915f30f94 Mon Sep 17 00:00:00 2001
|
||||
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
|
||||
@ -10,7 +10,7 @@ the sys.path and the tests fail. This fixes the issue.
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
|
||||
index 77a4894..b7f4031 100644
|
||||
index b15cc62b..dedc46fd 100644
|
||||
--- a/tests/CMakeLists.txt
|
||||
+++ b/tests/CMakeLists.txt
|
||||
@@ -1,6 +1,6 @@
|
||||
@ -21,6 +21,6 @@ index 77a4894..b7f4031 100644
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
|
||||
|
||||
# For libdnf built with sanitizers, has no effect otherwise.
|
||||
--
|
||||
libgit2 1.0.1
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 8823feb5f42f8c579fdab80d9e22112b88d0ad2b Mon Sep 17 00:00:00 2001
|
||||
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 _()
|
||||
@ -11,7 +11,7 @@ Specifically:
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dnf/rpm/miscutils.py b/dnf/rpm/miscutils.py
|
||||
index 235aaf2..7e33d4c 100644
|
||||
index 235aaf28..7e33d4c4 100644
|
||||
--- a/dnf/rpm/miscutils.py
|
||||
+++ b/dnf/rpm/miscutils.py
|
||||
@@ -22,6 +22,7 @@ import subprocess
|
||||
@ -31,6 +31,6 @@ index 235aaf2..7e33d4c 100644
|
||||
if p.returncode != 0 or data != (package.encode('ascii', 'strict') + b': digests signatures OK\n'):
|
||||
return 0
|
||||
else:
|
||||
--
|
||||
libgit2 1.0.1
|
||||
--
|
||||
2.35.1
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 134b095b0833956cadfc02a9a1e7ca1344cd5aaa Mon Sep 17 00:00:00 2001
|
||||
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
|
||||
@ -10,7 +10,7 @@ always be the constant "-: digests signatures OK\n".
|
||||
1 file changed, 6 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dnf/rpm/miscutils.py b/dnf/rpm/miscutils.py
|
||||
index 7e33d4c..5f2621c 100644
|
||||
index 7e33d4c4..5f2621c2 100644
|
||||
--- a/dnf/rpm/miscutils.py
|
||||
+++ b/dnf/rpm/miscutils.py
|
||||
@@ -29,7 +29,8 @@ from shutil import which
|
||||
@ -51,6 +51,6 @@ index 7e33d4c..5f2621c 100644
|
||||
value = 0
|
||||
else:
|
||||
raise ValueError('Unexpected return value %r from hdr.sprintf when checking signature.' % siginfo)
|
||||
--
|
||||
libgit2 1.0.1
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From a21880fbac479968546304beeeae3ed3bb899373 Mon Sep 17 00:00:00 2001
|
||||
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
|
||||
@ -7,14 +7,14 @@ 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 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------
|
||||
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 5f2621c..9d5b286 100644
|
||||
index 5f2621c2..9d5b2860 100644
|
||||
--- a/dnf/rpm/miscutils.py
|
||||
+++ b/dnf/rpm/miscutils.py
|
||||
@@ -13,90 +13,96 @@
|
||||
@@ -13,47 +13,84 @@
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
# Copyright 2003 Duke University
|
||||
|
||||
@ -124,9 +124,7 @@ index 5f2621c..9d5b286 100644
|
||||
|
||||
def checkSig(ts, package):
|
||||
"""Takes a transaction set and a package, check it's sigs,
|
||||
return 0 if they are all fine
|
||||
return 1 if the gpg key can't be found
|
||||
return 2 if the header is in someway damaged
|
||||
@@ -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"""
|
||||
|
||||
@ -171,6 +169,6 @@ index 5f2621c..9d5b286 100644
|
||||
+ finally:
|
||||
+ os.close(fdno)
|
||||
return value
|
||||
--
|
||||
libgit2 1.0.1
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
@ -1,7 +1,8 @@
|
||||
From b05f4589e4afb69240ae2001246a5ffb5d6b1b90 Mon Sep 17 00:00:00 2001
|
||||
From: Aleš Matěj <amatej@redhat.com>
|
||||
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
|
||||
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
|
||||
@ -13,7 +14,7 @@ Follow up for https://github.com/rpm-software-management/dnf/pull/1753
|
||||
1 file changed, 3 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dnf/rpm/miscutils.py b/dnf/rpm/miscutils.py
|
||||
index 9d5b286..46ef475 100644
|
||||
index 9d5b2860..46ef4754 100644
|
||||
--- a/dnf/rpm/miscutils.py
|
||||
+++ b/dnf/rpm/miscutils.py
|
||||
@@ -66,11 +66,10 @@ def _verifyPackageUsingRpmkeys(package, installroot):
|
||||
@ -31,6 +32,6 @@ index 9d5b286..46ef475 100644
|
||||
'-')
|
||||
with subprocess.Popen(
|
||||
args=args,
|
||||
--
|
||||
libgit2 1.0.1
|
||||
--
|
||||
2.35.1
|
||||
|
@ -1,14 +1,14 @@
|
||||
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 1/3] add default colors to documentation
|
||||
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 ec5bac2ab..fcaa0319f 100644
|
||||
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.
|
||||
@ -97,104 +97,5 @@ index ec5bac2ab..fcaa0319f 100644
|
||||
|
||||
==============
|
||||
--
|
||||
2.31.1
|
||||
|
||||
|
||||
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 2/3] add author
|
||||
|
||||
---
|
||||
AUTHORS | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/AUTHORS b/AUTHORS
|
||||
index 1981dc4e7..f8c9eb832 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.31.1
|
||||
|
||||
|
||||
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 3/3] 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 fcaa0319f..016bd00c2 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.31.1
|
||||
2.35.1
|
||||
|
21
0007-add-author.patch
Normal file
21
0007-add-author.patch
Normal file
@ -0,0 +1,21 @@
|
||||
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
|
||||
|
@ -0,0 +1,75 @@
|
||||
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
|
||||
|
@ -14,12 +14,12 @@ 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 ++++-----
|
||||
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 0949ddf..b0a378c 100644
|
||||
index 0949ddf8..b0a378c2 100644
|
||||
--- a/dnf/base.py
|
||||
+++ b/dnf/base.py
|
||||
@@ -1165,8 +1165,8 @@ class Base(object):
|
||||
@ -45,7 +45,7 @@ index 0949ddf..b0a378c 100644
|
||||
remote_size += \
|
||||
sum(errors._bandwidth_used(pload) for pload in payloads)
|
||||
diff --git a/dnf/repo.py b/dnf/repo.py
|
||||
index b5c9849..b454e98 100644
|
||||
index b5c9849e..b454e981 100644
|
||||
--- a/dnf/repo.py
|
||||
+++ b/dnf/repo.py
|
||||
@@ -112,7 +112,7 @@ def _download_payloads(payloads, drpm):
|
||||
@ -76,6 +76,6 @@ index b5c9849..b454e98 100644
|
||||
if self._fatal:
|
||||
return {'': [self._fatal]}
|
||||
return {}
|
||||
--
|
||||
libgit2 1.0.1
|
||||
--
|
||||
2.35.1
|
||||
|
@ -11,7 +11,7 @@ off to download as much packages from repository as possible.
|
||||
2 files changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/dnf/base.py b/dnf/base.py
|
||||
index b0a378c..c258a5a 100644
|
||||
index b0a378c2..c258a5a7 100644
|
||||
--- a/dnf/base.py
|
||||
+++ b/dnf/base.py
|
||||
@@ -1151,7 +1151,7 @@ class Base(object):
|
||||
@ -42,10 +42,10 @@ index b0a378c..c258a5a 100644
|
||||
if errors._irrecoverable():
|
||||
raise dnf.exceptions.DownloadError(errors._irrecoverable())
|
||||
diff --git a/dnf/repo.py b/dnf/repo.py
|
||||
index b454e98..bb42230 100644
|
||||
index b454e981..bb422309 100644
|
||||
--- a/dnf/repo.py
|
||||
+++ b/dnf/repo.py
|
||||
@@ -84,17 +84,17 @@ def _pkg2payload(pkg, progress, *factories):
|
||||
@@ -84,7 +84,7 @@ def _pkg2payload(pkg, progress, *factories):
|
||||
raise ValueError(_('no matching payload factory for %s') % pkg)
|
||||
|
||||
|
||||
@ -54,9 +54,7 @@ index b454e98..bb42230 100644
|
||||
# download packages
|
||||
def _download_sort_key(payload):
|
||||
return not hasattr(payload, 'delta')
|
||||
|
||||
drpm.err.clear()
|
||||
targets = [pload._librepo_target()
|
||||
@@ -94,7 +94,7 @@ def _download_payloads(payloads, drpm):
|
||||
for pload in sorted(payloads, key=_download_sort_key)]
|
||||
errs = _DownloadErrors()
|
||||
try:
|
||||
@ -65,6 +63,6 @@ index b454e98..bb42230 100644
|
||||
except RuntimeError as e:
|
||||
errs._fatal = str(e)
|
||||
drpm.wait()
|
||||
--
|
||||
libgit2 1.0.1
|
||||
--
|
||||
2.35.1
|
||||
|
@ -1,7 +1,8 @@
|
||||
From f0f037db8219b1e74be4ed86f5eea53b63ca1d88 Mon Sep 17 00:00:00 2001
|
||||
From: Lukáš Hrázký <lhrazky@redhat.com>
|
||||
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
|
||||
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.
|
||||
@ -32,7 +33,7 @@ related: https://bugzilla.redhat.com/show_bug.cgi?id=1943206
|
||||
4 files changed, 16 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/dnf/base.py b/dnf/base.py
|
||||
index c258a5a..babca31 100644
|
||||
index c258a5a7..babca31d 100644
|
||||
--- a/dnf/base.py
|
||||
+++ b/dnf/base.py
|
||||
@@ -1668,9 +1668,7 @@ class Base(object):
|
||||
@ -58,7 +59,7 @@ index c258a5a..babca31 100644
|
||||
return 0
|
||||
if strict:
|
||||
diff --git a/dnf/cli/commands/group.py b/dnf/cli/commands/group.py
|
||||
index cf54279..fd723c4 100644
|
||||
index cf542799..fd723c48 100644
|
||||
--- a/dnf/cli/commands/group.py
|
||||
+++ b/dnf/cli/commands/group.py
|
||||
@@ -244,9 +244,9 @@ class GroupCommand(commands.Command):
|
||||
@ -74,7 +75,7 @@ index cf54279..fd723c4 100644
|
||||
def _mark_remove(self, patterns):
|
||||
q = CompsQuery(self.base.comps, self.base.history,
|
||||
diff --git a/dnf/comps.py b/dnf/comps.py
|
||||
index 8976533..461eb27 100644
|
||||
index 89765337..461eb274 100644
|
||||
--- a/dnf/comps.py
|
||||
+++ b/dnf/comps.py
|
||||
@@ -93,15 +93,15 @@ def _fn_display_order(group):
|
||||
@ -112,7 +113,7 @@ index 8976533..461eb27 100644
|
||||
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 20d7945..03396b6 100644
|
||||
index 20d7945e..03396b69 100644
|
||||
--- a/doc/api_base.rst
|
||||
+++ b/doc/api_base.rst
|
||||
@@ -179,7 +179,7 @@
|
||||
@ -133,6 +134,6 @@ index 20d7945..03396b6 100644
|
||||
|
||||
.. method:: environment_remove(env_id)
|
||||
|
||||
--
|
||||
libgit2 1.0.1
|
||||
--
|
||||
2.35.1
|
||||
|
@ -1,7 +1,8 @@
|
||||
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)
|
||||
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
|
||||
@ -10,7 +11,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1995630
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/doc/conf_ref.rst b/doc/conf_ref.rst
|
||||
index 016bd00..83b14ec 100644
|
||||
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.
|
||||
@ -24,6 +25,6 @@ index 016bd00..83b14ec 100644
|
||||
|
||||
.. _obsoletes_conf_option-label:
|
||||
|
||||
--
|
||||
libgit2 1.0.1
|
||||
--
|
||||
2.35.1
|
||||
|
@ -1,7 +1,8 @@
|
||||
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)
|
||||
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
|
||||
@ -16,7 +17,7 @@ during demand processing.
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dnf/repo.py b/dnf/repo.py
|
||||
index bb42230..1822cf0 100644
|
||||
index bb422309..1822cf01 100644
|
||||
--- a/dnf/repo.py
|
||||
+++ b/dnf/repo.py
|
||||
@@ -434,7 +434,7 @@ class Repo(dnf.conf.RepoConf):
|
||||
@ -28,6 +29,6 @@ index bb42230..1822cf0 100644
|
||||
if parent_conf:
|
||||
self._repo.setSubstitutions(parent_conf.substitutions)
|
||||
self._substitutions = dnf.conf.substitutions.Substitutions()
|
||||
--
|
||||
libgit2 1.0.1
|
||||
--
|
||||
2.35.1
|
||||
|
@ -8,7 +8,7 @@ Subject: [PATCH] Documentation: API notes for cacheonly
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/doc/conf_ref.rst b/doc/conf_ref.rst
|
||||
index 83b14ec..75bcdf7 100644
|
||||
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.
|
||||
@ -21,6 +21,6 @@ index 83b14ec..75bcdf7 100644
|
||||
.. _check_config_file_age-label:
|
||||
|
||||
``check_config_file_age``
|
||||
--
|
||||
libgit2 1.0.1
|
||||
--
|
||||
2.35.1
|
||||
|
@ -9,7 +9,7 @@ Subject: [PATCH] Allow destdir option with modulesync command
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dnf/cli/cli.py b/dnf/cli/cli.py
|
||||
index 6576997..a315201 100644
|
||||
index 65769978..a315201c 100644
|
||||
--- a/dnf/cli/cli.py
|
||||
+++ b/dnf/cli/cli.py
|
||||
@@ -810,7 +810,7 @@ class Cli(object):
|
||||
@ -22,7 +22,7 @@ index 6576997..a315201 100644
|
||||
'or download or system-upgrade command.')
|
||||
)
|
||||
diff --git a/doc/command_ref.rst b/doc/command_ref.rst
|
||||
index f96c0ea..42aec72 100644
|
||||
index f96c0eac..42aec72c 100644
|
||||
--- a/doc/command_ref.rst
|
||||
+++ b/doc/command_ref.rst
|
||||
@@ -182,7 +182,7 @@ Options
|
||||
@ -34,6 +34,6 @@ index f96c0ea..42aec72 100644
|
||||
(dnf-plugins-extras).
|
||||
|
||||
.. _downloadonly-label:
|
||||
--
|
||||
libgit2 1.1.0
|
||||
--
|
||||
2.35.1
|
||||
|
21203
0016-Update-translations-RhBug-2017270.patch
Normal file
21203
0016-Update-translations-RhBug-2017270.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
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 14/19] Add documentation for query api flags
|
||||
Subject: [PATCH] Add documentation for query api flags
|
||||
|
||||
= changelog =
|
||||
msg: Add documentation for query api flags
|
||||
@ -53,5 +53,5 @@ index 79719878..ac843fc9 100644
|
||||
|
||||
Returns a new instance of sack containing only installed packages (@System repo). Useful to get list of the installed RPMs after transaction.
|
||||
--
|
||||
2.31.1
|
||||
2.35.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
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 15/19] Fix processing of download errors (RhBug: 2024527)
|
||||
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
|
||||
@ -33,5 +33,5 @@ index 1822cf01..ec1a2537 100644
|
||||
continue
|
||||
pkg.repo._repo.expire()
|
||||
--
|
||||
2.31.1
|
||||
2.35.1
|
||||
|
@ -1,8 +1,8 @@
|
||||
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 16/19] Fix unittests that relied on checksum being at the end
|
||||
of solvfiles
|
||||
Subject: [PATCH] Fix unittests that relied on checksum being at the end of
|
||||
solvfiles
|
||||
|
||||
---
|
||||
tests/test_fill_sack_from_repos_in_cache.py | 26 +++++++++++----------
|
||||
@ -77,5 +77,5 @@ index a8de287c..30d02cfe 100644
|
||||
|
||||
self.test_base.fill_sack_from_repos_in_cache(load_system_repo=False)
|
||||
--
|
||||
2.31.1
|
||||
2.35.1
|
||||
|
@ -1,8 +1,7 @@
|
||||
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 17/19] cli/commands/history: Fix history undo on a Reason
|
||||
Change
|
||||
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
|
||||
@ -61,5 +60,5 @@ index 293d93fc..21d04a1a 100644
|
||||
# erase repo_id, because it's not possible to perform forward actions from the @System repo
|
||||
ti["repo_id"] = None
|
||||
--
|
||||
2.31.1
|
||||
2.35.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
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 18/19] Fix remove when no repos are enabled (RhBz:2064341)
|
||||
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.
|
||||
@ -26,5 +26,5 @@ index fd723c48..c5c23230 100644
|
||||
if cmd in ('install', 'upgrade'):
|
||||
commands._checkGPGKey(self.base, self.cli)
|
||||
--
|
||||
2.31.1
|
||||
2.35.1
|
||||
|
@ -1,8 +1,8 @@
|
||||
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 19/19] [doc] Improve "proxy" configuration option
|
||||
documentation (RhBug:2072332)
|
||||
Subject: [PATCH] [doc] Improve "proxy" configuration option documentation
|
||||
(RhBug:2072332)
|
||||
|
||||
---
|
||||
doc/conf_ref.rst | 4 ++--
|
||||
@ -26,5 +26,5 @@ index 75bcdf75..885a4560 100644
|
||||
``proxy_username``
|
||||
:ref:`string <string-label>`
|
||||
--
|
||||
2.31.1
|
||||
2.35.1
|
||||
|
318
0023-Base.reset-plug-temporary-leak-of-libsolv-s-page-fil.patch
Normal file
318
0023-Base.reset-plug-temporary-leak-of-libsolv-s-page-fil.patch
Normal file
@ -0,0 +1,318 @@
|
||||
From 88a6289a4f72b11253c01a5a5d834b74d5abb6c3 Mon Sep 17 00:00:00 2001
|
||||
From: Laszlo Ersek <lersek@redhat.com>
|
||||
Date: Sun, 24 Apr 2022 09:08:28 +0200
|
||||
Subject: [PATCH] Base.reset: plug (temporary) leak of libsolv's page file
|
||||
descriptors
|
||||
|
||||
Consider the following call paths (mixed Python and C), extending from
|
||||
livecd-creator down to libsolv:
|
||||
|
||||
main [livecd-tools/tools/livecd-creator]
|
||||
install() [livecd-tools/imgcreate/creator.py]
|
||||
fill_sack() [dnf/dnf/base.py]
|
||||
_add_repo_to_sack() [dnf/dnf/base.py]
|
||||
load_repo() [libdnf/python/hawkey/sack-py.cpp]
|
||||
dnf_sack_load_repo() [libdnf/libdnf/dnf-sack.cpp]
|
||||
write_main() [libdnf/libdnf/dnf-sack.cpp]
|
||||
repo_add_solv() [libsolv/src/repo_solv.c]
|
||||
repopagestore_read_or_setup_pages() [libsolv/src/repopage.c]
|
||||
dup()
|
||||
write_ext() [libdnf/libdnf/dnf-sack.cpp]
|
||||
repo_add_solv() [libsolv/src/repo_solv.c]
|
||||
repopagestore_read_or_setup_pages() [libsolv/src/repopage.c]
|
||||
dup()
|
||||
|
||||
The dup() calls create the following file descriptors (output from
|
||||
"lsof"):
|
||||
|
||||
> COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
|
||||
> python3 6500 root 7r REG 8,1 25320727 395438 /var/tmp/imgcreate-mytcghah/install_root/var/cache/dnf/fedora.solv (deleted)
|
||||
> python3 6500 root 8r REG 8,1 52531426 395450 /var/tmp/imgcreate-mytcghah/install_root/var/cache/dnf/fedora-filenames.solvx
|
||||
|
||||
These file descriptors are *owned* by the DnfSack object (which is derived
|
||||
from GObject), as follows:
|
||||
|
||||
sack->priv->pool->repos[1]->repodata[1]->store.pagefd = 7
|
||||
sack->priv->pool->repos[1]->repodata[2]->store.pagefd = 8
|
||||
^ ^ ^ ^ ^ ^ ^
|
||||
| | | | | | |
|
||||
| | | | | | int
|
||||
| | | | | Repopagestore [libsolv/src/repopage.h]
|
||||
| | | | Repodata [libsolv/src/repodata.h]
|
||||
| | | struct s_Repo [libsolv/src/repo.h]
|
||||
| | struct s_Pool (aka Pool) [libsolv/src/pool.h]
|
||||
| DnfSackPrivate [libdnf/libdnf/dnf-sack.cpp]
|
||||
DnfSack [libdnf/libdnf/dnf-sack.h]
|
||||
|
||||
The file descriptors are *supposed* to be closed on the following call
|
||||
path:
|
||||
|
||||
main [livecd-tools/tools/livecd-creator]
|
||||
install() [livecd-tools/imgcreate/creator.py]
|
||||
close() [livecd-tools/imgcreate/dnfinst.py]
|
||||
close() [dnf/dnf/base.py]
|
||||
reset() [dnf/dnf/base.py]
|
||||
_sack = None
|
||||
_goal = None
|
||||
_transaction = None
|
||||
...
|
||||
dnf_sack_finalize() [libdnf/libdnf/dnf-sack.cpp]
|
||||
pool_free() [libsolv/src/pool.c]
|
||||
pool_freeallrepos() [libsolv/src/pool.c]
|
||||
repo_freedata() [libsolv/src/repo.c]
|
||||
repodata_freedata() [libsolv/src/repodata.c]
|
||||
repopagestore_free() [libsolv/src/repopage.c]
|
||||
close()
|
||||
|
||||
Namely, when dnf.Base.reset() [dnf/dnf/base.py] is called with (sack=True,
|
||||
goal=True), the reference counts of the objects pointed to by the "_sack",
|
||||
"_goal" and "_transaction" fields are supposed to reach zero, and then, as
|
||||
part of the DnfSack object's finalization, the libsolv file descriptors
|
||||
are supposed to be closed.
|
||||
|
||||
Now, while this *may* happen immediately in dnf.Base.reset(), it may as
|
||||
well not. The reason is that there is a multitude of *circular references*
|
||||
between DnfSack and the packages that it contains. When dnf.Base.reset()
|
||||
is entered, we have the following picture:
|
||||
|
||||
_sack _goal
|
||||
| |
|
||||
v v
|
||||
+----------------+ +-------------+
|
||||
| DnfSack object | <--- | Goal object |
|
||||
+----------------+ +-------------+
|
||||
|^ |^ |^
|
||||
|| || ||
|
||||
|| || ||
|
||||
+--||----||----||---+
|
||||
| v| v| v| | <-- _transaction
|
||||
| Pkg1 Pkg2 PkgN |
|
||||
| |
|
||||
| Transaction oject |
|
||||
+-------------------+
|
||||
|
||||
That is, the reference count of the DnfSack object is (1 + 1 + N), where N
|
||||
is the number of packages in the transaction. Details:
|
||||
|
||||
(a) The first reference comes from the "_sack" field, established like
|
||||
this:
|
||||
|
||||
main [livecd-tools/tools/livecd-creator]
|
||||
install() [livecd-tools/imgcreate/creator.py]
|
||||
fill_sack() [dnf/dnf/base.py]
|
||||
_build_sack() [dnf/dnf/sack.py]
|
||||
Sack()
|
||||
sack_init() [libdnf/python/hawkey/sack-py.cpp]
|
||||
dnf_sack_new() [libdnf/libdnf/dnf-sack.cpp]
|
||||
|
||||
(b) The second reference on the DnfSack object comes from "_goal":
|
||||
|
||||
main [livecd-tools/tools/livecd-creator]
|
||||
install() [livecd-tools/imgcreate/creator.py]
|
||||
fill_sack() [dnf/dnf/base.py]
|
||||
_goal = Goal(_sack)
|
||||
goal_init() [libdnf/python/hawkey/goal-py.cpp]
|
||||
Py_INCREF(_sack)
|
||||
|
||||
(c) Then there is one reference to "_sack" *per package* in the
|
||||
transaction:
|
||||
|
||||
main [livecd-tools/tools/livecd-creator]
|
||||
install() [livecd-tools/imgcreate/creator.py]
|
||||
runInstall() [livecd-tools/imgcreate/dnfinst.py]
|
||||
resolve() [dnf/dnf/base.py]
|
||||
_goal2transaction() [dnf/dnf/base.py]
|
||||
list_installs() [libdnf/python/hawkey/goal-py.cpp]
|
||||
list_generic() [libdnf/python/hawkey/goal-py.cpp]
|
||||
packagelist_to_pylist() [libdnf/python/hawkey/iutil-py.cpp]
|
||||
new_package() [libdnf/python/hawkey/sack-py.cpp]
|
||||
Py_BuildValue()
|
||||
ts.add_install()
|
||||
|
||||
list_installs() creates a list of packages that need to be installed
|
||||
by DNF. Inside the loop in packagelist_to_pylist(), which constructs
|
||||
the elements of that list, Py_BuildValue() is called with the "O"
|
||||
format specifier, and that increases the reference count on "_sack".
|
||||
|
||||
Subsequently, in the _goal2transaction() method, we iterate over the
|
||||
package list created by list_installs(), and add each package to the
|
||||
transaction (ts.add_install()). After _goal2transaction() returns,
|
||||
this transaction is assigned to "self._transaction" in resolve(). This
|
||||
is where the last N (back-)references on the DnfSack object come from.
|
||||
|
||||
(d) Now, to quote the defintion of the DnfSack object
|
||||
("libdnf/docs/hawkey/tutorial-py.rst"):
|
||||
|
||||
> *Sack* is an abstraction for a collection of packages.
|
||||
|
||||
That's why the DnfSack object references all the Pkg1 through PkgN
|
||||
packages.
|
||||
|
||||
So, when the dnf.Base.reset() method completes, the picture changes like
|
||||
this:
|
||||
|
||||
_sack _goal
|
||||
| |
|
||||
-- [CUT] -- -- [CUT] --
|
||||
| |
|
||||
v | v
|
||||
+----------------+ [C] +-------------+
|
||||
| DnfSack object | <-[U]- | Goal object |
|
||||
+----------------+ [T] +-------------+
|
||||
|^ |^ |^ |
|
||||
|| || ||
|
||||
|| || || |
|
||||
+--||----||----||---+ [C]
|
||||
| v| v| v| | <--[U]-- _transaction
|
||||
| Pkg1 Pkg2 PkgN | [T]
|
||||
| | |
|
||||
| Transaction oject |
|
||||
+-------------------+
|
||||
|
||||
and we are left with N reference cycles (one between each package and the
|
||||
same DnfSack object).
|
||||
|
||||
This set of cycles can only be cleaned up by Python's generational garbage
|
||||
collector <https://stackify.com/python-garbage-collection/>. The GC will
|
||||
collect the DnfSack object, and consequently close the libsolv page file
|
||||
descriptors via dnf_sack_finalize() -- but garbage collection will happen
|
||||
*only eventually*, unpredictably.
|
||||
|
||||
This means that the dnf.Base.reset() method breaks its interface contract:
|
||||
|
||||
> Make the Base object forget about various things.
|
||||
|
||||
because the libsolv file descriptors can (and frequently do, in practice)
|
||||
survive dnf.Base.reset().
|
||||
|
||||
In general, as long as the garbage collector only tracks process-private
|
||||
memory blocks, there's nothing wrong; however, file descriptors are
|
||||
visible to the kernel. When dnf.Base.reset() *temporarily* leaks file
|
||||
descriptors as explained above, then immediately subsequent operations
|
||||
that depend on those file descriptors having been closed, can fail.
|
||||
|
||||
An example is livecd-creator's unmounting of:
|
||||
|
||||
/var/tmp/imgcreate-mytcghah/install_root/var/cache/dnf
|
||||
|
||||
which the kernel refuses, due to libsolv's still open file descriptors
|
||||
pointing into that filesystem:
|
||||
|
||||
> umount: /var/tmp/imgcreate-mytcghah/install_root/var/cache/dnf: target
|
||||
> is busy.
|
||||
> Unable to unmount /var/tmp/imgcreate-mytcghah/install_root/var/cache/dnf
|
||||
> normally, using lazy unmount
|
||||
|
||||
(Unfortunately, the whole lazy umount idea is misguided in livecd-tools;
|
||||
it's a misfeature that should be removed, as it permits the corruption of
|
||||
the loop-backed filesystem. Now that the real bug is being fixed in DNF,
|
||||
lazy umount is not needed as a (broken) workaround in livecd-tools. But
|
||||
that's a separate patch for livecd-tools:
|
||||
<https://github.com/livecd-tools/livecd-tools/pull/227>.)
|
||||
|
||||
Plug the fd leak by forcing a garbage collection in dnf.Base.reset()
|
||||
whenever we cut the "_sack", "_goal" and "_transaction" links -- that is,
|
||||
when the "sack" and "goal" parameters are True.
|
||||
|
||||
Note that precisely due to the unpredictable behavior of the garbage
|
||||
collector, reproducing the bug may prove elusive. In order to reproduce it
|
||||
deterministically, through usage with livecd-creator, disabling automatic
|
||||
garbage collection with the following patch (for livecd-tools) is
|
||||
sufficient:
|
||||
|
||||
> diff --git a/tools/livecd-creator b/tools/livecd-creator
|
||||
> index 291de10cbbf9..8d2c740c238b 100755
|
||||
> --- a/tools/livecd-creator
|
||||
> +++ b/tools/livecd-creator
|
||||
> @@ -31,6 +31,8 @@ from dnf.exceptions import Error as DnfBaseError
|
||||
> import imgcreate
|
||||
> from imgcreate.errors import KickstartError
|
||||
>
|
||||
> +import gc
|
||||
> +
|
||||
> class Usage(Exception):
|
||||
> def __init__(self, msg = None, no_error = False):
|
||||
> Exception.__init__(self, msg, no_error)
|
||||
> @@ -261,5 +263,6 @@ def do_nss_libs_hack():
|
||||
> return hack
|
||||
>
|
||||
> if __name__ == "__main__":
|
||||
> + gc.disable()
|
||||
> hack = do_nss_libs_hack()
|
||||
> sys.exit(main())
|
||||
|
||||
Also note that you need to use livecd-tools at git commit 4afde9352e82 or
|
||||
later, for this fix to make any difference: said commit fixes a different
|
||||
(independent) bug in livecd-tools that produces identical symptoms, but
|
||||
from a different origin. In other words, if you don't have commit
|
||||
4afde9352e82 in your livecd-tools install, then said bug in livecd-tools
|
||||
will mask this DNF fix.
|
||||
|
||||
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
|
||||
(cherry picked from commit 5ce5ed1ea08ad6e198c1c1642c4d9ea2db6eab86)
|
||||
---
|
||||
dnf/base.py | 41 +++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 41 insertions(+)
|
||||
|
||||
diff --git a/dnf/base.py b/dnf/base.py
|
||||
index babca31d..852fcdd8 100644
|
||||
--- a/dnf/base.py
|
||||
+++ b/dnf/base.py
|
||||
@@ -72,6 +72,7 @@ import dnf.transaction
|
||||
import dnf.util
|
||||
import dnf.yum.rpmtrans
|
||||
import functools
|
||||
+import gc
|
||||
import hawkey
|
||||
import itertools
|
||||
import logging
|
||||
@@ -568,6 +569,46 @@ class Base(object):
|
||||
self._comps_trans = dnf.comps.TransactionBunch()
|
||||
self._transaction = None
|
||||
self._update_security_filters = []
|
||||
+ if sack and goal:
|
||||
+ # We've just done this, above:
|
||||
+ #
|
||||
+ # _sack _goal
|
||||
+ # | |
|
||||
+ # -- [CUT] -- -- [CUT] --
|
||||
+ # | |
|
||||
+ # v | v
|
||||
+ # +----------------+ [C] +-------------+
|
||||
+ # | DnfSack object | <-[U]- | Goal object |
|
||||
+ # +----------------+ [T] +-------------+
|
||||
+ # |^ |^ |^ |
|
||||
+ # || || ||
|
||||
+ # || || || |
|
||||
+ # +--||----||----||---+ [C]
|
||||
+ # | v| v| v| | <--[U]-- _transaction
|
||||
+ # | Pkg1 Pkg2 PkgN | [T]
|
||||
+ # | | |
|
||||
+ # | Transaction oject |
|
||||
+ # +-------------------+
|
||||
+ #
|
||||
+ # At this point, the DnfSack object would be released only
|
||||
+ # eventually, by Python's generational garbage collector, due to the
|
||||
+ # cyclic references DnfSack<->Pkg1 ... DnfSack<->PkgN.
|
||||
+ #
|
||||
+ # The delayed release is a problem: the DnfSack object may
|
||||
+ # (indirectly) own "page file" file descriptors in libsolv, via
|
||||
+ # libdnf. For example,
|
||||
+ #
|
||||
+ # sack->priv->pool->repos[1]->repodata[1]->store.pagefd = 7
|
||||
+ # sack->priv->pool->repos[1]->repodata[2]->store.pagefd = 8
|
||||
+ #
|
||||
+ # These file descriptors are closed when the DnfSack object is
|
||||
+ # eventually released, that is, when dnf_sack_finalize() (in libdnf)
|
||||
+ # calls pool_free() (in libsolv).
|
||||
+ #
|
||||
+ # We need that to happen right now, as callers may want to unmount
|
||||
+ # the filesystems which those file descriptors refer to immediately
|
||||
+ # after reset() returns. Therefore, force a garbage collection here.
|
||||
+ gc.collect()
|
||||
|
||||
def _closeRpmDB(self):
|
||||
"""Closes down the instances of rpmdb that could be open."""
|
||||
--
|
||||
2.35.1
|
||||
|
53
dnf.spec
53
dnf.spec
@ -66,31 +66,39 @@ It supports RPMs, modules and comps groups & environments.
|
||||
|
||||
Name: dnf
|
||||
Version: 4.7.0
|
||||
Release: 9%{?dist}
|
||||
Release: 10%{?dist}
|
||||
Summary: %{pkg_summary}
|
||||
# For a breakdown of the licensing, see PACKAGE-LICENSING
|
||||
License: GPLv2+
|
||||
URL: https://github.com/rpm-software-management/dnf
|
||||
Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz
|
||||
Patch1: 0001-Set-top-level-directory-for-unittest.patch
|
||||
Patch2: 0002-dnfrpmmiscutilspy-fix-usage-of-_.patch
|
||||
Patch3: 0003-Pass-the-package-to-rpmkeys-stdin.patch
|
||||
Patch4: 0004-Use-rpmkeys-alone-to-verify-signature.patch
|
||||
Patch5: 0005-Lower-_pkgverify_level-to-signature-for-signature-checking-with-rpmkeys.patch
|
||||
Patch6: 0006-Add-default-colors-to-documentation.patch
|
||||
Patch7: 0007-Fix-reporting-irrecoverable-errors-on-packages-download.patch
|
||||
Patch8: 0008-Add-fail_fast-parameter-to-download_payloads-methods.patch
|
||||
Patch9: 0009-comps-Make-the-install_or_skip-method-not-catch-CompsError-anymore.patch
|
||||
Patch10: 0010-doc-Improve-description-of-multilib_policyall-RhBug19966811995630.patch
|
||||
Patch11: 0011-Fix-Python-dnf-API-does-not-respect-cacheonly-RhBug1862970.patch
|
||||
Patch12: 0012-Documentation-API-notes-for-cacheonly.patch
|
||||
Patch13: 0013-Allow-destdir-option-with-modulesync-command.patch
|
||||
Patch14: 0014-Add-documentation-for-query-api-flags.patch
|
||||
Patch15: 0015-Fix-processing-of-download-errors-RhBug-2024527.patch
|
||||
Patch16: 0016-Fix-unittests-that-relied-on-checksum-being-at-the-e.patch
|
||||
Patch17: 0017-cli-commands-history-Fix-history-undo-on-a-Reason-Ch.patch
|
||||
Patch18: 0018-Fix-remove-when-no-repos-are-enabled-RhBz-2064341.patch
|
||||
Patch19: 0019-doc-Improve-proxy-configuration-option-documentation.patch
|
||||
|
||||
# Patches are stored in the upstream repository in this branch:
|
||||
# https://github.com/rpm-software-management/dnf/tree/rhel-8.7
|
||||
# Use "git format-patch -N" to regenerate the patch files.
|
||||
Patch0001: 0001-Set-top-level-directory-for-unittest.patch
|
||||
Patch0002: 0002-dnf-rpm-miscutils.py-fix-usage-of-_.patch
|
||||
Patch0003: 0003-Pass-the-package-to-rpmkeys-stdin.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
|
||||
|
||||
BuildArch: noarch
|
||||
BuildRequires: cmake
|
||||
@ -390,6 +398,11 @@ popd
|
||||
%{python3_sitelib}/%{name}/automatic/
|
||||
|
||||
%changelog
|
||||
* Tue May 24 2022 Richard W.M. Jones <rjones@redhat.com> - 4.7.0-10
|
||||
- Backport fix for leaks of libsolv's page file descriptors in Base object
|
||||
resolves: rhbz#2087734
|
||||
- Include instructions for regenerating patches.
|
||||
|
||||
* Wed May 04 2022 Lukas Hrazky <lhrazky@redhat.com> - 4.7.0-8
|
||||
- Add documentation for query api flags
|
||||
- Fix processing of download errors
|
||||
|
Loading…
Reference in New Issue
Block a user