NAME
CPANPLUS::Dist::Gentoo - CPANPLUS backend generating Gentoo ebuilds.
VERSION
Version 0.11
SYNOPSIS
# 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
DESCRPITON
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
.
OPTIONS
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
A string formatted as a space-delimited sequence of paths, that lists the different overlays in which existent ebuilds will be looked for.
Defaults to the value of
PORTDIR_OVERLAY
as returned byemerge --info
(usually /usr/local/portage).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 byemerge --info
(usually /usr/portage/distfiles).keywords
The valid
KEYWORDS
for the generated ebuilds.Defaults to the value of
ACCEPT_KEYWORDS
as returned byemerge --info
.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.
INSTALLATION
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
is5.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 haveperl
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.11.tar.gz
Log in as root and unpack it in e.g. your home directory :
# cd # tar xzf /tmp/CPANPLUS-Dist-Gentoo-0.11.tar.gz # cd CPANPLUS-Dist-Gentoo-0.11
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
METHODS
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.
DEPENDENCIES
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).
SEE ALSO
CPANPLUS::Dist::Base, CPANPLUS::Dist::Deb, CPANPLUS::Dist::Mdv.
AUTHOR
Vincent Pit, <perl at profvince.com>
, http://www.profvince.com.
You can contact me by mail or on irc.perl.org
(vincent).
BUGS
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.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc CPANPLUS::Dist::Gentoo
ACKNOWLEDGEMENTS
The module was inspired by CPANPLUS::Dist::Deb and CPANPLUS::Dist::Mdv.
Kent Fredric, for testing and suggesting improvements.
COPYRIGHT & LICENSE
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.