CPANPLUS::Dist::Gentoo - CPANPLUS backend generating Gentoo ebuilds.
Version 0.12
# Using default values from your make.conf cpan2dist --format=CPANPLUS::Dist::Gentoo --buildprereq Some::Module # Specifying your own options cpan2dist --format=CPANPLUS::Dist::Gentoo \ --dist-opts overlay=/usr/local/portage \ --dist-opts distdir=/usr/portage/distfiles \ --dist-opts manifest=yes \ --dist-opts keywords=x86 \ --dist-opts header="# Begin" \ --dist-opts footer="# End" \ Any::Module You::Like
This module is a CPANPLUS backend that recursively generates Gentoo ebuilds for a given package in the default overlay, updates the manifest, and even emerges it (together with its dependencies) if the user requires it.
The generated ebuilds are placed into the perl-gcpanp category. They favour depending on a virtual, on perl-core, dev-perl or perl-gcpan (in that order) rather than perl-gcpanp. Existing ebuilds will be searched into the main PORTDIR portage tree and then into the overlays listed in PORTDIR_OVERLAY.
perl-gcpanp
virtual
perl-core
dev-perl
perl-gcpan
PORTDIR
PORTDIR_OVERLAY
You can pass specific options to cpan2dist by using the --dist-opts command-line argument followed by a key=value pair, where key is the option name and value is what it is set to. --dist-opts can be used several times.
--dist-opts
key=value
key
value
The valid option keys are :
manifest
A boolean that indicates whether the Manifest file should be generated by running ebuild manifest onto the generated ebuilds.
ebuild manifest
Defaults to yes.
yes
overlay
The path of the overlay in which the generated ebuilds will be written.
Defaults to the first overlay listed in PORTDIR_OVERLAY (as returned by emerge --info) or /usr/local/portage if this variable is empty.
emerge --info
distdir
The directory where ebuild expects to find the source tarballs. You need write permissions on this directory.
ebuild
Defaults to the value of DISTDIR (as returned by emerge --info) or /usr/portage/distfiles if this variable is empty.
DISTDIR
keywords
The valid KEYWORDS for the generated ebuilds.
KEYWORDS
Defaults to the value of ACCEPT_KEYWORDS (as returned by emerge --info) or 'x86' if this variable is empty.
ACCEPT_KEYWORDS
'x86'
header
A chunk of text that is prepended to every ebuild.
Defaults to the generic Gentoo Foundation header.
footer
A chunk of text that is appended to every ebuild.
Defaults to nothing.
cpan2dist itself takes other options, most notably :
--buildprereq generates an ebuild for every dependency, even for those that are already up-to-date. Setting this option is recommended.
--buildprereq
--force forcefully regenerates ebuilds even if they already exist.
--force
--install installs the ebuilds after generating them.
--install
--skiptest skips tests while building, which speeds up the building process.
--skiptest
--verbose shows a lot more information.
--verbose
Please refer to cpan2dist documentation for a complete coverage of its abilities.
Before installing this module, you should append perl-gcpanp to your /etc/portage/categories file.
You have two ways for installing this module :
Use the perl overlay located at http://git.overlays.gentoo.org/gitweb/?p=proj/perl-overlay.git. It contains an ebuild for CPANPLUS::Dist::Gentoo which will most likely be up-to-date given the reactivity of Gentoo's Perl herd.
Bootstrap an ebuild for CPANPLUS::Dist::Gentoo using itself.
First, make sure your system perl is 5.10 or greater, so that the CPANPLUS toolchain is available.
perl
5.10
$ perl -v This is perl 5, version 12, subversion 2 (v5.12.2)...
perl 5.12 is the current stable Perl version in Gentoo. If you still have perl 5.8.x, you can upgrade it by running the following commands as root :
5.12
5.8.x
# emerge -tv ">=dev-lang/perl-5.10" # perl-cleaner --all
Then, fetch the CPANPLUS::Dist::Gentoo tarball :
$ cd /tmp $ wget http://search.cpan.org/CPAN/authors/id/V/VP/VPIT/CPANPLUS-Dist-Gentoo-0.12.tar.gz
Log in as root and unpack it in e.g. your home directory :
# cd # tar xzf /tmp/CPANPLUS-Dist-Gentoo-0.12.tar.gz # cd CPANPLUS-Dist-Gentoo-0.12
Bootstrap CPANPLUS::Dist::Gentoo using the bundled shell script g-cpanp :
g-cpanp
# perl Makefile.PL # make # PERL5LIB=blib/lib samples/g-cpanp CPANPLUS::Dist::Gentoo
Finally, emerge the CPANPLUS-Dist-Gentoo ebuild you've just generated :
CPANPLUS-Dist-Gentoo
# emerge -tv CPANPLUS-Dist-Gentoo
This module inherits all the methods from CPANPLUS::Dist::Base. Please refer to its documentation for precise information on what's done at each step.
meta
Returns the contents of the META.yml or META.json files as parsed by Parse::CPAN::Meta.
intuit_license
Returns an array reference to a list of Gentoo licences identifiers under which the current distribution is released.
update_manifest
Updates the Manifest file for the ebuild associated to the current dist object.
ebuild_source
Returns the source of the ebuild for the current dist object, or undef when one of the dependencies couldn't be mapped to an existing ebuild.
undef
Gentoo (http://gentoo.org).
CPANPLUS, IPC::Cmd (core modules since 5.9.5), Parse::CPAN::Meta (since 5.10.1).
Cwd, Carp (since perl 5), File::Path (5.001), File::Copy (5.002), File::Spec (5.00405), List::Util (5.007003).
cpan2dist.
CPANPLUS::Dist::Base, CPANPLUS::Dist::Deb, CPANPLUS::Dist::Mdv.
Vincent Pit, <perl at profvince.com>, http://www.profvince.com.
<perl at profvince.com>
You can contact me by mail or on irc.perl.org (vincent).
irc.perl.org
Please report any bugs or feature requests to bug-cpanplus-dist-gentoo at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=CPANPLUS-Dist-Gentoo. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
bug-cpanplus-dist-gentoo at rt.cpan.org
You can find documentation for this module with the perldoc command.
perldoc CPANPLUS::Dist::Gentoo
The module was inspired by CPANPLUS::Dist::Deb and CPANPLUS::Dist::Mdv.
Kent Fredric, for testing and suggesting improvements.
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.
To install CPANPLUS::Dist::Gentoo, copy and paste the appropriate command in to your terminal.
cpanm
cpanm CPANPLUS::Dist::Gentoo
CPAN shell
perl -MCPAN -e shell install CPANPLUS::Dist::Gentoo
For more information on module installation, please visit the detailed CPAN module installation guide.