import dnf-plugins-core-4.0.17-5.el8

This commit is contained in:
CentOS Sources 2020-11-03 06:47:59 -05:00 committed by Andrew Lukoshko
parent 3a66ff9d7d
commit cd6f9b2bb5
14 changed files with 7753 additions and 44794 deletions

View File

@ -1 +1 @@
5618d7b20c37876e97e4e508952229835a430281 SOURCES/dnf-plugins-core-4.0.12.tar.gz
f938708df18862c3e31e2b9d49e5c9b322d79897 SOURCES/dnf-plugins-core-4.0.17.tar.gz

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/dnf-plugins-core-4.0.12.tar.gz
SOURCES/dnf-plugins-core-4.0.17.tar.gz

View File

@ -1,72 +0,0 @@
From 8a9d9b7c09fb126baac22eda8ebb940412f4464c Mon Sep 17 00:00:00 2001
From: Marek Blaha <mblaha@redhat.com>
Date: Wed, 27 Nov 2019 13:43:58 +0100
Subject: [PATCH] [reposync] Fix --delete with multiple repos (RhBug:1774103)
When reposync was used with --delete option and multiple repositories
to sync, only packages from the latest repository were kept and all
downloaded content from former repositories was imediately deleted.
Additionaly it fixes the problem with multiple packages having the same
filename (in different subdirectories) in one repository. In this case
when --delete option was used, only one of those files was kept and the
others were deleted.
https://bugzilla.redhat.com/show_bug.cgi?id=1774103
---
plugins/reposync.py | 35 +++++++++++++++--------------------
1 file changed, 15 insertions(+), 20 deletions(-)
diff --git a/plugins/reposync.py b/plugins/reposync.py
index 10e9b0b5..fc612a7e 100644
--- a/plugins/reposync.py
+++ b/plugins/reposync.py
@@ -145,7 +145,7 @@ def run(self):
else:
self.download_packages(pkglist)
if self.opts.delete:
- self.delete_old_local_packages(pkglist)
+ self.delete_old_local_packages(repo, pkglist)
def repo_target(self, repo):
return _pkgdir(self.opts.destdir or self.opts.download_path, repo.id)
@@ -169,25 +169,20 @@ def pkg_download_path(self, pkg):
pkg_download_path, repo_target))
return pkg_download_path
- def delete_old_local_packages(self, packages_to_download):
- download_map = dict()
- for pkg in packages_to_download:
- download_map[(pkg.repo.id, os.path.basename(pkg.location))] = pkg.location
- # delete any *.rpm file, that is not going to be downloaded from repository
- for repo in self.base.repos.iter_enabled():
- repo_target = self.repo_target(repo)
- for dirpath, dirnames, filenames in os.walk(repo_target):
- for filename in filenames:
- path = os.path.join(dirpath, filename)
- if filename.endswith('.rpm') and os.path.isfile(path):
- location = download_map.get((repo.id, filename))
- if location is None or os.path.join(repo_target, location) != path:
- # Delete disappeared or relocated file
- try:
- os.unlink(path)
- logger.info(_("[DELETED] %s"), path)
- except OSError:
- logger.error(_("failed to delete file %s"), path)
+ def delete_old_local_packages(self, repo, pkglist):
+ # delete any *.rpm file under target path, that was not downloaded from repository
+ downloaded_files = set(self.pkg_download_path(pkg) for pkg in pkglist)
+ for dirpath, dirnames, filenames in os.walk(self.repo_target(repo)):
+ for filename in filenames:
+ path = os.path.join(dirpath, filename)
+ if filename.endswith('.rpm') and os.path.isfile(path):
+ if path not in downloaded_files:
+ # Delete disappeared or relocated file
+ try:
+ os.unlink(path)
+ logger.info(_("[DELETED] %s"), path)
+ except OSError:
+ logger.error(_("failed to delete file %s"), path)
def getcomps(self, repo):
comps_fn = repo._repo.getCompsFn()

View File

