- my $prereqs = $mod->status->requires;
- my @requires;
- for my $prereq (sort keys %$prereqs) {
- next if $prereq =~ /^perl(?:-|\z)/;
- my $obj = $int->module_tree($prereq);
- next unless $obj; # Not in the module tree (e.g. Config)
- next if $obj->package_is_perl_core;
- {
- my $version;
- if ($prereqs->{$prereq}) {
- if ($obj->installed_version && $obj->installed_version < $obj->version) {
- $version = $obj->installed_version;
- } else {
- $version = $obj->package_version;
- }
- }
- push @requires, [ $obj->package_name, $version ];
+ my $mstat = $mod->status;
+ $stat->configure_requires($int->$filter_prereqs($mstat->configure_requires));
+ $stat->requires($int->$filter_prereqs($mstat->requires));
+ $stat->recursive_requires([ ]);
+
+ $dependencies{$name} = [ map $_->[0], @{ $stat->requires } ];
+
+ my $meta = $self->meta;
+ $stat->min_perl(CPANPLUS::Dist::Gentoo::Maps::perl_version_c2g(
+ $meta->{requires}->{perl},
+ ));
+
+ return $OK->();
+}
+
+=head2 C<meta>
+
+Returns the contents of the F<META.yml> or F<META.json> files as parsed by L<Parse::CPAN::Meta>.
+
+=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;
+
+ local $@;
+ my $meta = eval { Parse::CPAN::Meta::LoadFile($meta_file) };
+ if (defined $meta) {
+ $stat->meta($meta);
+ return $meta;