forked from rpms/dnf-plugins-core
		
	reposync: Avoid multiple downloads of duplicate packages
Upstream commit: 17e36ed Resolves: RHEL-82849
This commit is contained in:
		
							parent
							
								
									f51fac7f6e
								
							
						
					
					
						commit
						649615584f
					
				| @ -0,0 +1,40 @@ | |||||||
|  | From c54f4f151db68f88b411f7d3b625955190a4a232 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Marek Blaha <mblaha@redhat.com> | ||||||
|  | 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 | ||||||
|  | 
 | ||||||
| @ -42,7 +42,7 @@ | |||||||
| 
 | 
 | ||||||
| Name:           dnf-plugins-core | Name:           dnf-plugins-core | ||||||
| Version:        4.7.0 | Version:        4.7.0 | ||||||
| Release:        8%{?dist} | Release:        9%{?dist} | ||||||
| Summary:        Core Plugins for DNF | Summary:        Core Plugins for DNF | ||||||
| License:        GPL-2.0-or-later | License:        GPL-2.0-or-later | ||||||
| URL:            https://github.com/rpm-software-management/dnf-plugins-core | 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 | Patch7:         0007-needs-restarting-Add-exclude-services-to-man-page.patch | ||||||
| Patch8:         0008-needs-restarting-Get-boot-time-from-systemd-UnitsLoa.patch | Patch8:         0008-needs-restarting-Get-boot-time-from-systemd-UnitsLoa.patch | ||||||
| Patch9:         0009-doc-needs-restarting-uses-UnitsLoadStartTimestamp-bo.patch | Patch9:         0009-doc-needs-restarting-uses-UnitsLoadStartTimestamp-bo.patch | ||||||
|  | Patch10:        0010-reposync-Avoid-multiple-downloads-of-duplicate-packa.patch | ||||||
|  | 
 | ||||||
| BuildArch:      noarch | BuildArch:      noarch | ||||||
| BuildRequires:  cmake | BuildRequires:  cmake | ||||||
| BuildRequires:  gettext | BuildRequires:  gettext | ||||||
| @ -886,6 +888,9 @@ ln -sf %{yum_utils_subpackage_name}.1.gz %{buildroot}%{_mandir}/man1/repotrack.1 | |||||||
| %endif | %endif | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Thu Mar 20 2025 Marek Blaha <mblaha@redhat.com> - 4.7.0-9 | ||||||
|  | - reposync: Avoid multiple downloads of duplicate packages (RHEL-82849) | ||||||
|  | 
 | ||||||
| * Thu Jan 23 2025 Evan Goode <egoode@redhat.com> - 4.7.0-8 | * Thu Jan 23 2025 Evan Goode <egoode@redhat.com> - 4.7.0-8 | ||||||
| - needs-restarting: Get boot time from systemd UnitsLoadStartTimestamp | - needs-restarting: Get boot time from systemd UnitsLoadStartTimestamp | ||||||
|   (RHEL-35577) |   (RHEL-35577) | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user