Project:Perl/Eclass cleanup

This page contains notes on analyzing perl-module.eclass and proposing simplifications / updates / improvements.

Phase functions
Since dropping EAPI=0,1,2,3 support, the following phase functions are exported for PERL_EXPORT_PHASE_FUNCTIONS=yes
 * src_unpack src_compile src_test src_install src_prepare src_configure
 * in perl-core, additionally pkg_postinst pkg_postrm

src_unpack

 * exported
 * only calls unpacker
 * should be dropped completely in EAPI=6

src_prepare

 * exported
 * applies PATCHES
 * applies user patches
 * removes files from PERL_RM_FILES
 * applies extra OS-X fixes
 * esvn_clean

src_configure

 * exported
 * calls src_prep

src_compile

 * exported
 * calls set_version
 * if src_configure isnt exported, calls src_prep (OBSOLETE)
 * builds

src_test

 * exported
 * runs tests depending on SRC_TEST

src_install

 * exported
 * calls set_version
 * calls set_eprefix
 * runs install
 * calls delete_module_manpages
 * calls delete_localpod
 * calls delete_packlist
 * calls remove_temppath
 * installs docs
 * links duallife scripts

pkg_setup
./app-misc/hivex/hivex-1.3.7-r1.ebuild:        perl-module_pkg_setup ./sci-geosciences/mapserver/mapserver-6.0.1-r1.ebuild: use perl && perl-module_pkg_setup ./app-text/enscript/files/ebuild.st:|perl-module_src_install|perl-module_pkg_setup|perl-module_pkg_preinst\ ./eclass/perl-module.eclass:perl-module_pkg_setup { ./media-video/dvdrip/dvdrip-0.98.11-r2.ebuild: perl-module_pkg_setup ./www-apache/libapreq2/libapreq2-2.13-r1.ebuild:       perl-module_pkg_setup ./media-gfx/graphite2/graphite2-1.2.1.ebuild:  use perl && perl-module_pkg_setup ./media-gfx/graphite2/graphite2-1.2.4-r1.ebuild:       use perl && perl-module_pkg_setup ./media-gfx/graphite2/graphite2-1.2.4.ebuild:  use perl && perl-module_pkg_setup ./dev-perl/Apache-Test/Apache-Test-1.380.0-r1.ebuild:  perl-module_pkg_setup ./dev-perl/HTML-Mason/HTML-Mason-1.510.0.ebuild:       perl-module_pkg_setup ./dev-perl/HTML-Mason/HTML-Mason-1.540.0.ebuild:       perl-module_pkg_setup ./dev-perl/PDL/PDL-2.4.11.ebuild:      perl-module_pkg_setup ./sci-libs/linux-gpib/linux-gpib-3.2.20-r1.ebuild:     use perl && perl-module_pkg_setup ./dev-libs/lockdev/lockdev-1.0.3.1.2-r2.ebuild: use perl && perl-module_pkg_setup ./dev-libs/lockdev/lockdev-1.0.3.1.2-r3.ebuild: use perl && perl-module_pkg_setup ./dev-libs/libsolv/libsolv-0.3.0.ebuild:       use perl && perl-module_pkg_setup ./dev-libs/libsolv/libsolv-0.6.6.ebuild:       use perl && perl-module_pkg_setup ./dev-libs/OpenSRF/OpenSRF-2.1.1.ebuild:       perl-module_pkg_setup ./dev-libs/OpenSRF/OpenSRF-1.2.0.ebuild:       perl-module_pkg_setup
 * NOT EXPORTED
 * calls set_version
 * manually called in the following packages:

src_prep

 * calls set_version
 * calls set_eprefix
 * does a lot more stuff, tbd
 * calls "perl Build.PL" or "perl Makefile.PL"

Variables
Undocumented:
 * GENTOO_DEPEND_ON_PERL
 * GENTOO_DEPEND_ON_PERL_SUBSLOT
 * MY_PN
 * MY_PV
 * MODULE_VERSION
 * MODULE_A
 * MODULE_A_EXT
 * MODULE_AUTHOR
 * PERL_EXPORT_PHASE_FUNCTIONS
 * PERLQAFATAL
 * PREFER_BUILDPL
 * SRC_PREP
 * SRC_TEST
 * TEST_VERBOSE