[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