[129562] contrib/cpan2port/cpan2port

mojca at macports.org mojca at macports.org
Mon Dec 15 08:33:44 PST 2014


Revision: 129562
          https://trac.macports.org/changeset/129562
Author:   mojca at macports.org
Date:     2014-12-15 08:33:44 -0800 (Mon, 15 Dec 2014)
Log Message:
-----------
cpan2port: remove 5.8, write out sorted list of dependencies using p${perl5.major}-*, put deps inside a block (#44654)

Modified Paths:
--------------
    contrib/cpan2port/cpan2port

Modified: contrib/cpan2port/cpan2port
===================================================================
--- contrib/cpan2port/cpan2port	2014-12-15 16:28:13 UTC (rev 129561)
+++ contrib/cpan2port/cpan2port	2014-12-15 16:33:44 UTC (rev 129562)
@@ -65,7 +65,7 @@
 use CPAN;
 use Module::Depends;
 use Module::Depends::Intrusive;
-use List::MoreUtils qw(any);
+use List::MoreUtils qw(any uniq);
 use Module::CoreList;
 
 sub is_corelist {
@@ -95,6 +95,13 @@
     return $name;
 }
 
+sub dependency_name {
+    my ( $name ) = shift;
+    $name = lc "p\${perl5.major}-$name";
+    $name =~ y/+/x/;
+    return $name;
+}
+
 sub debian {
     my ( $name ) = shift;
     $name = lc "lib$name-perl";
@@ -132,7 +139,7 @@
     $info;
 }
 
-sub from_port { (about(shift) or return () )->{port} }
+sub from_port { (about(shift) or return () )->{dependency} }
 
 sub about {
     my ( $module_name, $config ) = @_;
@@ -170,8 +177,9 @@
         $info{description}  = $desc;
         MSG::warn $desc;
     }
-    $info{port} = package_name($info{prefix}); 
-    $info{debian} = package_name($info{prefix}); 
+    $info{port} = package_name($info{prefix});
+    $info{dependency} = dependency_name($info{prefix});
+    $info{debian} = package_name($info{prefix});
     $info{dist_dir} = "$$CPAN::Config{build_dir}/$info{prefix}-$info{version}";
     $info{module} = $module;
     \%info;
@@ -219,7 +227,8 @@
     $$info{maintainers} ||= 'nomaintainer';
     my $checksums = '';
     my $depends = '';
-    my $build_depends = '';
+    my $depends_build = '';
+    my $depends_lib = '';
     my $use_module_build = '';
     
     if ( exists $$info{depends} ) {
@@ -229,25 +238,29 @@
              $checksums = 'checksums           '.join(" \\\n".(' 'x20), at hashes);
          }
 
-         if ( my $dep_ref = Huggy::depends_on($info) ) {
-             my @depends = map {
-                 MSG::warn "$$info{name} requires $_";
+         if ( my $dep_ref = Huggy::depends_on($info, during=>"build_requires") ) {
+             my @depends_build = Huggy::uniq map {
+                 MSG::warn "$$info{name} build_requires $_";
                  'port:'.Huggy::from_port $_
-             } keys %{ $dep_ref };
-             if (@depends) {
-                 $depends = 'depends_lib-append  '.join(" \\\n".(' 'x20), at depends);
+             } sort(keys %{ $dep_ref });
+             if (@depends_build) {
+                 unshift(@depends_build, '    depends_build-append');
+                 $depends_build = join(" \\\n".(' 'x20), sort(@depends_build))."\n";
              }
          }
-         if ( my $dep_ref = Huggy::depends_on($info, during=>"build_requires") ) {
-             my @depends = map {
-                 MSG::warn "$$info{name} build_requires $_";
+         if ( my $dep_ref = Huggy::depends_on($info) ) {
+             my @depends_lib = Huggy::uniq map {
+                 MSG::warn "$$info{name} requires $_";
                  'port:'.Huggy::from_port $_
-             } keys %{ $dep_ref };
-             if (@depends) {
-                 $build_depends = 'depends_build-append '.join(" \\\n".(' 'x21), at depends);
+             } sort(keys %{ $dep_ref });
+             if (@depends_lib) {
+                 unshift(@depends_lib, '    depends_lib-append');
+                 $depends_lib = join(" \\\n".(' 'x20), sort(@depends_lib))."\n";
              }
-
          }
+         if ($depends_build.$depends_lib ne '') {
+             $depends = "\nif {\${perl5.major} != \"\"} {\n" . $depends_build . $depends_lib . "}\n";
+         }
     }
 
     # If no Makefile.PL is present, maybe we need use_module_build?
@@ -297,9 +310,6 @@
 
     $portfile .= <<STOP;
 $checksums
-
-$build_depends
-
 $depends
 $use_module_build
 STOP
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20141215/19489762/attachment.html>


More information about the macports-changes mailing list