=head1 VERSION
-Version 0.02_01
+Version 0.03
=cut
-our $VERSION = '0.02_01';
+our $VERSION = '0.03';
=head1 SYNOPSIS
=head1 DESCRPITON
-This module is a CPANPLUS backend that recursively generates Gentoo ebuilds for a given package in the specified overlay (defaults to C</usr/local/portage>), update the manifest, and even emerge it (together with its dependencies) if the user requires it. You need write permissions on the directory where Gentoo fetches its source files (usually C</usr/portage/distfiles>).
+This module is a CPANPLUS backend that recursively generates Gentoo ebuilds for a given package in the specified overlay (defaults to F</usr/local/portage>), updates the manifest, and even emerges it (together with its dependencies) if the user requires it. You need write permissions on the directory where Gentoo fetches its source files (usually F</usr/portage/distfiles>). You also need to specify the correct keyword for your architecture if it differs from the default C<x86>.
-The generated ebuilds are placed into the section C<perl-gcpanp>. They favour depending on C<perl-core> or C<dev-perl> rather than C<perl-gcpanp>.
+The generated ebuilds are placed into the C<perl-gcpanp> category. They favour depending on C<perl-core>, C<dev-perl> or C<perl-gcpan> (in that order) rather than C<perl-gcpanp>.
=head1 INSTALLATION
=head1 METHODS
-All the methods are inherited from L<CPANPLUS::Dist::Base>. Please refer to its perldoc for precise information on what's done at each step.
+All the methods are inherited from L<CPANPLUS::Dist::Base>. Please refer to its documentation for precise information on what's done at each step.
=cut
$manifest = 0 if $manifest =~ /^\s*no?\s*$/i;
$stat->do_manifest($manifest);
- my $overlay = catdir(delete($opts{'overlay'}) || '/usr/local/portage',
- CATEGORY);
- $stat->overlay($overlay);
+ $stat->overlay(delete($opts{'overlay'}) || '/usr/local/portage');
$stat->distdir(delete($opts{'distdir'}) || '/usr/portage/distfiles');
$stat->dist($name . '-' . $version);
- my $f = 1;
- $version =~ s/_+/$f ? do { $f = 0; '_p' } : ''/ge;
- 1 while $version =~ s/(_p[^.]*)\.+/$1/;
+ $version =~ s/[^\d._]+//g;
+ $version =~ s/^[._]*//;
+ $version =~ s/[._]*$//;
+ $version =~ s/[._]*_[._]*/_/g;
+ {
+ ($version, my $patch, my @rest) = split /_/, $version;
+ $version .= '_p' . $patch if defined $patch;
+ $version .= join('.', '', @rest) if @rest;
+ }
$stat->eb_version($version);
$stat->eb_name($gentooism{$name} || $name);
- $stat->eb_dir(catdir($overlay, $stat->eb_name));
+ $stat->eb_dir(catdir($stat->overlay, CATEGORY, $stat->eb_name));
my $file = catfile($stat->eb_dir,
$stat->eb_name . '-' . $stat->eb_version . '.ebuild');