summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrancois Pons <fpons@mandriva.com>2002-08-27 14:20:02 +0000
committerFrancois Pons <fpons@mandriva.com>2002-08-27 14:20:02 +0000
commit9f65aa2d647cf7204ac9c137478bc9fb3ae54536 (patch)
tree47b502bda3627ba26bf2babaea5343ae9923099f
parent1c885578b7c9ffa8870044873f24f60af57d5407 (diff)
downloadurpmi-9f65aa2d647cf7204ac9c137478bc9fb3ae54536.tar
urpmi-9f65aa2d647cf7204ac9c137478bc9fb3ae54536.tar.gz
urpmi-9f65aa2d647cf7204ac9c137478bc9fb3ae54536.tar.bz2
urpmi-9f65aa2d647cf7204ac9c137478bc9fb3ae54536.tar.xz
urpmi-9f65aa2d647cf7204ac9c137478bc9fb3ae54536.zip
4.0-6mdk
-rw-r--r--urpm.pm28
-rw-r--r--urpmi.spec5
2 files changed, 19 insertions, 14 deletions
diff --git a/urpm.pm b/urpm.pm
index 39850bc9..a88bbf5d 100644
--- a/urpm.pm
+++ b/urpm.pm
@@ -1669,27 +1669,29 @@ sub deselect_unwanted_packages {
open F, $urpm->{skiplist};
while (<F>) {
chomp; s/#.*$//; s/^\s*//; s/\s*$//;
- if (my ($n, $s) = /^([^\s\[]*)(?:\[\*\])?\[?([^\s\]]*\s*[^\s\]]*)/) {
- $skip{$n}{$s} = undef;
+ if (my ($n, $s) = /^([^\s\[]+)(?:\[\*\])?\[?\s*([^\s\]]*\s*[^\s\]]*)/) {
+ $skip{$n}{$s} = undef;
}
}
close F;
- %skip and return;
+ %skip or return;
foreach (grep { $options{force} || (exists $packages->{$_} && ! defined $packages->{$_}) } keys %$packages) {
my $pkg = $urpm->{depslist}[$_] or next;
my $remove_it;
- #- find skiped entry that match the package fullname.
- foreach (keys %skip) {
- exists $skip{$_}{''} && $pkg->fullname =~ /$_/ and delete $packages->{$pkg->id};
- }
-
- #- check if a provides match at least one package.
- foreach ($pkg->provides) {
- if (my ($n, $s) = /^([^\s\[]*)(?:\[\*\])?\[?([^\s\]]*\s*[^\s\]]*)/) {
- foreach (keys %{$skip{$n} || {}}) {
- range_overlap($_, $s) and delete $packages->{$pkg->id};
+ #- check if fullname is matching a regexp.
+ if (grep { exists $skip{$_}{''} && /^\/(.*)\/$/ && $pkg->fullname =~ /$1/ } keys %skip) {
+ delete $packages->{$pkg->id};
+ } else {
+ #- check if a provides match at least one package.
+ foreach ($pkg->provides) {
+ if (my ($n, $s) = /^([^\s\[]*)(?:\[\*\])?\[?([^\s\]]*\s*[^\s\]]*)/) {
+ foreach my $sn ($n, grep { /^\/(.*)\/$/ && $n =~ /$1/ } keys %skip) {
+ foreach (keys %{$skip{$sn} || {}}) {
+ URPM::ranges_overlap($_, $s) and delete $packages->{$pkg->id};
+ }
+ }
}
}
}
diff --git a/urpmi.spec b/urpmi.spec
index 258ce2cf..1734e645 100644
--- a/urpmi.spec
+++ b/urpmi.spec
@@ -2,7 +2,7 @@
Name: urpmi
Version: 4.0
-Release: 5mdk
+Release: 6mdk
License: GPL
Source0: %{name}.tar.bz2
Source1: %{name}.logrotate
@@ -177,6 +177,9 @@ fi
%changelog
+* Tue Aug 27 2002 François Pons <fpons@mandrakesoft.com> 4.0-6mdk
+- fixed skip.list new format.
+
* Tue Aug 27 2002 François Pons <fpons@mandrakesoft.com> 4.0-5mdk
- fixed urpmq --auto-select disabling its selection.
- open read-only rpmdb when testing installation (--test).