]> git.donarmstrong.com Git - debhelper.git/blobdiff - dh_perl
Fix typo in French translation, about debian/package.README.Debian files.
[debhelper.git] / dh_perl
diff --git a/dh_perl b/dh_perl
index a40c6fd563a23e9a81cbb6e7f21807e9096c28ed..fbeee2d9525faf29c0ac9c9688906161f3c571f1 100755 (executable)
--- a/dh_perl
+++ b/dh_perl
@@ -2,7 +2,7 @@
 
 =head1 NAME
 
-dh_perl - calculates perl scripts & modules dependencies
+dh_perl - calculates perl dependencies and cleans up after MakeMaker
 
 =cut
 
@@ -21,9 +21,12 @@ dh_perl is a debhelper program that is responsible for generating
 the ${perl:Depends} substitutions and adding them to substvars files.
 
 The program will look at perl scripts and modules in your package,
-and will use this information to generate a dependency.
-The dependency will be substituted into your package's control file
-wherever you place the token "${perl:Depends}".
+and will use this information to generate a dependency on perl or
+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
 
@@ -36,6 +39,10 @@ full perl package. If so, you can pass the -d option to make dh_perl generate
 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
@@ -85,8 +92,7 @@ use constant PM_MODULE => 2;
 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
        
@@ -106,7 +112,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
                return unless -f and (-x or /\.pl$/);
                local *F;
                return unless open F, $_;
-               if (read F, local $_, 32 and m%^#!\s*/usr/bin/perl\s%) {
+               if (read F, local $_, 32 and m%^#!\s*(/usr/bin/perl|/usr/bin/env\s+perl)\s%) {
                        $deps |= PROGRAM;
                }
                close F;
@@ -132,11 +138,20 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
                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.