diff options
-rw-r--r-- | urpm.pm | 23 | ||||
-rwxr-xr-x | urpmi | 4 | ||||
-rwxr-xr-x | urpmi.addmedia | 10 | ||||
-rw-r--r-- | urpmi.spec | 8 |
4 files changed, 30 insertions, 15 deletions
@@ -375,9 +375,11 @@ sub read_config { exists $hdlists{$_->{hdlist}} and $_->{ignore} = 1, $urpm->{error}(_("medium \"%s\" trying to use an already used hdlist, medium ignored", $_->{name})); $hdlists{$_->{hdlist}} = undef; - exists $lists{$_->{list}} and - $_->{ignore} = 1, $urpm->{error}(_("medium \"%s\" trying to use an already used list, medium ignored", $_->{name})); - $lists{$_->{list}} = undef; + if ($_->{list}) { + exists $lists{$_->{list}} and + $_->{ignore} = 1, $urpm->{error}(_("medium \"%s\" trying to use an already used list, medium ignored", $_->{name})); + $lists{$_->{list}} = undef; + } } #- urpmi.cfg if old is not enough to known the various media, track @@ -444,18 +446,16 @@ sub probe_medium { $medium->{ignore} = 1, $urpm->{error}(_("unable to find hdlist file for \"%s\", medium ignored", $medium->{name})); } unless ($medium->{ignore} || $medium->{list}) { - $medium->{list} = "list.$medium->{name}"; - unless (-e "$urpm->{statedir}/$medium->{list}") { - if (defined $medium->{clear_url}) { - delete $medium->{list}; - } else { + unless (defined $medium->{url}) { + $medium->{list} = "list.$medium->{name}"; + unless (-e "$urpm->{statedir}/$medium->{list}") { $medium->{ignore} = 1, $urpm->{error}(_("unable to find list file for \"%s\", medium ignored", $medium->{name})); } } } #- there is a little more to do at this point as url is not known, inspect directly list file for it. - unless ($medium->{url} || $medium->{clear_url}) { + unless ($medium->{url}) { my %probe; local *L; open L, "$urpm->{statedir}/$medium->{list}"; @@ -1268,6 +1268,7 @@ sub update_media { } else { #- the flag is no more necessary. delete $medium->{list}; + unlink "$urpm->{statedir}/$medium->{list}"; } } } @@ -1291,7 +1292,7 @@ sub update_media { #- but use newly created file. unlink "$urpm->{statedir}/$medium->{hdlist}"; $medium->{synthesis} and unlink "$urpm->{statedir}/synthesis.$medium->{hdlist}"; - unlink "$urpm->{statedir}/$medium->{list}"; + $medium->{list} and unlink "$urpm->{statedir}/$medium->{list}"; unless ($medium->{headers}) { rename("$urpm->{cachedir}/partial/$medium->{hdlist}", $medium->{synthesis} ? "$urpm->{statedir}/synthesis.$medium->{hdlist}" : "$urpm->{statedir}/$medium->{hdlist}") or @@ -1857,6 +1858,8 @@ sub get_source_packages { my %sources; unless ($medium->{ignore}) { + print STDERR ">>$medium->{$_}\n" foreach qw(name list url start end); + print STDERR "\n"; #- always prefer a list file is available. if ($medium->{list} && -r "$urpm->{statedir}/$medium->{list}") { open F, "$urpm->{statedir}/$medium->{list}"; @@ -445,8 +445,8 @@ unless ($local_sources || $list) { $urpm->{fatal}(3, _("unable to get source packages, aborting")); } -my %sources = $urpm->download_source_packages($local_sources, $list, ($X ? '' : 'force_local'), - (!$auto || $allow_medium_change) && sub { +my %sources = $urpm->download_source_packages($local_sources, $list, + force_local => !$X, ask_for_medium => (!$auto || $allow_medium_change) && sub { my $msg = _("Please insert the medium named \"%s\" on device [%s]", @_); my $msg2 = _("Press Enter when ready..."); if ($X) { diff --git a/urpmi.addmedia b/urpmi.addmedia index 5355a877..dcc030e2 100755 --- a/urpmi.addmedia +++ b/urpmi.addmedia @@ -148,12 +148,13 @@ and [options] are from }; $@ and $urpm->{log}(_("...retrieving failed: %s", $@)); #- examine its contents and create all requested media, url is now a simple regex. - my $heading = quotemeta($options{version} eq 'cooker' ? 'cooker' : $options{distrib}); + my $heading = quotemeta($options{distrib}); my $qarch = quotemeta($options{arch}); my $i = 1; local *F; open F, "$urpm->{cachedir}/partial/$basename"; while (<F>) { + print STDERR ">>>$_\n" if chomp; s/#.*$//; s/^\s*//; s/\s*$//; my ($v, $a, $l, $burl, $relative_hdlist); if (($v, $a, $l, $burl, $relative_hdlist) = /^$heading:([^:]*):([^:]*):([^:]*):(\S*)(?:\s+with\s+(.*))?$/) { @@ -162,7 +163,12 @@ and [options] are from } elsif (($a, $burl) = /^$heading([^:]*):(\S*)$/) { $a eq $options{arch} or next; $options{distrib} eq 'updates' and $burl = "$burl/$options{version}/RPMS"; - $options{distrib} eq 'contrib' and $burl = $burl."2"; + $options{distrib} eq 'contrib' and $burl .= "2"; + } elsif (($a, $burl) = /^cooker([^:]*):(\S*)$/) { + #- specific case for old style mirrors file description (of Mandrake). + $options{version} eq 'cooker' && $options{distrib} eq 'contrib' or next; + $a eq $options{arch} or next; + $burl .= "2"; } else { # it could a blank line (from a commentary) or source description. next; @@ -2,7 +2,7 @@ Name: urpmi Version: 4.1 -Release: 5mdk +Release: 6mdk License: GPL Source0: %{name}.tar.bz2 Source1: %{name}.logrotate @@ -204,6 +204,12 @@ fi %changelog +* Mon Dec 2 2002 François Pons <fpons@mandrakesoft.com> 4.1-6mdk +- fixed mutliple second or more medium being ignored when not + using a list file. +- fixed problem of package not found when not using list file. +- fixed urpmi --auto. + * Fri Nov 29 2002 François Pons <fpons@mandrakesoft.com> 4.1-5mdk - changed urpmi.addmedia behaviour to use /etc/urpmi/mirror.config and allow it to parse urpmi.setup mirror configuration as |