summaryrefslogtreecommitdiffstats
path: root/urpm/media.pm
diff options
context:
space:
mode:
Diffstat (limited to 'urpm/media.pm')
-rw-r--r--urpm/media.pm35
1 files changed, 18 insertions, 17 deletions
diff --git a/urpm/media.pm b/urpm/media.pm
index bbed628c..34fe098b 100644
--- a/urpm/media.pm
+++ b/urpm/media.pm
@@ -172,12 +172,11 @@ sub check_existing_medium {
if ($medium->{virtual}) {
#- a virtual medium needs to have an url available without using a list file.
- if ($medium->{hdlist} || $medium->{list}) {
+ if ($medium->{list}) {
$medium->{ignore} = 1;
$urpm->{error}(N("virtual medium \"%s\" should not have defined hdlist or list file, medium ignored",
$medium->{name}));
- }
- unless ($medium->{url}) {
+ } elsif (!$medium->{url}) {
$medium->{ignore} = 1;
$urpm->{error}(N("virtual medium \"%s\" should have a clear url, medium ignored",
$medium->{name}));
@@ -228,7 +227,7 @@ sub check_existing_medium {
}
foreach my $field ('hdlist', 'list') {
- $medium->{$field} or next;
+ $medium->{$field} && $medium->{$field} ne '1' or next;
if (grep { $_->{$field} eq $medium->{$field} } @{$urpm->{media}}) {
$medium->{ignore} = 1;
$urpm->{error}(
@@ -278,6 +277,12 @@ sub add_existing_medium {
push @{$urpm->{media}}, $medium;
}
+sub _set_synthesis_or_hdlist {
+ my ($medium, $want_synthesis) = @_;
+
+ $medium->{$want_synthesis ? 'synthesis' : 'hdlist'} = 1;
+}
+
sub file_from_file_url {
my ($url) = @_;
$url =~ m!^(?:file:/)?(/.*)! && $1;
@@ -317,7 +322,9 @@ sub hdlist_or_synthesis_for_virtual_medium {
sub _hdlist {
my ($medium) = @_;
- $medium->{hdlist} || $medium->{name} && "hdlist.$medium->{name}.cz";
+ $medium->{hdlist} && $medium->{hdlist} ne '1'
+ ? $medium->{hdlist}
+ : $medium->{name} && "hdlist.$medium->{name}.cz";
}
sub statedir_hdlist_or_synthesis {
@@ -678,11 +685,7 @@ sub add_medium {
}
if ($with_hdlist) {
- if ($with_hdlist =~ m!(^|/)synthesis\.!) {
- $medium->{synthesis} = 1;
- } else {
- $medium->{hdlist} = _hdlist($medium);
- }
+ _set_synthesis_or_hdlist($medium, $with_hdlist =~ m!(^|/)synthesis\.!);
$medium->{with_hdlist} = $with_hdlist;
_migrate__with_hdlist($medium);
}
@@ -790,7 +793,6 @@ sub add_distrib_media {
) . '/' . $distribconf->getpath($media, $options{probe_with} eq 'synthesis' ? 'synthesis' : 'hdlist'),
index_name => $name ? undef : 0,
%options,
- synthesis => $options{probe_with} eq 'synthesis',
# the following override %options
update => $is_update_media ? 1 : undef,
);
@@ -885,8 +887,7 @@ sub _probe_with_try_list {
$medium->{media_info_dir} = $media_info_dir;
if ($probe_with) {
- $medium->{synthesis} = 1 if $synthesis;
- $medium->{hdlist} = _hdlist($medium) if !$synthesis;
+ _set_synthesis_or_hdlist($medium, $synthesis);
}
1;
};
@@ -906,8 +907,7 @@ sub _probe_with_try_list {
if (file_from_file_url($medium->{url}) &&
!$probe->(!$want_synthesis, $medium->{media_info_dir})) {
#- sad, only one available.
- $medium->{synthesis} = 1 if $want_synthesis;
- $medium->{hdlist} = _hdlist($medium) if !$want_synthesis;
+ _set_synthesis_or_hdlist($medium, $want_synthesis);
}
1;
} else {
@@ -1782,10 +1782,11 @@ sub update_media {
$urpm->{media} or return; # verify that configuration has been read
$options{nopubkey} ||= $urpm->{options}{nopubkey};
- if (!$options{nopubkey}) {
+ if (!$options{nopubkey} && !$urpm->{keys}) {
#- get gpg-pubkey signature.
my $_rpm_lock = urpm::lock::rpm_db($urpm);
- $urpm->{keys} or $urpm->parse_pubkeys(root => $urpm->{root});
+ $urpm->{log}(qq(getting "gpg-pubkey"s from rpmdb));
+ $urpm->parse_pubkeys(root => $urpm->{root});
}
#- examine each medium to see if one of them needs to be updated.