CPANPLUS::Dist::Gentoo - CPANPLUS backend generating Gentoo ebuilds.
VERSION
- Version 0.02_01
+ Version 0.10
SYNOPSIS
cpan2dist --format=CPANPLUS::Dist::Gentoo \
--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"), update the manifest, and even emerge it (together
+ /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").
+ (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 section "perl-gcpanp". They
- favour depending on "perl-core" or "dev-perl" rather than "perl-gcpanp".
+ 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
- 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.