Attached is a diff of the current and the prospective perl-module.class.
Please review.
Thanks.
--- perl-module.eclass
+++ perl-module.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2004 Gentoo Foundation
+# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/perl-module.eclass,v 1.116
2009/03/29 17:32:31 tove Exp $
#
@@ -13,13 +13,18 @@
# modules, and their incorporation into the Gentoo Linux system.
inherit eutils base
+[[ ${CATEGORY} == perl-core ]] inherit alternatives
+
+EXPORTED_FUNCTIONS=src_unpack src_compile src_test src_install
case ${EAPI:-0} in
0|1)
- EXPORT_FUNCTIONS pkg_setup pkg_preinst pkg_postinst pkg_prerm
pkg_postrm src_compile src_install src_test src_unpack
+ EXPORTED_FUNCTIONS=${EXPORTED_FUNCTIONS} pkg_setup pkg_preinst
pkg_postinst pkg_prerm pkg_postrm
;;
2)
- EXPORT_FUNCTIONS src_unpack src_prepare src_configure
src_compile src_test src_install
+ EXPORTED_FUNCTIONS=${EXPORTED_FUNCTIONS} src_prepare
src_configure
+ [[ ${CATEGORY} == perl-core ]] \
+ EXPORTED_FUNCTIONS=${EXPORTED_FUNCTIONS} pkg_postinst
pkg_postrm
case ${GENTOO_DEPEND_ON_PERL:-yes} in
yes)
@@ -30,6 +35,8 @@
;;
esac
+EXPORT_FUNCTIONS ${EXPORTED_FUNCTIONS}
+
DESCRIPTION=Based on the $ECLASS eclass
LICENSE=${LICENSE:-|| ( Artistic GPL-2 )}
@@ -56,7 +63,7 @@
perl-module_src_unpack() {
base_src_unpack unpack
- has ${EAPI:-0} 0 1 perl-module_src_prepare
+ has src_prepare ${EXPORTED_FUNCTIONS} || perl-module_src_prepare
}
perl-module_src_prepare() {
@@ -110,7 +117,7 @@
perl-module_src_compile() {
${perlinfo_done} || perlinfo
- has ${EAPI:-0} 0 1 perl-module_src_prep
+ has src_configure ${EXPORTED_FUNCTIONS} || perl-module_src_prep
if [[ -f Build ]] ; then
./Build build \
@@ -124,13 +131,38 @@
fi
}
+# For testers:
+# This code attempts to work out your threadingness from MAKEOPTS
+# and apply them to Test::Harness.
+#
+# If you want more verbose testing, set TEST_VERBOSE=1
+# in your bashrc | /etc/make.conf | ENV
+#
+# For ebuild writers:
+# If you wish to enable default tests w/ 'make test' ,
+#
+# SRC_TEST=do
+#
+# If you wish to have threads run in parallel ( using the users makeopts )
+# all of the following have been tested to work.
+#
+# SRC_TEST=do parallel
+# SRC_TEST=parallel
+# SRC_TEST=parallel do
+# SRC_TEST=parallel
+#
+
perl-module_src_test() {
- if [[ ${SRC_TEST} == do ]] ; then
+ if has 'do' ${SRC_TEST} || has 'parallel' ${SRC_TEST} ; then
+ if has ${TEST_VERBOSE:-0} 0 has 'parallel' ${SRC_TEST} ;
then
+ export HARNESS_OPTIONS=j$(echo -j1 ${MAKEOPTS} | sed -r
s/.*(-j\s*|--jobs=)([0-9]+).*/\2/ )
+ einfo Test::Harness Jobs=${HARNESS_OPTIONS}
+ fi
${perlinfo_done} || perlinfo
if [[ -f Build ]] ; then
- ./Build test || die test failed
+ ./Build test verbose=${TEST_VERBOSE:-0} || die test
failed
elif [[ -f Makefile ]] ; then
- emake test || die test failed
+ emake test TEST_VERBOSE=${TEST_VERBOSE:-0} || die test
failed
fi
fi
}
@@ -162,7 +194,7 @@
fixlocalpod
- for f in Change* CHANGES README* ${mydoc}; do
+ for f in Change* CHANGES README* TODO ${mydoc}; do
[[ -s ${f} ]] dodoc ${f}
done
@@ -174,10 +206,12 @@
find ${D} -type f -not -name '*.so' -print0 | while read -rd '' f ; do
if file ${f} | grep -q -i text ; then
-if grep -q ${D} ${f} ; then ewarn QA: File contains a temporary path
${f} ;fi
+ grep -q ${D} ${f} ewarn QA: File contains a
temporary path ${f}
sed -i -e s:${D}:/:g ${f}
fi
done
+
+ linkduallifescripts
}
perl-module_pkg_setup() {
@@ -188,20 +222,21 @@
${perlinfo_done} || perlinfo
}
-perl-module_pkg_postinst() { : ; }
-# einfo Man pages are not installed for most modules now.
-# einfo Please use perldoc instead.
-#}
+perl-module_pkg_postinst() {
+ linkduallifescripts
+}
-perl-module_pkg_prerm() { : ; }
+perl-module_pkg_postrm() {
+ linkduallifescripts
+}
-perl-module_pkg_postrm() { : ; }
+perl-module_pkg_prerm() { : ; }
perlinfo() {
perlinfo_done=true
- local f version install{site{arch,lib},archlib,vendor{arch,lib}}
- for f in version install{site{arch,lib},archlib,vendor{arch,lib}} ; do
+ local f version install{{site,vendor}{arch,lib},archlib}
+ for f in version install{{site,vendor}{arch,lib},archlib} ; do