summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perl-install/install_any.pm12
1 files changed, 9 insertions, 3 deletions
diff --git a/perl-install/install_any.pm b/perl-install/install_any.pm
index 630b19945..8c3978930 100644
--- a/perl-install/install_any.pm
+++ b/perl-install/install_any.pm
@@ -506,7 +506,7 @@ sub install_urpmi {
cdrom => "removable://mnt/cdrom" }}{$method} ||
#- for live_update or live_install script.
readlink("/tmp/image/Mandrake") =~ m,^(/.*)/Mandrake/*$, && "removable:/$1") . "/$_->{rpmsdir}";
- my $need_list = $dir =~ m|^[^:]*://[^/:\@]*:[^/:\@]+\@|; #- use list file only if a password is visible
+ my $need_list = $dir =~ m,^(?:[^:]*://[^/:\@]*:[^/:\@]+\@|.*%{),; #- use list file only if visible password or macro.
#- build a list file if needed.
if ($need_list) {
@@ -519,14 +519,20 @@ sub install_urpmi {
#- WARNING this method of build only works because synthesis (or hdlist)
#- has been read.
foreach (@{$packages->{depslist}}[$_->{start} .. $_->{end}]) {
- print $LIST "$dir/".$_->filename."\n";
+ my $ldir = $dir;
+ my $arch = $_->arch;
+ $ldir =~ s/%{ARCH}/$arch/g;
+ print $LIST "$ldir/".$_->filename."\n";
}
} else {
#- need to use another method here to build synthesis.
open(my $F, "parsehdlist '$prefix/var/lib/urpmi/hdlist.$name.cz' |");
local $_;
while (<$F>) {
- print $LIST "$dir/$_";
+ my $ldir = $dir;
+ my $arch = $_->arch;
+ $ldir =~ s/%{ARCH}/$arch/g;
+ print $LIST "$ldir/$_";
}
close $F;
}