summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2008-03-19 16:04:38 +0000
committerPascal Rigaux <pixel@mandriva.com>2008-03-19 16:04:38 +0000
commit8c944c1d668d153c7ca500940d638cfd91a726a9 (patch)
tree845e0769232ba85b4c5126ddc624c99678423568
parent79e666cd26423a2e38404692339fce671b5d60bd (diff)
downloadurpmi-8c944c1d668d153c7ca500940d638cfd91a726a9.tar
urpmi-8c944c1d668d153c7ca500940d638cfd91a726a9.tar.gz
urpmi-8c944c1d668d153c7ca500940d638cfd91a726a9.tar.bz2
urpmi-8c944c1d668d153c7ca500940d638cfd91a726a9.tar.xz
urpmi-8c944c1d668d153c7ca500940d638cfd91a726a9.zip
- urpmi:
o fix getting rpms from different media on same DVD without it $blist->{medium}{mntpoint} is set during first _find_blist_url_matching() and "$blist->{medium}{mntpoint} and next" will block everything. with this commit, it won't copy rpms on disk even if on different media if same DVD.
-rw-r--r--NEWS2
-rw-r--r--urpm/cdrom.pm18
2 files changed, 11 insertions, 9 deletions
diff --git a/NEWS b/NEWS
index c7ad7dd2..1a0fe1ca 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,5 @@
+- urpmi:
+ o fix getting rpms from different media on same DVD
- bash-completion (guillomovitch):
o don't complete on available packages if completed item is clearly a file
o only select available packages for selected medias
diff --git a/urpm/cdrom.pm b/urpm/cdrom.pm
index 5f351a42..55e26671 100644
--- a/urpm/cdrom.pm
+++ b/urpm/cdrom.pm
@@ -85,8 +85,7 @@ sub _mount_cdrom_and_check {
my ($urpm, $blists) = @_;
my @matching_blists = try_mounting_cdrom($urpm, $blists) or return;
- my @checked = grep { !_check_notfound($_) } @matching_blists;
- $checked[0];
+ grep { !_check_notfound($_) } @matching_blists;
}
#- side-effects: none
@@ -148,8 +147,8 @@ sub _mount_cdrom {
#- everything that might be necessary.
while (1) {
- if (my $blist = _mount_cdrom_and_check($urpm, $blists)) {
- return $blist;
+ if (my @blists = _mount_cdrom_and_check($urpm, $blists)) {
+ return @blists;
}
# ask for the first one, it's ok if the user insert another wanted cdrom
@@ -230,11 +229,12 @@ sub copy_packages_of_removable_media {
$prev_medium and delete $prev_medium->{mntpoint};
_may_eject_cdrom($urpm);
- my $blist = _mount_cdrom($urpm, $blists, $o_ask_for_medium);
- @$blists = grep { $_ != $blist } @$blists;
-
- _copy_from_cdrom__if_needed($urpm, $blist, $sources, @$blists > 0);
- $prev_medium = $blist->{medium};
+ my @blists_mounted = _mount_cdrom($urpm, $blists, $o_ask_for_medium);
+ @$blists = difference2($blists, \@blists_mounted);
+ foreach my $blist (@blists_mounted) {
+ _copy_from_cdrom__if_needed($urpm, $blist, $sources, @$blists > 0);
+ $prev_medium = $blist->{medium};
+ }
}
1;