summaryrefslogtreecommitdiffstats
path: root/urpm.pm
diff options
context:
space:
mode:
Diffstat (limited to 'urpm.pm')
-rw-r--r--urpm.pm134
1 files changed, 67 insertions, 67 deletions
diff --git a/urpm.pm b/urpm.pm
index f0d831fa..9220ef91 100644
--- a/urpm.pm
+++ b/urpm.pm
@@ -53,7 +53,7 @@ sub new {
error => sub { printf STDERR "%s\n", $_[0] },
log => sub { printf STDERR "%s\n", $_[0] },
- ui_msg => sub { $self->{log}($_[0]); $self->{ui} and $self->{ui}{msg}->($_[1]); },
+ ui_msg => sub { $self->{log}($_[0]); $self->{ui} and $self->{ui}{msg}->($_[1]) },
}, $class;
}
@@ -148,7 +148,7 @@ sub sync_webfetch {
if ($files{ssh}) {
my @ssh_files;
foreach (@{$files{ssh} || []}) {
- /^ssh:\/\/([^\/]*)(.*)/ and push @ssh_files, "$1:$2";
+ m|^ssh://([^/]*)(.*)| and push @ssh_files, "$1:$2";
}
sync_ssh($options, @ssh_files);
delete $files{ssh};
@@ -171,7 +171,7 @@ sub propagate_sync_callback {
sub sync_file {
my $options = shift @_;
foreach (@_) {
- my ($in) = /^(?:removable[^:]*|file):\/(.*)/;
+ my ($in) = m!^(?:removable[^:]*|file):/(.*)!;
propagate_sync_callback($options, 'start', $_);
system("cp", "-p", "-R", $in || $_, ref($options) ? $options->{dir} : $options) and
die N("copy failed: %s", $@);
@@ -236,7 +236,7 @@ sub sync_curl {
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.
+ m|^ftp://.*/([^/]*)$| && -s $1 > 8192 and do { push @ftp_files, $_; next }; #- manage time stamp for large file only.
push @other_files, $_;
}
if (@ftp_files) {
@@ -273,7 +273,7 @@ sub sync_curl {
#- for that, it should be clear ftp_files is empty... else a above work is
#- use less.
foreach (keys %ftp_files_info) {
- my ($lfile) = /\/([^\/]*)$/ or next; #- strange if we can't parse it correctly.
+ my ($lfile) = m|/([^/]*)$| or next; #- strange if we can't parse it correctly.
my $ltime = eval { Date::Manip::ParseDate(scalar gmtime((stat $1)[9])) };
$ltime =~ s/(\d{6}).{4}(.*)/$1$2/; #- remove day and hour.
-s $lfile == $ftp_files_info{$_}{size} && $ftp_files_info{$_}{time} eq $ltime or
@@ -284,7 +284,7 @@ sub sync_curl {
#- http files (and other files) are correctly managed by curl to conditionnal download.
#- 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))) {
+ if (my @all_files = ((map { ("-O", $_) } @ftp_files), (map { m|/([^/]*)$| ? ("-z", $1, "-O", $_) : @{[]} } @other_files))) {
my @l = (@ftp_files, @other_files);
my ($buf, $file) = ('', undef);
my $curl_pid = open CURL, join(" ", map { "'$_'" } "/usr/bin/curl",
@@ -342,7 +342,7 @@ sub sync_rsync {
foreach (@_) {
my $count = 10; #- retry count on error (if file exists).
my $basename = basename($_);
- my ($file) = /^rsync:\/\/(.*)/ or next; $file =~ /::/ or $file = $_;
+ my ($file) = m|^rsync://(.*)| or next; $file =~ /::/ or $file = $_;
propagate_sync_callback($options, 'start', $file);
do {
local (*RSYNC, $_);
@@ -350,7 +350,7 @@ sub sync_rsync {
open RSYNC, join(" ", map { "'$_'" } "/usr/bin/rsync",
($limit_rate ? "--bwlimit=$limit_rate" : ()),
(ref($options) && $options->{quiet} ? qw(-q) : qw(--progress -v)),
- (ref($options) && $options->{compress} ? qw(-z) : ()),
+ if_(ref($options) && $options->{compress}, qw(-z)),
qw(--partial --no-whole-file), $file, (ref($options) ? $options->{dir} : $options)) . " |";
local $/ = \1; #- read input by only one char, this is slow but very nice (and it works!).
while (<RSYNC>) {
@@ -397,7 +397,7 @@ sub sync_ssh {
open RSYNC, join(" ", map { "'$_'" } "/usr/bin/rsync",
($limit_rate ? "--bwlimit=$limit_rate" : ()),
(ref($options) && $options->{quiet} ? qw(-q) : qw(--progress -v)),
- (ref($options) && $options->{compress} ? qw(-z) : ()),
+ if_(ref($options) && $options->{compress}, qw(-z)),
qw(--partial -e ssh), $file, (ref($options) ? $options->{dir} : $options)) . " |";
local $/ = \1; #- read input by only one char, this is slow but very nice (and it works!).
while (<RSYNC>) {
@@ -528,7 +528,7 @@ sub read_config {
#- urpmi.cfg if old is not enough to known the various media, track
#- directly into /var/lib/urpmi,
foreach (glob("$urpm->{statedir}/hdlist.*")) {
- if (/\/hdlist\.((.*)\.cz2?)$/) {
+ if (m|/hdlist\.((.*)\.cz2?)$|) {
#- check if it has already been detected above.
exists($hdlists{"hdlist.$1"}) and next;
@@ -632,8 +632,8 @@ sub probe_medium {
#- /./ is end of url marker in list file (typically generated by a
#- find . -name "*.rpm" > list
#- for exportable list file.
- /^(.*)\/\.\// and $probe{$1} = undef;
- /^(.*)\/[^\/]*$/ and $probe{$1} = undef;
+ m|^(.*)/\./| and $probe{$1} = undef;
+ m|^(.*)/[^/]*$| and $probe{$1} = undef;
}
close L;
}
@@ -677,7 +677,7 @@ sub probe_removable_device {
#- try to find device to open/close for removable medium.
if (exists($medium->{removable})) {
- if (my ($dir) = $medium->{url} =~ /(?:file|removable)[^:]*:\/(.*)/) {
+ if (my ($dir) = $medium->{url} =~ m!(?:file|removable)[^:]*:/(.*)!) {
my %infos;
my @mntpoints = $urpm->find_mntpoints($dir, \%infos);
if (@mntpoints > 1) { #- return value is suitable for an hash.
@@ -837,9 +837,9 @@ sub configure {
my $second_pass;
do {
foreach (grep { !$_->{ignore} && (!$options{update} || $_->{update}) } @{$urpm->{media} || []}) {
- delete @{$_}{qw(start end)};
+ delete @$_{qw(start end)};
if ($_->{virtual}) {
- my $path = $_->{url} =~ /^file:\/*(\/[^\/].*[^\/])\/*$/ && $1;
+ my $path = $_->{url} =~ m|^file:/*(/[^/].*[^/])/*$| && $1;
if ($path) {
if ($_->{synthesis}) {
$urpm->{log}(N("examining synthesis file [%s]", "$path/$_->{with_hdlist}"));
@@ -934,7 +934,7 @@ sub add_medium {
#- make sure configuration has been read.
# (Olivier Thauvin) Yes but Why ??? Is this a workaround ?
- $urpm->{media} or $urpm->read_config();
+ $urpm->{media} or $urpm->read_config;
#- if a medium with that name has already been found
#- we have to exit now
@@ -979,7 +979,7 @@ sub add_medium {
};
#- check to see if the medium is using file protocol or removable medium.
- $url =~ /^(removable[^:]*|file):\/(.*)/ and $urpm->probe_removable_device($medium);
+ $url =~ m!^(removable[^:]*|file):/(.*)! and $urpm->probe_removable_device($medium);
}
#- check if a password is visible, if not set clear_url.
@@ -1003,10 +1003,10 @@ sub add_distrib_media {
#- make sure configuration has been read.
# (Olivier Thauvin): Is this a workaround ?
- $urpm->{media} or $urpm->read_config();
+ $urpm->{media} or $urpm->read_config;
#- try to copy/retrive Mandrake/basehdlists file.
- if (my ($dir) = $url =~ /^(?:removable[^:]*|file):\/(.*)/) {
+ if (my ($dir) = $url =~ m!^(?:removable[^:]*|file):/(.*)!) {
$hdlists_file = reduce_pathname("$dir/Mandrake/base/hdlists");
$urpm->try_mounting($hdlists_file) or $urpm->{error}(N("unable to access first installation medium")), return;
@@ -1206,9 +1206,9 @@ sub update_media {
#- we still need to read it and all synthesis will be written if
#- a unresolved provides is found.
#- to speed up the process, we only read the synthesis at the begining.
- delete @{$medium}{qw(start end)};
+ delete @$medium{qw(start end)};
if ($medium->{virtual}) {
- my ($path) = $medium->{url} =~ /^file:\/*(\/[^\/].*[^\/])\/*$/;
+ my ($path) = $medium->{url} =~ m|^file:/*(/[^/].*[^/])/*$|;
my $with_hdlist_file = "$path/$medium->{with_hdlist}";
if ($path) {
if ($medium->{synthesis}) {
@@ -1250,7 +1250,7 @@ sub update_media {
}
#- check to see if the medium is using file protocol or removable medium.
- if (($prefix, $dir) = $medium->{url} =~ /^(removable[^:]*|file):\/(.*)/) {
+ if (($prefix, $dir) = $medium->{url} =~ m!^(removable[^:]*|file):/(.*)!) {
#- try to figure a possible hdlist_path (or parent directory of searched directory.
#- this is used to probe possible hdlist file.
my $with_hdlist_dir = reduce_pathname($dir . ($medium->{with_hdlist} ? "/$medium->{with_hdlist}" : "/.."));
@@ -1266,7 +1266,7 @@ this could happen if you mounted manually the directory when creating the medium
#- try to probe for possible with_hdlist parameter, unless
#- it is already defined (and valid).
if ($options{probe_with} && (!$medium->{with_hdlist} || ! -e "$dir/$medium->{with_hdlist}")) {
- my ($suffix) = $dir =~ /RPMS([^\/]*)\/*$/;
+ my ($suffix) = $dir =~ m|RPMS([^/]*)/*$|;
foreach (probe_with_try_list($suffix, $options{probe_with})) {
if (-s "$dir/$_" > 32) {
@@ -1282,7 +1282,7 @@ this could happen if you mounted manually the directory when creating the medium
#- syncing a virtual medium is very simple, just try to read the file in order to
#- determine its type, once a with_hdlist has been found (but is mandatory).
if ($medium->{with_hdlist} && -e $with_hdlist_dir) {
- delete @{$medium}{qw(start end)};
+ delete @$medium{qw(start end)};
if ($medium->{synthesis}) {
$urpm->{log}(N("examining synthesis file [%s]", $with_hdlist_dir));
eval { ($medium->{start}, $medium->{end}) = $urpm->parse_synthesis($with_hdlist_dir);
@@ -1292,13 +1292,13 @@ this could happen if you mounted manually the directory when creating the medium
unless (defined $medium->{start} && defined $medium->{end}) {
$urpm->{log}(N("examining hdlist file [%s]", $with_hdlist_dir));
eval { ($medium->{start}, $medium->{end}) = $urpm->parse_hdlist($with_hdlist_dir, packing => 1);
- delete @{$medium}{qw(modified synthesis)};
+ delete @$medium{qw(modified synthesis)};
$urpm->{modified} = 1 };
}
} else {
$urpm->{log}(N("examining hdlist file [%s]", $with_hdlist_dir));
eval { ($medium->{start}, $medium->{end}) = $urpm->parse_hdlist($with_hdlist_dir, packing => 1);
- delete @{$medium}{qw(modified synthesis)};
+ delete @$medium{qw(modified synthesis)};
$urpm->{modified} = 1 };
unless (defined $medium->{start} && defined $medium->{end}) {
$urpm->{log}(N("examining synthesis file [%s]", $with_hdlist_dir));
@@ -1359,7 +1359,7 @@ this could happen if you mounted manually the directory when creating the medium
local (*F, $_);
open F, reduce_pathname("$with_hdlist_dir/../MD5SUM");
while (<F>) {
- my ($md5sum, $file) = /(\S+)\s+(?:\.\/)?(\S+)/ or next;
+ my ($md5sum, $file) = m|(\S+)\s+(?:\./)?(\S+)| or next;
#- keep md5sum got here to check download was ok ! so even if md5sum is not defined, we need
#- to compute it, keep it in mind ;)
$file eq $basename and $retrieved_md5sum = $md5sum;
@@ -1588,7 +1588,7 @@ this could happen if you mounted manually the directory when creating the medium
local (*F, $_);
open F, "$urpm->{cachedir}/partial/MD5SUM";
while (<F>) {
- my ($md5sum, $file) = /(\S+)\s+(?:\.\/)?(\S+)/ or next;
+ my ($md5sum, $file) = m|(\S+)\s+(?:\./)?(\S+)| or next;
#- keep md5sum got here to check download was ok ! so even if md5sum is not defined, we need
#- to compute it, keep it in mind ;)
$file eq $basename and $retrieved_md5sum = $md5sum;
@@ -1642,7 +1642,7 @@ this could happen if you mounted manually the directory when creating the medium
$urpm->{log}(N("retrieving source hdlist (or synthesis) of \"%s\"...", $medium->{name}));
$options{callback} && $options{callback}('retrieve', $medium->{name});
if ($options{probe_with}) {
- my ($suffix) = $dir =~ /RPMS([^\/]*)\/*$/;
+ my ($suffix) = $dir =~ m|RPMS([^/]*)/*$|;
foreach my $with_hdlist ($medium->{with_hdlist}, probe_with_try_list($suffix, $options{probe_with})) {
$basename = basename($with_hdlist) or next;
@@ -1794,7 +1794,7 @@ this could happen if you mounted manually the directory when creating the medium
#- rpm files have already been read (first pass), there is just a need to
#- build list hash.
foreach (@files) {
- /\/([^\/]*\.rpm)$/ or next;
+ m|/([^/]*\.rpm)$| or next;
$list{$1} and $urpm->{error}(N("file [%s] already used in the same medium \"%s\"", $1, $medium->{name})), next;
$list{$1} = "$prefix:/$_\n";
}
@@ -1829,13 +1829,13 @@ this could happen if you mounted manually the directory when creating the medium
defined $medium->{start} && defined $medium->{end} and delete $medium->{synthesis};
}
}
- unless (defined $medium->{start} && defined $medium->{end}) {
+ if (defined $medium->{start} && defined $medium->{end}) {
+ $options{callback} && $options{callback}('done', $medium->{name});
+ } else {
$error = 1;
$urpm->{error}(N("unable to parse hdlist file of \"%s\"", $medium->{name}));
$options{callback} && $options{callback}('failed', $medium->{name});
#- we will have to read back the current synthesis file unmodified.
- } else {
- $options{callback} && $options{callback}('done', $medium->{name});
}
unless ($error) {
@@ -1846,7 +1846,7 @@ this could happen if you mounted manually the directory when creating the medium
local (*F, $_);
open F, "$urpm->{cachedir}/partial/list";
while (<F>) {
- /\/([^\/]*\.rpm)$/ or next;
+ m|/([^/]*\.rpm)$| or next;
$list{$1} and $urpm->{error}(N("file [%s] already used in the same medium \"%s\"", $1, $medium->{name})), next;
$list{$1} = "$medium->{url}/$_";
}
@@ -1992,7 +1992,7 @@ this could happen if you mounted manually the directory when creating the medium
} elsif ($medium->{synthesis}) {
if ($second_pass) {
if ($medium->{virtual}) {
- my ($path) = $medium->{url} =~ /^file:\/*(\/[^\/].*[^\/])\/*$/;
+ my ($path) = $medium->{url} =~ m|^file:/*(/[^/].*[^/])/*$|;
my $with_hdlist_file = "$path/$medium->{with_hdlist}";
if ($path) {
$urpm->{log}(N("examining synthesis file [%s]", $with_hdlist_file));
@@ -2032,7 +2032,7 @@ this could happen if you mounted manually the directory when creating the medium
my %headers;
opendir D, "$urpm->{cachedir}/headers";
while (defined($_ = readdir D)) {
- /^([^\/]*-[^-]*-[^-]*\.[^\.]*)(?::\S*)?$/ and $headers{$1} = $_;
+ m|^([^/]*-[^-]*-[^-]*\.[^\.]*)(?::\S*)?$| and $headers{$1} = $_;
}
closedir D;
$urpm->{log}(N("found %d headers in cache", scalar(keys %headers)));
@@ -2046,7 +2046,7 @@ this could happen if you mounted manually the directory when creating the medium
}
#- this file is written in any cases.
- $urpm->write_config();
+ $urpm->write_config;
}
#- make sure names files are regenerated.
@@ -2087,7 +2087,7 @@ sub is_using_supermount {
#- read /etc/fstab and check for existing mount point.
open F, "/etc/fstab";
while (<F>) {
- my ($device, $mntpoint, $fstype, $options) = /^\s*(\S+)\s+(\/\S+)\s+(\S+)\s+(\S+)/ or next;
+ my ($device, $mntpoint, $fstype, $options) = m|^\s*(\S+)\s+(/\S+)\s+(\S+)\s+(\S+)| or next;
$mntpoint =~ s,/+,/,g; $mntpoint =~ s,/$,,;
if ($fstype eq 'supermount') {
$device_mntpoint eq $mntpoint and return 1;
@@ -2107,7 +2107,7 @@ sub find_mntpoints {
#- read /etc/fstab and check for existing mount point.
open F, "/etc/fstab";
while (<F>) {
- my ($device, $mntpoint, $fstype, $options) = /^\s*(\S+)\s+(\/\S+)\s+(\S+)\s+(\S+)/ or next;
+ my ($device, $mntpoint, $fstype, $options) = m|^\s*(\S+)\s+(/\S+)\s+(\S+)\s+(\S+)| or next;
$mntpoint =~ s,/+,/,g; $mntpoint =~ s,/$,,;
$fstab{$mntpoint} = 0;
if (ref($infos)) {
@@ -2121,7 +2121,7 @@ sub find_mntpoints {
}
open F, "/etc/mtab";
while (<F>) {
- my ($device, $mntpoint, $fstype, $options) = /^\s*(\S+)\s+(\/\S+)\s+(\S+)\s+(\S+)/ or next;
+ my ($device, $mntpoint, $fstype, $options) = m|^\s*(\S+)\s+(/\S+)\s+(\S+)\s+(\S+)| or next;
$mntpoint =~ s,/+,/,g; $mntpoint =~ s,/$,,;
$fstab{$mntpoint} = 1;
if (ref($infos)) {
@@ -2156,12 +2156,12 @@ sub find_mntpoints {
last;
} elsif (-l $pdir) {
while ($v = readlink $pdir) {
- if ($pdir =~ /^\//) {
+ if ($pdir =~ m|^/|) {
$pdir = $v;
} else {
- while ($v =~ /^\.\.\/(.*)/) {
+ while ($v =~ m|^\.\./(.*)|) {
$v = $1;
- $pdir =~ s/^(.*)\/[^\/]+\/*/$1/;
+ $pdir =~ s|^(.*)/[^/]+/*|$1|;
}
$pdir .= "/$v";
}
@@ -2180,23 +2180,23 @@ sub reduce_pathname {
#- clean url to remove any macro (which cannot be solved now).
#- take care if this is a true url and not a simple pathname.
- my ($host, $dir) = $url =~ /([^:\/]*:\/\/[^\/]*\/)?(.*)/;
+ my ($host, $dir) = $url =~ m|([^:/]*://[^/]*/)?(.*)|;
#- remove any multiple /s or trailing /.
#- then split all components of pathname.
- $dir =~ s/\/+/\//g; $dir =~ s/\/$//;
+ $dir =~ s|/+|/|g; $dir =~ s|/$||;
my @paths = split '/', $dir;
#- reset $dir, recompose it, and clean trailing / added by algorithm.
$dir = '';
foreach (@paths) {
if ($_ eq '..') {
- $dir =~ s/([^\/]+)\/$// or $dir .= "../";
+ $dir =~ s|([^/]+)/$|| or $dir .= "../";
} elsif ($_ ne '.') {
$dir .= "$_/";
}
}
- $dir =~ s/\/$//;
+ $dir =~ s|/$||;
$dir ||= '/';
$host . $dir;
@@ -2261,7 +2261,7 @@ sub register_rpms {
/\.rpm$/ or $error = 1, $urpm->{error}(N("invalid rpm file name [%s]", $_)), next;
#- allow url to be given.
- if (my ($basename) = /^[^:]*:\/.*\/([^\/]*\.rpm)$/) {
+ if (my ($basename) = m|^[^:]*:/.*/([^/]*\.rpm)$|) {
unlink "$urpm->{cachedir}/partial/$basename";
eval {
$urpm->{log}(N("retrieving rpm file [%s] ...", $_));
@@ -2300,12 +2300,12 @@ sub search_packages {
#- try to search through provides.
if (my @l = map { $_ && ($options{src} ? $_->arch eq 'src' : $_->is_arch_compat) &&
($options{use_provides} || $_->name eq $v) && defined $_->id ?
- ($_) : @{[]} } map { $urpm->{depslist}[$_] }
+ $_ : @{[]} } map { $urpm->{depslist}[$_] }
keys %{$urpm->{provides}{$v} || {}}) {
#- we assume that if the there is at least one package providing the resource exactly,
#- this should be the best ones that is described.
#- but we first check if one of the packages has the same name as searched.
- if (my @l2 = grep { $_->name eq $v} @l) {
+ if (my @l2 = grep { $_->name eq $v } @l) {
$exact{$v} = join '|', map { $_->id } @l2;
} else {
$exact{$v} = join '|', map { $_->id } @l;
@@ -2571,7 +2571,7 @@ sub get_source_packages {
#- examine the local repository, which is trusted (no gpg or pgp signature check but md5 is now done).
opendir D, "$urpm->{cachedir}/rpms";
while (defined($_ = readdir D)) {
- if (my ($filename) = /^([^\/]*\.rpm)$/) {
+ if (my ($filename) = m|^([^/]*\.rpm)$|) {
my $filepath = "$urpm->{cachedir}/rpms/$filename";
if (!$options{clean_all} && -s $filepath) {
if (keys(%{$file2fullnames{$filename} || {}}) > 1) {
@@ -2608,7 +2608,7 @@ sub get_source_packages {
#- always prefer a list file is available.
my $file = $medium->{list} && "$urpm->{statedir}/$medium->{list}";
if (!$file && $medium->{virtual}) {
- my ($dir) = $medium->{url} =~ /^(?:removable[^:]*|file)?:\/(.*)/;
+ my ($dir) = $medium->{url} =~ m!^(?:removable[^:]*|file)?:/(.*)!;
my $with_hdlist_dir = reduce_pathname($dir . ($medium->{with_hdlist} ? "/$medium->{with_hdlist}" : "/.."));
my $local_list = $medium->{with_hdlist} =~ /hd(list.*)\.cz2?$/ ? $1 : 'list';
$file = reduce_pathname("$with_hdlist_dir/../$local_list");
@@ -2617,7 +2617,7 @@ sub get_source_packages {
if (-r $file) {
open F, $file;
while (<F>) {
- if (my ($filename) = /\/([^\/]*\.rpm)$/) {
+ if (my ($filename) = m|/([^/]*\.rpm)$|) {
if (keys(%{$file2fullnames{$filename} || {}}) > 1) {
$urpm->{error}(N("there are multiple packages with the same rpm filename \"%s\""), $filename);
next;
@@ -2797,7 +2797,7 @@ sub copy_packages_of_removable_media {
if (!$dir || -e $dir) {
foreach (values %{$list->[$id]}) {
chomp;
- /^(removable_?[^_:]*|file):\/(.*\/([^\/]*))/ or next;
+ m!^(removable_?[^_:]*|file):/(.*/([^/]*))! or next;
unless ($dir) {
$dir = $2;
$urpm->try_mounting($dir, $removable);
@@ -2814,7 +2814,7 @@ sub copy_packages_of_removable_media {
my $examine_removable_medium = sub {
my ($id, $device, $copy) = @_;
my $medium = $urpm->{media}[$id];
- if (my ($prefix, $dir) = $medium->{url} =~ /^(removable[^:]*|file):\/(.*)/) {
+ if (my ($prefix, $dir) = $medium->{url} =~ m!^(removable[^:]*|file):/(.*)!) {
#- the directory given does not exist or may be accessible
#- by mounting some other. try to figure out these directory and
#- mount everything necessary.
@@ -2827,7 +2827,7 @@ sub copy_packages_of_removable_media {
if (-e $dir) {
while (my ($i, $url) = each %{$list->[$id]}) {
chomp $url;
- my ($filepath, $filename) = $url =~ /^(?:removable[^:]*|file):\/(.*\/([^\/]*))/ or next;
+ my ($filepath, $filename) = $url =~ m!^(?:removable[^:]*|file):/(.*/([^/]*))! or next;
if (-r $filepath) {
if ($copy) {
#- we should assume a possible buggy removable device...
@@ -2866,7 +2866,7 @@ sub copy_packages_of_removable_media {
#- examine non removable device but that may be mounted.
if ($medium->{removable}) {
push @{$removables{$medium->{removable}} ||= []}, $_;
- } elsif (my ($prefix, $dir) = $medium->{url} =~ /^(removable[^:]*|file):\/(.*)/) {
+ } elsif (my ($prefix, $dir) = $medium->{url} =~ m!^(removable[^:]*|file):/(.*)!) {
chomp $dir;
-e $dir || $urpm->try_mounting($dir) or
$urpm->{error}(N("unable to access medium \"%s\"", $medium->{name})), next;
@@ -2917,13 +2917,13 @@ sub download_packages_of_distant_media {
while (my ($i, $url) = each %{$list->[$_]}) {
#- it is trusted that the url given is acceptable, so the file can safely be ignored.
defined $sources->{$i} and next;
- if ($url =~ /^(removable[^:]*|file):\/(.*\.rpm)$/) {
+ if ($url =~ m!^(removable[^:]*|file):/(.*\.rpm)$!) {
if (-r $2) {
$sources->{$i} = $2;
} else {
$error_sources->{$i} = $2;
}
- } elsif ($url =~ /^([^:]*):\/(.*\/([^\/]*\.rpm))$/) {
+ } elsif ($url =~ m|^([^:]*):/(.*/([^/]*\.rpm))$|) {
if ($options{force_local} || $1 ne 'ftp' && $1 ne 'http') { #- only ftp and http protocol supported by grpmi.
$distant_sources{$i} = "$1:/$2";
} else {
@@ -2956,7 +2956,7 @@ sub download_packages_of_distant_media {
#- necessary to keep track of failing download in order to
#- present the error to the user.
foreach my $i (keys %distant_sources) {
- my ($filename) = $distant_sources{$i} =~ /\/([^\/]*\.rpm)$/;
+ my ($filename) = $distant_sources{$i} =~ m|/([^/]*\.rpm)$|;
if ($filename && -s "$urpm->{cachedir}/partial/$filename" &&
URPM::verify_rpm("$urpm->{cachedir}/partial/$filename", nosignatures => 1) !~ /NOT OK/) {
#- it seems the the file has been downloaded correctly and has been checked to be valid.
@@ -2973,7 +2973,7 @@ sub download_packages_of_distant_media {
}
#- clean failed download which have succeeded.
- delete @{$error_sources}{keys %$sources};
+ delete @$error_sources{keys %$sources};
1;
}
@@ -3043,7 +3043,7 @@ sub install {
local (*CHILD_RETURNS, *ERROR_OUTPUT, $_);
if ($options{fork}) {
pipe(CHILD_RETURNS, ERROR_OUTPUT);
- if ($pid = fork) {
+ if ($pid = fork()) {
close ERROR_OUTPUT;
$urpm->{log}(N("using process %d for executing transaction"));
@@ -3051,7 +3051,7 @@ sub install {
my @l;
while (<CHILD_RETURNS>) {
chomp;
- if (/^\::logger_id:(\d+)/) {
+ if (/^::logger_id:(\d+)/) {
$urpm->{logger_id} = $1;
} else {
push @l, $_;
@@ -3079,7 +3079,7 @@ sub install {
$urpm->{log}(N("created transaction for installing on %s (remove=%d, install=%d, upgrade=%d)", $urpm->{root} || '/',
scalar(@{$remove || []}), scalar(values %$install), scalar(values %$upgrade)));
} else {
- return (N("unable to create transaction"));
+ return N("unable to create transaction");
}
my ($update, @l, %file2pkg) = 0;
@@ -3245,11 +3245,11 @@ sub find_packages_to_remove {
});
if (!$options{force} && @notfound) {
- unless (@m) {
- $options{callback_notfound} and $options{callback_notfound}->($urpm, @notfound)
+ if (@m) {
+ $options{callback_fuzzy} and $options{callback_fuzzy}->($urpm, $match, @m)
or return ();
} else {
- $options{callback_fuzzy} and $options{callback_fuzzy}->($urpm, $match, @m)
+ $options{callback_notfound} and $options{callback_notfound}->($urpm, @notfound)
or return ();
}
}