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 keys 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.