From d37d61ba24a165394d3c56160824b96851667c47 Mon Sep 17 00:00:00 2001 From: Thierry Vignaud Date: Mon, 26 Mar 2012 20:20:33 +0000 Subject: (selected2local_and_blists) prevent having duplicate packages in blists (thus fixing downloading twice noarch packages on x86_64 with --download-all (mga#4867)) --- NEWS | 1 + urpm/get_pkgs.pm | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index b6a40432..b8acc0ee 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,5 @@ - fix a debug message +- fix downloading twice noarch packages on x86_64 with --download-all (mga#4867) - gurpmi: o install perl-{Glib,Gtk2} as priority upgrades prior to restart (mga#5066) - updated translations diff --git a/urpm/get_pkgs.pm b/urpm/get_pkgs.pm index 5887d3dd..5c69a525 100644 --- a/urpm/get_pkgs.pm +++ b/urpm/get_pkgs.pm @@ -108,6 +108,7 @@ sub selected2local_and_blists { my @remaining_ids = sort { $a <=> $b } keys %id_map; + my %blists; my @blists = map { my $medium = $_; my %pkgs; @@ -117,8 +118,12 @@ sub selected2local_and_blists { $medium->{start} <= $id && $id <= $medium->{end} or last; shift @remaining_ids; + my $maped_id = $id_map{$id}; + # no duplicate package (especially noarch ones, eg from 32 & 64 bit media): + next if $blists{$maped_id}; + $blists{$maped_id} = 1; my $pkg = $urpm->{depslist}[$id]; - $pkgs{$id_map{$id}} = $pkg; + $pkgs{$maped_id} = $pkg; } } %pkgs ? { medium => $medium, pkgs => \%pkgs } : (); -- cgit v1.2.1