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

dod pushed a commit to branch master
in repository libconfig-model-dpkg-perl.

commit ce2bc9003fb48bbc8534bb01eb04cadf66c174c8
Author: Dominique Dumont <d...@debian.org>
Date:   Tue Feb 3 13:51:34 2015 +0100

    C::M::Dpkg::Dependency: fix extraction of module version from deb version
---
 lib/Config/Model/Dpkg/Dependency.pm | 10 ++++++++--
 t/dependency-check.t                | 16 ++++++++++++++++
 2 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/lib/Config/Model/Dpkg/Dependency.pm 
b/lib/Config/Model/Dpkg/Dependency.pm
index f26f4a8..56d187e 100644
--- a/lib/Config/Model/Dpkg/Dependency.pm
+++ b/lib/Config/Model/Dpkg/Dependency.pm
@@ -431,6 +431,13 @@ sub check_depend_chain {
     return $ret ;
 }
 
+sub extract_cpan_version {
+    my ($self,$v) = @_;
+    return undef unless defined $v ;
+    $v =~ /^(?:\d+:)?([\d\w.-]+?)(?:(?:\+\w+)?-[\w+~]+)?$/ ;
+    return $1;
+}
+
 # called through check_depend_chain
 # does modify $input when applying fix
 sub check_perl_lib_dep {
@@ -487,9 +494,8 @@ sub check_perl_lib_dep {
                $logger->debug("dual life $dep_name has oldest debian 
$oldest_lib_version_in_debian, using $check_v");
        }
 
-       my ($cpan_dep_v, $epoch_dep_v) ;
+       my $cpan_dep_v = $self->extract_cpan_version($check_v);
 
-       ($cpan_dep_v, $epoch_dep_v) = reverse split /:/ ,$check_v if defined 
$check_v ;
        my $v_decimal = Module::CoreList->first_release(
                $dep_name_as_perl[0],
                version->parse( $cpan_dep_v )
diff --git a/t/dependency-check.t b/t/dependency-check.t
index 7038c65..016945b 100644
--- a/t/dependency-check.t
+++ b/t/dependency-check.t
@@ -156,6 +156,22 @@ while (@struct_2_dep) {
     ) ;
 }
 
+my @deb_v_to_cpan_v = qw/
+    1.21-1 1.21
+    1:0.421000-2 0.421000
+    5.20150120-2~1 5.20150120
+    1.00+dfsg-3 1.00
+/;
+
+while (@deb_v_to_cpan_v) {
+    my $deb_v = shift @deb_v_to_cpan_v ;
+    my $cpan_v = shift @deb_v_to_cpan_v ;
+    is(
+        $dep_value->extract_cpan_version($deb_v),
+        $cpan_v,
+        "test extract_cpan_version $deb_v -> $cpan_v"
+    ) ;
+}
 
 warning_like {
     $dep_value->store('perl') ;

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-perl/packages/libconfig-model-dpkg-perl.git

_______________________________________________
Pkg-perl-cvs-commits mailing list
Pkg-perl-cvs-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits

Reply via email to