=head1 NAME
-dh_perl - calculates perl dependencies
+dh_perl - calculates perl dependencies and cleans up after MakeMaker
=cut
perlapi. The dependency will be substituted into your package's control
file wherever you place the token "${perl:Depends}".
+dh_perl also cleans up empty directories that MakeMaker can generate when
+installing perl modules.
+
=head1 OPTIONS
=over 4
a dependency on the correct base package. This is only necessary for some
packages that are included in the base system.
+Note that this flag may cause no dependency on perl-base to be generated at
+all. perl-base is Essential, so its dependency can be left out, unless a
+versioned dependency is needed.
+
=item B<-V>
By default, scripts and architecture independent modules don't depend
=head1 CONFORMS TO
-Debian policy, version 3.0.1
+Debian policy, version 3.8.3
-Perl policy, version 1.18
+Perl policy, version 1.20
=cut
my $vendorlib = substr $Config{vendorlib}, 1;
my $vendorarch = substr $Config{vendorarch}, 1;
-# the installation dir for arch-indep modules changed to
-# /usr/share/perl5 in this version:
-my $min_version = '5.6.0-16';
-
# Cleaning the paths given on the command line
foreach (@ARGV) {
s#/$##;
use constant XS_MODULE => 4;
foreach my $package (@{$dh{DOPACKAGES}}) {
- my $tmp = tmpdir($package);
- my $ext = pkgext($package);
+ my $tmp=tmpdir($package);
- delsubstvar($package, "perl:Depends"); # for idempotency
-
# Check also for alternate locations given on the command line
my @dirs = grep -d, map "$tmp/$_", $vendorlib, $vendorarch, @ARGV;
# find scripts
find sub {
return unless -f and (-x or /\.pl$/);
+ return if $File::Find::dir=~/\/usr\/share\/doc\//;
+
local *F;
return unless open F, $_;
if (read F, local $_, 32 and m%^#!\s*(/usr/bin/perl|/usr/bin/env\s+perl)\s%) {
unless $version;
$version = ">= $version";
}
- elsif ($deps & PM_MODULE) {
- $version = ">= $min_version";
- }
# no need to depend on an un-versioned perl-base -- it's
# essential
addsubstvar($package, "perl:Depends", "perlapi-$Config{version}")
if $deps & XS_MODULE;
}
+
+ # MakeMaker always makes lib and share dirs, but typically
+ # only one directory is installed into.
+ foreach my $dir ("$tmp/usr/share/perl5", "$tmp/usr/lib/perl5") {
+ if (-d $dir) {
+ doit("rmdir", "--ignore-fail-on-non-empty", "--parents",
+ "$dir");
+ }
+ }
}
=head1 SEE ALSO
-L<debhelper(1)>
+L<debhelper(7)>
This program is a part of debhelper.