NAME CPANPLUS::Dist::Gentoo - CPANPLUS backend generating Gentoo ebuilds. VERSION Version 0.10 SYNOPSIS 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="# Copyright 1999-2008 Gentoo Foundation" \ --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), updates the manifest, and even emerges 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). The valid "KEYWORDS" for the generated ebuilds are by default those given in "ACCEPT_KEYWORDS", but you can specify your own with the "keywords" dist-option. 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". 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 . It contains an ebuild for CPANPLUS::Dist::Gentoo. * Bootstrap an ebuild for CPANPLUS::Dist::Gentoo using itself. Note that if your Gentoo system "perl" is "5.8.x", CPANPLUS and its dependencies are not installed and not even available in the main portage tree. So you need to bootstrap them as well. First, fetch tarballs for CPANPLUS and CPANPLUS::Dist::Gentoo : $ cd /tmp $ wget http://search.cpan.org/CPAN/authors/id/B/BI/BINGOS/CPANPLUS-0.9003.tar.gz $ wget http://search.cpan.org/CPAN/authors/id/V/VP/VPIT/CPANPLUS-Dist-Gentoo-0.10.tar.gz Log in as root and unpack them in e.g. your home directory : # cd # tar xzf /tmp/CPANPLUS-0.9003.tar.gz # tar xzf /tmp/CPANPLUS-Dist-Gentoo-0.10.tar.gz Set up environment variables so that the toolchain is temporarily available : # export OLDPATH=$PATH # export PATH=/root/CPANPLUS-0.9003/bin:$PATH # export PERL5LIB=/root/CPANPLUS-Dist-Gentoo-0.10/blib/lib:/root/CPANPLUS-0.9003/lib:/root/CPANPLUS-0.9003/inc/bundle Make sure you don't have an old ".cpanplus" configuration visible : # [ -d /root/.cpanplus ] && mv /root/.cpanplus{,.bak} Bootstrap CPANPLUS : # cd /root/CPANPLUS-Dist-Gentoo-0.10 # samples/g-cpanp CPANPLUS Reset the environment : # export PATH=$OLDPATH # unset PERL5LIB OLDPATH Emerge CPANPLUS with the ebuilds you've just generated : # emerge -tv CPANPLUS As of september 2009, "podlators" and "ExtUtils-MakeMaker" may fail to emerge due to collisions. You can work around this by disabling the "protect-owned" "FEATURE" for them : # FEATURES="-protect-owned" emerge podlators # FEATURES="-protect-owned" emerge ExtUtils-MakeMaker You may need to run each of these commands two times for them to succeed. At this point, you can bootstrap CPANPLUS::Dist::Gentoo using the system CPANPLUS : # PERL5LIB=/root/CPANPLUS-Dist-Gentoo-0.10/blib/lib samples/g-cpanp CPANPLUS::Dist::Gentoo # 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 (). 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, "", . 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 . 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.