diff options
-rw-r--r-- | urpm.pm | 30 | ||||
-rw-r--r-- | urpmi.spec | 15 |
2 files changed, 32 insertions, 13 deletions
@@ -139,12 +139,15 @@ sub sync_webfetch { } sub sync_wget { -x "/usr/bin/wget" or die _("wget is missing\n"); - system "/usr/bin/wget", "-NP", @_; + my $options = shift @_; + system "/usr/bin/wget", (ref $options && $options->{quiet} ? ("-q") : ()), "-NP", + (ref $options ? $options->{dir} : $options), @_; $? == 0 or die _("wget failed: exited with %d or signal %d\n", $? >> 8, $? & 127); } sub sync_curl { -x "/usr/bin/curl" or die _("curl is missing\n"); - chdir shift @_; + my $options = shift @_; + chdir (ref $options ? $options->{dir} : $options); my (@ftp_files, @other_files); foreach (@_) { /^ftp:\/\/.*\/([^\/]*)$/ && -s $1 > 8192 and do { push @ftp_files, $_; next }; #- manage time stamp for large file only. @@ -192,7 +195,7 @@ sub sync_curl { #- options for ftp files, -R (-O <file>)* #- options for http files, -R (-z file -O <file>)* if (my @all_files = ((map { ("-O", $_ ) } @ftp_files), (map { /\/([^\/]*)$/ ? ("-z", $1, "-O", $_) : () } @other_files))) { - system "/usr/bin/curl", "-R", "-f", @all_files; + system "/usr/bin/curl", (ref $options && $options->{quiet} ? ("-s") : ()), "-R", "-f", @all_files; $? == 0 or die _("curl failed: exited with %d or signal %d\n", $? >> 8, $? & 127); } } @@ -779,7 +782,8 @@ sub update_media { } eval { $urpm->{log}(_("retrieving description file of \"%s\"...", $medium->{name})); - $urpm->{sync}("$urpm->{cachedir}/partial", reduce_pathname("$medium->{url}/../descriptions")); + $urpm->{sync}({ dir => "$urpm->{cachedir}/partial", quiet => 1 }, + reduce_pathname("$medium->{url}/../descriptions")); $urpm->{log}(_("...retrieving done")); }; if (-e "$urpm->{cachedir}/partial/descriptions") { @@ -803,10 +807,11 @@ sub update_media { unlink "$urpm->{cachedir}/partial/$basename"; eval { - $urpm->{sync}("$urpm->{cachedir}/partial", reduce_pathname("$medium->{url}/$_")); + $urpm->{sync}({ dir => "$urpm->{cachedir}/partial", quiet => 1 }, reduce_pathname("$medium->{url}/$_")); }; if (!$@ && -s "$urpm->{cachedir}/partial/$basename" > 32) { $medium->{with_hdlist} = $_; + $urpm->{log}(_("found probed hdlist (or synthesis) as %s", $basename)); last; #- found a suitable with_hdlist in the list above. } } @@ -853,7 +858,8 @@ sub update_media { unlink "$urpm->{cachedir}/partial/list"; my $local_list = $medium->{with_hdlist} =~ /hd(list.*)\.cz$/ ? $1 : 'list'; eval { - $urpm->{sync}("$urpm->{cachedir}/partial", reduce_pathname("$medium->{url}/$local_list")); + $urpm->{sync}({ dir => "$urpm->{cachedir}/partial", quiet => 1}, + reduce_pathname("$medium->{url}/$local_list")); $local_list ne 'list' and rename("$urpm->{cachedir}/partial/$local_list", "$urpm->{cachedir}/partial/list"); }; @@ -891,7 +897,7 @@ sub update_media { close F; } unless ($medium->{synthesis}) { - open F, "parsehdlist --name '$urpm->{cachedir}/partial/$medium->{hdlist}' |"; + open F, "parsehdlist --silent --name '$urpm->{cachedir}/partial/$medium->{hdlist}' |"; while (<F>) { /^([^\/]*):name:([^\/\s:]*)(?::(.*)\.rpm)?$/ or next; $list{$filename2pathname{$3 || $2} || @@ -956,7 +962,8 @@ sub update_media { system("mv", "$urpm->{cachedir}/partial/$medium->{list}", "$urpm->{statedir}/$medium->{list}"); #- and create synthesis file associated. - $medium->{synthesis} or $medium->{modified_synthesis} = 1; + $medium->{modified_synthesis} = !$medium->{synthesis}; + #$medium->{synthesis} or $medium->{modified_synthesis} = 1; } } @@ -1135,7 +1142,10 @@ sub find_mntpoints { #- reduce pathname by removing <something>/.. each time it appears (or . too). sub reduce_pathname { - my ($dir) = @_; + my ($url) = @_; + + #- take care if this is a true url and not a simple pathname. + my ($host, $dir) = $url =~ /([^:\/]*:\/\/[^\/]*\/)?(.*)/; #- remove any multiple /s or trailing /. #- then split all components of pathname. @@ -1153,7 +1163,7 @@ sub reduce_pathname { } $dir =~ s/\/$//; - $dir; + $host . $dir; } #- check for necessity of mounting some directory to get access @@ -2,14 +2,14 @@ Name: urpmi Version: 3.3 -Release: 6mdk +Release: 8mdk License: GPL Source0: %{name}.tar.bz2 Source1: %{name}.logrotate Summary: User mode rpm install Requires: eject, webfetch, perl-DateManip >= 5.40 -PreReq: perl-gettext, rpmtools >= 4.2-2mdk -BuildRequires: libbzip2-devel rpm-devel +PreReq: perl-gettext, rpmtools >= 4.2-4mdk +BuildRequires: bzip2-devel gcc-c++ gettext rpm-devel rpmtools BuildRoot: %{_tmppath}/%{name}-buildroot Group: %{group} @@ -144,6 +144,15 @@ fi %changelog +* Mon Feb 18 2002 François Pons <fpons@mandrakesoft.com> 3.3-8mdk +- added missing build requires on rpmtools. +- fixed too verbose erroneous output that may hurt the user. +- fixed reduce_pathname with real url which reduce a bit + too much. + +* Sat Feb 16 2002 Stefan van der Eijk <stefan@eijk.nu> 3.3-7mdk +- BuildRequires + * Thu Feb 14 2002 François Pons <fpons@mandrakesoft.com> 3.3-6mdk - use reduce_pathname even for downloading distant file. - fixed typo. |