[dh-make-perl] 02/03: FromCPAN: catch in-core dependencies that require too new perl and provide a out-of-core alternative

Damyan Ivanov dmn at alioth.debian.org
Thu Aug 8 15:44:23 UTC 2013


This is an automated email from the git hooks/post-receive script.

dmn pushed a commit to branch master
in repository dh-make-perl.

commit 5fb46679aaa5d3a5a0e04cfcb52c06086b061340
Author: Damyan Ivanov <dmn at debian.org>
Date:   Thu Aug 8 17:04:05 2013 +0200

    FromCPAN: catch in-core dependencies that require too new perl and provide a out-of-core alternative
    
    Closes: #691534
---
 lib/Debian/Control/FromCPAN.pm |   37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/lib/Debian/Control/FromCPAN.pm b/lib/Debian/Control/FromCPAN.pm
index a669756..77e2a69 100644
--- a/lib/Debian/Control/FromCPAN.pm
+++ b/lib/Debian/Control/FromCPAN.pm
@@ -302,6 +302,43 @@ sub find_debs_for_modules {
                     print "+ $mod_ver found in $dep\n";
                 }
             }
+
+            my $target_perl_version = $^V;
+            $target_perl_version =~ s/^v//;
+            $target_perl_version = Dpkg::Version->new($target_perl_version);
+
+            if (    $dep->pkg
+                and $dep->pkg eq 'perl'
+                and $dep->ver
+                and $dep->ver > $target_perl_version )
+            {
+                print "  ! $dep is too new. Adding alternative dependency\n"
+                    if $verbose;
+
+                my $alt_dep;
+
+                if ( my @pkgs = Debian::DpkgLists->scan_perl_mod($module) ) {
+                    @pkgs = grep { $_ ne 'perl-modules' } @pkgs;
+
+                    $alt_dep = Debian::Dependency->new(
+                          ( @pkgs > 1 )
+                        ? [ map { { pkg => $_, ver => $version } } @pkgs ]
+                        : ( $pkgs[0], $version )
+                    );
+                }
+                elsif ($apt_contents) {
+                    $alt_dep
+                        = $apt_contents->find_perl_module_package( $module,
+                        $version );
+                }
+
+                $alt_dep
+                    //= Debian::Dependency->new(
+                    $self->module_name_to_pkg_name($module),
+                    '>=', $version );
+
+                $dep = Debian::Dependency->new("$alt_dep | $dep");
+            }
         }
         else {
             print "- $mod_ver not found in any package\n";

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/dh-make-perl.git



More information about the Pkg-perl-cvs-commits mailing list