public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
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
+}



  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