Re: [gentoo-dev] perl-module.eclass -- review

2009-03-02 Thread Robin H. Johnson
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

2009-02-27 Thread Torsten Veller
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} ]]