diff --git a/0010-reposync-Avoid-multiple-downloads-of-duplicate-packa.patch b/0010-reposync-Avoid-multiple-downloads-of-duplicate-packa.patch new file mode 100644 index 0000000..fd81986 --- /dev/null +++ b/0010-reposync-Avoid-multiple-downloads-of-duplicate-packa.patch @@ -0,0 +1,40 @@ +From c54f4f151db68f88b411f7d3b625955190a4a232 Mon Sep 17 00:00:00 2001 +From: Marek Blaha +Date: Mon, 4 Nov 2024 10:35:08 +0100 +Subject: [PATCH] reposync: Avoid multiple downloads of duplicate packages + +Download each package only once if it would have been saved to the same +location. This can occur if the repository metadata contains duplicate +entries for the same package. + +Resolves: https://issues.redhat.com/browse/RHEL-64320 +Resolves: https://issues.redhat.com/browse/RHEL-82849 +Upstream commit: 17e36ed +--- + plugins/reposync.py | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/plugins/reposync.py b/plugins/reposync.py +index 63d8e98..2e23a7e 100644 +--- a/plugins/reposync.py ++++ b/plugins/reposync.py +@@ -305,7 +305,15 @@ class RepoSyncCommand(dnf.cli.Command): + query.filterm(arch='src') + elif self.opts.arches: + query.filterm(arch=self.opts.arches) +- return query ++ # skip packages that would have been downloaded to the same location ++ pkglist = [] ++ seen_paths = set() ++ for pkg in query: ++ download_path = self.pkg_download_path(pkg) ++ if download_path not in seen_paths: ++ pkglist.append(pkg) ++ seen_paths.add(download_path) ++ return pkglist + + def download_packages(self, pkglist): + base = self.base +-- +2.48.1 + diff --git a/dnf-plugins-core.spec b/dnf-plugins-core.spec index 055a968..8b33167 100644 --- a/dnf-plugins-core.spec +++ b/dnf-plugins-core.spec @@ -42,7 +42,7 @@ Name: dnf-plugins-core Version: 4.7.0 -Release: 8%{?dist} +Release: 9%{?dist} Summary: Core Plugins for DNF License: GPL-2.0-or-later URL: https://github.com/rpm-software-management/dnf-plugins-core @@ -56,6 +56,8 @@ Patch6: 0006-needs-restarting-Add-exclude-services.patch Patch7: 0007-needs-restarting-Add-exclude-services-to-man-page.patch Patch8: 0008-needs-restarting-Get-boot-time-from-systemd-UnitsLoa.patch Patch9: 0009-doc-needs-restarting-uses-UnitsLoadStartTimestamp-bo.patch +Patch10: 0010-reposync-Avoid-multiple-downloads-of-duplicate-packa.patch + BuildArch: noarch BuildRequires: cmake BuildRequires: gettext @@ -886,6 +888,9 @@ ln -sf %{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/man1/repotrack.1 %endif %changelog +* Thu Mar 20 2025 Marek Blaha - 4.7.0-9 +- reposync: Avoid multiple downloads of duplicate packages (RHEL-82849) + * Thu Jan 23 2025 Evan Goode - 4.7.0-8 - needs-restarting: Get boot time from systemd UnitsLoadStartTimestamp (RHEL-35577)