Acme-Sort-Sleep
view release on metacpan or search on metacpan
local/lib/perl5/Module/Build/Base.pm view on Meta::CPAN
}
my %prereq_map = (
requires => [ qw/runtime requires/],
configure_requires => [qw/configure requires/],
build_requires => [ qw/build requires/ ],
test_requires => [ qw/test requires/ ],
test_recommends => [ qw/test recommends/ ],
recommends => [ qw/runtime recommends/ ],
conflicts => [ qw/runtime conflicts/ ],
);
sub _normalize_prereqs {
my ($self) = @_;
my $p = $self->{properties};
# copy prereq data structures so we can modify them before writing to META
my %prereq_types;
for my $type ( 'configure_requires', @{$self->prereq_action_types} ) {
if (exists $p->{$type} and keys %{ $p->{$type} }) {
my ($phase, $relation) = @{ $prereq_map{$type} };
for my $mod ( keys %{ $p->{$type} } ) {
$prereq_types{$phase}{$relation}{$mod} = $self->normalize_version($p->{$type}{$mod});
}
}
}
return \%prereq_types;
}
sub _get_license {
my $self = shift;
my $license = $self->license;
my ($meta_license, $meta_license_url);
my $valid_licenses = $self->valid_licenses();
if ( my $sl = $self->_software_license_object ) {
$meta_license = $sl->meta2_name;
$meta_license_url = $sl->url;
}
elsif ( exists $valid_licenses->{$license} ) {
$meta_license = $valid_licenses->{$license} ? lc $valid_licenses->{$license} : $license;
$meta_license_url = $self->_license_url( $license );
}
else {
$self->log_warn( "Can not determine license type for '" . $self->license
. "'\nSetting META license field to 'unknown'.\n");
$meta_license = 'unknown';
}
return ($meta_license, $meta_license_url);
}
sub get_metadata {
my ($self, %args) = @_;
my $fatal = $args{fatal} || 0;
my $p = $self->{properties};
$self->auto_config_requires if $args{auto};
# validate required fields
foreach my $f (qw(dist_name dist_version dist_author dist_abstract license)) {
my $field = $self->$f();
unless ( defined $field and length $field ) {
my $err = "ERROR: Missing required field '$f' for metafile\n";
if ( $fatal ) {
die $err;
}
else {
$self->log_warn($err);
}
}
}
my %metadata = (
name => $self->dist_name,
version => $self->normalize_version($self->dist_version),
author => $self->dist_author,
abstract => $self->dist_abstract,
generated_by => "Module::Build version $Module::Build::VERSION",
'meta-spec' => {
version => '2',
url => 'http://search.cpan.org/perldoc?CPAN::Meta::Spec',
},
dynamic_config => exists $p->{dynamic_config} ? $p->{dynamic_config} : 1,
release_status => $self->release_status,
);
my ($meta_license, $meta_license_url) = $self->_get_license;
$metadata{license} = [ $meta_license ];
$metadata{resources}{license} = [ $meta_license_url ] if defined $meta_license_url;
$metadata{prereqs} = $self->_normalize_prereqs;
if (exists $p->{no_index}) {
$metadata{no_index} = $p->{no_index};
} elsif (my $pkgs = eval { $self->find_dist_packages }) {
$metadata{provides} = $pkgs if %$pkgs;
} else {
$self->log_warn("$@\nWARNING: Possible missing or corrupt 'MANIFEST' file.\n" .
"Nothing to enter for 'provides' field in metafile.\n");
}
if (my $add = $self->meta_add) {
if (not exists $add->{'meta-spec'} or $add->{'meta-spec'}{version} != 2) {
require CPAN::Meta::Converter;
if (CPAN::Meta::Converter->VERSION('2.141170')) {
$add = CPAN::Meta::Converter->new($add)->upgrade_fragment;
delete $add->{prereqs}; # XXX this would now overwrite all prereqs
}
else {
$self->log_warn("Can't meta_add without CPAN::Meta 2.141170");
}
}
while (my($k, $v) = each %{$add}) {
$metadata{$k} = $v;
}
}
if (my $merge = $self->meta_merge) {
( run in 0.686 second using v1.01-cache-2.11-cpan-140bd7fdf52 )