my %binaries = ();
my %csource = ();
my %bdeps = ();
+my %ssize = ();
sub add_binaries {
my ($package, $binaries) = @_;
$bdeps{$package} = $bd;
}
+my $files_start = 0;
while (<SOURCES>) {
if (/^Package: ([0-9a-z-+.]+)/) {
if (/^Build-Depends: (.*)/) {
add_bdeps($package, $1);
}
+ if ($files_start) {
+ if (/^ [a-f0-9]+ ([0-9]+)/) {
+ $ssize{$package} += $1;
+ } else {
+ $files_start = 0;
+ }
+ }
+ if (/^Files:/) {
+ $files_start = 1;
+ $ssize{$package} = 0;
+ }
}
close(SOURCES);
for my $i (keys %essential) {
push @visit, $i;
}
+for my $i (@packages) {
+ if (defined($priority{$i}) and ($priority{$i} eq "required" ||
+ $priority{$i} eq "standard" || $priority{$i} eq "important")) {
+ push @visit, $i;
+ }
+}
push @visit, "build-essential";
while (@visit) {
my $n = pop @visit;
- next if grep /^$n$/, @pp;
+ next if grep /^\Q$n\E$/, @pp;
push @pp, $n;
my $source = $csource{$n};
- if ($source and !grep /^$source$/, @vsource) {
+ if ($source and !grep /^\Q$source\E$/, @vsource) {
push @vsource, $source;
for my $b (@{$bdeps{$source}}) {
- if (!grep /^$b$/, @pp && !grep /^$b$/, @visit) {
+ if (!grep /^\Q$b\E$/, @pp && !grep /^\Q$b\E$/, @visit) {
push @visit, $b;
}
}
}
my $l = $depends{$n};
for my $d (@$l) {
- if (!grep /^$d$/, @pp && !grep /^$d$/, @visit) {
+ if (!grep /^\Q$d\E$/, @pp && !grep /^\Q$d\E$/, @visit) {
push @visit, $d;
}
}
}
my $tsize = 0;
+
for my $i (@pp) {
$size{$i} = 0 if (!defined($size{$i}));
print "$size{$i} $i\n";
$tsize += $size{$i};
}
+for my $i (@vsource) {
+ $ssize{$i} = 0 if (!defined($ssize{$i}));
+ print "$ssize{$i} S:$i\n";
+ $tsize += $ssize{$i};
+}
+
print "$tsize Total\n";