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
        <http://git.overlays.gentoo.org/gitweb/?p=proj/perl-overlay.git>. 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 (<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 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.

