diff --git a/.gitignore b/.gitignore index 57b4ee8..86df7d9 100644 --- a/.gitignore +++ b/.gitignore @@ -55,3 +55,4 @@ /dnf-plugins-core-4.0.19.tar.gz /dnf-plugins-core-4.0.21.tar.gz /dnf-plugins-core-4.0.24.tar.gz +/dnf-plugins-core-4.1.0.tar.gz diff --git a/0001-groups-manager-More-benevolent-resolving-of-packages-RhBug2013633.patch b/0001-groups-manager-More-benevolent-resolving-of-packages-RhBug2013633.patch deleted file mode 100644 index 15ffe86..0000000 --- a/0001-groups-manager-More-benevolent-resolving-of-packages-RhBug2013633.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 24668777a7624a8ee3c6f53aff8f4d6675019d23 Mon Sep 17 00:00:00 2001 -From: Marek Blaha -Date: Mon, 8 Nov 2021 16:51:56 +0100 -Subject: [PATCH] groups-manager: More benevolent resolving of packages (RhBug:2013633) - -= changelog = -msg: groups-manager uses for matching packages full NEVRA and not only name. -type: enhancement -resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2013633 ---- - plugins/groups_manager.py | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/plugins/groups_manager.py b/plugins/groups_manager.py -index 382df37..12da183 100644 ---- a/plugins/groups_manager.py -+++ b/plugins/groups_manager.py -@@ -254,7 +254,9 @@ class GroupsManagerCommand(dnf.cli.Command): - # find packages according to specifications from command line - packages = set() - for pkg_spec in self.opts.packages: -- q = self.base.sack.query().filterm(name__glob=pkg_spec).latest() -+ subj = dnf.subject.Subject(pkg_spec) -+ q = subj.get_best_query(self.base.sack, with_nevra=True, -+ with_provides=False, with_filenames=False).latest() - if not q: - logger.warning(_("No match for argument: {}").format(pkg_spec)) - continue --- -libgit2 1.1.0 - diff --git a/0002-versionlock-fix-multi-pkg-lock-RhBug2013324.patch b/0002-versionlock-fix-multi-pkg-lock-RhBug2013324.patch deleted file mode 100644 index 0700887..0000000 --- a/0002-versionlock-fix-multi-pkg-lock-RhBug2013324.patch +++ /dev/null @@ -1,95 +0,0 @@ -From e289904dcd9c93ad8e1c3b01878599e9d65fa2cc Mon Sep 17 00:00:00 2001 -From: Nicola Sella -Date: Mon, 1 Nov 2021 18:29:40 +0100 -Subject: [PATCH] [versionlock] fix multi pkg lock (RhBug:2013324) - -= changelog = -msg: [versionlock] Fix: Multiple package-name-spec arguments don't lock -correctly (RhBug:2001039) -type: bugfix -resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2013324 ---- - plugins/versionlock.py | 57 +++++++++++++++++++++++++++++++++------------------------ - 1 file changed, 33 insertions(+), 24 deletions(-) - -diff --git a/plugins/versionlock.py b/plugins/versionlock.py -index 19fbd8c..32c51da 100644 ---- a/plugins/versionlock.py -+++ b/plugins/versionlock.py -@@ -171,25 +171,27 @@ class VersionLockCommand(dnf.cli.Command): - cmd = self.opts.subcommand - - if cmd == 'add': -- (entry, entry_cmd) = _search_locklist(self.opts.package) -- if entry == '': -- _write_locklist(self.base, self.opts.package, self.opts.raw, True, -- "\n# Added lock on %s\n" % time.ctime(), -- ADDING_SPEC, '') -- elif cmd != entry_cmd: -- raise dnf.exceptions.Error(ALREADY_EXCLUDED.format(entry)) -- else: -- logger.info("%s %s", EXISTING_SPEC, entry) -+ results = _search_locklist(self.opts.package) -+ for entry, entry_cmd in results: -+ if entry_cmd == '': -+ _write_locklist(self.base, [entry], self.opts.raw, True, -+ "\n# Added lock on %s\n" % time.ctime(), -+ ADDING_SPEC, '') -+ elif cmd != entry_cmd: -+ raise dnf.exceptions.Error(ALREADY_EXCLUDED.format(entry)) -+ else: -+ logger.info("%s %s", EXISTING_SPEC, entry) - elif cmd == 'exclude': -- (entry, entry_cmd) = _search_locklist(self.opts.package) -- if entry == '': -- _write_locklist(self.base, self.opts.package, self.opts.raw, False, -- "\n# Added exclude on %s\n" % time.ctime(), -- EXCLUDING_SPEC, '!') -- elif cmd != entry_cmd: -- raise dnf.exceptions.Error(ALREADY_LOCKED.format(entry)) -- else: -- logger.info("%s %s", EXISTING_SPEC, entry) -+ results = _search_locklist(self.opts.package) -+ for entry, entry_cmd in results: -+ if entry_cmd == '': -+ _write_locklist(self.base, [entry], self.opts.raw, False, -+ "\n# Added exclude on %s\n" % time.ctime(), -+ EXCLUDING_SPEC, '!') -+ elif cmd != entry_cmd: -+ raise dnf.exceptions.Error(ALREADY_LOCKED.format(entry)) -+ else: -+ logger.info("%s %s", EXISTING_SPEC, entry) - elif cmd == 'list': - for pat in _read_locklist(): - print(pat) -@@ -237,14 +239,21 @@ def _read_locklist(): - - - def _search_locklist(package): -+ results = [] - found = action = '' - locked_specs = _read_locklist() -- for ent in locked_specs: -- if _match(ent, package): -- found = ent -- action = 'exclude' if ent.startswith('!') else 'add' -- break -- return (found, action) -+ for pkg in package: -+ match = False -+ for ent in locked_specs: -+ found = action = '' -+ if _match(ent, [pkg]): -+ found = ent -+ action = 'exclude' if ent.startswith('!') else 'add' -+ results.append((found, action)) -+ match = True -+ if not match: -+ results.append((pkg, action)) -+ return results - - - def _write_locklist(base, args, raw, try_installed, comment, info, prefix): --- -libgit2 1.1.0 - diff --git a/0003-Update-documentation-for-adding-specific-version-RhBug2013332.patch b/0003-Update-documentation-for-adding-specific-version-RhBug2013332.patch deleted file mode 100644 index 93968ed..0000000 --- a/0003-Update-documentation-for-adding-specific-version-RhBug2013332.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 2c5c1a00fde93b25ffaaa9ad5eea6f0d5712efe4 Mon Sep 17 00:00:00 2001 -From: Nicola Sella -Date: Thu, 11 Nov 2021 13:48:39 +0100 -Subject: [PATCH] Update documentation for adding specific version (RhBug:2013332) - -=changelog= -msg: [versionlock] update documentation for adding specifi version -type: bugfix -resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2013332 ---- - doc/versionlock.rst | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/doc/versionlock.rst b/doc/versionlock.rst -index 061ce80..1ac7196 100644 ---- a/doc/versionlock.rst -+++ b/doc/versionlock.rst -@@ -97,6 +97,10 @@ Subcommands - Adding versionlock on: mutt-5:1.11.4-1.fc30.* - Adding versionlock on: mutt-5:1.12.1-3.fc30.* - -+ .. note:: Be careful when adding specific versions -+ -+ If you add a package specifying a version with ``dnf versionlock mutt-5:1.11.4-1.fc30.x86_64`` then, if you run ``dnf versionlock add mutt`` -+ versionlock will not add ``mutt-5:1.12.1-3.fc30.x86_64``. - - ``dnf versionlock exclude `` - Add an exclude (within versionlock) for the available packages matching the spec. It means that --- -libgit2 1.1.0 - diff --git a/0004-plugin-debug-Use-base._ts.dbCookie-to-determining-rp.patch b/0004-plugin-debug-Use-base._ts.dbCookie-to-determining-rp.patch deleted file mode 100644 index 898c56f..0000000 --- a/0004-plugin-debug-Use-base._ts.dbCookie-to-determining-rp.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 66bac802e84fcf97dbe32690c33c420cb8f16891 Mon Sep 17 00:00:00 2001 -From: Jaroslav Rohel -Date: Fri, 4 Feb 2022 10:28:59 +0100 -Subject: [PATCH] plugin debug: Use base._ts.dbCookie() to determining rpmdb - version - -The debug plugin used `base.sack._rpmdb_version()` method. Which is -actually the private method `hawkey.Sack._rpmdb_version()` from libdnf. - -The patch uses the `base._ts.dbCookie()` method. This method was added -to DNF 4.11.0. And internally it calls the new official API function -`rpm.TransactionSet.dbCookie()` from librpm. This is a necessary step -to allow the `._rpmdb_version()` method to be removed from libdnf. ---- - plugins/debug.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/plugins/debug.py b/plugins/debug.py -index ad136a9..c443f71 100644 ---- a/plugins/debug.py -+++ b/plugins/debug.py -@@ -161,7 +161,7 @@ class DebugDumpCommand(dnf.cli.Command): - - def dump_rpmdb_versions(self): - self.write("%%%%RPMDB VERSIONS\n") -- version = self.base.sack._rpmdb_version() -+ version = self.base._ts.dbCookie() - self.write(" all: %s\n" % version) - return - --- -2.34.1 - diff --git a/dnf-plugins-core.spec b/dnf-plugins-core.spec index fb4f9c9..1191c84 100644 --- a/dnf-plugins-core.spec +++ b/dnf-plugins-core.spec @@ -1,6 +1,6 @@ -%{?!dnf_lowest_compatible: %global dnf_lowest_compatible 4.10.0-4} +%{?!dnf_lowest_compatible: %global dnf_lowest_compatible 4.11.0} %global dnf_plugins_extra 2.0.0 -%global hawkey_version 0.46.1 +%global hawkey_version 0.64.0 %global yum_utils_subpackage_name dnf-utils %if 0%{?rhel} > 7 %global yum_utils_subpackage_name yum-utils @@ -33,16 +33,12 @@ %endif Name: dnf-plugins-core -Version: 4.0.24 -Release: 3%{?dist} +Version: 4.1.0 +Release: 1%{?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-groups-manager-More-benevolent-resolving-of-packages-RhBug2013633.patch -Patch2: 0002-versionlock-fix-multi-pkg-lock-RhBug2013324.patch -Patch3: 0003-Update-documentation-for-adding-specific-version-RhBug2013332.patch -Patch4: 0004-plugin-debug-Use-base._ts.dbCookie-to-determining-rp.patch BuildArch: noarch BuildRequires: cmake @@ -150,7 +146,6 @@ Summary: Core Plugins for DNF BuildRequires: python3-dbus BuildRequires: python3-devel BuildRequires: python3-dnf >= %{dnf_lowest_compatible} -BuildRequires: make %if 0%{?fedora} Requires: python3-distro %endif @@ -408,6 +403,19 @@ versions of those packages. This allows you to e.g. protect packages from being updated by newer versions. %endif +%if %{with python3} +%package -n python3-dnf-plugin-modulesync +Summary: Download module metadata and packages and create repository +Requires: python3-%{name} = %{version}-%{release} +Requires: createrepo_c >= 0.17.4 +Provides: dnf-plugin-modulesync = %{version}-%{release} +Provides: dnf-command(modulesync) + +%description -n python3-dnf-plugin-modulesync +Download module metadata from all enabled repositories, module artifacts and profiles of matching modules and create +repository. +%endif + %prep %autosetup -p1 %if %{with python2} @@ -768,7 +776,19 @@ ln -sf %{_mandir}/man1/%{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/ %endif %endif +%if %{with python3} +%files -n python3-dnf-plugin-modulesync +%{python3_sitelib}/dnf-plugins/modulesync.* +%{python3_sitelib}/dnf-plugins/__pycache__/modulesync.* +%{_mandir}/man8/dnf-modulesync.* +%endif + %changelog +* Thu Apr 28 2022 Pavla Kratochvilova - 4.1.0-1 +- Add a new subpackage with modulesync command. The command downloads packages from modules and/or creates a repository with modular data. (RhBug:1868047) +- [repoclosure] Print counts of missing dependencies +- [reposync] Do not stop downloading packages on the first error (RhBug:2009894) + * Mon Feb 07 2022 Pavla Kratochvilova - 4.0.24-3 - Backport patch with new way to determine rpmdb version diff --git a/sources b/sources index bbeaf27..5500e19 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (dnf-plugins-core-4.0.24.tar.gz) = 3fd6a76d7b9b19c2ac749fa237ebfa34aca4f3e90e4fa7a7013d5f603b2ae733d14714c0c62544955e2f2390aa9a7fb50b996abef37cf1ed8d2105e51f81c8f7 +SHA512 (dnf-plugins-core-4.1.0.tar.gz) = 0a6fb2a9db129bce479777d6858292ca04ee25b2cb4a5362e241d98e7015b0bbeb2be7f1912ac9a443547a308e437a60c91c4e1a45c9108e4ae7e1ee77024c77