@ -0,0 +1,62 @@
From aa1f12be109a2d997eeb1c1cce22beb09dd21d04 Mon Sep 17 00:00:00 2001
From: Nicola Sella <nsella@redhat.com>
Date: Thu, 11 Jun 2020 09:32:17 +0200
Subject: [PATCH 1/2] [needs-restarting] Fix plugin fail if needs-restarting.d
does not exist
includes pep8 warning fix and string formatting space missing
---
plugins/needs_restarting.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/plugins/needs_restarting.py b/plugins/needs_restarting.py
index 91f7e116..6b7dacb6 100644
--- a/plugins/needs_restarting.py
+++ b/plugins/needs_restarting.py
@@ -46,6 +46,8 @@ def get_options_from_dir(filepath, base):
Return set of package names contained in files under filepath
"""
+ if not os.path.exists(filepath):
+ return set()
options = set()
for file in os.listdir(filepath):
if os.path.isdir(file) or not file.endswith('.conf'):
@@ -58,9 +60,9 @@ def get_options_from_dir(filepath, base):
packages = set()
for pkg in base.sack.query().installed().filter(name={x[0] for x in options}):
packages.add(pkg.name)
- for name, file in {x for x in options if x[0] not in packages }:
+ for name, file in {x for x in options if x[0] not in packages}:
logger.warning(
- _('No installed package found for package name "{pkg}"'
+ _('No installed package found for package name "{pkg}" '
'specified in needs-restarting file "{file}".'.format(pkg=name, file=file)))
return packages
From 57955d299f751cb9927fe501fa086d9153092532 Mon Sep 17 00:00:00 2001
From: Nicola Sella <nsella@redhat.com>
Date: Thu, 11 Jun 2020 10:53:54 +0200
Subject: [PATCH 2/2] [needs-restarting] add kernel-rt to reboot list
BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1806060
---
plugins/needs_restarting.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/needs_restarting.py b/plugins/needs_restarting.py
index 6b7dacb6..69203f4d 100644
--- a/plugins/needs_restarting.py
+++ b/plugins/needs_restarting.py
@@ -37,8 +37,8 @@
# For which package updates we should recommend a reboot
# Mostly taken from https://access.redhat.com/solutions/27943
-NEED_REBOOT = ['kernel', 'glibc', 'linux-firmware', 'systemd', 'dbus',
- 'dbus-broker', 'dbus-daemon']
+NEED_REBOOT = ['kernel', 'kernel-rt', 'glibc', 'linux-firmware',
+ 'systemd', 'dbus', 'dbus-broker', 'dbus-daemon']
def get_options_from_dir(filepath, base):
"""

View File

