=head1 VERSION
-Version 0.08
+Version 0.09
=cut
-our $VERSION = '0.08';
+our $VERSION = '0.09';
=head1 SYNOPSIS
First, fetch tarballs for L<CPANPLUS> and L<CPANPLUS::Dist::Gentoo> :
$ cd /tmp
- $ wget http://search.cpan.org/CPAN/authors/id/K/KA/KANE/CPANPLUS-0.88.tar.gz
- $ wget http://search.cpan.org/CPAN/authors/id/V/VP/VPIT/CPANPLUS-Dist-Gentoo-0.08.tar.gz
+ $ wget http://search.cpan.org/CPAN/authors/id/B/BI/BINGOS/CPANPLUS-0.9003.tar.gz
+ $ wget http://search.cpan.org/CPAN/authors/id/V/VP/VPIT/CPANPLUS-Dist-Gentoo-0.09.tar.gz
Log in as root and unpack them in e.g. your home directory :
# cd
- # tar xzf /tmp/CPANPLUS-0.88.tar.gz
- # tar xzf /tmp/CPANPLUS-Dist-Gentoo-0.08.tar.gz
+ # tar xzf /tmp/CPANPLUS-0.9003.tar.gz
+ # tar xzf /tmp/CPANPLUS-Dist-Gentoo-0.09.tar.gz
Set up environment variables so that the toolchain is temporarily available :
# export OLDPATH=$PATH
- # export PATH=/root/CPANPLUS-Dist-Gentoo-0.08/bin:$PATH
- # export PERL5LIB=/root/CPANPLUS-Dist-Gentoo-0.08/blib/lib:/root/CPANPLUS-0.88/lib:/root/CPANPLUS-0.88/inc/bundle
+ # export PATH=/root/CPANPLUS-0.9003/bin:$PATH
+ # export PERL5LIB=/root/CPANPLUS-Dist-Gentoo-0.09/blib/lib:/root/CPANPLUS-0.9003/lib:/root/CPANPLUS-0.9003/inc/bundle
Make sure you don't have an old C<.cpanplus> configuration visible :
Bootstrap L<CPANPLUS> :
- # cd /root/CPANPLUS-Dist-Gentoo-0.08
+ # cd /root/CPANPLUS-Dist-Gentoo-0.09
# samples/g-cpanp CPANPLUS
Reset the environment :
At this point, you can bootstrap L<CPANPLUS::Dist::Gentoo> using the system L<CPANPLUS> :
- # PERL5LIB=/root/CPANPLUS-Dist-Gentoo-0.08/blib/lib samples/g-cpanp CPANPLUS::Dist::Gentoo
+ # PERL5LIB=/root/CPANPLUS-Dist-Gentoo-0.09/blib/lib samples/g-cpanp CPANPLUS::Dist::Gentoo
# emerge -tv CPANPLUS-Dist-Gentoo
=back
$stat->prepared(0);
- $self->SUPER::prepare(%opts);
+ $self->SUPER::prepare(@_);
return $FAIL->() unless $stat->prepared;
sub _cpan2portage {
my ($self, $name, $version) = @_;
- $name = CPANPLUS::Dist::Gentoo::Maps::name_c2g($name);
- my $ver;
- $ver = CPANPLUS::Dist::Gentoo::Maps::version_c2g($version) if defined $version;
+ $name = CPANPLUS::Dist::Gentoo::Maps::name_c2g($name);
+ $version = CPANPLUS::Dist::Gentoo::Maps::version_c2g($version);
my @portdirs = ($main_portdir, @{$self->status->portdir_overlay});
for my $category (qw/virtual perl-core dev-perl perl-gcpan/, CATEGORY) {
- my $atom = ($category eq 'virtual' ? 'perl-' : '') . $name;
+ my $name = ($category eq 'virtual' ? 'perl-' : '') . $name;
for my $portdir (@portdirs) {
my @ebuilds = glob File::Spec->catfile(
$portdir,
$category,
- $atom,
- "$atom-*.ebuild",
+ $name,
+ "$name-*.ebuild",
) or next;
- my $atom = reduce { $a < $b ? $b : $a } # handles overloading
- map CPANPLUS::Dist::Gentoo::Atom->new(
- ebuild => $_,
- minimum => 1,
- ), @ebuilds;
- next if defined $ver and $atom < $ver;
+ my $last = reduce { $a < $b ? $b : $a } # handles overloading
+ map CPANPLUS::Dist::Gentoo::Atom->new_from_ebuild($_),
+ @ebuilds;
+ next if defined $version and $last < $version;
- return $atom;
+ return CPANPLUS::Dist::Gentoo::Atom->new(
+ category => $last->category,
+ name => $last->name,
+ (defined $version ? (version => $version, range => '>=') : ()),
+ ebuild => $last->ebuild,
+ );
}
}
=head1 COPYRIGHT & LICENSE
-Copyright 2008-2009 Vincent Pit, all rights reserved.
+Copyright 2008,2009,2010 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.