Revision history for CPANPLUS-Dist-Gentoo
+0.11 2010-12-16 18:15 UTC
+ + Add : configure_requires dependencies are now listed in the DEPEND
+ section of the ebuild (in addition to RDEPEND dependencies).
+ + Add : The gengentooisms script has been vastly improved. It is now
+ mostly autonomous.
+ + Chg : The module won't initialize if "emerge --info" doesn't return
+ a zero status or if IPC::Cmd can't capture buffers.
+ + Chg : The default ebuild description has been made more informative.
+ + Doc : The dist options were all clearly documented.
+ + Fix : The complete specification for Gentoo ebuild names and
+ version numbers (as documented in
+ http://devmanual.gentoo.org/ebuild-writing/file-format) has
+ been implemented.
+ In particular, this fixes dependencies on Text-Tabs+Wrap.
+ + Fix : Gentooisms were extended to also cover discrepancies between
+ Gentoo and CPAN version numbers.
+ In particular, this fixes dependencies on ExtUtils-CBuilder,
+ ExtUtils-ParseXS, Module-Build and Time-HiRes (and many more).
+ + Fix : Versioned atom dependencies now correctly mirror the versions
+ specified in the CPAN prerequisites. They used to forcefully
+ require the latest available distribution.
+ + Fix : The module no longer croaks when handling dists without a META
+ file.
+ This fixes RT #63819.
+ + Fix : Cycles in the dependency graph are now solved by specifying
+ recursive dependencies in the PDEPEND ebuild section.
+ This allows the module to finally generate emergeable ebuilds
+ for CPANPLUS and CPANPLUS-Dist-Build, thus making
+ CPANPLUS::Dist::Gentoo actually bootstrappable.
+ + Fix : Warnings for distributions with unknown licenses.
+ + Rem : %CPANPLUS::Dist::Gentoo::Maps::gentooisms is no longer directly
+ available. Use CPANPLUS::Dist::Gentoo::Maps::name_c2g() instead.
+ + Tst : Improved coverage.
+ + Upd : Update gentooisms.
+
0.10 2010-04-17 14:25 UTC
+ Add : If a distribution specifies a dependency on a specific perl
version in its META file, the ebuild dependency on dev-lang/perl
CPANPLUS::Dist::Gentoo - CPANPLUS backend generating Gentoo ebuilds.
VERSION
- Version 0.10
+ Version 0.11
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="# Copyright 1999-2008 Gentoo Foundation" \
+ --dist-opts header="# Begin" \
--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.
+ 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".
-INSTALLATION
- Before installing this module, you should append "perl-gcpanp" to your
- /etc/portage/categories file.
+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.
- You have two ways for installing this module :
+ The valid option "key"s are :
- * 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.
+ * "manifest"
- * 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.
+ A boolean that indicates whether the Manifest file should be
+ generated by running "ebuild manifest" onto the generated ebuilds.
- First, fetch tarballs for CPANPLUS and CPANPLUS::Dist::Gentoo :
+ Defaults to "yes".
- $ 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
+ * "overlay"
- Log in as root and unpack them in e.g. your home directory :
+ A string formatted as a space-delimited sequence of paths, that
+ lists the different overlays in which existent ebuilds will be
+ looked for.
- # cd
- # tar xzf /tmp/CPANPLUS-0.9003.tar.gz
- # tar xzf /tmp/CPANPLUS-Dist-Gentoo-0.10.tar.gz
+ Defaults to the value of "PORTDIR_OVERLAY" as returned by "emerge
+ --info" (usually /usr/local/portage).
+
+ * "distdir"
- Set up environment variables so that the toolchain is temporarily
- available :
+ The directory where "ebuild" expects to find the source tarballs.
+ You need write permissions on this directory.
- # 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
+ Defaults to the value of "DISTDIR" as returned by "emerge --info"
+ (usually /usr/portage/distfiles).
- Make sure you don't have an old ".cpanplus" configuration visible :
+ * "keywords"
- # [ -d /root/.cpanplus ] && mv /root/.cpanplus{,.bak}
+ The valid "KEYWORDS" for the generated ebuilds.
- Bootstrap CPANPLUS :
+ Defaults to the value of "ACCEPT_KEYWORDS" as returned by "emerge
+ --info".
- # cd /root/CPANPLUS-Dist-Gentoo-0.10
- # samples/g-cpanp CPANPLUS
+ * "header"
- Reset the environment :
+ A chunk of text that is prepended to every ebuild.
- # export PATH=$OLDPATH
- # unset PERL5LIB OLDPATH
+ Defaults to the generic Gentoo Foundation header.
- Emerge CPANPLUS with the ebuilds you've just generated :
+ * "footer"
- # emerge -tv CPANPLUS
+ A chunk of text that is appended to every ebuild.
- 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 :
+ 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.11.tar.gz
+
+ Log in as root and unpack it in e.g. your home directory :
+
+ # cd
+ # tar xzf /tmp/CPANPLUS-Dist-Gentoo-0.11.tar.gz
+ # cd CPANPLUS-Dist-Gentoo-0.11
- # FEATURES="-protect-owned" emerge podlators
- # FEATURES="-protect-owned" emerge ExtUtils-MakeMaker
+ Bootstrap CPANPLUS::Dist::Gentoo using the bundled shell script
+ "g-cpanp" :
- You may need to run each of these commands two times for them to
- succeed.
+ # perl Makefile.PL
+ # make
+ # PERL5LIB=blib/lib samples/g-cpanp CPANPLUS::Dist::Gentoo
- At this point, you can bootstrap CPANPLUS::Dist::Gentoo using the
- system CPANPLUS :
+ Finally, emerge the "CPANPLUS-Dist-Gentoo" ebuild you've just
+ generated :
- # PERL5LIB=/root/CPANPLUS-Dist-Gentoo-0.10/blib/lib samples/g-cpanp CPANPLUS::Dist::Gentoo
# emerge -tv CPANPLUS-Dist-Gentoo
METHODS