6 # find all the packages in the given debian control output
11 my @p = map /^\s*(\S+)/, split /\s*,\s*/,$_;
12 $p[0] =~ s/^\s*Depends:\s*//;
20 foreach my $p (@all_packages) {
21 warn "searching $p\n";
22 my @pkg_files = `dpkg -L $p`;
23 unless( @pkg_files ) {
24 @pkg_files = `apt-file show $p | cut -d : -f 2`;
26 @pkg_files or die "cannot list files from package $p\n";
30 #my (undef,$f) = split /: /,$_,2;
32 m!/[^/]*perl[^/]*/(\S+)\.pm$!;
36 warn Dumper \
@mods if @mods;
43 my @kinds = ( { name
=> 'build_requires', dir
=> ['t'] },
44 { name
=> 'requires', dir
=> ['lib','scripts'] },
47 #@all_mods = @all_mods[0..200];
48 foreach my $mod (@all_mods) {
49 warn "searching for uses of $mod\n";
52 $k->{perlfiles
} ||= do {
55 return unless -x
|| /\.(pm|t|pl)$/;
56 push @perlfiles, $File::Find
::name
;
59 ) for grep -d
, @
{$k->{dir
}};
63 next unless @
{$k->{perlfiles
}};
64 unless(system qw
/grep -qP/, qq@
(use|require)\\s
+["']?$mod@, @{$k->{perlfiles}}) {
65 warn " adding to
$k->{name
}\n";
69 #print "$mod: ".join(' ',@needs)."\n";
73 print "$_->{name
} => {\n";
74 for (sort {lc($a) cmp lc($b)} keys %{$_->{deps}}) {