use File::Copy ();
use File::Path ();
use File::Spec;
+use POSIX ();
use IPC::Cmd ();
use Parse::CPAN::Meta ();
The generated ebuilds are placed into the C<perl-gcpanp> category.
They favour depending on a C<virtual>, on C<perl-core>, C<dev-perl> or C<perl-gcpan> (in that order) rather than C<perl-gcpanp>.
+Existing ebuilds will be searched into the main C<PORTDIR> portage tree and then into the overlays listed in C<PORTDIR_OVERLAY>.
=head1 OPTIONS
C<overlay>
-A string formatted as a space-delimited sequence of paths, that lists the different overlays in which existent ebuilds will be looked for.
+The path of the overlay in which the generated ebuilds will be written.
-Defaults to the value of C<PORTDIR_OVERLAY> as returned by C<emerge --info> (usually F</usr/local/portage>).
+Defaults to the first overlay listed in C<PORTDIR_OVERLAY> (as returned by C<emerge --info>) or F</usr/local/portage> if this variable is empty.
=item *
The directory where C<ebuild> expects to find the source tarballs.
You need write permissions on this directory.
-Defaults to the value of C<DISTDIR> as returned by C<emerge --info> (usually F</usr/portage/distfiles>).
+Defaults to the value of C<DISTDIR> (as returned by C<emerge --info>) or F</usr/portage/distfiles> if this variable is empty.
=item *
The valid C<KEYWORDS> for the generated ebuilds.
-Defaults to the value of C<ACCEPT_KEYWORDS> as returned by C<emerge --info>.
+Defaults to the value of C<ACCEPT_KEYWORDS> (as returned by C<emerge --info>) or C<'x86'> if this variable is empty.
=item *
$default_keywords = [ 'x86' ] unless defined $default_keywords;
$default_distdir = '/usr/portage/distfiles' unless defined $default_distdir;
+ my $timestamp = CPANPLUS::Dist::Gentoo::Maps::get_portage_timestamp(
+ $main_portdir
+ );
+ if (defined $timestamp) {
+ __PACKAGE__->_notify("Portage tree $main_portdir dates back from UNIX timestamp $timestamp");
+ } else {
+ __PACKAGE__->_notify("Unable to get timestamp for portage tree $main_portdir, using gmtime instead");
+ $timestamp = POSIX::mktime(gmtime);
+ }
+ if ($timestamp < CPANPLUS::Dist::Gentoo::Maps::TIMESTAMP) {
+ __PACKAGE__->_abort("Portage tree too old (please run emerge --sync and retry)");
+ return $format_available = 0;
+ }
+
return $format_available = 1;
}
$stat->footer($footer);
my $overlay = delete $opts{overlay};
- $overlay = (defined $overlay) ? Cwd::abs_path($overlay) : '/usr/local/portage';
+ if (defined $overlay) {
+ $overlay = Cwd::abs_path($overlay);
+ } else {
+ $overlay = $overlays->[0];
+ $overlay = '/usr/local/portage' unless defined $overlay;
+ }
$stat->overlay($overlay);
my $distdir = delete $opts{distdir};
=head1 COPYRIGHT & LICENSE
-Copyright 2008,2009,2010 Vincent Pit, all rights reserved.
+Copyright 2008,2009,2010,2011,2012 Vincent Pit, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.