summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rpm-find-leaves8
-rw-r--r--urpm/select.pm38
2 files changed, 3 insertions, 43 deletions
diff --git a/rpm-find-leaves b/rpm-find-leaves
index c1adc351..1a419cbf 100644
--- a/rpm-find-leaves
+++ b/rpm-find-leaves
@@ -4,7 +4,7 @@ use strict;
use urpm;
use urpm::msg;
-use urpm::select;
+use urpm::orphans;
my %options = (
restrict_group => 0,
@@ -42,9 +42,7 @@ while ($_ = shift) {
}
my $discard = $options{restrict_group} && sub { $_[0]->group !~ /\Q$options{group}/oi };
-my $leaves = urpm::select::installed_leaves($urpm, $discard);
+my $leaves = urpm::orphans::installed_leaves($urpm, $discard);
-my @l = $options{fullname} ?
- map { scalar $_->fullname } values %$leaves :
- keys %$leaves;
+my @l = map { $options{fullname} ? scalar $_->fullname : $_->name } @$leaves;
print "$_\n" foreach sort @l;
diff --git a/urpm/select.pm b/urpm/select.pm
index 495e81c7..0bca73ec 100644
--- a/urpm/select.pm
+++ b/urpm/select.pm
@@ -619,42 +619,4 @@ sub translate_why_removed_one {
$fullname . ($s ? "\n ($s)" : '');
}
-sub installed_packages_packed {
- my ($urpm) = @_;
-
- my $db = urpm::db_open_or_die_($urpm) or die "Can't open RPM db\n";
- my @l;
- $db->traverse(sub {
- my ($pkg) = @_;
- $pkg->pack_header;
- push @l, $pkg;
- });
- \@l;
-}
-
-sub installed_leaves {
- my ($urpm, $o_discard) = @_;
-
- my $packages = installed_packages_packed($urpm);
-
- my (%l, %provides);
- foreach my $pkg (@$packages) {
- next if $o_discard && $o_discard->($pkg);
- $l{$pkg->name} = $pkg;
- push @{$provides{$_}}, $pkg foreach $pkg->provides_nosense;
- }
-
- foreach my $pkg (@$packages) {
- foreach my $prop ($pkg->requires) {
- my $n = URPM::property2name($prop);
- foreach my $p (@{$provides{$n} || []}) {
- $p != $pkg && $p->provides_overlap($prop) and
- delete $l{$p->name};
- }
- }
- }
-
- \%l;
-}
-
1;