aboutsummaryrefslogtreecommitdiff
path: root/lang/perl5.18
diff options
context:
space:
mode:
authorMathieu Arnold <mat@FreeBSD.org>2015-04-09 12:21:29 +0000
committerMathieu Arnold <mat@FreeBSD.org>2015-04-09 12:21:29 +0000
commitbfee655ccfd4b4ce770d4aca8a31f44df7d52229 (patch)
tree13588e47865d92c5a884f61a462b25fb3c56bb9f /lang/perl5.18
parentbddf326fa5675b66aa0acafb32d4ad5383cf38fc (diff)
downloadports-bfee655ccfd4b4ce770d4aca8a31f44df7d52229.tar.gz
ports-bfee655ccfd4b4ce770d4aca8a31f44df7d52229.zip
Notes
Diffstat (limited to 'lang/perl5.18')
-rw-r--r--lang/perl5.18/Makefile6
-rw-r--r--lang/perl5.18/files/patch-Configure16
-rw-r--r--lang/perl5.18/files/patch-cpan_podlators_lib_Pod_Man.pm107
-rw-r--r--lang/perl5.18/files/patch-cpan_podlators_t_devise-date.t39
-rw-r--r--lang/perl5.18/files/patch-perl.c21
5 files changed, 185 insertions, 4 deletions
diff --git a/lang/perl5.18/Makefile b/lang/perl5.18/Makefile
index b36e657c27cb..d3d123194cc8 100644
--- a/lang/perl5.18/Makefile
+++ b/lang/perl5.18/Makefile
@@ -3,7 +3,7 @@
PORTNAME= perl
PORTVERSION= ${PERL_VERSION}
-PORTREVISION= 11
+PORTREVISION= 12
CATEGORIES= lang devel perl5
MASTER_SITES= CPAN
MASTER_SITE_SUBDIR= ../../src
@@ -84,7 +84,9 @@ CONFIGURE_ARGS= -sde -Dprefix=${PREFIX} \
-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 -Dusenm=n \
- -Dcc="${CC}" -Duseshrplib -Dinc_version_list=none
+ -Dcc="${CC}" -Duseshrplib -Dinc_version_list=none \
+ -Dcf_by=${MAINTAINER:C,@.*,,} -Dcf_email=${MAINTAINER} \
+ -Dcf_time="`env LANG=C ${STAT} -t \"%a %b %d %T %Z %Y\" -f %Sm ${_DISTDIR}/${DISTNAME}${EXTRACT_SUFX}`"
# Keep the following two in sync.
# lddlflags is used for all .so linking
# shrpldflags is used for libperl.so, so remove all the extra bits inherited from lddlflags.
diff --git a/lang/perl5.18/files/patch-Configure b/lang/perl5.18/files/patch-Configure
index 9eda84eacfe4..19952f31f051 100644
--- a/lang/perl5.18/files/patch-Configure
+++ b/lang/perl5.18/files/patch-Configure
@@ -1,6 +1,18 @@
--- Configure.orig 2014-10-01 01:32:59 UTC
+++ Configure
-@@ -4730,7 +4730,7 @@
+@@ -3634,7 +3634,10 @@ esac
+ . ./posthint.sh
+
+ : who configured the system
+-cf_time=`LC_ALL=C; LANGUAGE=C; export LC_ALL; export LANGUAGE; $date 2>&1`
++case "$cf_time" in
++"")
++ cf_time=`LC_ALL=C; LANGUAGE=C; export LC_ALL; export LANGUAGE; $date 2>&1` ;;
++esac
+ case "$cf_by" in
+ "")
+ cf_by=`(logname) 2>/dev/null`
+@@ -4730,7 +4733,7 @@ esac
libpth=''
for xxx in $dlist
do
@@ -9,7 +21,7 @@
case " $libpth " in
*" $xxx "*) ;;
*) libpth="$libpth $xxx";;
-@@ -9143,8 +9143,7 @@
+@@ -9143,8 +9146,7 @@ prefixvar=siteman3dir
: determine where add-on public executable scripts go
case "$sitescript" in
diff --git a/lang/perl5.18/files/patch-cpan_podlators_lib_Pod_Man.pm b/lang/perl5.18/files/patch-cpan_podlators_lib_Pod_Man.pm
new file mode 100644
index 000000000000..f176de5ac36d
--- /dev/null
+++ b/lang/perl5.18/files/patch-cpan_podlators_lib_Pod_Man.pm
@@ -0,0 +1,107 @@
+--- cpan/podlators/lib/Pod/Man.pm.orig 2014-10-01 01:33:00 UTC
++++ cpan/podlators/lib/Pod/Man.pm
+@@ -883,25 +883,42 @@ sub devise_title {
+ }
+
+ # Determine the modification date and return that, properly formatted in ISO
+-# format. If we can't get the modification date of the input, instead use the
+-# current time. Pod::Simple returns a completely unuseful stringified file
+-# handle as the source_filename for input from a file handle, so we have to
+-# deal with that as well.
++# format.
++#
++# If POD_MAN_DATE is set, that overrides anything else. This can be used for
++# reproducible generation of the same file even if the input file timestamps
++# are unpredictable or the POD coms from standard input.
++#
++# Otherwise, use the modification date of the input if we can stat it. Be
++# aware that Pod::Simple returns the stringification of the file handle as
++# source_filename for input from a file handle, so we'll stat some random ref
++# string in that case. If that fails, instead use the current time.
++#
++# $self - Pod::Man object, used to get the source file
++#
++# Returns: YYYY-MM-DD date suitable for the left-hand footer
+ sub devise_date {
+ my ($self) = @_;
++
++ # If POD_MAN_DATE is set, always use it.
++ if ($ENV{POD_MAN_DATE}) {
++ return $ENV{POD_MAN_DATE};
++ }
++
++ # Otherwise, get the input filename and try to stat it. If that fails,
++ # use the current time.
+ my $input = $self->source_filename;
+ my $time;
+ if ($input) {
+- $time = (stat $input)[9] || time;
++ $time = (stat($input))[9] || time();
+ } else {
+- $time = time;
++ $time = time();
+ }
+
+- # Can't use POSIX::strftime(), which uses Fcntl, because MakeMaker
+- # uses this and it has to work in the core which can't load dynamic
+- # libraries.
+- my ($year, $month, $day) = (localtime $time)[5,4,3];
+- return sprintf ("%04d-%02d-%02d", $year + 1900, $month + 1, $day);
++ # Can't use POSIX::strftime(), which uses Fcntl, because MakeMaker uses
++ # this and it has to work in the core which can't load dynamic libraries.
++ my ($year, $month, $day) = (localtime($time))[5,4,3];
++ return sprintf("%04d-%02d-%02d", $year + 1900, $month + 1, $day);
+ }
+
+ # Print out the preamble and the title. The meaning of the arguments to .TH
+@@ -1613,6 +1630,15 @@ argument.
+ Sets the centered page header to use instead of "User Contributed Perl
+ Documentation".
+
++=item date
++
++Sets the left-hand footer. If this option is not set, the contents of the
++environment variable POD_MAN_DATE, if set, will be used. Failing that,
++the modification date of the input file will be used, or the current time
++if stat() can't find that file (which will be the case if the input is
++from C<STDIN>). If obtained from the file modification date or the
++current time, he date will be formatted as C<YYYY-MM-DD>.
++
+ =item errors
+
+ How to report errors. C<die> says to throw an exception on any POD
+@@ -1623,13 +1649,6 @@ POD errors entirely, as much as possible
+
+ The default is C<output>.
+
+-=item date
+-
+-Sets the left-hand footer. By default, the modification date of the input
+-file will be used, or the current date if stat() can't find that file (the
+-case if the input is from C<STDIN>), and the date will be formatted as
+-C<YYYY-MM-DD>.
+-
+ =item fixed
+
+ The fixed-width font to use for verbatim text and code. Defaults to
+@@ -1785,6 +1804,20 @@ option was set to C<die>.
+
+ =back
+
++=head1 ENVIRONMENT
++
++=over 4
++
++=item POD_MAN_DATE
++
++If set, this will be used as the value of the left-hand footer unless the
++C<date> option is explicitly set, overriding the timestamp of the input
++file or the current time. This is primarily useful to ensure reproducible
++builds of the same output file given the same souce and Pod::Man version,
++even when file timestamps may not be consistent.
++
++=back
++
+ =head1 BUGS
+
+ Encoding handling assumes that PerlIO is available and does not work
diff --git a/lang/perl5.18/files/patch-cpan_podlators_t_devise-date.t b/lang/perl5.18/files/patch-cpan_podlators_t_devise-date.t
new file mode 100644
index 000000000000..48b6bd81e88a
--- /dev/null
+++ b/lang/perl5.18/files/patch-cpan_podlators_t_devise-date.t
@@ -0,0 +1,39 @@
+--- cpan/podlators/t/devise-date.t.orig 2014-01-31 21:55:51 UTC
++++ cpan/podlators/t/devise-date.t
+@@ -1,15 +1,28 @@
+-#!/usr/bin/perl -w
+-
+-# In order for MakeMaker to build in the core, nothing can use
+-# Fcntl which includes POSIX. devise_date()'s use of strftime()
+-# was replaced. This tests that it's identical.
++#!/usr/bin/perl
++#
++# In order for MakeMaker to build in the core, nothing can use Fcntl which
++# includes POSIX. devise_date()'s use of strftime() was replaced. This tests
++# that it's identical. It also tests special handling of the POD_MAN_DATE
++# environment variable.
+
++use 5.006;
+ use strict;
+-
+-use Test::More tests => 1;
++use warnings;
+
+ use Pod::Man;
+ use POSIX qw(strftime);
+
++use Test::More tests => 2;
++
++# Check that the results of device_date matches strftime. There is no input
++# file name, so this will use the current time.
+ my $parser = Pod::Man->new;
+-is $parser->devise_date, strftime("%Y-%m-%d", localtime);
++is(
++ $parser->devise_date,
++ strftime('%Y-%m-%d', localtime()),
++ 'devise_date matches strftime'
++);
++
++# Set the override environment variable and ensure that it's honored.
++local $ENV{POD_MAN_DATE} = '2014-01-01';
++is($parser->devise_date, '2014-01-01', 'devise_date honors POD_MAN_DATE');
diff --git a/lang/perl5.18/files/patch-perl.c b/lang/perl5.18/files/patch-perl.c
new file mode 100644
index 000000000000..78514ddb559b
--- /dev/null
+++ b/lang/perl5.18/files/patch-perl.c
@@ -0,0 +1,21 @@
+--- perl.c.orig 2014-10-01 01:33:00 UTC
++++ perl.c
+@@ -1789,18 +1789,7 @@ S_Internals_V(pTHX_ CV *cv)
+ PUSHs(Perl_newSVpvn_flags(aTHX_ non_bincompat_options,
+ sizeof(non_bincompat_options) - 1, SVs_TEMP));
+
+-#ifdef __DATE__
+-# ifdef __TIME__
+- PUSHs(Perl_newSVpvn_flags(aTHX_
+- STR_WITH_LEN("Compiled at " __DATE__ " " __TIME__),
+- SVs_TEMP));
+-# else
+- PUSHs(Perl_newSVpvn_flags(aTHX_ STR_WITH_LEN("Compiled on " __DATE__),
+- SVs_TEMP));
+-# endif
+-#else
+ PUSHs(&PL_sv_undef);
+-#endif
+
+ for (i = 1; i <= local_patch_count; i++) {
+ /* This will be an undef, if PL_localpatches[i] is NULL. */