#!/usr/bin/perl

use lib "../rpmtools";

local $_ = join '', @ARGV;

/-h/ and die "usage: rpm-find-leaves [--show-unknown]\n";

$show_unknown = /-show-unknown/;

use rpmtools;

$f = "/var/lib/urpmi/depslist.ordered";
open F, $f or die "read_depslist: can't open file $f\n";
$o = new rpmtools;
$o->read_depslist(\*F);

chop, $l{$_} = 1 foreach `rpm -qa --queryformat "%{name}\n"`;

%m = %l;

foreach (@{$o->{depslist}}) {    
    delete $m{$_->{name}} or next;
    delete $l{$o->{depslist}[$_]{name}} foreach split ' ', $_->{deps};
}

!$m{$_} and print "$_\n" foreach sort keys %l;

if ($show_unknown) {
    print "\n";
    print "$_\n" foreach sort keys %m;
}