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
.
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.
The valid option key
s are :
manifest
A boolean that indicates whether the Manifest file should be generated by running ebuild manifest
onto the generated ebuilds.
Defaults to 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.
distdir
The directory where ebuild
expects to find the source tarballs. You need write permissions on this directory.
Defaults to the value of DISTDIR
(as returned by emerge --info
) or /usr/portage/distfiles if this variable is empty.
keywords
The valid KEYWORDS
for the generated ebuilds.
Defaults to the value of ACCEPT_KEYWORDS
(as returned by emerge --info
) or 'x86'
if this variable is empty.
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.--force
forcefully regenerates ebuilds even if they already exist.--install
installs the ebuilds after generating them.--skiptest
skips tests while building, which speeds up the building process.--verbose
shows a lot more information.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 :
First, make sure your system perl
is 5.10
or greater, so that the CPANPLUS toolchain is available.
$ 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 :
# 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
:
# perl Makefile.PL # make # PERL5LIB=blib/lib samples/g-cpanp CPANPLUS::Dist::Gentoo
Finally, emerge the CPANPLUS-Dist-Gentoo
ebuild you've just generated :
# 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.
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).
CPANPLUS::Dist::Base, CPANPLUS::Dist::Deb, CPANPLUS::Dist::Mdv.
Vincent Pit, <perl at profvince.com>
, http://www.profvince.com.
You can contact me by mail or on irc.perl.org
(vincent).
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.
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.