aboutsummaryrefslogtreecommitdiff
path: root/lang/perl5.20
diff options
context:
space:
mode:
authorMathieu Arnold <mat@FreeBSD.org>2015-10-15 14:24:43 +0000
committerMathieu Arnold <mat@FreeBSD.org>2015-10-15 14:24:43 +0000
commitdce1db7a2bc97115d96ad47f33f50db73211600e (patch)
tree7526de09c3d74ec718e3dad1be5433d23132db82 /lang/perl5.20
parent6ba68464cc225980e5ff044d65a65e1482d1fe6f (diff)
downloadports-dce1db7a2bc97115d96ad47f33f50db73211600e.tar.gz
ports-dce1db7a2bc97115d96ad47f33f50db73211600e.zip
Try to fix upgrading a non default Perl version that is supposed to be
the default one. Sponsored by: Absolight Differential Revision: https://reviews.freebsd.org/D3704
Notes
Notes: svn path=/head/; revision=399342
Diffstat (limited to 'lang/perl5.20')
-rw-r--r--lang/perl5.20/Makefile15
1 files changed, 15 insertions, 0 deletions
diff --git a/lang/perl5.20/Makefile b/lang/perl5.20/Makefile
index 7be103376529..89c80c07509b 100644
--- a/lang/perl5.20/Makefile
+++ b/lang/perl5.20/Makefile
@@ -148,9 +148,12 @@ PLIST_SUB+= PERL_VERSION=${PERL_VERSION} \
PRIV_LIB=${_PRIV_LIB} \
ARCH_LIB=${_ARCH_LIB}
+_PERL5_DEFAULT_FILE= /tmp/PERL5_DEFAULT
+
# bsd.default-versions.mk needs to know LOCALBASE for Perl, so
# bsd.port.options.mk is needed before including it.
.include <bsd.port.options.mk>
+.sinclude "${_PERL5_DEFAULT_FILE}"
.include "${.CURDIR}/../../Mk/bsd.default-versions.mk"
# if this port is default due PERL5_DEFAULT
@@ -197,9 +200,21 @@ pre-everything::
.endif
# Put a symlink to the future libperl.so.x.yy so that -lperl works.
+# Also, save PERL5_DEFAULT in case someone is not using the default Perl
+# version whilst not having set DEFAULT_VERSIONS=perl5=blah. While upgrading,
+# portmaster/portupgrade will remove the installed Perl version, and it will
+# remove any way to guess what the default Perl version is needed.
post-extract:
${LN} -s libperl.so.${PERL_VERSION} ${WRKSRC}/libperl.so
${LN} -s libperl.so.${PERL_VERSION} ${WRKSRC}/libperl.so.${PERL_VER}
+.if !defined(PACKAGE_BUILDING)
+ @${ECHO_CMD} "PERL5_DEFAULT=${PERL5_DEFAULT}" > ${_PERL5_DEFAULT_FILE}
+.endif
+
+.if !defined(PACKAGE_BUILDING)
+post-clean:
+ @${RM} ${_PERL5_DEFAULT_FILE}
+.endif
.if !defined(MAKING_PATCHES)
# make clean patch makepatch MAKING_PATCHES=