chech obsoletes too

This commit is contained in:
Stephan Kulow 2013-04-02 15:15:55 +02:00
parent 9ad7ed6a3e
commit ba089c8659

View File

@ -24,8 +24,10 @@ my $pkg = '';
my $fls = 0;
my $prv = 0;
my $con = 0;
my $obs = 0;
my %con;
my %obs;
my %whatprovides;
die("Usage: findfileconflicts2 packages[.gz]\n") unless @ARGV == 1;
@ -118,17 +120,30 @@ while(<FL>) {
push @{$con{$pkg}}, $_;
next;
}
if ($obs) {
if ($_ eq '-Obs:') {
$obs= 0;
next;
}
s/ .*//; # no version stuff;
push @{$obs{$pkg}}, $_;
next;
}
if (/^=Pkg: (.*)/) {
$pkg = $1;
my $n = $pkg;
$n =~ s/ .*//;
push @{$con{$pkg}}, $n;
push @{$obs{$pkg}}, $n;
next;
}
if ($_ eq '+Con:') {
$con = 1 if $pkg;
next;
}
if ($_ eq '+Obs:') {
$obs = 1 if $pkg;
next;
}
if ($_ eq '+Prv:') {
$prv = 1 if $pkg;
next;
@ -272,6 +287,18 @@ for my $pkg (sort keys %con) {
}
}
for my $pkg (sort keys %obs) {
next unless $pkgneeded{$pkg};
for my $c (@{$obs{$pkg}}) {
for my $p (@{$whatprovides{$c} || []}) {
next if $p eq $pkg;
next unless $p =~ /^\Q$c\E /;
$conflicts{"$pkg\n$p"} = 1;
$conflicts{"$p\n$pkg"} = 1;
}
}
}
# let 32bit packages conflict with the i586 version
for my $pkg (sort keys %pkgneeded) {
next unless $pkg =~ /^([^ ]+)-32bit /;