⚙️ Remove 5.28.2/5.30.2
This commit is contained in:
parent
74674b23ec
commit
f327ae0894
36 changed files with 0 additions and 1876 deletions
|
@ -1,104 +0,0 @@
|
||||||
diff --git a/cpan/Time-Local/t/Local.t b/cpan/Time-Local/t/Local.t
|
|
||||||
index 6341396..701d22d 100644
|
|
||||||
--- a/cpan/Time-Local/t/Local.t
|
|
||||||
+++ b/cpan/Time-Local/t/Local.t
|
|
||||||
@@ -85,19 +85,17 @@ my $epoch_is_64
|
|
||||||
|
|
||||||
for ( @time, @neg_time ) {
|
|
||||||
my ( $year, $mon, $mday, $hour, $min, $sec ) = @$_;
|
|
||||||
- $year -= 1900;
|
|
||||||
$mon--;
|
|
||||||
|
|
||||||
SKIP: {
|
|
||||||
skip '1970 test on VOS fails.', 12
|
|
||||||
- if $^O eq 'vos' && $year == 70;
|
|
||||||
+ if $^O eq 'vos' && $year == 1970;
|
|
||||||
skip 'this platform does not support negative epochs.', 12
|
|
||||||
- if $year < 70 && !$neg_epoch_ok;
|
|
||||||
+ if $year < 1970 && !$neg_epoch_ok;
|
|
||||||
|
|
||||||
# Test timelocal()
|
|
||||||
{
|
|
||||||
- my $year_in = $year < 70 ? $year + 1900 : $year;
|
|
||||||
- my $time = timelocal( $sec, $min, $hour, $mday, $mon, $year_in );
|
|
||||||
+ my $time = timelocal( $sec, $min, $hour, $mday, $mon, $year );
|
|
||||||
|
|
||||||
my ( $s, $m, $h, $D, $M, $Y ) = localtime($time);
|
|
||||||
|
|
||||||
@@ -106,13 +104,12 @@ SKIP: {
|
|
||||||
is( $h, $hour, "timelocal hour for @$_" );
|
|
||||||
is( $D, $mday, "timelocal day for @$_" );
|
|
||||||
is( $M, $mon, "timelocal month for @$_" );
|
|
||||||
- is( $Y, $year, "timelocal year for @$_" );
|
|
||||||
+ is( $Y, $year - 1900, "timelocal year for @$_" );
|
|
||||||
}
|
|
||||||
|
|
||||||
# Test timegm()
|
|
||||||
{
|
|
||||||
- my $year_in = $year < 70 ? $year + 1900 : $year;
|
|
||||||
- my $time = timegm( $sec, $min, $hour, $mday, $mon, $year_in );
|
|
||||||
+ my $time = timegm( $sec, $min, $hour, $mday, $mon, $year );
|
|
||||||
|
|
||||||
my ( $s, $m, $h, $D, $M, $Y ) = gmtime($time);
|
|
||||||
|
|
||||||
@@ -121,14 +118,13 @@ SKIP: {
|
|
||||||
is( $h, $hour, "timegm hour for @$_" );
|
|
||||||
is( $D, $mday, "timegm day for @$_" );
|
|
||||||
is( $M, $mon, "timegm month for @$_" );
|
|
||||||
- is( $Y, $year, "timegm year for @$_" );
|
|
||||||
+ is( $Y, $year - 1900, "timegm year for @$_" );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (@bad_time) {
|
|
||||||
my ( $year, $mon, $mday, $hour, $min, $sec ) = @$_;
|
|
||||||
- $year -= 1900;
|
|
||||||
$mon--;
|
|
||||||
|
|
||||||
eval { timegm( $sec, $min, $hour, $mday, $mon, $year ) };
|
|
||||||
@@ -229,6 +225,30 @@ SKIP:
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
+# 2-digit years
|
|
||||||
+{
|
|
||||||
+ my $current_year = ( localtime() )[5];
|
|
||||||
+ my $pre_break = ( $current_year + 49 ) - 100;
|
|
||||||
+ my $break = ( $current_year + 50 ) - 100;
|
|
||||||
+ my $post_break = ( $current_year + 51 ) - 100;
|
|
||||||
+
|
|
||||||
+ is(
|
|
||||||
+ ( ( localtime( timelocal( 0, 0, 0, 1, 1, $pre_break ) ) )[5] ),
|
|
||||||
+ $pre_break + 100,
|
|
||||||
+ "year $pre_break is treated as next century",
|
|
||||||
+ );
|
|
||||||
+ is(
|
|
||||||
+ ( ( localtime( timelocal( 0, 0, 0, 1, 1, $break ) ) )[5] ),
|
|
||||||
+ $break + 100,
|
|
||||||
+ "year $break is treated as next century",
|
|
||||||
+ );
|
|
||||||
+ is(
|
|
||||||
+ ( ( localtime( timelocal( 0, 0, 0, 1, 1, $post_break ) ) )[5] ),
|
|
||||||
+ $post_break,
|
|
||||||
+ "year $post_break is treated as current century",
|
|
||||||
+ );
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
SKIP:
|
|
||||||
{
|
|
||||||
skip 'These tests only run for the package maintainer.', 8
|
|
||||||
diff --git a/hints/linux.sh b/hints/linux.sh
|
|
||||||
index a985a8e..8cbe7dc 100644
|
|
||||||
--- a/hints/linux.sh
|
|
||||||
+++ b/hints/linux.sh
|
|
||||||
@@ -165,6 +165,9 @@ esac
|
|
||||||
# plibpth to bypass this check.
|
|
||||||
if [ -x /usr/bin/gcc ] ; then
|
|
||||||
gcc=/usr/bin/gcc
|
|
||||||
+# clang also provides -print-search-dirs
|
|
||||||
+elif ${cc:-cc} --version 2>/dev/null | grep -q '^clang ' ; then
|
|
||||||
+ gcc=${cc:-cc}
|
|
||||||
else
|
|
||||||
gcc=gcc
|
|
||||||
fi
|
|
|
@ -1,29 +0,0 @@
|
||||||
FROM buildpack-deps:buster
|
|
||||||
LABEL maintainer="Peter Martini <PeterCMartini@GMail.com>, Zak B. Elep <zakame@cpan.org>"
|
|
||||||
|
|
||||||
COPY *.patch /usr/src/perl/
|
|
||||||
WORKDIR /usr/src/perl
|
|
||||||
|
|
||||||
RUN true \
|
|
||||||
&& curl -SL https://www.cpan.org/src/5.0/perl-5.28.2.tar.xz -o perl-5.28.2.tar.xz \
|
|
||||||
&& echo '0b0189bfa4b2da20e899b4bdd746ac402e8f746a58e4fcf5516484157f2aab07 *perl-5.28.2.tar.xz' | sha256sum -c - \
|
|
||||||
&& tar --strip-components=1 -xaf perl-5.28.2.tar.xz -C /usr/src/perl \
|
|
||||||
&& rm perl-5.28.2.tar.xz \
|
|
||||||
&& cat *.patch | patch -p1 \
|
|
||||||
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
|
||||||
&& archBits="$(dpkg-architecture --query DEB_BUILD_ARCH_BITS)" \
|
|
||||||
&& archFlag="$([ "$archBits" = '64' ] && echo '-Duse64bitall' || echo '-Duse64bitint')" \
|
|
||||||
&& ./Configure -Darchname="$gnuArch" "$archFlag" -Dusethreads -Duseshrplib -Dvendorprefix=/usr/local -des \
|
|
||||||
&& make -j$(nproc) \
|
|
||||||
&& TEST_JOBS=$(nproc) make test_harness \
|
|
||||||
&& make install \
|
|
||||||
&& cd /usr/src \
|
|
||||||
&& curl -LO https://www.cpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7044.tar.gz \
|
|
||||||
&& echo '9b60767fe40752ef7a9d3f13f19060a63389a5c23acc3e9827e19b75500f81f3 *App-cpanminus-1.7044.tar.gz' | sha256sum -c - \
|
|
||||||
&& tar -xzf App-cpanminus-1.7044.tar.gz && cd App-cpanminus-1.7044 && perl bin/cpanm . && cd /root \
|
|
||||||
&& true \
|
|
||||||
&& rm -fr ./cpanm /root/.cpanm /usr/src/perl /usr/src/App-cpanminus-1.7044* /tmp/*
|
|
||||||
|
|
||||||
WORKDIR /
|
|
||||||
|
|
||||||
CMD ["perl5.28.2","-de0"]
|
|
|
@ -1,69 +0,0 @@
|
||||||
From 0d9e812de5885109532ec8bf484f165213ab97cb Mon Sep 17 00:00:00 2001
|
|
||||||
From: David Mitchell <davem@iabyn.com>
|
|
||||||
Date: Fri, 14 Dec 2018 16:54:42 +0000
|
|
||||||
Subject: [PATCH] ext/GDBM_File/t/fatal.t: handle non-fatality
|
|
||||||
|
|
||||||
This script is supposed to exercise the error handling callback
|
|
||||||
mechanism in gdbm, by triggering an error by surreptitiously closing
|
|
||||||
the file handle which gdbm has opened.
|
|
||||||
|
|
||||||
However, this doesn't trigger an error in newer releases of the gdbm
|
|
||||||
library, which uses mmap() rather than write() etc. In fact I can't see
|
|
||||||
any way of triggering an error: so just skip the relevant tests if we
|
|
||||||
can't trigger a failure.
|
|
||||||
---
|
|
||||||
ext/GDBM_File/t/fatal.t | 35 ++++++++++++++++++++++++++---------
|
|
||||||
1 file changed, 26 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/ext/GDBM_File/t/fatal.t b/ext/GDBM_File/t/fatal.t
|
|
||||||
index 3ba66be598c..159916901a9 100644
|
|
||||||
--- a/ext/GDBM_File/t/fatal.t
|
|
||||||
+++ b/ext/GDBM_File/t/fatal.t
|
|
||||||
@@ -1,4 +1,12 @@
|
|
||||||
#!./perl -w
|
|
||||||
+#
|
|
||||||
+# Exercise the error handling callback mechanism in gdbm.
|
|
||||||
+#
|
|
||||||
+# Try to trigger an error by surreptitiously closing the file handle which
|
|
||||||
+# gdbm has opened. Note that this won't trigger an error in newer
|
|
||||||
+# releases of the gdbm library, which uses mmap() rather than write() etc:
|
|
||||||
+# so skip in that case.
|
|
||||||
+
|
|
||||||
use strict;
|
|
||||||
|
|
||||||
use Test::More;
|
|
||||||
@@ -34,16 +42,25 @@ isnt((open $fh, "<&=$fileno"), undef, "dup fileno $fileno")
|
|
||||||
or diag("\$! = $!");
|
|
||||||
isnt(close $fh, undef,
|
|
||||||
"close fileno $fileno, out from underneath the GDBM_File");
|
|
||||||
-is(eval {
|
|
||||||
+
|
|
||||||
+# store some data to a closed file handle
|
|
||||||
+
|
|
||||||
+my $res = eval {
|
|
||||||
$h{Perl} = 'Rules';
|
|
||||||
untie %h;
|
|
||||||
- 1;
|
|
||||||
-}, undef, 'Trapped error when attempting to write to knobbled GDBM_File');
|
|
||||||
-
|
|
||||||
-# Observed "File write error" and "lseek error" from two different systems.
|
|
||||||
-# So there might be more variants. Important part was that we trapped the error
|
|
||||||
-# via croak.
|
|
||||||
-like($@, qr/ at .*\bfatal\.t line \d+\.\n\z/,
|
|
||||||
- 'expected error message from GDBM_File');
|
|
||||||
+ 99;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+SKIP: {
|
|
||||||
+ skip "Can't tigger failure", 2 if $res == 99;
|
|
||||||
+
|
|
||||||
+ is $res, undef, "eval should return undef";
|
|
||||||
+
|
|
||||||
+ # Observed "File write error" and "lseek error" from two different
|
|
||||||
+ # systems. So there might be more variants. Important part was that
|
|
||||||
+ # we trapped the error # via croak.
|
|
||||||
+ like($@, qr/ at .*\bfatal\.t line \d+\.\n\z/,
|
|
||||||
+ 'expected error message from GDBM_File');
|
|
||||||
+}
|
|
||||||
|
|
||||||
unlink <fatal_dbmx*>;
|
|
|
@ -1,104 +0,0 @@
|
||||||
diff --git a/cpan/Time-Local/t/Local.t b/cpan/Time-Local/t/Local.t
|
|
||||||
index 6341396..701d22d 100644
|
|
||||||
--- a/cpan/Time-Local/t/Local.t
|
|
||||||
+++ b/cpan/Time-Local/t/Local.t
|
|
||||||
@@ -85,19 +85,17 @@ my $epoch_is_64
|
|
||||||
|
|
||||||
for ( @time, @neg_time ) {
|
|
||||||
my ( $year, $mon, $mday, $hour, $min, $sec ) = @$_;
|
|
||||||
- $year -= 1900;
|
|
||||||
$mon--;
|
|
||||||
|
|
||||||
SKIP: {
|
|
||||||
skip '1970 test on VOS fails.', 12
|
|
||||||
- if $^O eq 'vos' && $year == 70;
|
|
||||||
+ if $^O eq 'vos' && $year == 1970;
|
|
||||||
skip 'this platform does not support negative epochs.', 12
|
|
||||||
- if $year < 70 && !$neg_epoch_ok;
|
|
||||||
+ if $year < 1970 && !$neg_epoch_ok;
|
|
||||||
|
|
||||||
# Test timelocal()
|
|
||||||
{
|
|
||||||
- my $year_in = $year < 70 ? $year + 1900 : $year;
|
|
||||||
- my $time = timelocal( $sec, $min, $hour, $mday, $mon, $year_in );
|
|
||||||
+ my $time = timelocal( $sec, $min, $hour, $mday, $mon, $year );
|
|
||||||
|
|
||||||
my ( $s, $m, $h, $D, $M, $Y ) = localtime($time);
|
|
||||||
|
|
||||||
@@ -106,13 +104,12 @@ SKIP: {
|
|
||||||
is( $h, $hour, "timelocal hour for @$_" );
|
|
||||||
is( $D, $mday, "timelocal day for @$_" );
|
|
||||||
is( $M, $mon, "timelocal month for @$_" );
|
|
||||||
- is( $Y, $year, "timelocal year for @$_" );
|
|
||||||
+ is( $Y, $year - 1900, "timelocal year for @$_" );
|
|
||||||
}
|
|
||||||
|
|
||||||
# Test timegm()
|
|
||||||
{
|
|
||||||
- my $year_in = $year < 70 ? $year + 1900 : $year;
|
|
||||||
- my $time = timegm( $sec, $min, $hour, $mday, $mon, $year_in );
|
|
||||||
+ my $time = timegm( $sec, $min, $hour, $mday, $mon, $year );
|
|
||||||
|
|
||||||
my ( $s, $m, $h, $D, $M, $Y ) = gmtime($time);
|
|
||||||
|
|
||||||
@@ -121,14 +118,13 @@ SKIP: {
|
|
||||||
is( $h, $hour, "timegm hour for @$_" );
|
|
||||||
is( $D, $mday, "timegm day for @$_" );
|
|
||||||
is( $M, $mon, "timegm month for @$_" );
|
|
||||||
- is( $Y, $year, "timegm year for @$_" );
|
|
||||||
+ is( $Y, $year - 1900, "timegm year for @$_" );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (@bad_time) {
|
|
||||||
my ( $year, $mon, $mday, $hour, $min, $sec ) = @$_;
|
|
||||||
- $year -= 1900;
|
|
||||||
$mon--;
|
|
||||||
|
|
||||||
eval { timegm( $sec, $min, $hour, $mday, $mon, $year ) };
|
|
||||||
@@ -229,6 +225,30 @@ SKIP:
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
+# 2-digit years
|
|
||||||
+{
|
|
||||||
+ my $current_year = ( localtime() )[5];
|
|
||||||
+ my $pre_break = ( $current_year + 49 ) - 100;
|
|
||||||
+ my $break = ( $current_year + 50 ) - 100;
|
|
||||||
+ my $post_break = ( $current_year + 51 ) - 100;
|
|
||||||
+
|
|
||||||
+ is(
|
|
||||||
+ ( ( localtime( timelocal( 0, 0, 0, 1, 1, $pre_break ) ) )[5] ),
|
|
||||||
+ $pre_break + 100,
|
|
||||||
+ "year $pre_break is treated as next century",
|
|
||||||
+ );
|
|
||||||
+ is(
|
|
||||||
+ ( ( localtime( timelocal( 0, 0, 0, 1, 1, $break ) ) )[5] ),
|
|
||||||
+ $break + 100,
|
|
||||||
+ "year $break is treated as next century",
|
|
||||||
+ );
|
|
||||||
+ is(
|
|
||||||
+ ( ( localtime( timelocal( 0, 0, 0, 1, 1, $post_break ) ) )[5] ),
|
|
||||||
+ $post_break,
|
|
||||||
+ "year $post_break is treated as current century",
|
|
||||||
+ );
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
SKIP:
|
|
||||||
{
|
|
||||||
skip 'These tests only run for the package maintainer.', 8
|
|
||||||
diff --git a/hints/linux.sh b/hints/linux.sh
|
|
||||||
index a985a8e..8cbe7dc 100644
|
|
||||||
--- a/hints/linux.sh
|
|
||||||
+++ b/hints/linux.sh
|
|
||||||
@@ -165,6 +165,9 @@ esac
|
|
||||||
# plibpth to bypass this check.
|
|
||||||
if [ -x /usr/bin/gcc ] ; then
|
|
||||||
gcc=/usr/bin/gcc
|
|
||||||
+# clang also provides -print-search-dirs
|
|
||||||
+elif ${cc:-cc} --version 2>/dev/null | grep -q '^clang ' ; then
|
|
||||||
+ gcc=${cc:-cc}
|
|
||||||
else
|
|
||||||
gcc=gcc
|
|
||||||
fi
|
|
|
@ -1,29 +0,0 @@
|
||||||
FROM buildpack-deps:stretch
|
|
||||||
LABEL maintainer="Peter Martini <PeterCMartini@GMail.com>, Zak B. Elep <zakame@cpan.org>"
|
|
||||||
|
|
||||||
COPY *.patch /usr/src/perl/
|
|
||||||
WORKDIR /usr/src/perl
|
|
||||||
|
|
||||||
RUN true \
|
|
||||||
&& curl -SL https://www.cpan.org/src/5.0/perl-5.28.2.tar.xz -o perl-5.28.2.tar.xz \
|
|
||||||
&& echo '0b0189bfa4b2da20e899b4bdd746ac402e8f746a58e4fcf5516484157f2aab07 *perl-5.28.2.tar.xz' | sha256sum -c - \
|
|
||||||
&& tar --strip-components=1 -xaf perl-5.28.2.tar.xz -C /usr/src/perl \
|
|
||||||
&& rm perl-5.28.2.tar.xz \
|
|
||||||
&& cat *.patch | patch -p1 \
|
|
||||||
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
|
||||||
&& archBits="$(dpkg-architecture --query DEB_BUILD_ARCH_BITS)" \
|
|
||||||
&& archFlag="$([ "$archBits" = '64' ] && echo '-Duse64bitall' || echo '-Duse64bitint')" \
|
|
||||||
&& ./Configure -Darchname="$gnuArch" "$archFlag" -Dusethreads -Duseshrplib -Dvendorprefix=/usr/local -des \
|
|
||||||
&& make -j$(nproc) \
|
|
||||||
&& TEST_JOBS=$(nproc) make test_harness \
|
|
||||||
&& make install \
|
|
||||||
&& cd /usr/src \
|
|
||||||
&& curl -LO https://www.cpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7044.tar.gz \
|
|
||||||
&& echo '9b60767fe40752ef7a9d3f13f19060a63389a5c23acc3e9827e19b75500f81f3 *App-cpanminus-1.7044.tar.gz' | sha256sum -c - \
|
|
||||||
&& tar -xzf App-cpanminus-1.7044.tar.gz && cd App-cpanminus-1.7044 && perl bin/cpanm . && cd /root \
|
|
||||||
&& true \
|
|
||||||
&& rm -fr ./cpanm /root/.cpanm /usr/src/perl /usr/src/App-cpanminus-1.7044* /tmp/*
|
|
||||||
|
|
||||||
WORKDIR /
|
|
||||||
|
|
||||||
CMD ["perl5.28.2","-de0"]
|
|
|
@ -1,104 +0,0 @@
|
||||||
diff --git a/cpan/Time-Local/t/Local.t b/cpan/Time-Local/t/Local.t
|
|
||||||
index 6341396..701d22d 100644
|
|
||||||
--- a/cpan/Time-Local/t/Local.t
|
|
||||||
+++ b/cpan/Time-Local/t/Local.t
|
|
||||||
@@ -85,19 +85,17 @@ my $epoch_is_64
|
|
||||||
|
|
||||||
for ( @time, @neg_time ) {
|
|
||||||
my ( $year, $mon, $mday, $hour, $min, $sec ) = @$_;
|
|
||||||
- $year -= 1900;
|
|
||||||
$mon--;
|
|
||||||
|
|
||||||
SKIP: {
|
|
||||||
skip '1970 test on VOS fails.', 12
|
|
||||||
- if $^O eq 'vos' && $year == 70;
|
|
||||||
+ if $^O eq 'vos' && $year == 1970;
|
|
||||||
skip 'this platform does not support negative epochs.', 12
|
|
||||||
- if $year < 70 && !$neg_epoch_ok;
|
|
||||||
+ if $year < 1970 && !$neg_epoch_ok;
|
|
||||||
|
|
||||||
# Test timelocal()
|
|
||||||
{
|
|
||||||
- my $year_in = $year < 70 ? $year + 1900 : $year;
|
|
||||||
- my $time = timelocal( $sec, $min, $hour, $mday, $mon, $year_in );
|
|
||||||
+ my $time = timelocal( $sec, $min, $hour, $mday, $mon, $year );
|
|
||||||
|
|
||||||
my ( $s, $m, $h, $D, $M, $Y ) = localtime($time);
|
|
||||||
|
|
||||||
@@ -106,13 +104,12 @@ SKIP: {
|
|
||||||
is( $h, $hour, "timelocal hour for @$_" );
|
|
||||||
is( $D, $mday, "timelocal day for @$_" );
|
|
||||||
is( $M, $mon, "timelocal month for @$_" );
|
|
||||||
- is( $Y, $year, "timelocal year for @$_" );
|
|
||||||
+ is( $Y, $year - 1900, "timelocal year for @$_" );
|
|
||||||
}
|
|
||||||
|
|
||||||
# Test timegm()
|
|
||||||
{
|
|
||||||
- my $year_in = $year < 70 ? $year + 1900 : $year;
|
|
||||||
- my $time = timegm( $sec, $min, $hour, $mday, $mon, $year_in );
|
|
||||||
+ my $time = timegm( $sec, $min, $hour, $mday, $mon, $year );
|
|
||||||
|
|
||||||
my ( $s, $m, $h, $D, $M, $Y ) = gmtime($time);
|
|
||||||
|
|
||||||
@@ -121,14 +118,13 @@ SKIP: {
|
|
||||||
is( $h, $hour, "timegm hour for @$_" );
|
|
||||||
is( $D, $mday, "timegm day for @$_" );
|
|
||||||
is( $M, $mon, "timegm month for @$_" );
|
|
||||||
- is( $Y, $year, "timegm year for @$_" );
|
|
||||||
+ is( $Y, $year - 1900, "timegm year for @$_" );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (@bad_time) {
|
|
||||||
my ( $year, $mon, $mday, $hour, $min, $sec ) = @$_;
|
|
||||||
- $year -= 1900;
|
|
||||||
$mon--;
|
|
||||||
|
|
||||||
eval { timegm( $sec, $min, $hour, $mday, $mon, $year ) };
|
|
||||||
@@ -229,6 +225,30 @@ SKIP:
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
+# 2-digit years
|
|
||||||
+{
|
|
||||||
+ my $current_year = ( localtime() )[5];
|
|
||||||
+ my $pre_break = ( $current_year + 49 ) - 100;
|
|
||||||
+ my $break = ( $current_year + 50 ) - 100;
|
|
||||||
+ my $post_break = ( $current_year + 51 ) - 100;
|
|
||||||
+
|
|
||||||
+ is(
|
|
||||||
+ ( ( localtime( timelocal( 0, 0, 0, 1, 1, $pre_break ) ) )[5] ),
|
|
||||||
+ $pre_break + 100,
|
|
||||||
+ "year $pre_break is treated as next century",
|
|
||||||
+ );
|
|
||||||
+ is(
|
|
||||||
+ ( ( localtime( timelocal( 0, 0, 0, 1, 1, $break ) ) )[5] ),
|
|
||||||
+ $break + 100,
|
|
||||||
+ "year $break is treated as next century",
|
|
||||||
+ );
|
|
||||||
+ is(
|
|
||||||
+ ( ( localtime( timelocal( 0, 0, 0, 1, 1, $post_break ) ) )[5] ),
|
|
||||||
+ $post_break,
|
|
||||||
+ "year $post_break is treated as current century",
|
|
||||||
+ );
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
SKIP:
|
|
||||||
{
|
|
||||||
skip 'These tests only run for the package maintainer.', 8
|
|
||||||
diff --git a/hints/linux.sh b/hints/linux.sh
|
|
||||||
index a985a8e..8cbe7dc 100644
|
|
||||||
--- a/hints/linux.sh
|
|
||||||
+++ b/hints/linux.sh
|
|
||||||
@@ -165,6 +165,9 @@ esac
|
|
||||||
# plibpth to bypass this check.
|
|
||||||
if [ -x /usr/bin/gcc ] ; then
|
|
||||||
gcc=/usr/bin/gcc
|
|
||||||
+# clang also provides -print-search-dirs
|
|
||||||
+elif ${cc:-cc} --version 2>/dev/null | grep -q '^clang ' ; then
|
|
||||||
+ gcc=${cc:-cc}
|
|
||||||
else
|
|
||||||
gcc=gcc
|
|
||||||
fi
|
|
|
@ -1,29 +0,0 @@
|
||||||
FROM buildpack-deps:buster
|
|
||||||
LABEL maintainer="Peter Martini <PeterCMartini@GMail.com>, Zak B. Elep <zakame@cpan.org>"
|
|
||||||
|
|
||||||
COPY *.patch /usr/src/perl/
|
|
||||||
WORKDIR /usr/src/perl
|
|
||||||
|
|
||||||
RUN true \
|
|
||||||
&& curl -SL https://www.cpan.org/src/5.0/perl-5.28.2.tar.xz -o perl-5.28.2.tar.xz \
|
|
||||||
&& echo '0b0189bfa4b2da20e899b4bdd746ac402e8f746a58e4fcf5516484157f2aab07 *perl-5.28.2.tar.xz' | sha256sum -c - \
|
|
||||||
&& tar --strip-components=1 -xaf perl-5.28.2.tar.xz -C /usr/src/perl \
|
|
||||||
&& rm perl-5.28.2.tar.xz \
|
|
||||||
&& cat *.patch | patch -p1 \
|
|
||||||
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
|
||||||
&& archBits="$(dpkg-architecture --query DEB_BUILD_ARCH_BITS)" \
|
|
||||||
&& archFlag="$([ "$archBits" = '64' ] && echo '-Duse64bitall' || echo '-Duse64bitint')" \
|
|
||||||
&& ./Configure -Darchname="$gnuArch" "$archFlag" -Duseshrplib -Dvendorprefix=/usr/local -des \
|
|
||||||
&& make -j$(nproc) \
|
|
||||||
&& TEST_JOBS=$(nproc) make test_harness \
|
|
||||||
&& make install \
|
|
||||||
&& cd /usr/src \
|
|
||||||
&& curl -LO https://www.cpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7044.tar.gz \
|
|
||||||
&& echo '9b60767fe40752ef7a9d3f13f19060a63389a5c23acc3e9827e19b75500f81f3 *App-cpanminus-1.7044.tar.gz' | sha256sum -c - \
|
|
||||||
&& tar -xzf App-cpanminus-1.7044.tar.gz && cd App-cpanminus-1.7044 && perl bin/cpanm . && cd /root \
|
|
||||||
&& true \
|
|
||||||
&& rm -fr ./cpanm /root/.cpanm /usr/src/perl /usr/src/App-cpanminus-1.7044* /tmp/*
|
|
||||||
|
|
||||||
WORKDIR /
|
|
||||||
|
|
||||||
CMD ["perl5.28.2","-de0"]
|
|
|
@ -1,69 +0,0 @@
|
||||||
From 0d9e812de5885109532ec8bf484f165213ab97cb Mon Sep 17 00:00:00 2001
|
|
||||||
From: David Mitchell <davem@iabyn.com>
|
|
||||||
Date: Fri, 14 Dec 2018 16:54:42 +0000
|
|
||||||
Subject: [PATCH] ext/GDBM_File/t/fatal.t: handle non-fatality
|
|
||||||
|
|
||||||
This script is supposed to exercise the error handling callback
|
|
||||||
mechanism in gdbm, by triggering an error by surreptitiously closing
|
|
||||||
the file handle which gdbm has opened.
|
|
||||||
|
|
||||||
However, this doesn't trigger an error in newer releases of the gdbm
|
|
||||||
library, which uses mmap() rather than write() etc. In fact I can't see
|
|
||||||
any way of triggering an error: so just skip the relevant tests if we
|
|
||||||
can't trigger a failure.
|
|
||||||
---
|
|
||||||
ext/GDBM_File/t/fatal.t | 35 ++++++++++++++++++++++++++---------
|
|
||||||
1 file changed, 26 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/ext/GDBM_File/t/fatal.t b/ext/GDBM_File/t/fatal.t
|
|
||||||
index 3ba66be598c..159916901a9 100644
|
|
||||||
--- a/ext/GDBM_File/t/fatal.t
|
|
||||||
+++ b/ext/GDBM_File/t/fatal.t
|
|
||||||
@@ -1,4 +1,12 @@
|
|
||||||
#!./perl -w
|
|
||||||
+#
|
|
||||||
+# Exercise the error handling callback mechanism in gdbm.
|
|
||||||
+#
|
|
||||||
+# Try to trigger an error by surreptitiously closing the file handle which
|
|
||||||
+# gdbm has opened. Note that this won't trigger an error in newer
|
|
||||||
+# releases of the gdbm library, which uses mmap() rather than write() etc:
|
|
||||||
+# so skip in that case.
|
|
||||||
+
|
|
||||||
use strict;
|
|
||||||
|
|
||||||
use Test::More;
|
|
||||||
@@ -34,16 +42,25 @@ isnt((open $fh, "<&=$fileno"), undef, "dup fileno $fileno")
|
|
||||||
or diag("\$! = $!");
|
|
||||||
isnt(close $fh, undef,
|
|
||||||
"close fileno $fileno, out from underneath the GDBM_File");
|
|
||||||
-is(eval {
|
|
||||||
+
|
|
||||||
+# store some data to a closed file handle
|
|
||||||
+
|
|
||||||
+my $res = eval {
|
|
||||||
$h{Perl} = 'Rules';
|
|
||||||
untie %h;
|
|
||||||
- 1;
|
|
||||||
-}, undef, 'Trapped error when attempting to write to knobbled GDBM_File');
|
|
||||||
-
|
|
||||||
-# Observed "File write error" and "lseek error" from two different systems.
|
|
||||||
-# So there might be more variants. Important part was that we trapped the error
|
|
||||||
-# via croak.
|
|
||||||
-like($@, qr/ at .*\bfatal\.t line \d+\.\n\z/,
|
|
||||||
- 'expected error message from GDBM_File');
|
|
||||||
+ 99;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+SKIP: {
|
|
||||||
+ skip "Can't tigger failure", 2 if $res == 99;
|
|
||||||
+
|
|
||||||
+ is $res, undef, "eval should return undef";
|
|
||||||
+
|
|
||||||
+ # Observed "File write error" and "lseek error" from two different
|
|
||||||
+ # systems. So there might be more variants. Important part was that
|
|
||||||
+ # we trapped the error # via croak.
|
|
||||||
+ like($@, qr/ at .*\bfatal\.t line \d+\.\n\z/,
|
|
||||||
+ 'expected error message from GDBM_File');
|
|
||||||
+}
|
|
||||||
|
|
||||||
unlink <fatal_dbmx*>;
|
|
|
@ -1,104 +0,0 @@
|
||||||
diff --git a/cpan/Time-Local/t/Local.t b/cpan/Time-Local/t/Local.t
|
|
||||||
index 6341396..701d22d 100644
|
|
||||||
--- a/cpan/Time-Local/t/Local.t
|
|
||||||
+++ b/cpan/Time-Local/t/Local.t
|
|
||||||
@@ -85,19 +85,17 @@ my $epoch_is_64
|
|
||||||
|
|
||||||
for ( @time, @neg_time ) {
|
|
||||||
my ( $year, $mon, $mday, $hour, $min, $sec ) = @$_;
|
|
||||||
- $year -= 1900;
|
|
||||||
$mon--;
|
|
||||||
|
|
||||||
SKIP: {
|
|
||||||
skip '1970 test on VOS fails.', 12
|
|
||||||
- if $^O eq 'vos' && $year == 70;
|
|
||||||
+ if $^O eq 'vos' && $year == 1970;
|
|
||||||
skip 'this platform does not support negative epochs.', 12
|
|
||||||
- if $year < 70 && !$neg_epoch_ok;
|
|
||||||
+ if $year < 1970 && !$neg_epoch_ok;
|
|
||||||
|
|
||||||
# Test timelocal()
|
|
||||||
{
|
|
||||||
- my $year_in = $year < 70 ? $year + 1900 : $year;
|
|
||||||
- my $time = timelocal( $sec, $min, $hour, $mday, $mon, $year_in );
|
|
||||||
+ my $time = timelocal( $sec, $min, $hour, $mday, $mon, $year );
|
|
||||||
|
|
||||||
my ( $s, $m, $h, $D, $M, $Y ) = localtime($time);
|
|
||||||
|
|
||||||
@@ -106,13 +104,12 @@ SKIP: {
|
|
||||||
is( $h, $hour, "timelocal hour for @$_" );
|
|
||||||
is( $D, $mday, "timelocal day for @$_" );
|
|
||||||
is( $M, $mon, "timelocal month for @$_" );
|
|
||||||
- is( $Y, $year, "timelocal year for @$_" );
|
|
||||||
+ is( $Y, $year - 1900, "timelocal year for @$_" );
|
|
||||||
}
|
|
||||||
|
|
||||||
# Test timegm()
|
|
||||||
{
|
|
||||||
- my $year_in = $year < 70 ? $year + 1900 : $year;
|
|
||||||
- my $time = timegm( $sec, $min, $hour, $mday, $mon, $year_in );
|
|
||||||
+ my $time = timegm( $sec, $min, $hour, $mday, $mon, $year );
|
|
||||||
|
|
||||||
my ( $s, $m, $h, $D, $M, $Y ) = gmtime($time);
|
|
||||||
|
|
||||||
@@ -121,14 +118,13 @@ SKIP: {
|
|
||||||
is( $h, $hour, "timegm hour for @$_" );
|
|
||||||
is( $D, $mday, "timegm day for @$_" );
|
|
||||||
is( $M, $mon, "timegm month for @$_" );
|
|
||||||
- is( $Y, $year, "timegm year for @$_" );
|
|
||||||
+ is( $Y, $year - 1900, "timegm year for @$_" );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (@bad_time) {
|
|
||||||
my ( $year, $mon, $mday, $hour, $min, $sec ) = @$_;
|
|
||||||
- $year -= 1900;
|
|
||||||
$mon--;
|
|
||||||
|
|
||||||
eval { timegm( $sec, $min, $hour, $mday, $mon, $year ) };
|
|
||||||
@@ -229,6 +225,30 @@ SKIP:
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
+# 2-digit years
|
|
||||||
+{
|
|
||||||
+ my $current_year = ( localtime() )[5];
|
|
||||||
+ my $pre_break = ( $current_year + 49 ) - 100;
|
|
||||||
+ my $break = ( $current_year + 50 ) - 100;
|
|
||||||
+ my $post_break = ( $current_year + 51 ) - 100;
|
|
||||||
+
|
|
||||||
+ is(
|
|
||||||
+ ( ( localtime( timelocal( 0, 0, 0, 1, 1, $pre_break ) ) )[5] ),
|
|
||||||
+ $pre_break + 100,
|
|
||||||
+ "year $pre_break is treated as next century",
|
|
||||||
+ );
|
|
||||||
+ is(
|
|
||||||
+ ( ( localtime( timelocal( 0, 0, 0, 1, 1, $break ) ) )[5] ),
|
|
||||||
+ $break + 100,
|
|
||||||
+ "year $break is treated as next century",
|
|
||||||
+ );
|
|
||||||
+ is(
|
|
||||||
+ ( ( localtime( timelocal( 0, 0, 0, 1, 1, $post_break ) ) )[5] ),
|
|
||||||
+ $post_break,
|
|
||||||
+ "year $post_break is treated as current century",
|
|
||||||
+ );
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
SKIP:
|
|
||||||
{
|
|
||||||
skip 'These tests only run for the package maintainer.', 8
|
|
||||||
diff --git a/hints/linux.sh b/hints/linux.sh
|
|
||||||
index a985a8e..8cbe7dc 100644
|
|
||||||
--- a/hints/linux.sh
|
|
||||||
+++ b/hints/linux.sh
|
|
||||||
@@ -165,6 +165,9 @@ esac
|
|
||||||
# plibpth to bypass this check.
|
|
||||||
if [ -x /usr/bin/gcc ] ; then
|
|
||||||
gcc=/usr/bin/gcc
|
|
||||||
+# clang also provides -print-search-dirs
|
|
||||||
+elif ${cc:-cc} --version 2>/dev/null | grep -q '^clang ' ; then
|
|
||||||
+ gcc=${cc:-cc}
|
|
||||||
else
|
|
||||||
gcc=gcc
|
|
||||||
fi
|
|
|
@ -1,29 +0,0 @@
|
||||||
FROM buildpack-deps:stretch
|
|
||||||
LABEL maintainer="Peter Martini <PeterCMartini@GMail.com>, Zak B. Elep <zakame@cpan.org>"
|
|
||||||
|
|
||||||
COPY *.patch /usr/src/perl/
|
|
||||||
WORKDIR /usr/src/perl
|
|
||||||
|
|
||||||
RUN true \
|
|
||||||
&& curl -SL https://www.cpan.org/src/5.0/perl-5.28.2.tar.xz -o perl-5.28.2.tar.xz \
|
|
||||||
&& echo '0b0189bfa4b2da20e899b4bdd746ac402e8f746a58e4fcf5516484157f2aab07 *perl-5.28.2.tar.xz' | sha256sum -c - \
|
|
||||||
&& tar --strip-components=1 -xaf perl-5.28.2.tar.xz -C /usr/src/perl \
|
|
||||||
&& rm perl-5.28.2.tar.xz \
|
|
||||||
&& cat *.patch | patch -p1 \
|
|
||||||
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
|
||||||
&& archBits="$(dpkg-architecture --query DEB_BUILD_ARCH_BITS)" \
|
|
||||||
&& archFlag="$([ "$archBits" = '64' ] && echo '-Duse64bitall' || echo '-Duse64bitint')" \
|
|
||||||
&& ./Configure -Darchname="$gnuArch" "$archFlag" -Duseshrplib -Dvendorprefix=/usr/local -des \
|
|
||||||
&& make -j$(nproc) \
|
|
||||||
&& TEST_JOBS=$(nproc) make test_harness \
|
|
||||||
&& make install \
|
|
||||||
&& cd /usr/src \
|
|
||||||
&& curl -LO https://www.cpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7044.tar.gz \
|
|
||||||
&& echo '9b60767fe40752ef7a9d3f13f19060a63389a5c23acc3e9827e19b75500f81f3 *App-cpanminus-1.7044.tar.gz' | sha256sum -c - \
|
|
||||||
&& tar -xzf App-cpanminus-1.7044.tar.gz && cd App-cpanminus-1.7044 && perl bin/cpanm . && cd /root \
|
|
||||||
&& true \
|
|
||||||
&& rm -fr ./cpanm /root/.cpanm /usr/src/perl /usr/src/App-cpanminus-1.7044* /tmp/*
|
|
||||||
|
|
||||||
WORKDIR /
|
|
||||||
|
|
||||||
CMD ["perl5.28.2","-de0"]
|
|
|
@ -1,104 +0,0 @@
|
||||||
diff --git a/cpan/Time-Local/t/Local.t b/cpan/Time-Local/t/Local.t
|
|
||||||
index 6341396..701d22d 100644
|
|
||||||
--- a/cpan/Time-Local/t/Local.t
|
|
||||||
+++ b/cpan/Time-Local/t/Local.t
|
|
||||||
@@ -85,19 +85,17 @@ my $epoch_is_64
|
|
||||||
|
|
||||||
for ( @time, @neg_time ) {
|
|
||||||
my ( $year, $mon, $mday, $hour, $min, $sec ) = @$_;
|
|
||||||
- $year -= 1900;
|
|
||||||
$mon--;
|
|
||||||
|
|
||||||
SKIP: {
|
|
||||||
skip '1970 test on VOS fails.', 12
|
|
||||||
- if $^O eq 'vos' && $year == 70;
|
|
||||||
+ if $^O eq 'vos' && $year == 1970;
|
|
||||||
skip 'this platform does not support negative epochs.', 12
|
|
||||||
- if $year < 70 && !$neg_epoch_ok;
|
|
||||||
+ if $year < 1970 && !$neg_epoch_ok;
|
|
||||||
|
|
||||||
# Test timelocal()
|
|
||||||
{
|
|
||||||
- my $year_in = $year < 70 ? $year + 1900 : $year;
|
|
||||||
- my $time = timelocal( $sec, $min, $hour, $mday, $mon, $year_in );
|
|
||||||
+ my $time = timelocal( $sec, $min, $hour, $mday, $mon, $year );
|
|
||||||
|
|
||||||
my ( $s, $m, $h, $D, $M, $Y ) = localtime($time);
|
|
||||||
|
|
||||||
@@ -106,13 +104,12 @@ SKIP: {
|
|
||||||
is( $h, $hour, "timelocal hour for @$_" );
|
|
||||||
is( $D, $mday, "timelocal day for @$_" );
|
|
||||||
is( $M, $mon, "timelocal month for @$_" );
|
|
||||||
- is( $Y, $year, "timelocal year for @$_" );
|
|
||||||
+ is( $Y, $year - 1900, "timelocal year for @$_" );
|
|
||||||
}
|
|
||||||
|
|
||||||
# Test timegm()
|
|
||||||
{
|
|
||||||
- my $year_in = $year < 70 ? $year + 1900 : $year;
|
|
||||||
- my $time = timegm( $sec, $min, $hour, $mday, $mon, $year_in );
|
|
||||||
+ my $time = timegm( $sec, $min, $hour, $mday, $mon, $year );
|
|
||||||
|
|
||||||
my ( $s, $m, $h, $D, $M, $Y ) = gmtime($time);
|
|
||||||
|
|
||||||
@@ -121,14 +118,13 @@ SKIP: {
|
|
||||||
is( $h, $hour, "timegm hour for @$_" );
|
|
||||||
is( $D, $mday, "timegm day for @$_" );
|
|
||||||
is( $M, $mon, "timegm month for @$_" );
|
|
||||||
- is( $Y, $year, "timegm year for @$_" );
|
|
||||||
+ is( $Y, $year - 1900, "timegm year for @$_" );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (@bad_time) {
|
|
||||||
my ( $year, $mon, $mday, $hour, $min, $sec ) = @$_;
|
|
||||||
- $year -= 1900;
|
|
||||||
$mon--;
|
|
||||||
|
|
||||||
eval { timegm( $sec, $min, $hour, $mday, $mon, $year ) };
|
|
||||||
@@ -229,6 +225,30 @@ SKIP:
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
+# 2-digit years
|
|
||||||
+{
|
|
||||||
+ my $current_year = ( localtime() )[5];
|
|
||||||
+ my $pre_break = ( $current_year + 49 ) - 100;
|
|
||||||
+ my $break = ( $current_year + 50 ) - 100;
|
|
||||||
+ my $post_break = ( $current_year + 51 ) - 100;
|
|
||||||
+
|
|
||||||
+ is(
|
|
||||||
+ ( ( localtime( timelocal( 0, 0, 0, 1, 1, $pre_break ) ) )[5] ),
|
|
||||||
+ $pre_break + 100,
|
|
||||||
+ "year $pre_break is treated as next century",
|
|
||||||
+ );
|
|
||||||
+ is(
|
|
||||||
+ ( ( localtime( timelocal( 0, 0, 0, 1, 1, $break ) ) )[5] ),
|
|
||||||
+ $break + 100,
|
|
||||||
+ "year $break is treated as next century",
|
|
||||||
+ );
|
|
||||||
+ is(
|
|
||||||
+ ( ( localtime( timelocal( 0, 0, 0, 1, 1, $post_break ) ) )[5] ),
|
|
||||||
+ $post_break,
|
|
||||||
+ "year $post_break is treated as current century",
|
|
||||||
+ );
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
SKIP:
|
|
||||||
{
|
|
||||||
skip 'These tests only run for the package maintainer.', 8
|
|
||||||
diff --git a/hints/linux.sh b/hints/linux.sh
|
|
||||||
index a985a8e..8cbe7dc 100644
|
|
||||||
--- a/hints/linux.sh
|
|
||||||
+++ b/hints/linux.sh
|
|
||||||
@@ -165,6 +165,9 @@ esac
|
|
||||||
# plibpth to bypass this check.
|
|
||||||
if [ -x /usr/bin/gcc ] ; then
|
|
||||||
gcc=/usr/bin/gcc
|
|
||||||
+# clang also provides -print-search-dirs
|
|
||||||
+elif ${cc:-cc} --version 2>/dev/null | grep -q '^clang ' ; then
|
|
||||||
+ gcc=${cc:-cc}
|
|
||||||
else
|
|
||||||
gcc=gcc
|
|
||||||
fi
|
|
|
@ -1,53 +0,0 @@
|
||||||
FROM debian:buster-slim
|
|
||||||
LABEL maintainer="Peter Martini <PeterCMartini@GMail.com>, Zak B. Elep <zakame@cpan.org>"
|
|
||||||
|
|
||||||
COPY *.patch /usr/src/perl/
|
|
||||||
WORKDIR /usr/src/perl
|
|
||||||
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get install -y --no-install-recommends \
|
|
||||||
bzip2 \
|
|
||||||
ca-certificates \
|
|
||||||
# cpio \
|
|
||||||
curl \
|
|
||||||
dpkg-dev \
|
|
||||||
# file \
|
|
||||||
gcc \
|
|
||||||
# g++ \
|
|
||||||
# libbz2-dev \
|
|
||||||
# libdb-dev \
|
|
||||||
libc6-dev \
|
|
||||||
# libgdbm-dev \
|
|
||||||
# liblzma-dev \
|
|
||||||
make \
|
|
||||||
netbase \
|
|
||||||
patch \
|
|
||||||
# procps \
|
|
||||||
# zlib1g-dev \
|
|
||||||
xz-utils \
|
|
||||||
&& curl -SL https://www.cpan.org/src/5.0/perl-5.28.2.tar.xz -o perl-5.28.2.tar.xz \
|
|
||||||
&& echo '0b0189bfa4b2da20e899b4bdd746ac402e8f746a58e4fcf5516484157f2aab07 *perl-5.28.2.tar.xz' | sha256sum -c - \
|
|
||||||
&& tar --strip-components=1 -xaf perl-5.28.2.tar.xz -C /usr/src/perl \
|
|
||||||
&& rm perl-5.28.2.tar.xz \
|
|
||||||
&& cat *.patch | patch -p1 \
|
|
||||||
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
|
||||||
&& archBits="$(dpkg-architecture --query DEB_BUILD_ARCH_BITS)" \
|
|
||||||
&& archFlag="$([ "$archBits" = '64' ] && echo '-Duse64bitall' || echo '-Duse64bitint')" \
|
|
||||||
&& ./Configure -Darchname="$gnuArch" "$archFlag" -Dusethreads -Duseshrplib -Dvendorprefix=/usr/local -des \
|
|
||||||
&& make -j$(nproc) \
|
|
||||||
&& TEST_JOBS=$(nproc) make test_harness \
|
|
||||||
&& make install \
|
|
||||||
&& cd /usr/src \
|
|
||||||
&& curl -LO https://www.cpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7044.tar.gz \
|
|
||||||
&& echo '9b60767fe40752ef7a9d3f13f19060a63389a5c23acc3e9827e19b75500f81f3 *App-cpanminus-1.7044.tar.gz' | sha256sum -c - \
|
|
||||||
&& tar -xzf App-cpanminus-1.7044.tar.gz && cd App-cpanminus-1.7044 && perl bin/cpanm . && cd /root \
|
|
||||||
&& savedPackages="make netbase" \
|
|
||||||
&& apt-mark auto '.*' > /dev/null \
|
|
||||||
&& apt-mark manual $savedPackages \
|
|
||||||
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
|
||||||
&& rm -fr /var/cache/apt/* /var/lib/apt/lists/* \
|
|
||||||
&& rm -fr ./cpanm /root/.cpanm /usr/src/perl /usr/src/App-cpanminus-1.7044* /tmp/*
|
|
||||||
|
|
||||||
WORKDIR /
|
|
||||||
|
|
||||||
CMD ["perl5.28.2","-de0"]
|
|
|
@ -1,69 +0,0 @@
|
||||||
From 0d9e812de5885109532ec8bf484f165213ab97cb Mon Sep 17 00:00:00 2001
|
|
||||||
From: David Mitchell <davem@iabyn.com>
|
|
||||||
Date: Fri, 14 Dec 2018 16:54:42 +0000
|
|
||||||
Subject: [PATCH] ext/GDBM_File/t/fatal.t: handle non-fatality
|
|
||||||
|
|
||||||
This script is supposed to exercise the error handling callback
|
|
||||||
mechanism in gdbm, by triggering an error by surreptitiously closing
|
|
||||||
the file handle which gdbm has opened.
|
|
||||||
|
|
||||||
However, this doesn't trigger an error in newer releases of the gdbm
|
|
||||||
library, which uses mmap() rather than write() etc. In fact I can't see
|
|
||||||
any way of triggering an error: so just skip the relevant tests if we
|
|
||||||
can't trigger a failure.
|
|
||||||
---
|
|
||||||
ext/GDBM_File/t/fatal.t | 35 ++++++++++++++++++++++++++---------
|
|
||||||
1 file changed, 26 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/ext/GDBM_File/t/fatal.t b/ext/GDBM_File/t/fatal.t
|
|
||||||
index 3ba66be598c..159916901a9 100644
|
|
||||||
--- a/ext/GDBM_File/t/fatal.t
|
|
||||||
+++ b/ext/GDBM_File/t/fatal.t
|
|
||||||
@@ -1,4 +1,12 @@
|
|
||||||
#!./perl -w
|
|
||||||
+#
|
|
||||||
+# Exercise the error handling callback mechanism in gdbm.
|
|
||||||
+#
|
|
||||||
+# Try to trigger an error by surreptitiously closing the file handle which
|
|
||||||
+# gdbm has opened. Note that this won't trigger an error in newer
|
|
||||||
+# releases of the gdbm library, which uses mmap() rather than write() etc:
|
|
||||||
+# so skip in that case.
|
|
||||||
+
|
|
||||||
use strict;
|
|
||||||
|
|
||||||
use Test::More;
|
|
||||||
@@ -34,16 +42,25 @@ isnt((open $fh, "<&=$fileno"), undef, "dup fileno $fileno")
|
|
||||||
or diag("\$! = $!");
|
|
||||||
isnt(close $fh, undef,
|
|
||||||
"close fileno $fileno, out from underneath the GDBM_File");
|
|
||||||
-is(eval {
|
|
||||||
+
|
|
||||||
+# store some data to a closed file handle
|
|
||||||
+
|
|
||||||
+my $res = eval {
|
|
||||||
$h{Perl} = 'Rules';
|
|
||||||
untie %h;
|
|
||||||
- 1;
|
|
||||||
-}, undef, 'Trapped error when attempting to write to knobbled GDBM_File');
|
|
||||||
-
|
|
||||||
-# Observed "File write error" and "lseek error" from two different systems.
|
|
||||||
-# So there might be more variants. Important part was that we trapped the error
|
|
||||||
-# via croak.
|
|
||||||
-like($@, qr/ at .*\bfatal\.t line \d+\.\n\z/,
|
|
||||||
- 'expected error message from GDBM_File');
|
|
||||||
+ 99;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+SKIP: {
|
|
||||||
+ skip "Can't tigger failure", 2 if $res == 99;
|
|
||||||
+
|
|
||||||
+ is $res, undef, "eval should return undef";
|
|
||||||
+
|
|
||||||
+ # Observed "File write error" and "lseek error" from two different
|
|
||||||
+ # systems. So there might be more variants. Important part was that
|
|
||||||
+ # we trapped the error # via croak.
|
|
||||||
+ like($@, qr/ at .*\bfatal\.t line \d+\.\n\z/,
|
|
||||||
+ 'expected error message from GDBM_File');
|
|
||||||
+}
|
|
||||||
|
|
||||||
unlink <fatal_dbmx*>;
|
|
|
@ -1,104 +0,0 @@
|
||||||
diff --git a/cpan/Time-Local/t/Local.t b/cpan/Time-Local/t/Local.t
|
|
||||||
index 6341396..701d22d 100644
|
|
||||||
--- a/cpan/Time-Local/t/Local.t
|
|
||||||
+++ b/cpan/Time-Local/t/Local.t
|
|
||||||
@@ -85,19 +85,17 @@ my $epoch_is_64
|
|
||||||
|
|
||||||
for ( @time, @neg_time ) {
|
|
||||||
my ( $year, $mon, $mday, $hour, $min, $sec ) = @$_;
|
|
||||||
- $year -= 1900;
|
|
||||||
$mon--;
|
|
||||||
|
|
||||||
SKIP: {
|
|
||||||
skip '1970 test on VOS fails.', 12
|
|
||||||
- if $^O eq 'vos' && $year == 70;
|
|
||||||
+ if $^O eq 'vos' && $year == 1970;
|
|
||||||
skip 'this platform does not support negative epochs.', 12
|
|
||||||
- if $year < 70 && !$neg_epoch_ok;
|
|
||||||
+ if $year < 1970 && !$neg_epoch_ok;
|
|
||||||
|
|
||||||
# Test timelocal()
|
|
||||||
{
|
|
||||||
- my $year_in = $year < 70 ? $year + 1900 : $year;
|
|
||||||
- my $time = timelocal( $sec, $min, $hour, $mday, $mon, $year_in );
|
|
||||||
+ my $time = timelocal( $sec, $min, $hour, $mday, $mon, $year );
|
|
||||||
|
|
||||||
my ( $s, $m, $h, $D, $M, $Y ) = localtime($time);
|
|
||||||
|
|
||||||
@@ -106,13 +104,12 @@ SKIP: {
|
|
||||||
is( $h, $hour, "timelocal hour for @$_" );
|
|
||||||
is( $D, $mday, "timelocal day for @$_" );
|
|
||||||
is( $M, $mon, "timelocal month for @$_" );
|
|
||||||
- is( $Y, $year, "timelocal year for @$_" );
|
|
||||||
+ is( $Y, $year - 1900, "timelocal year for @$_" );
|
|
||||||
}
|
|
||||||
|
|
||||||
# Test timegm()
|
|
||||||
{
|
|
||||||
- my $year_in = $year < 70 ? $year + 1900 : $year;
|
|
||||||
- my $time = timegm( $sec, $min, $hour, $mday, $mon, $year_in );
|
|
||||||
+ my $time = timegm( $sec, $min, $hour, $mday, $mon, $year );
|
|
||||||
|
|
||||||
my ( $s, $m, $h, $D, $M, $Y ) = gmtime($time);
|
|
||||||
|
|
||||||
@@ -121,14 +118,13 @@ SKIP: {
|
|
||||||
is( $h, $hour, "timegm hour for @$_" );
|
|
||||||
is( $D, $mday, "timegm day for @$_" );
|
|
||||||
is( $M, $mon, "timegm month for @$_" );
|
|
||||||
- is( $Y, $year, "timegm year for @$_" );
|
|
||||||
+ is( $Y, $year - 1900, "timegm year for @$_" );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (@bad_time) {
|
|
||||||
my ( $year, $mon, $mday, $hour, $min, $sec ) = @$_;
|
|
||||||
- $year -= 1900;
|
|
||||||
$mon--;
|
|
||||||
|
|
||||||
eval { timegm( $sec, $min, $hour, $mday, $mon, $year ) };
|
|
||||||
@@ -229,6 +225,30 @@ SKIP:
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
+# 2-digit years
|
|
||||||
+{
|
|
||||||
+ my $current_year = ( localtime() )[5];
|
|
||||||
+ my $pre_break = ( $current_year + 49 ) - 100;
|
|
||||||
+ my $break = ( $current_year + 50 ) - 100;
|
|
||||||
+ my $post_break = ( $current_year + 51 ) - 100;
|
|
||||||
+
|
|
||||||
+ is(
|
|
||||||
+ ( ( localtime( timelocal( 0, 0, 0, 1, 1, $pre_break ) ) )[5] ),
|
|
||||||
+ $pre_break + 100,
|
|
||||||
+ "year $pre_break is treated as next century",
|
|
||||||
+ );
|
|
||||||
+ is(
|
|
||||||
+ ( ( localtime( timelocal( 0, 0, 0, 1, 1, $break ) ) )[5] ),
|
|
||||||
+ $break + 100,
|
|
||||||
+ "year $break is treated as next century",
|
|
||||||
+ );
|
|
||||||
+ is(
|
|
||||||
+ ( ( localtime( timelocal( 0, 0, 0, 1, 1, $post_break ) ) )[5] ),
|
|
||||||
+ $post_break,
|
|
||||||
+ "year $post_break is treated as current century",
|
|
||||||
+ );
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
SKIP:
|
|
||||||
{
|
|
||||||
skip 'These tests only run for the package maintainer.', 8
|
|
||||||
diff --git a/hints/linux.sh b/hints/linux.sh
|
|
||||||
index a985a8e..8cbe7dc 100644
|
|
||||||
--- a/hints/linux.sh
|
|
||||||
+++ b/hints/linux.sh
|
|
||||||
@@ -165,6 +165,9 @@ esac
|
|
||||||
# plibpth to bypass this check.
|
|
||||||
if [ -x /usr/bin/gcc ] ; then
|
|
||||||
gcc=/usr/bin/gcc
|
|
||||||
+# clang also provides -print-search-dirs
|
|
||||||
+elif ${cc:-cc} --version 2>/dev/null | grep -q '^clang ' ; then
|
|
||||||
+ gcc=${cc:-cc}
|
|
||||||
else
|
|
||||||
gcc=gcc
|
|
||||||
fi
|
|
|
@ -1,53 +0,0 @@
|
||||||
FROM debian:stretch-slim
|
|
||||||
LABEL maintainer="Peter Martini <PeterCMartini@GMail.com>, Zak B. Elep <zakame@cpan.org>"
|
|
||||||
|
|
||||||
COPY *.patch /usr/src/perl/
|
|
||||||
WORKDIR /usr/src/perl
|
|
||||||
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get install -y --no-install-recommends \
|
|
||||||
bzip2 \
|
|
||||||
ca-certificates \
|
|
||||||
# cpio \
|
|
||||||
curl \
|
|
||||||
dpkg-dev \
|
|
||||||
# file \
|
|
||||||
gcc \
|
|
||||||
# g++ \
|
|
||||||
# libbz2-dev \
|
|
||||||
# libdb-dev \
|
|
||||||
libc6-dev \
|
|
||||||
# libgdbm-dev \
|
|
||||||
# liblzma-dev \
|
|
||||||
make \
|
|
||||||
netbase \
|
|
||||||
patch \
|
|
||||||
# procps \
|
|
||||||
# zlib1g-dev \
|
|
||||||
xz-utils \
|
|
||||||
&& curl -SL https://www.cpan.org/src/5.0/perl-5.28.2.tar.xz -o perl-5.28.2.tar.xz \
|
|
||||||
&& echo '0b0189bfa4b2da20e899b4bdd746ac402e8f746a58e4fcf5516484157f2aab07 *perl-5.28.2.tar.xz' | sha256sum -c - \
|
|
||||||
&& tar --strip-components=1 -xaf perl-5.28.2.tar.xz -C /usr/src/perl \
|
|
||||||
&& rm perl-5.28.2.tar.xz \
|
|
||||||
&& cat *.patch | patch -p1 \
|
|
||||||
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
|
||||||
&& archBits="$(dpkg-architecture --query DEB_BUILD_ARCH_BITS)" \
|
|
||||||
&& archFlag="$([ "$archBits" = '64' ] && echo '-Duse64bitall' || echo '-Duse64bitint')" \
|
|
||||||
&& ./Configure -Darchname="$gnuArch" "$archFlag" -Dusethreads -Duseshrplib -Dvendorprefix=/usr/local -des \
|
|
||||||
&& make -j$(nproc) \
|
|
||||||
&& TEST_JOBS=$(nproc) make test_harness \
|
|
||||||
&& make install \
|
|
||||||
&& cd /usr/src \
|
|
||||||
&& curl -LO https://www.cpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7044.tar.gz \
|
|
||||||
&& echo '9b60767fe40752ef7a9d3f13f19060a63389a5c23acc3e9827e19b75500f81f3 *App-cpanminus-1.7044.tar.gz' | sha256sum -c - \
|
|
||||||
&& tar -xzf App-cpanminus-1.7044.tar.gz && cd App-cpanminus-1.7044 && perl bin/cpanm . && cd /root \
|
|
||||||
&& savedPackages="make netbase" \
|
|
||||||
&& apt-mark auto '.*' > /dev/null \
|
|
||||||
&& apt-mark manual $savedPackages \
|
|
||||||
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
|
||||||
&& rm -fr /var/cache/apt/* /var/lib/apt/lists/* \
|
|
||||||
&& rm -fr ./cpanm /root/.cpanm /usr/src/perl /usr/src/App-cpanminus-1.7044* /tmp/*
|
|
||||||
|
|
||||||
WORKDIR /
|
|
||||||
|
|
||||||
CMD ["perl5.28.2","-de0"]
|
|
|
@ -1,104 +0,0 @@
|
||||||
diff --git a/cpan/Time-Local/t/Local.t b/cpan/Time-Local/t/Local.t
|
|
||||||
index 6341396..701d22d 100644
|
|
||||||
--- a/cpan/Time-Local/t/Local.t
|
|
||||||
+++ b/cpan/Time-Local/t/Local.t
|
|
||||||
@@ -85,19 +85,17 @@ my $epoch_is_64
|
|
||||||
|
|
||||||
for ( @time, @neg_time ) {
|
|
||||||
my ( $year, $mon, $mday, $hour, $min, $sec ) = @$_;
|
|
||||||
- $year -= 1900;
|
|
||||||
$mon--;
|
|
||||||
|
|
||||||
SKIP: {
|
|
||||||
skip '1970 test on VOS fails.', 12
|
|
||||||
- if $^O eq 'vos' && $year == 70;
|
|
||||||
+ if $^O eq 'vos' && $year == 1970;
|
|
||||||
skip 'this platform does not support negative epochs.', 12
|
|
||||||
- if $year < 70 && !$neg_epoch_ok;
|
|
||||||
+ if $year < 1970 && !$neg_epoch_ok;
|
|
||||||
|
|
||||||
# Test timelocal()
|
|
||||||
{
|
|
||||||
- my $year_in = $year < 70 ? $year + 1900 : $year;
|
|
||||||
- my $time = timelocal( $sec, $min, $hour, $mday, $mon, $year_in );
|
|
||||||
+ my $time = timelocal( $sec, $min, $hour, $mday, $mon, $year );
|
|
||||||
|
|
||||||
my ( $s, $m, $h, $D, $M, $Y ) = localtime($time);
|
|
||||||
|
|
||||||
@@ -106,13 +104,12 @@ SKIP: {
|
|
||||||
is( $h, $hour, "timelocal hour for @$_" );
|
|
||||||
is( $D, $mday, "timelocal day for @$_" );
|
|
||||||
is( $M, $mon, "timelocal month for @$_" );
|
|
||||||
- is( $Y, $year, "timelocal year for @$_" );
|
|
||||||
+ is( $Y, $year - 1900, "timelocal year for @$_" );
|
|
||||||
}
|
|
||||||
|
|
||||||
# Test timegm()
|
|
||||||
{
|
|
||||||
- my $year_in = $year < 70 ? $year + 1900 : $year;
|
|
||||||
- my $time = timegm( $sec, $min, $hour, $mday, $mon, $year_in );
|
|
||||||
+ my $time = timegm( $sec, $min, $hour, $mday, $mon, $year );
|
|
||||||
|
|
||||||
my ( $s, $m, $h, $D, $M, $Y ) = gmtime($time);
|
|
||||||
|
|
||||||
@@ -121,14 +118,13 @@ SKIP: {
|
|
||||||
is( $h, $hour, "timegm hour for @$_" );
|
|
||||||
is( $D, $mday, "timegm day for @$_" );
|
|
||||||
is( $M, $mon, "timegm month for @$_" );
|
|
||||||
- is( $Y, $year, "timegm year for @$_" );
|
|
||||||
+ is( $Y, $year - 1900, "timegm year for @$_" );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (@bad_time) {
|
|
||||||
my ( $year, $mon, $mday, $hour, $min, $sec ) = @$_;
|
|
||||||
- $year -= 1900;
|
|
||||||
$mon--;
|
|
||||||
|
|
||||||
eval { timegm( $sec, $min, $hour, $mday, $mon, $year ) };
|
|
||||||
@@ -229,6 +225,30 @@ SKIP:
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
+# 2-digit years
|
|
||||||
+{
|
|
||||||
+ my $current_year = ( localtime() )[5];
|
|
||||||
+ my $pre_break = ( $current_year + 49 ) - 100;
|
|
||||||
+ my $break = ( $current_year + 50 ) - 100;
|
|
||||||
+ my $post_break = ( $current_year + 51 ) - 100;
|
|
||||||
+
|
|
||||||
+ is(
|
|
||||||
+ ( ( localtime( timelocal( 0, 0, 0, 1, 1, $pre_break ) ) )[5] ),
|
|
||||||
+ $pre_break + 100,
|
|
||||||
+ "year $pre_break is treated as next century",
|
|
||||||
+ );
|
|
||||||
+ is(
|
|
||||||
+ ( ( localtime( timelocal( 0, 0, 0, 1, 1, $break ) ) )[5] ),
|
|
||||||
+ $break + 100,
|
|
||||||
+ "year $break is treated as next century",
|
|
||||||
+ );
|
|
||||||
+ is(
|
|
||||||
+ ( ( localtime( timelocal( 0, 0, 0, 1, 1, $post_break ) ) )[5] ),
|
|
||||||
+ $post_break,
|
|
||||||
+ "year $post_break is treated as current century",
|
|
||||||
+ );
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
SKIP:
|
|
||||||
{
|
|
||||||
skip 'These tests only run for the package maintainer.', 8
|
|
||||||
diff --git a/hints/linux.sh b/hints/linux.sh
|
|
||||||
index a985a8e..8cbe7dc 100644
|
|
||||||
--- a/hints/linux.sh
|
|
||||||
+++ b/hints/linux.sh
|
|
||||||
@@ -165,6 +165,9 @@ esac
|
|
||||||
# plibpth to bypass this check.
|
|
||||||
if [ -x /usr/bin/gcc ] ; then
|
|
||||||
gcc=/usr/bin/gcc
|
|
||||||
+# clang also provides -print-search-dirs
|
|
||||||
+elif ${cc:-cc} --version 2>/dev/null | grep -q '^clang ' ; then
|
|
||||||
+ gcc=${cc:-cc}
|
|
||||||
else
|
|
||||||
gcc=gcc
|
|
||||||
fi
|
|
|
@ -1,53 +0,0 @@
|
||||||
FROM debian:buster-slim
|
|
||||||
LABEL maintainer="Peter Martini <PeterCMartini@GMail.com>, Zak B. Elep <zakame@cpan.org>"
|
|
||||||
|
|
||||||
COPY *.patch /usr/src/perl/
|
|
||||||
WORKDIR /usr/src/perl
|
|
||||||
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get install -y --no-install-recommends \
|
|
||||||
bzip2 \
|
|
||||||
ca-certificates \
|
|
||||||
# cpio \
|
|
||||||
curl \
|
|
||||||
dpkg-dev \
|
|
||||||
# file \
|
|
||||||
gcc \
|
|
||||||
# g++ \
|
|
||||||
# libbz2-dev \
|
|
||||||
# libdb-dev \
|
|
||||||
libc6-dev \
|
|
||||||
# libgdbm-dev \
|
|
||||||
# liblzma-dev \
|
|
||||||
make \
|
|
||||||
netbase \
|
|
||||||
patch \
|
|
||||||
# procps \
|
|
||||||
# zlib1g-dev \
|
|
||||||
xz-utils \
|
|
||||||
&& curl -SL https://www.cpan.org/src/5.0/perl-5.28.2.tar.xz -o perl-5.28.2.tar.xz \
|
|
||||||
&& echo '0b0189bfa4b2da20e899b4bdd746ac402e8f746a58e4fcf5516484157f2aab07 *perl-5.28.2.tar.xz' | sha256sum -c - \
|
|
||||||
&& tar --strip-components=1 -xaf perl-5.28.2.tar.xz -C /usr/src/perl \
|
|
||||||
&& rm perl-5.28.2.tar.xz \
|
|
||||||
&& cat *.patch | patch -p1 \
|
|
||||||
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
|
||||||
&& archBits="$(dpkg-architecture --query DEB_BUILD_ARCH_BITS)" \
|
|
||||||
&& archFlag="$([ "$archBits" = '64' ] && echo '-Duse64bitall' || echo '-Duse64bitint')" \
|
|
||||||
&& ./Configure -Darchname="$gnuArch" "$archFlag" -Duseshrplib -Dvendorprefix=/usr/local -des \
|
|
||||||
&& make -j$(nproc) \
|
|
||||||
&& TEST_JOBS=$(nproc) make test_harness \
|
|
||||||
&& make install \
|
|
||||||
&& cd /usr/src \
|
|
||||||
&& curl -LO https://www.cpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7044.tar.gz \
|
|
||||||
&& echo '9b60767fe40752ef7a9d3f13f19060a63389a5c23acc3e9827e19b75500f81f3 *App-cpanminus-1.7044.tar.gz' | sha256sum -c - \
|
|
||||||
&& tar -xzf App-cpanminus-1.7044.tar.gz && cd App-cpanminus-1.7044 && perl bin/cpanm . && cd /root \
|
|
||||||
&& savedPackages="make netbase" \
|
|
||||||
&& apt-mark auto '.*' > /dev/null \
|
|
||||||
&& apt-mark manual $savedPackages \
|
|
||||||
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
|
||||||
&& rm -fr /var/cache/apt/* /var/lib/apt/lists/* \
|
|
||||||
&& rm -fr ./cpanm /root/.cpanm /usr/src/perl /usr/src/App-cpanminus-1.7044* /tmp/*
|
|
||||||
|
|
||||||
WORKDIR /
|
|
||||||
|
|
||||||
CMD ["perl5.28.2","-de0"]
|
|
|
@ -1,69 +0,0 @@
|
||||||
From 0d9e812de5885109532ec8bf484f165213ab97cb Mon Sep 17 00:00:00 2001
|
|
||||||
From: David Mitchell <davem@iabyn.com>
|
|
||||||
Date: Fri, 14 Dec 2018 16:54:42 +0000
|
|
||||||
Subject: [PATCH] ext/GDBM_File/t/fatal.t: handle non-fatality
|
|
||||||
|
|
||||||
This script is supposed to exercise the error handling callback
|
|
||||||
mechanism in gdbm, by triggering an error by surreptitiously closing
|
|
||||||
the file handle which gdbm has opened.
|
|
||||||
|
|
||||||
However, this doesn't trigger an error in newer releases of the gdbm
|
|
||||||
library, which uses mmap() rather than write() etc. In fact I can't see
|
|
||||||
any way of triggering an error: so just skip the relevant tests if we
|
|
||||||
can't trigger a failure.
|
|
||||||
---
|
|
||||||
ext/GDBM_File/t/fatal.t | 35 ++++++++++++++++++++++++++---------
|
|
||||||
1 file changed, 26 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/ext/GDBM_File/t/fatal.t b/ext/GDBM_File/t/fatal.t
|
|
||||||
index 3ba66be598c..159916901a9 100644
|
|
||||||
--- a/ext/GDBM_File/t/fatal.t
|
|
||||||
+++ b/ext/GDBM_File/t/fatal.t
|
|
||||||
@@ -1,4 +1,12 @@
|
|
||||||
#!./perl -w
|
|
||||||
+#
|
|
||||||
+# Exercise the error handling callback mechanism in gdbm.
|
|
||||||
+#
|
|
||||||
+# Try to trigger an error by surreptitiously closing the file handle which
|
|
||||||
+# gdbm has opened. Note that this won't trigger an error in newer
|
|
||||||
+# releases of the gdbm library, which uses mmap() rather than write() etc:
|
|
||||||
+# so skip in that case.
|
|
||||||
+
|
|
||||||
use strict;
|
|
||||||
|
|
||||||
use Test::More;
|
|
||||||
@@ -34,16 +42,25 @@ isnt((open $fh, "<&=$fileno"), undef, "dup fileno $fileno")
|
|
||||||
or diag("\$! = $!");
|
|
||||||
isnt(close $fh, undef,
|
|
||||||
"close fileno $fileno, out from underneath the GDBM_File");
|
|
||||||
-is(eval {
|
|
||||||
+
|
|
||||||
+# store some data to a closed file handle
|
|
||||||
+
|
|
||||||
+my $res = eval {
|
|
||||||
$h{Perl} = 'Rules';
|
|
||||||
untie %h;
|
|
||||||
- 1;
|
|
||||||
-}, undef, 'Trapped error when attempting to write to knobbled GDBM_File');
|
|
||||||
-
|
|
||||||
-# Observed "File write error" and "lseek error" from two different systems.
|
|
||||||
-# So there might be more variants. Important part was that we trapped the error
|
|
||||||
-# via croak.
|
|
||||||
-like($@, qr/ at .*\bfatal\.t line \d+\.\n\z/,
|
|
||||||
- 'expected error message from GDBM_File');
|
|
||||||
+ 99;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+SKIP: {
|
|
||||||
+ skip "Can't tigger failure", 2 if $res == 99;
|
|
||||||
+
|
|
||||||
+ is $res, undef, "eval should return undef";
|
|
||||||
+
|
|
||||||
+ # Observed "File write error" and "lseek error" from two different
|
|
||||||
+ # systems. So there might be more variants. Important part was that
|
|
||||||
+ # we trapped the error # via croak.
|
|
||||||
+ like($@, qr/ at .*\bfatal\.t line \d+\.\n\z/,
|
|
||||||
+ 'expected error message from GDBM_File');
|
|
||||||
+}
|
|
||||||
|
|
||||||
unlink <fatal_dbmx*>;
|
|
|
@ -1,104 +0,0 @@
|
||||||
diff --git a/cpan/Time-Local/t/Local.t b/cpan/Time-Local/t/Local.t
|
|
||||||
index 6341396..701d22d 100644
|
|
||||||
--- a/cpan/Time-Local/t/Local.t
|
|
||||||
+++ b/cpan/Time-Local/t/Local.t
|
|
||||||
@@ -85,19 +85,17 @@ my $epoch_is_64
|
|
||||||
|
|
||||||
for ( @time, @neg_time ) {
|
|
||||||
my ( $year, $mon, $mday, $hour, $min, $sec ) = @$_;
|
|
||||||
- $year -= 1900;
|
|
||||||
$mon--;
|
|
||||||
|
|
||||||
SKIP: {
|
|
||||||
skip '1970 test on VOS fails.', 12
|
|
||||||
- if $^O eq 'vos' && $year == 70;
|
|
||||||
+ if $^O eq 'vos' && $year == 1970;
|
|
||||||
skip 'this platform does not support negative epochs.', 12
|
|
||||||
- if $year < 70 && !$neg_epoch_ok;
|
|
||||||
+ if $year < 1970 && !$neg_epoch_ok;
|
|
||||||
|
|
||||||
# Test timelocal()
|
|
||||||
{
|
|
||||||
- my $year_in = $year < 70 ? $year + 1900 : $year;
|
|
||||||
- my $time = timelocal( $sec, $min, $hour, $mday, $mon, $year_in );
|
|
||||||
+ my $time = timelocal( $sec, $min, $hour, $mday, $mon, $year );
|
|
||||||
|
|
||||||
my ( $s, $m, $h, $D, $M, $Y ) = localtime($time);
|
|
||||||
|
|
||||||
@@ -106,13 +104,12 @@ SKIP: {
|
|
||||||
is( $h, $hour, "timelocal hour for @$_" );
|
|
||||||
is( $D, $mday, "timelocal day for @$_" );
|
|
||||||
is( $M, $mon, "timelocal month for @$_" );
|
|
||||||
- is( $Y, $year, "timelocal year for @$_" );
|
|
||||||
+ is( $Y, $year - 1900, "timelocal year for @$_" );
|
|
||||||
}
|
|
||||||
|
|
||||||
# Test timegm()
|
|
||||||
{
|
|
||||||
- my $year_in = $year < 70 ? $year + 1900 : $year;
|
|
||||||
- my $time = timegm( $sec, $min, $hour, $mday, $mon, $year_in );
|
|
||||||
+ my $time = timegm( $sec, $min, $hour, $mday, $mon, $year );
|
|
||||||
|
|
||||||
my ( $s, $m, $h, $D, $M, $Y ) = gmtime($time);
|
|
||||||
|
|
||||||
@@ -121,14 +118,13 @@ SKIP: {
|
|
||||||
is( $h, $hour, "timegm hour for @$_" );
|
|
||||||
is( $D, $mday, "timegm day for @$_" );
|
|
||||||
is( $M, $mon, "timegm month for @$_" );
|
|
||||||
- is( $Y, $year, "timegm year for @$_" );
|
|
||||||
+ is( $Y, $year - 1900, "timegm year for @$_" );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (@bad_time) {
|
|
||||||
my ( $year, $mon, $mday, $hour, $min, $sec ) = @$_;
|
|
||||||
- $year -= 1900;
|
|
||||||
$mon--;
|
|
||||||
|
|
||||||
eval { timegm( $sec, $min, $hour, $mday, $mon, $year ) };
|
|
||||||
@@ -229,6 +225,30 @@ SKIP:
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
+# 2-digit years
|
|
||||||
+{
|
|
||||||
+ my $current_year = ( localtime() )[5];
|
|
||||||
+ my $pre_break = ( $current_year + 49 ) - 100;
|
|
||||||
+ my $break = ( $current_year + 50 ) - 100;
|
|
||||||
+ my $post_break = ( $current_year + 51 ) - 100;
|
|
||||||
+
|
|
||||||
+ is(
|
|
||||||
+ ( ( localtime( timelocal( 0, 0, 0, 1, 1, $pre_break ) ) )[5] ),
|
|
||||||
+ $pre_break + 100,
|
|
||||||
+ "year $pre_break is treated as next century",
|
|
||||||
+ );
|
|
||||||
+ is(
|
|
||||||
+ ( ( localtime( timelocal( 0, 0, 0, 1, 1, $break ) ) )[5] ),
|
|
||||||
+ $break + 100,
|
|
||||||
+ "year $break is treated as next century",
|
|
||||||
+ );
|
|
||||||
+ is(
|
|
||||||
+ ( ( localtime( timelocal( 0, 0, 0, 1, 1, $post_break ) ) )[5] ),
|
|
||||||
+ $post_break,
|
|
||||||
+ "year $post_break is treated as current century",
|
|
||||||
+ );
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
SKIP:
|
|
||||||
{
|
|
||||||
skip 'These tests only run for the package maintainer.', 8
|
|
||||||
diff --git a/hints/linux.sh b/hints/linux.sh
|
|
||||||
index a985a8e..8cbe7dc 100644
|
|
||||||
--- a/hints/linux.sh
|
|
||||||
+++ b/hints/linux.sh
|
|
||||||
@@ -165,6 +165,9 @@ esac
|
|
||||||
# plibpth to bypass this check.
|
|
||||||
if [ -x /usr/bin/gcc ] ; then
|
|
||||||
gcc=/usr/bin/gcc
|
|
||||||
+# clang also provides -print-search-dirs
|
|
||||||
+elif ${cc:-cc} --version 2>/dev/null | grep -q '^clang ' ; then
|
|
||||||
+ gcc=${cc:-cc}
|
|
||||||
else
|
|
||||||
gcc=gcc
|
|
||||||
fi
|
|
|
@ -1,53 +0,0 @@
|
||||||
FROM debian:stretch-slim
|
|
||||||
LABEL maintainer="Peter Martini <PeterCMartini@GMail.com>, Zak B. Elep <zakame@cpan.org>"
|
|
||||||
|
|
||||||
COPY *.patch /usr/src/perl/
|
|
||||||
WORKDIR /usr/src/perl
|
|
||||||
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get install -y --no-install-recommends \
|
|
||||||
bzip2 \
|
|
||||||
ca-certificates \
|
|
||||||
# cpio \
|
|
||||||
curl \
|
|
||||||
dpkg-dev \
|
|
||||||
# file \
|
|
||||||
gcc \
|
|
||||||
# g++ \
|
|
||||||
# libbz2-dev \
|
|
||||||
# libdb-dev \
|
|
||||||
libc6-dev \
|
|
||||||
# libgdbm-dev \
|
|
||||||
# liblzma-dev \
|
|
||||||
make \
|
|
||||||
netbase \
|
|
||||||
patch \
|
|
||||||
# procps \
|
|
||||||
# zlib1g-dev \
|
|
||||||
xz-utils \
|
|
||||||
&& curl -SL https://www.cpan.org/src/5.0/perl-5.28.2.tar.xz -o perl-5.28.2.tar.xz \
|
|
||||||
&& echo '0b0189bfa4b2da20e899b4bdd746ac402e8f746a58e4fcf5516484157f2aab07 *perl-5.28.2.tar.xz' | sha256sum -c - \
|
|
||||||
&& tar --strip-components=1 -xaf perl-5.28.2.tar.xz -C /usr/src/perl \
|
|
||||||
&& rm perl-5.28.2.tar.xz \
|
|
||||||
&& cat *.patch | patch -p1 \
|
|
||||||
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
|
||||||
&& archBits="$(dpkg-architecture --query DEB_BUILD_ARCH_BITS)" \
|
|
||||||
&& archFlag="$([ "$archBits" = '64' ] && echo '-Duse64bitall' || echo '-Duse64bitint')" \
|
|
||||||
&& ./Configure -Darchname="$gnuArch" "$archFlag" -Duseshrplib -Dvendorprefix=/usr/local -des \
|
|
||||||
&& make -j$(nproc) \
|
|
||||||
&& TEST_JOBS=$(nproc) make test_harness \
|
|
||||||
&& make install \
|
|
||||||
&& cd /usr/src \
|
|
||||||
&& curl -LO https://www.cpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7044.tar.gz \
|
|
||||||
&& echo '9b60767fe40752ef7a9d3f13f19060a63389a5c23acc3e9827e19b75500f81f3 *App-cpanminus-1.7044.tar.gz' | sha256sum -c - \
|
|
||||||
&& tar -xzf App-cpanminus-1.7044.tar.gz && cd App-cpanminus-1.7044 && perl bin/cpanm . && cd /root \
|
|
||||||
&& savedPackages="make netbase" \
|
|
||||||
&& apt-mark auto '.*' > /dev/null \
|
|
||||||
&& apt-mark manual $savedPackages \
|
|
||||||
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
|
||||||
&& rm -fr /var/cache/apt/* /var/lib/apt/lists/* \
|
|
||||||
&& rm -fr ./cpanm /root/.cpanm /usr/src/perl /usr/src/App-cpanminus-1.7044* /tmp/*
|
|
||||||
|
|
||||||
WORKDIR /
|
|
||||||
|
|
||||||
CMD ["perl5.28.2","-de0"]
|
|
|
@ -1,14 +0,0 @@
|
||||||
diff --git a/hints/linux.sh b/hints/linux.sh
|
|
||||||
index a985a8e..8cbe7dc 100644
|
|
||||||
--- a/hints/linux.sh
|
|
||||||
+++ b/hints/linux.sh
|
|
||||||
@@ -165,6 +165,9 @@ esac
|
|
||||||
# plibpth to bypass this check.
|
|
||||||
if [ -x /usr/bin/gcc ] ; then
|
|
||||||
gcc=/usr/bin/gcc
|
|
||||||
+# clang also provides -print-search-dirs
|
|
||||||
+elif ${cc:-cc} --version 2>/dev/null | grep -q '^clang ' ; then
|
|
||||||
+ gcc=${cc:-cc}
|
|
||||||
else
|
|
||||||
gcc=gcc
|
|
||||||
fi
|
|
|
@ -1,29 +0,0 @@
|
||||||
FROM buildpack-deps:buster
|
|
||||||
LABEL maintainer="Peter Martini <PeterCMartini@GMail.com>, Zak B. Elep <zakame@cpan.org>"
|
|
||||||
|
|
||||||
COPY *.patch /usr/src/perl/
|
|
||||||
WORKDIR /usr/src/perl
|
|
||||||
|
|
||||||
RUN true \
|
|
||||||
&& curl -SL https://www.cpan.org/src/5.0/perl-5.30.2.tar.xz -o perl-5.30.2.tar.xz \
|
|
||||||
&& echo 'a1aa88bd6fbbdc2e82938afbb76c408b0ea847317737b712dc196cc7907a5259 *perl-5.30.2.tar.xz' | sha256sum -c - \
|
|
||||||
&& tar --strip-components=1 -xaf perl-5.30.2.tar.xz -C /usr/src/perl \
|
|
||||||
&& rm perl-5.30.2.tar.xz \
|
|
||||||
&& cat *.patch | patch -p1 \
|
|
||||||
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
|
||||||
&& archBits="$(dpkg-architecture --query DEB_BUILD_ARCH_BITS)" \
|
|
||||||
&& archFlag="$([ "$archBits" = '64' ] && echo '-Duse64bitall' || echo '-Duse64bitint')" \
|
|
||||||
&& ./Configure -Darchname="$gnuArch" "$archFlag" -Dusethreads -Duseshrplib -Dvendorprefix=/usr/local -des \
|
|
||||||
&& make -j$(nproc) \
|
|
||||||
&& TEST_JOBS=$(nproc) make test_harness \
|
|
||||||
&& make install \
|
|
||||||
&& cd /usr/src \
|
|
||||||
&& curl -LO https://www.cpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7044.tar.gz \
|
|
||||||
&& echo '9b60767fe40752ef7a9d3f13f19060a63389a5c23acc3e9827e19b75500f81f3 *App-cpanminus-1.7044.tar.gz' | sha256sum -c - \
|
|
||||||
&& tar -xzf App-cpanminus-1.7044.tar.gz && cd App-cpanminus-1.7044 && perl bin/cpanm . && cd /root \
|
|
||||||
&& true \
|
|
||||||
&& rm -fr ./cpanm /root/.cpanm /usr/src/perl /usr/src/App-cpanminus-1.7044* /tmp/*
|
|
||||||
|
|
||||||
WORKDIR /
|
|
||||||
|
|
||||||
CMD ["perl5.30.2","-de0"]
|
|
|
@ -1,14 +0,0 @@
|
||||||
diff --git a/hints/linux.sh b/hints/linux.sh
|
|
||||||
index a985a8e..8cbe7dc 100644
|
|
||||||
--- a/hints/linux.sh
|
|
||||||
+++ b/hints/linux.sh
|
|
||||||
@@ -165,6 +165,9 @@ esac
|
|
||||||
# plibpth to bypass this check.
|
|
||||||
if [ -x /usr/bin/gcc ] ; then
|
|
||||||
gcc=/usr/bin/gcc
|
|
||||||
+# clang also provides -print-search-dirs
|
|
||||||
+elif ${cc:-cc} --version 2>/dev/null | grep -q '^clang ' ; then
|
|
||||||
+ gcc=${cc:-cc}
|
|
||||||
else
|
|
||||||
gcc=gcc
|
|
||||||
fi
|
|
|
@ -1,29 +0,0 @@
|
||||||
FROM buildpack-deps:stretch
|
|
||||||
LABEL maintainer="Peter Martini <PeterCMartini@GMail.com>, Zak B. Elep <zakame@cpan.org>"
|
|
||||||
|
|
||||||
COPY *.patch /usr/src/perl/
|
|
||||||
WORKDIR /usr/src/perl
|
|
||||||
|
|
||||||
RUN true \
|
|
||||||
&& curl -SL https://www.cpan.org/src/5.0/perl-5.30.2.tar.xz -o perl-5.30.2.tar.xz \
|
|
||||||
&& echo 'a1aa88bd6fbbdc2e82938afbb76c408b0ea847317737b712dc196cc7907a5259 *perl-5.30.2.tar.xz' | sha256sum -c - \
|
|
||||||
&& tar --strip-components=1 -xaf perl-5.30.2.tar.xz -C /usr/src/perl \
|
|
||||||
&& rm perl-5.30.2.tar.xz \
|
|
||||||
&& cat *.patch | patch -p1 \
|
|
||||||
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
|
||||||
&& archBits="$(dpkg-architecture --query DEB_BUILD_ARCH_BITS)" \
|
|
||||||
&& archFlag="$([ "$archBits" = '64' ] && echo '-Duse64bitall' || echo '-Duse64bitint')" \
|
|
||||||
&& ./Configure -Darchname="$gnuArch" "$archFlag" -Dusethreads -Duseshrplib -Dvendorprefix=/usr/local -des \
|
|
||||||
&& make -j$(nproc) \
|
|
||||||
&& TEST_JOBS=$(nproc) make test_harness \
|
|
||||||
&& make install \
|
|
||||||
&& cd /usr/src \
|
|
||||||
&& curl -LO https://www.cpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7044.tar.gz \
|
|
||||||
&& echo '9b60767fe40752ef7a9d3f13f19060a63389a5c23acc3e9827e19b75500f81f3 *App-cpanminus-1.7044.tar.gz' | sha256sum -c - \
|
|
||||||
&& tar -xzf App-cpanminus-1.7044.tar.gz && cd App-cpanminus-1.7044 && perl bin/cpanm . && cd /root \
|
|
||||||
&& true \
|
|
||||||
&& rm -fr ./cpanm /root/.cpanm /usr/src/perl /usr/src/App-cpanminus-1.7044* /tmp/*
|
|
||||||
|
|
||||||
WORKDIR /
|
|
||||||
|
|
||||||
CMD ["perl5.30.2","-de0"]
|
|
|
@ -1,14 +0,0 @@
|
||||||
diff --git a/hints/linux.sh b/hints/linux.sh
|
|
||||||
index a985a8e..8cbe7dc 100644
|
|
||||||
--- a/hints/linux.sh
|
|
||||||
+++ b/hints/linux.sh
|
|
||||||
@@ -165,6 +165,9 @@ esac
|
|
||||||
# plibpth to bypass this check.
|
|
||||||
if [ -x /usr/bin/gcc ] ; then
|
|
||||||
gcc=/usr/bin/gcc
|
|
||||||
+# clang also provides -print-search-dirs
|
|
||||||
+elif ${cc:-cc} --version 2>/dev/null | grep -q '^clang ' ; then
|
|
||||||
+ gcc=${cc:-cc}
|
|
||||||
else
|
|
||||||
gcc=gcc
|
|
||||||
fi
|
|
|
@ -1,29 +0,0 @@
|
||||||
FROM buildpack-deps:buster
|
|
||||||
LABEL maintainer="Peter Martini <PeterCMartini@GMail.com>, Zak B. Elep <zakame@cpan.org>"
|
|
||||||
|
|
||||||
COPY *.patch /usr/src/perl/
|
|
||||||
WORKDIR /usr/src/perl
|
|
||||||
|
|
||||||
RUN true \
|
|
||||||
&& curl -SL https://www.cpan.org/src/5.0/perl-5.30.2.tar.xz -o perl-5.30.2.tar.xz \
|
|
||||||
&& echo 'a1aa88bd6fbbdc2e82938afbb76c408b0ea847317737b712dc196cc7907a5259 *perl-5.30.2.tar.xz' | sha256sum -c - \
|
|
||||||
&& tar --strip-components=1 -xaf perl-5.30.2.tar.xz -C /usr/src/perl \
|
|
||||||
&& rm perl-5.30.2.tar.xz \
|
|
||||||
&& cat *.patch | patch -p1 \
|
|
||||||
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
|
||||||
&& archBits="$(dpkg-architecture --query DEB_BUILD_ARCH_BITS)" \
|
|
||||||
&& archFlag="$([ "$archBits" = '64' ] && echo '-Duse64bitall' || echo '-Duse64bitint')" \
|
|
||||||
&& ./Configure -Darchname="$gnuArch" "$archFlag" -Duseshrplib -Dvendorprefix=/usr/local -des \
|
|
||||||
&& make -j$(nproc) \
|
|
||||||
&& TEST_JOBS=$(nproc) make test_harness \
|
|
||||||
&& make install \
|
|
||||||
&& cd /usr/src \
|
|
||||||
&& curl -LO https://www.cpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7044.tar.gz \
|
|
||||||
&& echo '9b60767fe40752ef7a9d3f13f19060a63389a5c23acc3e9827e19b75500f81f3 *App-cpanminus-1.7044.tar.gz' | sha256sum -c - \
|
|
||||||
&& tar -xzf App-cpanminus-1.7044.tar.gz && cd App-cpanminus-1.7044 && perl bin/cpanm . && cd /root \
|
|
||||||
&& true \
|
|
||||||
&& rm -fr ./cpanm /root/.cpanm /usr/src/perl /usr/src/App-cpanminus-1.7044* /tmp/*
|
|
||||||
|
|
||||||
WORKDIR /
|
|
||||||
|
|
||||||
CMD ["perl5.30.2","-de0"]
|
|
|
@ -1,14 +0,0 @@
|
||||||
diff --git a/hints/linux.sh b/hints/linux.sh
|
|
||||||
index a985a8e..8cbe7dc 100644
|
|
||||||
--- a/hints/linux.sh
|
|
||||||
+++ b/hints/linux.sh
|
|
||||||
@@ -165,6 +165,9 @@ esac
|
|
||||||
# plibpth to bypass this check.
|
|
||||||
if [ -x /usr/bin/gcc ] ; then
|
|
||||||
gcc=/usr/bin/gcc
|
|
||||||
+# clang also provides -print-search-dirs
|
|
||||||
+elif ${cc:-cc} --version 2>/dev/null | grep -q '^clang ' ; then
|
|
||||||
+ gcc=${cc:-cc}
|
|
||||||
else
|
|
||||||
gcc=gcc
|
|
||||||
fi
|
|
|
@ -1,29 +0,0 @@
|
||||||
FROM buildpack-deps:stretch
|
|
||||||
LABEL maintainer="Peter Martini <PeterCMartini@GMail.com>, Zak B. Elep <zakame@cpan.org>"
|
|
||||||
|
|
||||||
COPY *.patch /usr/src/perl/
|
|
||||||
WORKDIR /usr/src/perl
|
|
||||||
|
|
||||||
RUN true \
|
|
||||||
&& curl -SL https://www.cpan.org/src/5.0/perl-5.30.2.tar.xz -o perl-5.30.2.tar.xz \
|
|
||||||
&& echo 'a1aa88bd6fbbdc2e82938afbb76c408b0ea847317737b712dc196cc7907a5259 *perl-5.30.2.tar.xz' | sha256sum -c - \
|
|
||||||
&& tar --strip-components=1 -xaf perl-5.30.2.tar.xz -C /usr/src/perl \
|
|
||||||
&& rm perl-5.30.2.tar.xz \
|
|
||||||
&& cat *.patch | patch -p1 \
|
|
||||||
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
|
||||||
&& archBits="$(dpkg-architecture --query DEB_BUILD_ARCH_BITS)" \
|
|
||||||
&& archFlag="$([ "$archBits" = '64' ] && echo '-Duse64bitall' || echo '-Duse64bitint')" \
|
|
||||||
&& ./Configure -Darchname="$gnuArch" "$archFlag" -Duseshrplib -Dvendorprefix=/usr/local -des \
|
|
||||||
&& make -j$(nproc) \
|
|
||||||
&& TEST_JOBS=$(nproc) make test_harness \
|
|
||||||
&& make install \
|
|
||||||
&& cd /usr/src \
|
|
||||||
&& curl -LO https://www.cpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7044.tar.gz \
|
|
||||||
&& echo '9b60767fe40752ef7a9d3f13f19060a63389a5c23acc3e9827e19b75500f81f3 *App-cpanminus-1.7044.tar.gz' | sha256sum -c - \
|
|
||||||
&& tar -xzf App-cpanminus-1.7044.tar.gz && cd App-cpanminus-1.7044 && perl bin/cpanm . && cd /root \
|
|
||||||
&& true \
|
|
||||||
&& rm -fr ./cpanm /root/.cpanm /usr/src/perl /usr/src/App-cpanminus-1.7044* /tmp/*
|
|
||||||
|
|
||||||
WORKDIR /
|
|
||||||
|
|
||||||
CMD ["perl5.30.2","-de0"]
|
|
|
@ -1,14 +0,0 @@
|
||||||
diff --git a/hints/linux.sh b/hints/linux.sh
|
|
||||||
index a985a8e..8cbe7dc 100644
|
|
||||||
--- a/hints/linux.sh
|
|
||||||
+++ b/hints/linux.sh
|
|
||||||
@@ -165,6 +165,9 @@ esac
|
|
||||||
# plibpth to bypass this check.
|
|
||||||
if [ -x /usr/bin/gcc ] ; then
|
|
||||||
gcc=/usr/bin/gcc
|
|
||||||
+# clang also provides -print-search-dirs
|
|
||||||
+elif ${cc:-cc} --version 2>/dev/null | grep -q '^clang ' ; then
|
|
||||||
+ gcc=${cc:-cc}
|
|
||||||
else
|
|
||||||
gcc=gcc
|
|
||||||
fi
|
|
|
@ -1,53 +0,0 @@
|
||||||
FROM debian:buster-slim
|
|
||||||
LABEL maintainer="Peter Martini <PeterCMartini@GMail.com>, Zak B. Elep <zakame@cpan.org>"
|
|
||||||
|
|
||||||
COPY *.patch /usr/src/perl/
|
|
||||||
WORKDIR /usr/src/perl
|
|
||||||
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get install -y --no-install-recommends \
|
|
||||||
bzip2 \
|
|
||||||
ca-certificates \
|
|
||||||
# cpio \
|
|
||||||
curl \
|
|
||||||
dpkg-dev \
|
|
||||||
# file \
|
|
||||||
gcc \
|
|
||||||
# g++ \
|
|
||||||
# libbz2-dev \
|
|
||||||
# libdb-dev \
|
|
||||||
libc6-dev \
|
|
||||||
# libgdbm-dev \
|
|
||||||
# liblzma-dev \
|
|
||||||
make \
|
|
||||||
netbase \
|
|
||||||
patch \
|
|
||||||
# procps \
|
|
||||||
# zlib1g-dev \
|
|
||||||
xz-utils \
|
|
||||||
&& curl -SL https://www.cpan.org/src/5.0/perl-5.30.2.tar.xz -o perl-5.30.2.tar.xz \
|
|
||||||
&& echo 'a1aa88bd6fbbdc2e82938afbb76c408b0ea847317737b712dc196cc7907a5259 *perl-5.30.2.tar.xz' | sha256sum -c - \
|
|
||||||
&& tar --strip-components=1 -xaf perl-5.30.2.tar.xz -C /usr/src/perl \
|
|
||||||
&& rm perl-5.30.2.tar.xz \
|
|
||||||
&& cat *.patch | patch -p1 \
|
|
||||||
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
|
||||||
&& archBits="$(dpkg-architecture --query DEB_BUILD_ARCH_BITS)" \
|
|
||||||
&& archFlag="$([ "$archBits" = '64' ] && echo '-Duse64bitall' || echo '-Duse64bitint')" \
|
|
||||||
&& ./Configure -Darchname="$gnuArch" "$archFlag" -Dusethreads -Duseshrplib -Dvendorprefix=/usr/local -des \
|
|
||||||
&& make -j$(nproc) \
|
|
||||||
&& TEST_JOBS=$(nproc) make test_harness \
|
|
||||||
&& make install \
|
|
||||||
&& cd /usr/src \
|
|
||||||
&& curl -LO https://www.cpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7044.tar.gz \
|
|
||||||
&& echo '9b60767fe40752ef7a9d3f13f19060a63389a5c23acc3e9827e19b75500f81f3 *App-cpanminus-1.7044.tar.gz' | sha256sum -c - \
|
|
||||||
&& tar -xzf App-cpanminus-1.7044.tar.gz && cd App-cpanminus-1.7044 && perl bin/cpanm . && cd /root \
|
|
||||||
&& savedPackages="make netbase" \
|
|
||||||
&& apt-mark auto '.*' > /dev/null \
|
|
||||||
&& apt-mark manual $savedPackages \
|
|
||||||
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
|
||||||
&& rm -fr /var/cache/apt/* /var/lib/apt/lists/* \
|
|
||||||
&& rm -fr ./cpanm /root/.cpanm /usr/src/perl /usr/src/App-cpanminus-1.7044* /tmp/*
|
|
||||||
|
|
||||||
WORKDIR /
|
|
||||||
|
|
||||||
CMD ["perl5.30.2","-de0"]
|
|
|
@ -1,14 +0,0 @@
|
||||||
diff --git a/hints/linux.sh b/hints/linux.sh
|
|
||||||
index a985a8e..8cbe7dc 100644
|
|
||||||
--- a/hints/linux.sh
|
|
||||||
+++ b/hints/linux.sh
|
|
||||||
@@ -165,6 +165,9 @@ esac
|
|
||||||
# plibpth to bypass this check.
|
|
||||||
if [ -x /usr/bin/gcc ] ; then
|
|
||||||
gcc=/usr/bin/gcc
|
|
||||||
+# clang also provides -print-search-dirs
|
|
||||||
+elif ${cc:-cc} --version 2>/dev/null | grep -q '^clang ' ; then
|
|
||||||
+ gcc=${cc:-cc}
|
|
||||||
else
|
|
||||||
gcc=gcc
|
|
||||||
fi
|
|
|
@ -1,53 +0,0 @@
|
||||||
FROM debian:stretch-slim
|
|
||||||
LABEL maintainer="Peter Martini <PeterCMartini@GMail.com>, Zak B. Elep <zakame@cpan.org>"
|
|
||||||
|
|
||||||
COPY *.patch /usr/src/perl/
|
|
||||||
WORKDIR /usr/src/perl
|
|
||||||
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get install -y --no-install-recommends \
|
|
||||||
bzip2 \
|
|
||||||
ca-certificates \
|
|
||||||
# cpio \
|
|
||||||
curl \
|
|
||||||
dpkg-dev \
|
|
||||||
# file \
|
|
||||||
gcc \
|
|
||||||
# g++ \
|
|
||||||
# libbz2-dev \
|
|
||||||
# libdb-dev \
|
|
||||||
libc6-dev \
|
|
||||||
# libgdbm-dev \
|
|
||||||
# liblzma-dev \
|
|
||||||
make \
|
|
||||||
netbase \
|
|
||||||
patch \
|
|
||||||
# procps \
|
|
||||||
# zlib1g-dev \
|
|
||||||
xz-utils \
|
|
||||||
&& curl -SL https://www.cpan.org/src/5.0/perl-5.30.2.tar.xz -o perl-5.30.2.tar.xz \
|
|
||||||
&& echo 'a1aa88bd6fbbdc2e82938afbb76c408b0ea847317737b712dc196cc7907a5259 *perl-5.30.2.tar.xz' | sha256sum -c - \
|
|
||||||
&& tar --strip-components=1 -xaf perl-5.30.2.tar.xz -C /usr/src/perl \
|
|
||||||
&& rm perl-5.30.2.tar.xz \
|
|
||||||
&& cat *.patch | patch -p1 \
|
|
||||||
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
|
||||||
&& archBits="$(dpkg-architecture --query DEB_BUILD_ARCH_BITS)" \
|
|
||||||
&& archFlag="$([ "$archBits" = '64' ] && echo '-Duse64bitall' || echo '-Duse64bitint')" \
|
|
||||||
&& ./Configure -Darchname="$gnuArch" "$archFlag" -Dusethreads -Duseshrplib -Dvendorprefix=/usr/local -des \
|
|
||||||
&& make -j$(nproc) \
|
|
||||||
&& TEST_JOBS=$(nproc) make test_harness \
|
|
||||||
&& make install \
|
|
||||||
&& cd /usr/src \
|
|
||||||
&& curl -LO https://www.cpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7044.tar.gz \
|
|
||||||
&& echo '9b60767fe40752ef7a9d3f13f19060a63389a5c23acc3e9827e19b75500f81f3 *App-cpanminus-1.7044.tar.gz' | sha256sum -c - \
|
|
||||||
&& tar -xzf App-cpanminus-1.7044.tar.gz && cd App-cpanminus-1.7044 && perl bin/cpanm . && cd /root \
|
|
||||||
&& savedPackages="make netbase" \
|
|
||||||
&& apt-mark auto '.*' > /dev/null \
|
|
||||||
&& apt-mark manual $savedPackages \
|
|
||||||
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
|
||||||
&& rm -fr /var/cache/apt/* /var/lib/apt/lists/* \
|
|
||||||
&& rm -fr ./cpanm /root/.cpanm /usr/src/perl /usr/src/App-cpanminus-1.7044* /tmp/*
|
|
||||||
|
|
||||||
WORKDIR /
|
|
||||||
|
|
||||||
CMD ["perl5.30.2","-de0"]
|
|
|
@ -1,14 +0,0 @@
|
||||||
diff --git a/hints/linux.sh b/hints/linux.sh
|
|
||||||
index a985a8e..8cbe7dc 100644
|
|
||||||
--- a/hints/linux.sh
|
|
||||||
+++ b/hints/linux.sh
|
|
||||||
@@ -165,6 +165,9 @@ esac
|
|
||||||
# plibpth to bypass this check.
|
|
||||||
if [ -x /usr/bin/gcc ] ; then
|
|
||||||
gcc=/usr/bin/gcc
|
|
||||||
+# clang also provides -print-search-dirs
|
|
||||||
+elif ${cc:-cc} --version 2>/dev/null | grep -q '^clang ' ; then
|
|
||||||
+ gcc=${cc:-cc}
|
|
||||||
else
|
|
||||||
gcc=gcc
|
|
||||||
fi
|
|
|
@ -1,53 +0,0 @@
|
||||||
FROM debian:buster-slim
|
|
||||||
LABEL maintainer="Peter Martini <PeterCMartini@GMail.com>, Zak B. Elep <zakame@cpan.org>"
|
|
||||||
|
|
||||||
COPY *.patch /usr/src/perl/
|
|
||||||
WORKDIR /usr/src/perl
|
|
||||||
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get install -y --no-install-recommends \
|
|
||||||
bzip2 \
|
|
||||||
ca-certificates \
|
|
||||||
# cpio \
|
|
||||||
curl \
|
|
||||||
dpkg-dev \
|
|
||||||
# file \
|
|
||||||
gcc \
|
|
||||||
# g++ \
|
|
||||||
# libbz2-dev \
|
|
||||||
# libdb-dev \
|
|
||||||
libc6-dev \
|
|
||||||
# libgdbm-dev \
|
|
||||||
# liblzma-dev \
|
|
||||||
make \
|
|
||||||
netbase \
|
|
||||||
patch \
|
|
||||||
# procps \
|
|
||||||
# zlib1g-dev \
|
|
||||||
xz-utils \
|
|
||||||
&& curl -SL https://www.cpan.org/src/5.0/perl-5.30.2.tar.xz -o perl-5.30.2.tar.xz \
|
|
||||||
&& echo 'a1aa88bd6fbbdc2e82938afbb76c408b0ea847317737b712dc196cc7907a5259 *perl-5.30.2.tar.xz' | sha256sum -c - \
|
|
||||||
&& tar --strip-components=1 -xaf perl-5.30.2.tar.xz -C /usr/src/perl \
|
|
||||||
&& rm perl-5.30.2.tar.xz \
|
|
||||||
&& cat *.patch | patch -p1 \
|
|
||||||
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
|
||||||
&& archBits="$(dpkg-architecture --query DEB_BUILD_ARCH_BITS)" \
|
|
||||||
&& archFlag="$([ "$archBits" = '64' ] && echo '-Duse64bitall' || echo '-Duse64bitint')" \
|
|
||||||
&& ./Configure -Darchname="$gnuArch" "$archFlag" -Duseshrplib -Dvendorprefix=/usr/local -des \
|
|
||||||
&& make -j$(nproc) \
|
|
||||||
&& TEST_JOBS=$(nproc) make test_harness \
|
|
||||||
&& make install \
|
|
||||||
&& cd /usr/src \
|
|
||||||
&& curl -LO https://www.cpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7044.tar.gz \
|
|
||||||
&& echo '9b60767fe40752ef7a9d3f13f19060a63389a5c23acc3e9827e19b75500f81f3 *App-cpanminus-1.7044.tar.gz' | sha256sum -c - \
|
|
||||||
&& tar -xzf App-cpanminus-1.7044.tar.gz && cd App-cpanminus-1.7044 && perl bin/cpanm . && cd /root \
|
|
||||||
&& savedPackages="make netbase" \
|
|
||||||
&& apt-mark auto '.*' > /dev/null \
|
|
||||||
&& apt-mark manual $savedPackages \
|
|
||||||
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
|
||||||
&& rm -fr /var/cache/apt/* /var/lib/apt/lists/* \
|
|
||||||
&& rm -fr ./cpanm /root/.cpanm /usr/src/perl /usr/src/App-cpanminus-1.7044* /tmp/*
|
|
||||||
|
|
||||||
WORKDIR /
|
|
||||||
|
|
||||||
CMD ["perl5.30.2","-de0"]
|
|
|
@ -1,14 +0,0 @@
|
||||||
diff --git a/hints/linux.sh b/hints/linux.sh
|
|
||||||
index a985a8e..8cbe7dc 100644
|
|
||||||
--- a/hints/linux.sh
|
|
||||||
+++ b/hints/linux.sh
|
|
||||||
@@ -165,6 +165,9 @@ esac
|
|
||||||
# plibpth to bypass this check.
|
|
||||||
if [ -x /usr/bin/gcc ] ; then
|
|
||||||
gcc=/usr/bin/gcc
|
|
||||||
+# clang also provides -print-search-dirs
|
|
||||||
+elif ${cc:-cc} --version 2>/dev/null | grep -q '^clang ' ; then
|
|
||||||
+ gcc=${cc:-cc}
|
|
||||||
else
|
|
||||||
gcc=gcc
|
|
||||||
fi
|
|
|
@ -1,53 +0,0 @@
|
||||||
FROM debian:stretch-slim
|
|
||||||
LABEL maintainer="Peter Martini <PeterCMartini@GMail.com>, Zak B. Elep <zakame@cpan.org>"
|
|
||||||
|
|
||||||
COPY *.patch /usr/src/perl/
|
|
||||||
WORKDIR /usr/src/perl
|
|
||||||
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get install -y --no-install-recommends \
|
|
||||||
bzip2 \
|
|
||||||
ca-certificates \
|
|
||||||
# cpio \
|
|
||||||
curl \
|
|
||||||
dpkg-dev \
|
|
||||||
# file \
|
|
||||||
gcc \
|
|
||||||
# g++ \
|
|
||||||
# libbz2-dev \
|
|
||||||
# libdb-dev \
|
|
||||||
libc6-dev \
|
|
||||||
# libgdbm-dev \
|
|
||||||
# liblzma-dev \
|
|
||||||
make \
|
|
||||||
netbase \
|
|
||||||
patch \
|
|
||||||
# procps \
|
|
||||||
# zlib1g-dev \
|
|
||||||
xz-utils \
|
|
||||||
&& curl -SL https://www.cpan.org/src/5.0/perl-5.30.2.tar.xz -o perl-5.30.2.tar.xz \
|
|
||||||
&& echo 'a1aa88bd6fbbdc2e82938afbb76c408b0ea847317737b712dc196cc7907a5259 *perl-5.30.2.tar.xz' | sha256sum -c - \
|
|
||||||
&& tar --strip-components=1 -xaf perl-5.30.2.tar.xz -C /usr/src/perl \
|
|
||||||
&& rm perl-5.30.2.tar.xz \
|
|
||||||
&& cat *.patch | patch -p1 \
|
|
||||||
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
|
||||||
&& archBits="$(dpkg-architecture --query DEB_BUILD_ARCH_BITS)" \
|
|
||||||
&& archFlag="$([ "$archBits" = '64' ] && echo '-Duse64bitall' || echo '-Duse64bitint')" \
|
|
||||||
&& ./Configure -Darchname="$gnuArch" "$archFlag" -Duseshrplib -Dvendorprefix=/usr/local -des \
|
|
||||||
&& make -j$(nproc) \
|
|
||||||
&& TEST_JOBS=$(nproc) make test_harness \
|
|
||||||
&& make install \
|
|
||||||
&& cd /usr/src \
|
|
||||||
&& curl -LO https://www.cpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7044.tar.gz \
|
|
||||||
&& echo '9b60767fe40752ef7a9d3f13f19060a63389a5c23acc3e9827e19b75500f81f3 *App-cpanminus-1.7044.tar.gz' | sha256sum -c - \
|
|
||||||
&& tar -xzf App-cpanminus-1.7044.tar.gz && cd App-cpanminus-1.7044 && perl bin/cpanm . && cd /root \
|
|
||||||
&& savedPackages="make netbase" \
|
|
||||||
&& apt-mark auto '.*' > /dev/null \
|
|
||||||
&& apt-mark manual $savedPackages \
|
|
||||||
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
|
||||||
&& rm -fr /var/cache/apt/* /var/lib/apt/lists/* \
|
|
||||||
&& rm -fr ./cpanm /root/.cpanm /usr/src/perl /usr/src/App-cpanminus-1.7044* /tmp/*
|
|
||||||
|
|
||||||
WORKDIR /
|
|
||||||
|
|
||||||
CMD ["perl5.30.2","-de0"]
|
|
Loading…
Add table
Reference in a new issue