aboutsummaryrefslogtreecommitdiff
path: root/lang/perl5.20
diff options
context:
space:
mode:
authorMathieu Arnold <mat@FreeBSD.org>2014-11-26 13:08:24 +0000
committerMathieu Arnold <mat@FreeBSD.org>2014-11-26 13:08:24 +0000
commiteee58d187e2c55fca6f53b9e482d33cf5346fe81 (patch)
tree0d350fe6ad6a2fe3222d838f3c72856c78cd449f /lang/perl5.20
parent3f1df82a16a1e89db9a69b36ade7342f34095ab4 (diff)
downloadports-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/Makefile43
-rw-r--r--lang/perl5.20/pkg-plist13
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