diff options
author | Mathieu Arnold <mat@FreeBSD.org> | 2014-11-26 13:08:24 +0000 |
---|---|---|
committer | Mathieu Arnold <mat@FreeBSD.org> | 2014-11-26 13:08:24 +0000 |
commit | eee58d187e2c55fca6f53b9e482d33cf5346fe81 (patch) | |
tree | 0d350fe6ad6a2fe3222d838f3c72856c78cd449f /lang/perl5.20 | |
parent | 3f1df82a16a1e89db9a69b36ade7342f34095ab4 (diff) | |
download | ports-eee58d187e2c55fca6f53b9e482d33cf5346fe81.tar.gz ports-eee58d187e2c55fca6f53b9e482d33cf5346fe81.zip |
Change the way Perl modules are installed, update the default Perl to 5.18.
Before, we had:
site_perl : lib/perl5/site_perl/5.18
site_perl/perl_arch : lib/perl5/site_perl/5.18/mach
perl_man3 : lib/perl5/5.18/man/man3
Now we have:
site_perl : lib/perl5/site_perl
site_arch : lib/perl5/site_perl/mach/5.18
perl_man3 : lib/perl5/site_perl/man/man3
Modules without any .so will be installed at the same place regardless of the
Perl version, minimizing the upgrade when the major Perl version is changed.
It uses a version dependent directory for modules with compiled bits.
As PERL_ARCH is no longer needed in plists, it has been removed from
PLIST_SUB.
The USE_PERL5=fixpacklist keyword is removed, the .packlist file is now
always removed, as is perllocal.pod.
The old site_perl and site_perl/arch directories have been kept in the
default Perl @INC for all Perl ports, and will be phased out as these old
Perl versions expire.
PR: 194969
Differential Revision: https://reviews.freebsd.org/D1019
Exp-run by: antoine
Reviewed by: perl@
Approved by: portmgr
Notes
Notes:
svn path=/head/; revision=373448
Diffstat (limited to 'lang/perl5.20')
-rw-r--r-- | lang/perl5.20/Makefile | 43 | ||||
-rw-r--r-- | lang/perl5.20/pkg-plist | 13 |
2 files changed, 33 insertions, 23 deletions
diff --git a/lang/perl5.20/Makefile b/lang/perl5.20/Makefile index 4b76b165178b..388351e07485 100644 --- a/lang/perl5.20/Makefile +++ b/lang/perl5.20/Makefile @@ -3,7 +3,7 @@ PORTNAME= perl PORTVERSION= ${PERL_VERSION} -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= lang devel perl5 MASTER_SITES= CPAN \ ${MASTER_SITE_LOCAL:S/$/:local/} \ @@ -63,8 +63,12 @@ PORTSCOUT= limitw:1,even PERL_VERSION= 5.20.1 PERL_VER= ${PERL_VERSION:C/\.[0-9]+$//} PERL_ARCH= mach -SITE_PERL_REL?= lib/perl5/site_perl/${PERL_VER} +SITE_PERL_REL?= lib/perl5/site_perl SITE_PERL?= ${PREFIX}/${SITE_PERL_REL} +SITE_ARCH_REL?= ${SITE_PERL_REL}/${PERL_ARCH}/${PERL_VER} +SITE_ARCH?= ${PREFIX}/${SITE_ARCH_REL} +SITE_MAN3_REL?= ${SITE_PERL_REL}/man/man3 +SITE_MAN3?= ${PREFIX}/${SITE_MAN3_REL} USES= tar:bzip2 cpe HAS_CONFIGURE= yes @@ -72,12 +76,13 @@ CONFIGURE_SCRIPT=Configure CONFIGURE_ARGS= -sde -Dprefix=${PREFIX} \ -Darchlib=${PREFIX}/lib/perl5/${PERL_VER}/${PERL_ARCH} \ -Dprivlib=${PREFIX}/lib/perl5/${PERL_VER} \ - -Dman3dir=${PREFIX}/lib/perl5/${PERL_VER}/perl/man/man3 \ + -Dman3dir=${PREFIX}/${MAN3PREFIX_REL}/man/man3 \ -Dman1dir=${PREFIX}/man/man1 \ - -Dsitearch=${PREFIX}/${SITE_PERL_REL}/${PERL_ARCH} \ - -Dsitelib=${PREFIX}/${SITE_PERL_REL} -Dscriptdir=${PREFIX}/bin \ - -Dsiteman3dir=${PREFIX}/lib/perl5/${PERL_VER}/man/man3 \ + -Dsitearch=${SITE_ARCH} \ + -Dsitelib=${SITE_PERL} -Dscriptdir=${PREFIX}/bin \ + -Dsiteman3dir=${SITE_MAN3} \ -Dsiteman1dir=${PREFIX}/man/man1 \ + -Dotherlibdirs=${PREFIX}/lib/perl5/site_perl/${PERL_VER}:${PREFIX}/lib/perl5/site_perl/${PERL_VER}/${PERL_ARCH} \ -Ui_malloc -Ui_iconv -Uinstallusrbinperl \ -Dcc="${CC}" -Duseshrplib -Dinc_version_list=none \ -Dccflags=-DAPPLLIB_EXP=\"${BSDPAN_DEST}\" @@ -95,6 +100,7 @@ SUB_FILES= perl5_version use.perl perl-man.conf PKGINSTALL= ${WRKDIR}/use.perl PKGDEINSTALL= ${WRKDIR}/use.perl +INSTALL_TARGET= install-strip .include <bsd.port.pre.mk> .include "${PORTSDIR}/Mk/bsd.default-versions.mk" @@ -127,14 +133,16 @@ CONFIGURE_ARGS+= \ -Accflags=-DPERLIOBUF_DEFAULT_BUFSIZ=${PERLIOBUF_DEFAULT_BUFSIZ} .endif -MAN3PREFIX= ${PREFIX}/lib/perl5/${PERL_VER}/perl -MANDIRS+= ${MAN3PREFIX} +MAN3PREFIX_REL= lib/perl5/${PERL_VER} +MAN3PREFIX= ${PREFIX}/${MAN3PREFIX_REL} +MANDIRS+= ${MAN3PREFIX}/man PLIST_SUB+= PERL_VERSION=${PERL_VERSION} \ PERL_VER=${PERL_VER} \ PERL_ARCH=${PERL_ARCH} \ - MAN3=${MAN3PREFIX:S|^${PREFIX}/||}/man/man3 \ - SITE_PERL=${SITE_PERL:S|^${PREFIX}/||} + MAN3=${MAN3PREFIX_REL}/man/man3 \ + SITE_PERL=${SITE_PERL_REL} \ + SITE_ARCH=${SITE_ARCH_REL} .if ${PORT_OPTIONS:MDEBUG} STRIP= @@ -176,14 +184,21 @@ post-patch: .endif post-install: - ${MKDIR} ${STAGEDIR}${PREFIX}/lib/perl5/${PERL_VER}/man/man3 - ${MKDIR} ${STAGEDIR}${SITE_PERL}/${PERL_ARCH}/auto - ${MKDIR} ${STAGEDIR}${SITE_PERL}/${PERL_ARCH}/machine - ${MKDIR} ${STAGEDIR}${SITE_PERL}/${PERL_ARCH}/sys + ${MKDIR} ${STAGEDIR}${SITE_MAN3} + ${MKDIR} ${STAGEDIR}${SITE_ARCH}/auto ${MKDIR} ${STAGEDIR}${SITE_PERL}/auto + ${RM} ${STAGEDIR}${PREFIX}/lib/perl5/${PERL_VER}/${PERL_ARCH}/.packlist ${LN} ${STAGEDIR}${PREFIX}/bin/perl${PERL_VERSION} ${STAGEDIR}${PREFIX}/bin/perl5 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/perl${PERL_VERSION} ${INSTALL_DATA} ${WRKDIR}/perl5_version ${STAGEDIR}${PREFIX}/etc + ${MKDIR} ${STAGEDIR}${SITE_ARCH}/machine + ${MKDIR} ${STAGEDIR}${SITE_ARCH}/sys + # h2ph needs perl, but perl is not installed, it's only + # staged, so, use the one in WRKDIR + (cd /usr/include && ${ENV} LD_LIBRARY_PATH=${WRKSRC} \ + ${WRKSRC}/perl -I ${WRKSRC}/lib ${STAGEDIR}${PREFIX}/bin/h2ph \ + -d ${STAGEDIR}${SITE_ARCH} *.h machine/*.h sys/*.h >/dev/null) + @${FIND} ${STAGEDIR}${SITE_ARCH} -name '*.ph' | sed -e 's|${STAGEDIR}||' >> ${TMPPLIST} .if ${OSVERSION} >= 900022 ${INSTALL_DATA} ${WRKDIR}/perl-man.conf ${STAGEDIR}${PREFIX}/etc/man.d/perl${PERL_VER}.conf .endif diff --git a/lang/perl5.20/pkg-plist b/lang/perl5.20/pkg-plist index cb4bfbbfc3da..8c3675154d66 100644 --- a/lang/perl5.20/pkg-plist +++ b/lang/perl5.20/pkg-plist @@ -664,7 +664,6 @@ lib/perl5/%%PERL_VER%%/inc/latest/private.pm lib/perl5/%%PERL_VER%%/integer.pm lib/perl5/%%PERL_VER%%/less.pm lib/perl5/%%PERL_VER%%/locale.pm -lib/perl5/%%PERL_VER%%/%%PERL_ARCH%%/.packlist lib/perl5/%%PERL_VER%%/%%PERL_ARCH%%/B.pm lib/perl5/%%PERL_VER%%/%%PERL_ARCH%%/B/Concise.pm lib/perl5/%%PERL_VER%%/%%PERL_ARCH%%/B/Showlex.pm @@ -2251,14 +2250,10 @@ man/man1/shasum.1.gz man/man1/splain.1.gz man/man1/xsubpp.1.gz man/man1/zipdetails.1.gz -@dir lib/perl5/%%PERL_VER%%/man/man3 +@dir %%SITE_PERL%%/man/man3 @dir %%SITE_PERL%%/auto -@dir %%SITE_PERL%%/%%PERL_ARCH%%/auto -@dir %%SITE_PERL%%/%%PERL_ARCH%%/machine -@dir %%SITE_PERL%%/%%PERL_ARCH%%/sys -@exec cd /usr/include && %D/bin/h2ph -d %D/%%SITE_PERL%%/%%PERL_ARCH%% *.h machine/*.h sys/*.h >/dev/null +@dir %%SITE_ARCH%%/auto +@exec makewhatis %D/%%SITE_PERL%%/man @exec makewhatis %D/lib/perl5/%%PERL_VER%%/man -@exec makewhatis %D/lib/perl5/%%PERL_VER%%/perl/man @rmtry lib/perl5/%%PERL_VER%%/man/whatis -@rmtry lib/perl5/%%PERL_VER%%/perl/man/whatis -@unexec find %D/%%SITE_PERL%%/%%PERL_ARCH%%/ -name '*.ph' -delete 2>/dev/null || true +@rmtry %%SITE_PERL%%/man/whatis |