X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FCPANPLUS%2FDist%2FGentoo.pm;h=16164495321fe7be9a6074d9a3fb6de56f8c7ff8;hb=ac86d926fe1f232054032ab4f36c301b8e5eccaa;hp=a3264bb0d6ee34e0573061862a8ac3c460b23aba;hpb=07d33f17ee02bcd968eb70a7cf1870eee2c954ac;p=perl%2Fmodules%2FCPANPLUS-Dist-Gentoo.git diff --git a/lib/CPANPLUS/Dist/Gentoo.pm b/lib/CPANPLUS/Dist/Gentoo.pm index a3264bb..1616449 100644 --- a/lib/CPANPLUS/Dist/Gentoo.pm +++ b/lib/CPANPLUS/Dist/Gentoo.pm @@ -193,6 +193,7 @@ sub init { my $conf = $self->parent->parent->configure_object; $stat->mk_accessors(qw/name version author distribution desc uri src license + meta min_perl fetched_arch requires ebuild_name ebuild_version ebuild_dir ebuild_file portdir_overlay @@ -362,9 +363,43 @@ sub prepare { } $stat->requires(\@requires); + $stat->min_perl(CPANPLUS::Dist::Gentoo::Maps::perl_version_c2g( + eval { $self->meta->{requires}->{perl} } + )); + return $OK->(); } +=head2 C + +Returns the contents of the F or F files as parsed by L. + +=cut + +sub meta { + my $self = shift; + my $mod = $self->parent; + my $stat = $self->status; + + my $meta = $stat->meta; + return $meta if defined $meta; + + my $extract_dir = $mod->status->extract; + + for my $name (qw/META.json META.yml/) { + my $meta_file = File::Spec->catdir($extract_dir, $name); + next unless -e $meta_file; + + my $meta = eval { Parse::CPAN::Meta::LoadFile($meta_file) }; + if (defined $meta) { + $stat->meta($meta); + return $meta; + } + } + + return; +} + =head2 C Returns an array reference to a list of Gentoo licences identifiers under which the current distribution is released. @@ -390,20 +425,10 @@ sub intuit_license { return \@licenses if @licenses; } - my $extract_dir = $mod->status->extract; - - for my $meta_file (qw/META.json META.yml/) { - my $meta = eval { - Parse::CPAN::Meta::LoadFile(File::Spec->catdir( - $extract_dir, - $meta_file, - )); - } or next; - my $license = $meta->{license}; - if (defined $license) { - my @licenses = CPANPLUS::Dist::Gentoo::Maps::license_c2g($license); - return \@licenses if @licenses; - } + my $license = $self->meta->{license}; + if (defined $license) { + my @licenses = CPANPLUS::Dist::Gentoo::Maps::license_c2g($license); + return \@licenses if @licenses; } return [ CPANPLUS::Dist::Gentoo::Maps::license_c2g('perl') ]; @@ -525,10 +550,13 @@ sub ebuild_source { push @requires, $atom; } + my $min_perl = $stat->min_perl; my $perl = CPANPLUS::Dist::Gentoo::Atom->new( category => 'dev-lang', name => 'perl', + (defined $min_perl ? (version => $min_perl, range => '>=') : ()), ); + @requires = CPANPLUS::Dist::Gentoo::Atom->fold($perl, @requires); my $d = $stat->header;