]> git.vpit.fr Git - perl/modules/CPANPLUS-Dist-Gentoo.git/blobdiff - lib/CPANPLUS/Dist/Gentoo.pm
Correctly map exotic Gentoo versions from CPAN versions
[perl/modules/CPANPLUS-Dist-Gentoo.git] / lib / CPANPLUS / Dist / Gentoo.pm
index 0003b36992ae0dff913006b9419cf720fdae86cb..6c6ef13715fbca7886ec6a20d63a4c7cf72d745c 100644 (file)
@@ -289,7 +289,7 @@ sub prepare {
 
  $stat->distribution($name . '-' . $version);
 
- $stat->ebuild_version(CPANPLUS::Dist::Gentoo::Maps::version_c2g($version));
+ $stat->ebuild_version(CPANPLUS::Dist::Gentoo::Maps::version_c2g($name, $version));
 
  $stat->ebuild_name(CPANPLUS::Dist::Gentoo::Maps::name_c2g($name));
 
@@ -364,8 +364,9 @@ sub prepare {
  }
  $stat->requires(\@requires);
 
+ my $meta = $self->meta;
  $stat->min_perl(CPANPLUS::Dist::Gentoo::Maps::perl_version_c2g(
-  eval { $self->meta->{requires}->{perl} }
+  $meta->{requires}->{perl},
  ));
 
  return $OK->();
@@ -391,6 +392,7 @@ sub meta {
   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);
@@ -426,7 +428,8 @@ sub intuit_license {
   return \@licenses if @licenses;
  }
 
- my $license = $self->meta->{license};
+ my $meta    = $self->meta;
+ my $license = $meta->{license};
  if (defined $license) {
   my @licenses = CPANPLUS::Dist::Gentoo::Maps::license_c2g($license);
   return \@licenses if @licenses;
@@ -565,11 +568,10 @@ 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 => '>=') : ()),
+  version  => $stat->min_perl,
  );
 
  @requires = CPANPLUS::Dist::Gentoo::Atom->fold($perl, @requires);
@@ -593,10 +595,10 @@ sub ebuild_source {
 }
 
 sub _cpan2portage {
- my ($self, $name, $version) = @_;
+ my ($self, $dist_name, $dist_version) = @_;
 
$name    = CPANPLUS::Dist::Gentoo::Maps::name_c2g($name);
$version = CPANPLUS::Dist::Gentoo::Maps::version_c2g($version);
my $name    = CPANPLUS::Dist::Gentoo::Maps::name_c2g($dist_name);
my $version = CPANPLUS::Dist::Gentoo::Maps::version_c2g($dist_name, $dist_version);
 
  my @portdirs = ($main_portdir, @{$self->status->portdir_overlay});
 
@@ -619,7 +621,7 @@ sub _cpan2portage {
    return CPANPLUS::Dist::Gentoo::Atom->new(
     category => $last->category,
     name     => $last->name,
-    (defined $version ? (version => $version, range => '>=') : ()),
+    version  => $version,
     ebuild   => $last->ebuild,
    );
   }