]> git.vpit.fr Git - perl/modules/CPANPLUS-Dist-Gentoo.git/blobdiff - lib/CPANPLUS/Dist/Gentoo.pm
Remove duplicated dependencies
[perl/modules/CPANPLUS-Dist-Gentoo.git] / lib / CPANPLUS / Dist / Gentoo.pm
index 3813281622e8996152ff02716ff825abab186a77..972fed873f08dcfacf4f0287e110b5a17dc7b009 100644 (file)
@@ -70,11 +70,15 @@ sub _unquote {
  return $s;
 }
 
+my $format_available;
+
 sub format_available {
+ return $format_available if defined $format_available;
+
  for my $prog (qw/emerge ebuild/) {
   unless (can_run($prog)) {
    error "$prog is required to write ebuilds -- aborting";
-   return 0;
+   return $format_available = 0;
   }
  }
 
@@ -104,7 +108,7 @@ sub format_available {
  $default_keywords = [ 'x86' ] unless defined $default_keywords;
  $default_distdir  = '/usr/portage/distfiles' unless defined $default_distdir;
 
- return 1;
+ return $format_available = 1;
 }
 
 sub init {
@@ -396,6 +400,8 @@ sub create {
   }
  }
 
+ my %seen;
+
  my $d = $stat->header;
  $d   .= "# Generated by CPANPLUS::Dist::Gentoo version $VERSION\n\n";
  $d   .= 'MODULE_AUTHOR="' . $stat->author . "\"\ninherit perl-module\n\n";
@@ -407,8 +413,8 @@ sub create {
  $d   .= 'LICENSE="|| ( ' . join(' ', sort @{$stat->license}) . " )\"\n";
  $d   .= 'KEYWORDS="' . join(' ', sort @{$stat->keywords}) . "\"\n";
  $d   .= 'DEPEND="' . join("\n",
-  'dev-lang/perl',
-  map $self->_cpan2portage(@$_), @{$stat->deps}
+  sort grep !$seen{$_}++, 'dev-lang/perl',
+                          map $self->_cpan2portage(@$_), @{$stat->deps}
  ) . "\"\n";
  $d   .= "SRC_TEST=\"do\"\n";
  $d   .= $stat->footer;