CPANPLUS::Dist::Gentoo - CPANPLUS backend generating Gentoo ebuilds.
VERSION
- Version 0.02_01
+ 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 specified overlay (defaults to
- "/usr/local/portage"), update the manifest, and even emerge it (together
- with its dependencies) if the user requires it. You need write
- permissions on the directory where Gentoo fetches its source files
- (usually "/usr/portage/distfiles").
+ 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 by "emerge
+ --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 by "emerge --info"
+ (usually /usr/portage/distfiles).
+
+ * "keywords"
+
+ The valid "KEYWORDS" for the generated ebuilds.
+
+ Defaults to the value of "ACCEPT_KEYWORDS" as returned by "emerge
+ --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.
- The generated ebuilds are placed into the section "perl-gcpanp". They
- favour depending on "perl-core" or "dev-perl" rather than "perl-gcpanp".
+ * "--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" 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.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
- All the methods are inherited from CPANPLUS::Dist::Base. Please refer to
- its perldoc for precise information on what's done at each step.
+ 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).
+ CPANPLUS, IPC::Cmd (core modules since 5.9.5), Parse::CPAN::Meta (since
+ 5.10.1).
- File::Path (since 5.001), File::Copy (5.002), File::Spec::Functions
- (5.00504).
+ Cwd, Carp (since perl 5), File::Path (5.001), File::Copy (5.002),
+ File::Spec (5.00405), List::Util (5.007003).
SEE ALSO
cpan2dist.
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
perldoc CPANPLUS::Dist::Gentoo
ACKNOWLEDGEMENTS
- The module is to some extend cargo-culted from CPANPLUS::Dist::Deb and
- CPANPLUS::Dist::Mdv.
+ The module was inspired by CPANPLUS::Dist::Deb and CPANPLUS::Dist::Mdv.
+
+ Kent Fredric, for testing and suggesting improvements.
COPYRIGHT & LICENSE
- Copyright 2008 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.