From: Torsten Veller <tove@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Subject: [gentoo-dev] perl-module.class review
Date: Sun, 20 Sep 2009 20:28:54 +0200 [thread overview]
Message-ID: <20090920202135.TAde89f.tv@veller.net> (raw)
In-Reply-To: <20090920182031.GA2962@veller.net>
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
eval "$(perl -V:${f} )"
done
PERL_VERSION=${version}
@@ -216,3 +251,29 @@
find "${D}" -type f -name perllocal.pod -delete
find "${D}" -depth -mindepth 1 -type d -empty -delete
}
+
+linkduallifescripts() {
+ if [[ ${CATEGORY} != "perl-core" ]] || ! has_version ">=dev-lang/perl-5.10.1" ; then
+ return 0
+ fi
+
+ local i ff
+ if has "${EBUILD_PHASE:-none}" "postinst" "postrm" ; then
+ for i in "${DUALLIFESCRIPTS[@]}" ; do
+ alternatives_auto_makesym "/usr/bin/${i}" "/usr/bin/${i}-[0-9]*"
+ ff=`echo "${ROOT}"/usr/share/man/man1/${i}-${PV}-${P}.1*`
+ ff=${ff##*.1}
+ alternatives_auto_makesym "/usr/share/man/man1/${i}.1${ff}" "/usr/share/man/man1/${i}-[0-9]*"
+ done
+ else
+ pushd "${D}" > /dev/null
+ for i in $(find usr/bin -maxdepth 1 -type f 2>/dev/null) ; do
+ mv ${i}{,-${PV}-${P}} || die
+ DUALLIFESCRIPTS[${#DUALLIFESCRIPTS[*]}]=${i##*/}
+ if [[ -f usr/share/man/man1/${i##*/}.1 ]] ; then
+ mv usr/share/man/man1/${i##*/}{.1,-${PV}-${P}.1} || die
+ fi
+ done
+ popd > /dev/null
+ fi
+}
next prev parent reply other threads:[~2009-09-20 18:30 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-20 18:20 [gentoo-dev] perl-5.10.1 status update Torsten Veller
2009-09-20 18:28 ` Torsten Veller [this message]
2009-09-21 14:40 ` [gentoo-dev] perl-module.class review Ciaran McCreesh
2009-09-21 15:29 ` [gentoo-dev] " Torsten Veller
2009-09-21 15:38 ` Tomáš Chvátal
2009-09-21 16:03 ` Torsten Veller
2009-09-21 16:10 ` Tomáš Chvátal
2009-09-21 16:55 ` Torsten Veller
2009-09-21 17:51 ` Jeremy Olexa
2009-09-21 16:30 ` Maciej Mrozowski
2009-09-21 16:59 ` Torsten Veller
2009-10-27 10:10 ` [gentoo-dev] Re: perl-5.10.1 status update Torsten Veller
2009-10-27 10:59 ` Kent Fredric
2009-10-27 11:07 ` Patrick Lauer
2009-10-27 11:50 ` David Abbott
2009-10-28 9:21 ` Bernard Cafarelli
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090920202135.TAde89f.tv@veller.net \
--to=tove@gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox