summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2001-02-21 18:01:37 +0000
committerPascal Rigaux <pixel@mandriva.com>2001-02-21 18:01:37 +0000
commit0869e606e8f1b68e9f4e3d32c76cfbaaac2b8469 (patch)
tree81b9a1c274def506da8e1be86735ca2ea8df0334
parent512c92973dc5eceae594bd389350a1ab16da7981 (diff)
downloaddrakx-backup-do-not-use-0869e606e8f1b68e9f4e3d32c76cfbaaac2b8469.tar
drakx-backup-do-not-use-0869e606e8f1b68e9f4e3d32c76cfbaaac2b8469.tar.gz
drakx-backup-do-not-use-0869e606e8f1b68e9f4e3d32c76cfbaaac2b8469.tar.bz2
drakx-backup-do-not-use-0869e606e8f1b68e9f4e3d32c76cfbaaac2b8469.tar.xz
drakx-backup-do-not-use-0869e606e8f1b68e9f4e3d32c76cfbaaac2b8469.zip
(selected_leaves): created
-rw-r--r--perl-install/pkgs.pm21
1 files changed, 20 insertions, 1 deletions
diff --git a/perl-install/pkgs.pm b/perl-install/pkgs.pm
index 6c6c6d1eb..84c38a6ad 100644
--- a/perl-install/pkgs.pm
+++ b/perl-install/pkgs.pm
@@ -616,7 +616,7 @@ sub read_rpmsrate {
(?: \s*\|\|\s* (?: !\s*)? [0-9A-Z_]+(?:".*?")?)*
)
(?:\s+|$)
- )(.*)/x) {
+ )(.*)/x) { #@")) {
($t, $flag, $data) = ($1,$2,$3);
while ($flag =~ s,^\s*(("[^"]*"|[^"\s]*)*)\s+,$1,) {}
my $ok = 0;
@@ -1342,4 +1342,23 @@ sub remove($$) {
@{$toRemove || []} = ();
}
+sub selected_leaves {
+ my ($packages) = @_;
+ my %l;
+ $l{$_->[$FILE]} = 1 foreach grep { packageFlagSelected($_) && !packageFlagBase($_) } @{$packages->{depslist}};
+
+ my %m = %l;
+ foreach (@{$packages->{depslist}}) {
+ delete $m{$_->[$FILE]} or next;
+
+ foreach (map { split '\|' } grep { !/^NOTFOUND_/ } packageDepsId($_)) {
+ delete $l{$packages->{depslist}[$_][$FILE]};
+ }
+ }
+ [ map {
+ my @l; $l[$FILE] = $_;
+ packageName(\@l);
+ } grep { $l{$_} } keys %l ];
+}
+
1;