From: Vincent Pit Date: Thu, 16 Dec 2010 18:14:49 +0000 (+0100) Subject: This is 0.11 X-Git-Tag: v0.11^0 X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FCPANPLUS-Dist-Gentoo.git;a=commitdiff_plain;h=39780a6e003df06b2cc73bfbb80b6c2e16b12574 This is 0.11 --- diff --git a/Changes b/Changes index cda7cff..6170b58 100644 --- a/Changes +++ b/Changes @@ -1,5 +1,40 @@ 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 diff --git a/META.yml b/META.yml index 0cb6016..dfcbfc4 100644 --- a/META.yml +++ b/META.yml @@ -1,6 +1,6 @@ --- #YAML:1.0 name: CPANPLUS-Dist-Gentoo -version: 0.10 +version: 0.11 abstract: CPANPLUS backend generating Gentoo ebuilds. author: - Vincent Pit diff --git a/README b/README index 58485f0..2ff7aab 100644 --- a/README +++ b/README @@ -2,98 +2,148 @@ NAME 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 - . 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 + . 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 diff --git a/lib/CPANPLUS/Dist/Gentoo.pm b/lib/CPANPLUS/Dist/Gentoo.pm index 9a41af6..0306c57 100644 --- a/lib/CPANPLUS/Dist/Gentoo.pm +++ b/lib/CPANPLUS/Dist/Gentoo.pm @@ -26,11 +26,11 @@ CPANPLUS::Dist::Gentoo - CPANPLUS backend generating Gentoo ebuilds. =head1 VERSION -Version 0.10 +Version 0.11 =cut -our $VERSION = '0.10'; +our $VERSION = '0.11'; =head1 SYNOPSIS @@ -174,13 +174,13 @@ If you still have C C<5.8.x>, you can upgrade it by running the following Then, fetch the L tarball : $ cd /tmp - $ wget http://search.cpan.org/CPAN/authors/id/V/VP/VPIT/CPANPLUS-Dist-Gentoo-0.10.tar.gz + $ 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.10.tar.gz - # cd CPANPLUS-Dist-Gentoo-0.10 + # tar xzf /tmp/CPANPLUS-Dist-Gentoo-0.11.tar.gz + # cd CPANPLUS-Dist-Gentoo-0.11 Bootstrap L using the bundled shell script C : diff --git a/lib/CPANPLUS/Dist/Gentoo/Atom.pm b/lib/CPANPLUS/Dist/Gentoo/Atom.pm index 543ece4..71bc72e 100644 --- a/lib/CPANPLUS/Dist/Gentoo/Atom.pm +++ b/lib/CPANPLUS/Dist/Gentoo/Atom.pm @@ -9,11 +9,11 @@ CPANPLUS::Dist::Gentoo::Atom - Gentoo atom object. =head1 VERSION -Version 0.10 +Version 0.11 =cut -our $VERSION = '0.10'; +our $VERSION = '0.11'; =head1 DESCRIPTION diff --git a/lib/CPANPLUS/Dist/Gentoo/Guard.pm b/lib/CPANPLUS/Dist/Gentoo/Guard.pm index ea5bb0b..e800e13 100644 --- a/lib/CPANPLUS/Dist/Gentoo/Guard.pm +++ b/lib/CPANPLUS/Dist/Gentoo/Guard.pm @@ -9,11 +9,11 @@ CPANPLUS::Dist::Gentoo::Guard - Scope guard object. =head1 VERSION -Version 0.10 +Version 0.11 =cut -our $VERSION = '0.10'; +our $VERSION = '0.11'; =head1 DESCRIPTION diff --git a/lib/CPANPLUS/Dist/Gentoo/Maps.pm b/lib/CPANPLUS/Dist/Gentoo/Maps.pm index f9c478c..d3642bf 100644 --- a/lib/CPANPLUS/Dist/Gentoo/Maps.pm +++ b/lib/CPANPLUS/Dist/Gentoo/Maps.pm @@ -9,11 +9,11 @@ CPANPLUS::Dist::Gentoo::Maps - Map CPAN objects to Gentoo and vice versa. =head1 VERSION -Version 0.10 +Version 0.11 =cut -our $VERSION = '0.10'; +our $VERSION = '0.11'; =head1 DESCRPITON diff --git a/lib/CPANPLUS/Dist/Gentoo/Version.pm b/lib/CPANPLUS/Dist/Gentoo/Version.pm index 752fe97..1586fe2 100644 --- a/lib/CPANPLUS/Dist/Gentoo/Version.pm +++ b/lib/CPANPLUS/Dist/Gentoo/Version.pm @@ -9,11 +9,11 @@ CPANPLUS::Dist::Gentoo::Version - Gentoo version object. =head1 VERSION -Version 0.10 +Version 0.11 =cut -our $VERSION = '0.10'; +our $VERSION = '0.11'; =head1 DESCRIPTION