Re: [gentoo-dev] perl-module.eclass -- review
On Fri, Feb 27, 2009 at 03:08:52PM +0100, Torsten Veller wrote: Please review the attached perl-module.eclass. Patch linked below. Are you going to include the changes from Bug 254980 so that s390 can build their stages properly? Specifically, going to EAPI2 and adding DEPEND=dev-lang/perl[!build] to the eclass. -- Robin Hugh Johnson Gentoo Linux Developer Infra Guy E-Mail : robb...@gentoo.org GnuPG FP : 11AC BA4F 4778 E3F6 E4ED F38E B27B 944E 3488 4E85 pgpu4Da1hqTcf.pgp Description: PGP signature
[gentoo-dev] perl-module.eclass -- review
Please review the attached perl-module.eclass. Patch linked below. Changes (#239510): ~~~ - EAPI 2 support - default license - reduced EXPORT_FUNCTIONS for EAPI=2 - HOMEPAGE changed - LDFLAGS support - quoting - removes updatepod() - removes .packlist files - removes empty *.bs files - removed BUILDER_VER stuff IDEAS ~ - remove esvn_clean - cache perlinfo calls TODO (no showstopper) - still no documentation - perl-app.eclass not done After that perl-module_src_prep calls in ebuilds should be updated (perl-module_src_configure) or removed: |app-pda/pilot-link |dev-perl/GDTextUtil |dev-tex/html2latex |kde-base/dcopperl |mail-filter/spamassassin |sci-libs/gdal |sci-libs/udunit Ebuilds with a local perl-module_src_prep function should be fixed too |dev-perl/Alien-wxWidgets |dev-perl/HTML-Mason |www-apps/Embperl/Embperl git://github.com/tove/perl-eclass.git http://people.gentoo.org/tove/files/perl-module.eclass.diff # Copyright 1999-2004 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/eclass/perl-module.eclass,v 1.112 2008/09/30 08:28:44 robbat2 Exp $ # # Author: Seemant Kulleen seem...@gentoo.org # @ECLASS: perl-module.eclass # @MAINTAINER: # p...@gentoo.org # @BLURB: eclass for perl modules # @DESCRIPTION: # The perl-module eclass is designed to allow easier installation of perl # modules, and their incorporation into the Gentoo Linux system. inherit eutils base 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 ;; *) EXPORT_FUNCTIONS src_unpack src_prepare src_configure src_compile src_test src_install ;; esac DESCRIPTION=Based on the $ECLASS eclass LICENSE=${LICENSE:-|| ( Artistic GPL-2 )} [ -z ${SRC_URI} -a -z ${MODULE_A} ] MODULE_A=${MY_P:-${P}}.tar.gz [ -z ${SRC_URI} -a -n ${MODULE_AUTHOR} ] \ SRC_URI=mirror://cpan/authors/id/${MODULE_AUTHOR:0:1}/${MODULE_AUTHOR:0:2}/${MODULE_AUTHOR}/${MODULE_SECTION}/${MODULE_A} [ -z ${HOMEPAGE} ] \ HOMEPAGE=http://search.cpan.org/dist/${MY_PN:-${PN}}; SRC_PREP=no SRC_TEST=skip PREFER_BUILDPL=yes PERL_VERSION= SITE_ARCH= SITE_LIB= VENDOR_LIB= VENDOR_ARCH= ARCH_LIB= pm_echovar= perl-module_src_unpack() { base_src_unpack unpack has ${EAPI:-0} 0 1 perl-module_src_prepare } perl-module_src_prepare() { if [[ -n ${PATCHES} ]] ; then base_src_unpack autopatch fi esvn_clean } perl-module_src_configure() { perl-module_src_prep } perl-module_src_prep() { [[ ${SRC_PREP} = yes ]] return 0 SRC_PREP=yes perlinfo export PERL_MM_USE_DEFAULT=1 # Disable ExtUtils::AutoInstall from prompting export PERL_EXTUTILS_AUTOINSTALL=--skipdeps if [[ ${PREFER_BUILDPL} == yes -f Build.PL ]] ; then einfo Using Module::Build perl Build.PL \ --installdirs vendor \ --libdoc= \ --config installman3dir= \ --destdir ${D} \ --create_packlist=0 \ --extra_linker_flags=${LDFLAGS} \ ${myconf} \ ${pm_echovar} \ || die Unable to build! (are you using USE=\build\?) elif [[ -f Makefile.PL ]] ; then einfo Using ExtUtils::MakeMaker perl Makefile.PL \ PREFIX=/usr \ INSTALLDIRS=vendor \ INSTALLMAN3DIR='none' \ DESTDIR=${D} \ ${myconf} \ ${pm_echovar} \ || die Unable to build! (are you using USE=\build\?) fi if [[ ! -f Build.PL ! -f Makefile.PL ]] ; then einfo No Make or Build file detected... return fi } perl-module_src_compile() { perlinfo has ${EAPI:-0} 0 1 perl-module_src_prep if [[ -f Build ]] ; then ./Build build || die compilation failed elif [[ -f Makefile ]] ; then #make ${mymake} OPTIMIZE=${CFLAGS} OTHERLDFLAGS=${LDFLAGS} || die compilation failed make ${mymake} OTHERLDFLAGS=${LDFLAGS} || die compilation failed fi } perl-module_src_test() { if [[ ${SRC_TEST} == do ]] ; then perlinfo if [[ -f Build ]] ; then ./Build test || die test failed elif [[ -f Makefile ]] ; then make test || die test failed fi fi } perl-module_src_install() { local f stat perlinfo [[ -z ${mytargets} ]]