NAME CPANPLUS::Dist::Gentoo - CPANPLUS backend generating Gentoo ebuilds. VERSION Version 0.12 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 DESCRIPTION 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". 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" 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. 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.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 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 cpan2dist. 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,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.