#!/usr/bin/perl

@ARGV and die "usage: rpm-find-leaves\n";

use rpmtools;

$db = rpmtools::db_open('');
rpmtools::db_traverse($db, [ qw(name version release provides requires) ], sub {
    push @packages, $_[0];
});
rpmtools::db_close($db);

foreach my $pkg (@packages) {
    $l{$pkg->{name}} = 1;
    push @{$provides{$_}}, $pkg->{name} foreach @{$pkg->{provides} || []};
}

foreach my $pkg (@packages) {
    delete @l{grep { $_ ne $pkg->{name} } @{$provides{$_} || []}} foreach @{$pkg->{requires} || []};
}

print "$_\n" foreach sort keys %l;