@ -0,0 +1,159 @@
From b94763c7f52dbbcc9920b4216d53fd8109e434c9 Mon Sep 17 00:00:00 2001
From: Marek Blaha <mblaha@redhat.com>
Date: Wed, 17 Jun 2020 15:49:50 +0200
Subject: [PATCH] Fix debug-restore command
- correctly work with install-only packages (BZ#1844533)
- do not remove current versions of packages that are supposed to be
replaced (downgraded / upgraded)
---
plugins/debug.py | 108 ++++++++++++++++++++++++-----------------------
1 file changed, 56 insertions(+), 52 deletions(-)
diff --git a/plugins/debug.py b/plugins/debug.py
index 6d00613d..29c5bf78 100644
--- a/plugins/debug.py
+++ b/plugins/debug.py
@@ -201,10 +201,9 @@ def run(self):
self.opts.filter_types = set(
self.opts.filter_types.replace(",", " ").split())
- installed = self.base.sack.query().installed()
dump_pkgs = self.read_dump_file(self.opts.filename[0])
- self.process_installed(installed, dump_pkgs, self.opts)
+ self.process_installed(dump_pkgs, self.opts)
self.process_dump(dump_pkgs, self.opts)
@@ -212,56 +211,63 @@ def run(self):
self.base.resolve()
self.base.do_transaction()
- def process_installed(self, installed, dump_pkgs, opts):
- for pkg in sorted(installed):
- filtered = False
+ def process_installed(self, dump_pkgs, opts):
+ installed = self.base.sack.query().installed()
+ installonly_pkgs = self.base._get_installonly_query(installed)
+ for pkg in installed:
+ pkg_remove = False
spec = pkgspec(pkg)
- action, dn, da, de, dv, dr = dump_pkgs.get((pkg.name, pkg.arch),
- [None, None, None,
- None, None, None])
- dump_naevr = (dn, da, de, dv, dr)
- if pkg.pkgtup == dump_naevr:
- # package unchanged
- del dump_pkgs[(pkg.name, pkg.arch)]
- else:
- if action == "install":
- # already have some version
- dump_pkgs[(pkg.name, pkg.arch)][0] = "replace"
- if "replace" not in opts.filter_types:
- filtered = True
+ dumped_versions = dump_pkgs.get((pkg.name, pkg.arch), None)
+ if dumped_versions is not None:
+ evr = (pkg.epoch, pkg.version, pkg.release)
+ if evr in dumped_versions:
+ # the correct version is already installed
+ dumped_versions[evr] = 'skip'
else:
- if "remove" not in opts.filter_types:
- filtered = True
- if not filtered:
- if opts.output:
- print("remove %s" % spec)
+ # other version is currently installed
+ if pkg in installonly_pkgs:
+ # package is install-only, should be removed
+ pkg_remove = True
else:
- self.base.package_remove(pkg)
-
- def process_dump(self, dump_pkgs, opts):
- for (action, n, a, e, v, r) in sorted(dump_pkgs.values()):
- filtered = False
- if opts.ignore_arch:
- arch = ""
- else:
- arch = "." + a
- if opts.install_latest and action == "install":
- pkg_spec = "%s%s" % (n, arch)
- if "install" not in opts.filter_types:
- filtered = True
+ # package should be upgraded / downgraded
+ if "replace" in opts.filter_types:
+ action = 'replace'
+ else:
+ action = 'skip'
+ for d_evr in dumped_versions.keys():
+ dumped_versions[d_evr] = action
else:
- pkg_spec = pkgtup2spec(n, arch, e, v, r)
- if (action == "replace" and
- "replace" not in opts.filter_types):
- filtered = True
- if not filtered:
+ # package should not be installed
+ pkg_remove = True
+ if pkg_remove and "remove" in opts.filter_types:
if opts.output:
- print("install %s" % pkg_spec)
+ print("remove %s" % spec)
else:
- try:
- self.base.install(pkg_spec)
- except dnf.exceptions.MarkingError:
- logger.error(_("Package %s is not available"), pkg_spec)
+ self.base.package_remove(pkg)
+
+ def process_dump(self, dump_pkgs, opts):
+ for (n, a) in sorted(dump_pkgs.keys()):
+ dumped_versions = dump_pkgs[(n, a)]
+ for (e, v, r) in sorted(dumped_versions.keys()):
+ action = dumped_versions[(e, v, r)]
+ if action == 'skip':
+ continue
+ if opts.ignore_arch:
+ arch = ""
+ else:
+ arch = "." + a
+ if opts.install_latest and action == "install":
+ pkg_spec = "%s%s" % (n, arch)
+ else:
+ pkg_spec = pkgtup2spec(n, arch, e, v, r)
+ if action in opts.filter_types:
+ if opts.output:
+ print("%s %s" % (action, pkg_spec))
+ else:
+ try:
+ self.base.install(pkg_spec)
+ except dnf.exceptions.MarkingError:
+ logger.error(_("Package %s is not available"), pkg_spec)
@staticmethod
def read_dump_file(filename):
@@ -288,11 +294,9 @@ def read_dump_file(filename):
pkg_spec = line.strip()
nevra = hawkey.split_nevra(pkg_spec)
- pkgs[(nevra.name, nevra.arch)] = ["install", ucd(nevra.name),
- ucd(nevra.arch),
- ucd(nevra.epoch),
- ucd(nevra.version),
- ucd(nevra.release)]
+ # {(name, arch): {(epoch, version, release): action}}
+ pkgs.setdefault((nevra.name, nevra.arch), {})[
+ (nevra.epoch, nevra.version, nevra.release)] = "install"
return pkgs
@@ -321,6 +325,6 @@ def pkgspec(pkg):
def pkgtup2spec(name, arch, epoch, version, release):
- a = "" if not arch else ".%s" % arch
+ a = "" if not arch else ".%s" % arch.lstrip('.')
e = "" if epoch in (None, "") else "%s:" % epoch
return "%s-%s%s-%s%s" % (name, e, version, release, a)

View File

@ -1,56 +0,0 @@
From b60770dba985dfaab8bedc04e7c3b6a5c3a59d51 Mon Sep 17 00:00:00 2001
From: Jaroslav Mracek <jmracek@redhat.com>
Date: Fri, 29 Nov 2019 10:48:55 +0100
Subject: [PATCH] Redesign reposync --newest_only for modular system
(RhBug:1775434)
reposync --newest_only will download all latest non-modular packages
plus all packages for contexts with latest version for each module
stream.
https://bugzilla.redhat.com/show_bug.cgi?id=1775434
---
plugins/reposync.py | 26 +++++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
diff --git a/plugins/reposync.py b/plugins/reposync.py
index 10e9b0b5..c1bc6a99 100644
--- a/plugins/reposync.py
+++ b/plugins/reposync.py
@@ -203,11 +203,35 @@ def download_metadata(self, repo):
repo._repo.downloadMetadata(repo_target)
return True
+ def _get_latest(self, query):
+ """
+ return query with latest nonmodular package and all packages from latest version per stream
+ """
+ if not dnf.base.WITH_MODULES:
+ return query.latest()
+ query.apply()
+ module_packages = self.base._moduleContainer.getModulePackages()
+ all_artifacts = set()
+ module_dict = {} # {NameStream: {Version: [modules]}}
+ for module_package in module_packages:
+ all_artifacts.update(module_package.getArtifacts())
+ module_dict.setdefault(module_package.getNameStream(), {}).setdefault(
+ module_package.getVersionNum(), []).append(module_package)
+ non_modular_latest = query.filter(
+ pkg__neq=query.filter(nevra_strict=all_artifacts)).latest()
+ latest_artifacts = set()
+ for version_dict in module_dict.values():
+ keys = sorted(version_dict.keys(), reverse=True)
+ for module in version_dict[keys[0]]:
+ latest_artifacts.update(module.getArtifacts())
+ latest_modular_query = query.filter(nevra_strict=latest_artifacts)
+ return latest_modular_query.union(non_modular_latest)
+
def get_pkglist(self, repo):
query = self.base.sack.query(flags=hawkey.IGNORE_MODULAR_EXCLUDES).available().filterm(
reponame=repo.id)
if self.opts.newest_only:
- query = query.latest()
+ query = self._get_latest(query)
if self.opts.source:
query.filterm(arch='src')
elif self.opts.arches:

View File

@ -1,34 +0,0 @@
From 5bc8e4aee27f2e265ad034060c790d881d0af28a Mon Sep 17 00:00:00 2001
From: Pavla Kratochvilova <pkratoch@redhat.com>
Date: Thu, 2 Jan 2020 14:39:09 +0100
Subject: [PATCH] [config-manager] Allow use of --set-enabled without arguments
(RhBug:1679213)
Since config-manager was enhanced to also modify repositories specified
by repoids in the --setopt option, it should no longer be required to
specify repoids as arguments for --set-enabled.
As a consequence, "config-manager --set-enabled" without any other
argument will exit with 0 and have no effect (same as "--set-disabled").
https://bugzilla.redhat.com/show_bug.cgi?id=1679213
---
plugins/config_manager.py | 5 -----
1 file changed, 5 deletions(-)
diff --git a/plugins/config_manager.py b/plugins/config_manager.py
index 4e03d642..bf238ea9 100644
--- a/plugins/config_manager.py
+++ b/plugins/config_manager.py
@@ -67,11 +67,6 @@ def configure(self):
def run(self):
"""Execute the util action here."""
-
- if self.opts.set_enabled and not self.opts.crepo:
- logger.error(_("Error: Trying to enable already enabled repos."))
- self.opts.set_enabled = False
-
if self.opts.add_repo:
self.add_repo()
else:

View File

@ -0,0 +1,53 @@
From 01f5570bb74aa923870e253007b76e8ed266a27f Mon Sep 17 00:00:00 2001
From: Marek Blaha <mblaha@redhat.com>
Date: Wed, 1 Jul 2020 08:52:19 +0200
Subject: [PATCH 3/5] [debug] Use standard demands.resolving for transaction
handling
Do not handle the transaction in plugin, use standard demands.resolving
instead. This ensures that transaction errors are correctly presented to
the user.
Before:
$ dnf debug-restore running-kernel-remove.txt.gz
$ echo $?
1
After the patch:
$ dnf debug-restore running-kernel-remove.txt.gz
Error:
Problem: The operation would result in removing the following protected packages: kernel-core
(try to add '--skip-broken' to skip uninstallable packages)
$ echo $?
1
---
plugins/debug.py | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/plugins/debug.py b/plugins/debug.py
index 29c5bf7..efe6bea 100644
--- a/plugins/debug.py
+++ b/plugins/debug.py
@@ -175,6 +175,8 @@ class DebugRestoreCommand(dnf.cli.Command):
self.cli.demands.sack_activation = True
self.cli.demands.available_repos = True
self.cli.demands.root_user = True
+ if not self.opts.output:
+ self.cli.demands.resolving = True
@staticmethod
def set_argparser(parser):
@@ -207,10 +209,6 @@ class DebugRestoreCommand(dnf.cli.Command):
self.process_dump(dump_pkgs, self.opts)
- if not self.opts.output:
- self.base.resolve()
- self.base.do_transaction()
-
def process_installed(self, dump_pkgs, opts):
installed = self.base.sack.query().installed()
installonly_pkgs = self.base._get_installonly_query(installed)
--
2.25.4

View File

@ -0,0 +1,41 @@
From 9fc9615a07cb314edca953ab71caec27b53fac6d Mon Sep 17 00:00:00 2001
From: Marek Blaha <mblaha@redhat.com>
Date: Thu, 2 Jul 2020 14:29:18 +0200
Subject: [PATCH 4/5] Reorder options in dnf-debug man page alphabetically
---
doc/debug.rst | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/doc/debug.rst b/doc/debug.rst
index 13ac071..ee9860f 100644
--- a/doc/debug.rst
+++ b/doc/debug.rst
@@ -57,16 +57,16 @@ All general DNF options are accepted, see `Options` in :manpage:`dnf(8)` for det
``dnf debug-restore``
-``--output``
- Only output list of packages which will be installed or removed.
- No actuall changes are done.
-
-``--install-latest``
- When installing use the latest package of the same name and architecture.
+``--filter-types=[install,remove,replace]``
+ Limit package changes to specified type.
``--ignore-arch``
When installing package ignore architecture and install missing packages
matching the name, epoch, version and release.
-``--filter-types=[install,remove,replace]``
- Limit package changes to specified type.
+``--install-latest``
+ When installing use the latest package of the same name and architecture.
+
+``--output``
+ Only output list of packages which will be installed or removed.
+ No actuall changes are done.
--
2.25.4

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,90 @@
From 5a05773dfcfbd317e082a8a58edc391d53bed845 Mon Sep 17 00:00:00 2001
From: Marek Blaha <mblaha@redhat.com>
Date: Thu, 2 Jul 2020 14:30:34 +0200
Subject: [PATCH 5/5] [debug] Do not remove install-only packages
(RhBug:1844533)
Running debug-restore command may result in an attempt to remove the
running kernel (in case the running kernel package is not present in the
dump file).
Newly the install-only packages are not removed, only the versions
mentioned in the dump file are marked for installation (the decision on
what versions to keep on the system is done according to
installonly_limit config option).
New option `--remove-installonly` to force removal of those versions of
install-only packages that are not present in the dump file is
introduced.
https://bugzilla.redhat.com/show_bug.cgi?id=1844533
---
doc/debug.rst | 18 +++++++++++++++++-
plugins/debug.py | 13 +++++++++----
2 files changed, 26 insertions(+), 5 deletions(-)
diff --git a/doc/debug.rst b/doc/debug.rst
index ee9860f..2f8418f 100644
--- a/doc/debug.rst
+++ b/doc/debug.rst
@@ -23,7 +23,18 @@ DNF debug Plugin
Description
-----------
-Writes system RPM configuration to a dump file and restore it.
+The plugin provides two dnf commands:
+
+``debug-dump``
+ Writes system RPM configuration to a dump file
+
+``debug-restore``
+ Restore the installed packages to the versions written in the dump file. By
+ default, it does not remove already installed versions of install-only
+ packages and only marks those versions that are mentioned in the dump file
+ for installation. The final decision on which versions to keep on the
+ system is left to dnf and can be fine-tuned using the `installonly_limit`
+ (see :manpage:`dnf.conf(5)`) configuration option.
.. note:: DNF and Yum debug files are not compatible and thus can't be used
by the other program.
@@ -70,3 +81,8 @@ All general DNF options are accepted, see `Options` in :manpage:`dnf(8)` for det
``--output``
Only output list of packages which will be installed or removed.
No actuall changes are done.
+
+``--remove-installonly``
+ Allow removal of install-only packages. Using this option may result in an
+ attempt to remove the running kernel version (in situations when the currently
+ running kernel version is not part of the dump file).
diff --git a/plugins/debug.py b/plugins/debug.py
index efe6bea..ad136a9 100644
--- a/plugins/debug.py
+++ b/plugins/debug.py
@@ -194,6 +194,10 @@ class DebugRestoreCommand(dnf.cli.Command):
"--filter-types", metavar="[install, remove, replace]",
default="install, remove, replace",
help=_("limit to specified type"))
+ parser.add_argument(
+ "--remove-installonly", action="store_true",
+ help=_('Allow removing of install-only packages. Using this option may '
+ 'result in an attempt to remove the running kernel.'))
parser.add_argument(
"filename", nargs=1, help=_("name of dump file"))
@@ -238,10 +242,11 @@ class DebugRestoreCommand(dnf.cli.Command):
# package should not be installed
pkg_remove = True
if pkg_remove and "remove" in opts.filter_types:
- if opts.output:
- print("remove %s" % spec)
- else:
- self.base.package_remove(pkg)
+ if pkg not in installonly_pkgs or opts.remove_installonly:
+ if opts.output:
+ print("remove %s" % spec)
+ else:
+ self.base.package_remove(pkg)
def process_dump(self, dump_pkgs, opts):
for (n, a) in sorted(dump_pkgs.keys()):
--
2.25.4

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,8 @@
From dc71c83ba6a47fb86d7dc5a750df0f262cec3d1b Mon Sep 17 00:00:00 2001
From 37d60b626fcb3e3f68b02c2c24e4ae5149cf223f Mon Sep 17 00:00:00 2001
From: Marek Blaha <mblaha@redhat.com>
Date: Thu, 23 Jul 2020 16:27:22 +0200
Subject: [PATCH] [reposync] Add latest NEVRAs per stream to download (RhBug: 1833074)
Subject: [PATCH] [reposync] Add latest NEVRAs per stream to download (RhBug:
1833074)
This covers situation when package with the newest NEVRA is part of
an older version of a stream and reposync was used with --newest-only
@ -15,14 +16,14 @@ With this patch these package versions are going to be downloaded:
https://bugzilla.redhat.com/show_bug.cgi?id=1833074
---
plugins/reposync.py | 53 +++++++++++++++++++++++++++++++++++++++++++----------
plugins/reposync.py | 53 ++++++++++++++++++++++++++++++++++++---------
1 file changed, 43 insertions(+), 10 deletions(-)
diff --git a/plugins/reposync.py b/plugins/reposync.py
index 8306651..67827f4 100644
index 548a05b4..7556e7eb 100644
--- a/plugins/reposync.py
+++ b/plugins/reposync.py
@@ -200,27 +200,60 @@ class RepoSyncCommand(dnf.cli.Command):
@@ -207,27 +207,60 @@ def download_metadata(self, repo):
def _get_latest(self, query):
"""
@ -93,6 +94,3 @@ index 8306651..67827f4 100644
def get_pkglist(self, repo):
query = self.base.sack.query(flags=hawkey.IGNORE_MODULAR_EXCLUDES).available().filterm(
--
libgit2 0.28.5

View File

@ -1,6 +1,6 @@
%{?!dnf_lowest_compatible: %global dnf_lowest_compatible 4.2.17}
%{?!dnf_lowest_compatible: %global dnf_lowest_compatible 4.2.22}
%global dnf_plugins_extra 2.0.0
%global hawkey_version 0.37.0
%global hawkey_version 0.46.1
%global yum_utils_subpackage_name dnf-utils
%if 0%{?rhel} > 7
%global yum_utils_subpackage_name yum-utils
@ -31,18 +31,19 @@
%endif
Name: dnf-plugins-core
Version: 4.0.12
Release: 4%{?dist}
Version: 4.0.17
Release: 5%{?dist}
Summary: Core Plugins for DNF
License: GPLv2+
URL: https://github.com/rpm-software-management/dnf-plugins-core
Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz
Patch1: 0001-reposync-Fix-delete-with-multiple-repos-RhBug1774103.patch
Patch2: 0002-Redesign-reposync-latest-for-modular-system-RhBug1775434.patch
Patch3: 0003-config-manager-Allow-use-of-set-enabled-without-arguments-RhBug1679213.patch
Patch4: 0004-Update-translations-from-zanata-RhBug-1754960.patch
Patch5: 0005-reposync-Add-latest-NEVRAs-per-stream-to-download-RhBug-1833074.patch
Patch1: 0001-test-plugin-crash-if-needs-restarting-d-does-not-exist.patch
Patch2: 0002-Fix-debug-restore-command-RhBug-1844533.patch
Patch3: 0003-debug-Use-standard-demands.resolving-for-transaction.patch
Patch4: 0004-Reorder-options-in-dnf-debug-man-page-alphabetically.patch
Patch5: 0005-debug-Do-not-remove-install-only-packages-RhBug-1844.patch
Patch6: 0006-Update-translations-RhBug-1820546.patch
Patch7: 0007-reposync-Add-latest-NEVRAs-per-stream-to-download-RhBug-1833074.patch
BuildArch: noarch
BuildRequires: cmake
BuildRequires: gettext
@ -646,7 +647,8 @@ PYTHONPATH=./plugins nosetests-%{python3_version} -s tests/
%exclude %{python3_sitelib}/dnf-plugins/leaves.*
%exclude %{python3_sitelib}/dnf-plugins/__pycache__/leaves.*
%endif
%endif # 0%{?rhel} == 0
%endif
# endif 0%%{?rhel} == 0
%if 0%{?rhel} == 0 && %{with python2}
%files -n python2-dnf-plugin-local
@ -712,7 +714,8 @@ PYTHONPATH=./plugins nosetests-%{python3_version} -s tests/
%exclude %{python3_sitelib}/dnf-plugins/show_leaves.*
%exclude %{python3_sitelib}/dnf-plugins/__pycache__/show_leaves.*
%endif
%endif # 0%{?rhel} == 0
%endif
# endif 0%%{?rhel} == 0
%if %{with python2}
%files -n python2-dnf-plugin-versionlock
@ -746,9 +749,44 @@ PYTHONPATH=./plugins nosetests-%{python3_version} -s tests/
%endif
%changelog
* Thu Aug 20 2020 Pavla Kratochvilova <pkratoch@redhat.com> - 4.0.12-4
* Wed Aug 05 2020 Nicola Sella <nsella@redhat.com> - 4.0.17-5
- [reposync] Add latest NEVRAs per stream to download (RhBug: 1833074)
* Tue Jul 28 2020 Marek Blaha <mblaha@redhat.com> - 4.0.17-4
- Debug-restore command do not remove installonly packages (RhBug:1844533)
- Update translations (RhBug:1820546)
* Fri Jul 17 2020 Nicola Sella <nsella@redhat.com> - 4.0.17-3
- Fix debug-restore command (RhBug:1844533)
* Thu Jun 11 2020 Nicola Sella <nsella@redhat.com> - 4.0.17-2
- [needs-restarting] Fix plugin fail if needs-restarting.d does not exist
* Wed Jun 10 2020 Nicola Sella <nsella@redhat.com> - 4.0.17-1
- [repomanage] Add modular support (RhBug:1804720)
- [needs-restarting] add options using .conf file (RhBug:1810123)
* Wed Jun 03 2020 Nicola Sella <nsella@redhat.com> - 4.0.16-1
- Update to 4.0.16
- [versionlock] Take obsoletes into account (RhBug:1627124)
- Move args "--set-enabled", "--set-disabled" from DNF (RhBug:1727882)
- Add missing arguments --set-enabled/--set-diabled into error message
- Warn when --enablerepo/--disablerepo args were passed (RhBug:1727882)
- [copr] add support for enabling/disabling runtime dependencies
- [copr] no-liability text to be always printed
* Mon Apr 06 2020 Ales Matej <amatej@redhat.com> - 4.0.15-1
- Update to 4.0.15
- Fix: config_manager respect config file location during save
- Fix conflict for dnf download --resolve (RhBug:1787908)
- Fix: don't open stdin if versionlock is missing (RhBug:1785563)
- config-manager calls parser error when without options (RhBug:1782822)
- Update reposync.py with --norepopath option
- Support remote files in dnf builddep
- [versionlock] Prevent conflicting/duplicate entries (RhBug:1782052)
- [download] Respect repo priority (RhBug:1800342)
- [doc] Skip creating and installing migrate documentation for Python 3+
* Fri Jan 31 2020 Marek Blaha <mblaha@redhat.com> - 4.0.12-3
- [translations] Update translations from zanata (RhBug:1754960)