]> git.donarmstrong.com Git - debhelper.git/blobdiff - dh_perl
typo
[debhelper.git] / dh_perl
diff --git a/dh_perl b/dh_perl
index 65b1da076d61e8e0fc42876b7c153decb8dd1d84..5739ca9f3aa7f756b9ede0fe6b8ba274c306983d 100755 (executable)
--- a/dh_perl
+++ b/dh_perl
@@ -2,7 +2,7 @@
 
 =head1 NAME
 
-dh_perl - calculates perl dependencies
+dh_perl - calculates perl dependencies and cleans up after MakeMaker
 
 =cut
 
@@ -25,6 +25,9 @@ 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
 
 =over 4
@@ -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
@@ -53,9 +60,9 @@ directories by default.
 
 =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
 
@@ -64,10 +71,6 @@ init();
 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#/$##;
@@ -87,8 +90,6 @@ use constant XS_MODULE => 4;
 foreach my $package (@{$dh{DOPACKAGES}}) {
        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;
 
@@ -103,6 +104,8 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
        # 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%) {
@@ -118,9 +121,6 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
                                unless $version;
                        $version = ">= $version";
                }
-               elsif ($deps & PM_MODULE) {
-                       $version = ">= $min_version";
-               }
                
                # no need to depend on an un-versioned perl-base -- it's
                # essential
@@ -128,9 +128,19 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
                        unless $perl eq 'perl-base' && ! length($version);
 
                # add perlapi-<ver> for XS modules
-               addsubstvar($package, "perl:Depends", "perlapi-$Config{version}")
+               addsubstvar($package, "perl:Depends",
+                       "perlapi-" . ($Config{debian_abi} || $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