OpenPKG CVS Repository
http://cvs.openpkg.org/
____________________________________________________________________________
Server: cvs.openpkg.org Name: Michael van Elst
Root: /e/openpkg/cvs Email: [EMAIL PROTECTED]
Module: openpkg-re Date: 13-Nov-2002 15:35:28
Branch: HEAD Handle: 2002111314352800
Modified files:
openpkg-re openpkg-build
Log:
use repository to compute reverse dependencies
Summary:
Revision Changes Path
1.16 +15 -24 openpkg-re/openpkg-build
____________________________________________________________________________
Index: openpkg-re/openpkg-build
============================================================
$ cvs diff -u -r1.15 -r1.16 openpkg-build
--- openpkg-re/openpkg-build 13 Nov 2002 14:17:34 -0000 1.15
+++ openpkg-re/openpkg-build 13 Nov 2002 14:35:28 -0000 1.16
@@ -227,8 +227,7 @@
my($i) = $env->{'installed'};
my($r) = $env->{'repository'};
my($pkg, %rev);
- my(@vers,$t);
- my($busy);
+ my(@vers,$t,@names);
print "# computing reverse dependencies\n";
@@ -239,35 +238,27 @@
next;
}
- my(@l) = `$RPM -qR $pkg`;
- my(@names);
-
- @names = grep { $_ ne '' && $_ !~ /^(rpmlib\(|OpenPKG|openpkg$)/ }
- map { /^(\S+)/ } @l;
-
@vers = get_versions($r->{$pkg}, sub { 1; });
foreach (@vers) {
- $t = $r->{$pkg}->{$_}->[0];
+ $t = $r->{$pkg}->{$_}->[-1];
+ next unless $t && exists $t->{depends};
+
+ @names = grep { $_ ne '' }
+ map { /^(\S+)/ }
+ @{$t->{depends}};
+ next unless @names;
+
push @{$rev{$_}}, $t foreach @names;
}
}
- do {
- foreach $pkg (keys %rev) {
- my(@oldlist) = @{$rev{$pkg}};
- my(@newlist) = sort {
+ foreach $pkg (keys %rev) {
+ $rev{$pkg} = [
+ sort {
revdep(\%rev, $b, $a->{name});
- } @oldlist;
-
- if ((scalar(@oldlist) != scalar(@newlist)) ||
- grep($oldlist[$_] ne $newlist[$_], 0..$#oldlist)) {
- $busy = 1;
- }
-
- $rev{$pkg} = \@newlist;
- }
- print "# resorting dependencies\n" if $busy;
- } while (!$busy);
+ } @{$rev{$pkg}}
+ ];
+ }
return \%rev;
}
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [EMAIL PROTECTED]