From 1204b69602fafea038571937077de30c782b3482 Mon Sep 17 00:00:00 2001 From: "Zak B. Elep" Date: Thu, 4 Jun 2020 13:15:46 +0800 Subject: [PATCH 1/5] config.yml: Update for 5.28.3/5.30.3 --- config.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config.yml b/config.yml index 0bb09ffa..c458395c 100644 --- a/config.yml +++ b/config.yml @@ -62,15 +62,15 @@ releases: - stretch - buster - - version: 5.28.2 - sha256: 0b0189bfa4b2da20e899b4bdd746ac402e8f746a58e4fcf5516484157f2aab07 + - version: 5.28.3 + sha256: 77dc1ddf541643af14d585867d3d0741cce45d0dbe8f1467024e63165d9e2fc5 type: xz debian_release: - stretch - buster - - version: 5.30.2 - sha256: a1aa88bd6fbbdc2e82938afbb76c408b0ea847317737b712dc196cc7907a5259 + - version: 5.30.3 + sha256: 6967595f2e3f3a94544c35152f9a25e0cb8ea24ae45f4bf1882f2e33f4a400f4 type: xz debian_release: - stretch From 0680717c7a5119bb7a92542caba40abff049fa99 Mon Sep 17 00:00:00 2001 From: "Zak B. Elep" Date: Thu, 4 Jun 2020 14:52:06 +0800 Subject: [PATCH 2/5] :gear: Generate Dockerfiles and patches for 5.28.3/5.30.3 Skipping previous version for now due to https://github.com/bingos/devel-patchperl/issues/44 --- .../DevelPatchPerl.patch | 169 ++++++++++++++++++ 5.028.003-main,threaded-buster/Dockerfile | 29 +++ .../DevelPatchPerl.patch | 169 ++++++++++++++++++ 5.028.003-main,threaded-stretch/Dockerfile | 29 +++ 5.028.003-main-buster/DevelPatchPerl.patch | 169 ++++++++++++++++++ 5.028.003-main-buster/Dockerfile | 29 +++ 5.028.003-main-stretch/DevelPatchPerl.patch | 169 ++++++++++++++++++ 5.028.003-main-stretch/Dockerfile | 29 +++ .../DevelPatchPerl.patch | 169 ++++++++++++++++++ 5.028.003-slim,threaded-buster/Dockerfile | 53 ++++++ .../DevelPatchPerl.patch | 169 ++++++++++++++++++ 5.028.003-slim,threaded-stretch/Dockerfile | 53 ++++++ 5.028.003-slim-buster/DevelPatchPerl.patch | 169 ++++++++++++++++++ 5.028.003-slim-buster/Dockerfile | 53 ++++++ 5.028.003-slim-stretch/DevelPatchPerl.patch | 169 ++++++++++++++++++ 5.028.003-slim-stretch/Dockerfile | 53 ++++++ .../DevelPatchPerl.patch | 14 ++ 5.030.003-main,threaded-buster/Dockerfile | 29 +++ .../DevelPatchPerl.patch | 14 ++ 5.030.003-main,threaded-stretch/Dockerfile | 29 +++ 5.030.003-main-buster/DevelPatchPerl.patch | 14 ++ 5.030.003-main-buster/Dockerfile | 29 +++ 5.030.003-main-stretch/DevelPatchPerl.patch | 14 ++ 5.030.003-main-stretch/Dockerfile | 29 +++ .../DevelPatchPerl.patch | 14 ++ 5.030.003-slim,threaded-buster/Dockerfile | 53 ++++++ .../DevelPatchPerl.patch | 14 ++ 5.030.003-slim,threaded-stretch/Dockerfile | 53 ++++++ 5.030.003-slim-buster/DevelPatchPerl.patch | 14 ++ 5.030.003-slim-buster/Dockerfile | 53 ++++++ 5.030.003-slim-stretch/DevelPatchPerl.patch | 14 ++ 5.030.003-slim-stretch/Dockerfile | 53 ++++++ 32 files changed, 2120 insertions(+) create mode 100644 5.028.003-main,threaded-buster/DevelPatchPerl.patch create mode 100644 5.028.003-main,threaded-buster/Dockerfile create mode 100644 5.028.003-main,threaded-stretch/DevelPatchPerl.patch create mode 100644 5.028.003-main,threaded-stretch/Dockerfile create mode 100644 5.028.003-main-buster/DevelPatchPerl.patch create mode 100644 5.028.003-main-buster/Dockerfile create mode 100644 5.028.003-main-stretch/DevelPatchPerl.patch create mode 100644 5.028.003-main-stretch/Dockerfile create mode 100644 5.028.003-slim,threaded-buster/DevelPatchPerl.patch create mode 100644 5.028.003-slim,threaded-buster/Dockerfile create mode 100644 5.028.003-slim,threaded-stretch/DevelPatchPerl.patch create mode 100644 5.028.003-slim,threaded-stretch/Dockerfile create mode 100644 5.028.003-slim-buster/DevelPatchPerl.patch create mode 100644 5.028.003-slim-buster/Dockerfile create mode 100644 5.028.003-slim-stretch/DevelPatchPerl.patch create mode 100644 5.028.003-slim-stretch/Dockerfile create mode 100644 5.030.003-main,threaded-buster/DevelPatchPerl.patch create mode 100644 5.030.003-main,threaded-buster/Dockerfile create mode 100644 5.030.003-main,threaded-stretch/DevelPatchPerl.patch create mode 100644 5.030.003-main,threaded-stretch/Dockerfile create mode 100644 5.030.003-main-buster/DevelPatchPerl.patch create mode 100644 5.030.003-main-buster/Dockerfile create mode 100644 5.030.003-main-stretch/DevelPatchPerl.patch create mode 100644 5.030.003-main-stretch/Dockerfile create mode 100644 5.030.003-slim,threaded-buster/DevelPatchPerl.patch create mode 100644 5.030.003-slim,threaded-buster/Dockerfile create mode 100644 5.030.003-slim,threaded-stretch/DevelPatchPerl.patch create mode 100644 5.030.003-slim,threaded-stretch/Dockerfile create mode 100644 5.030.003-slim-buster/DevelPatchPerl.patch create mode 100644 5.030.003-slim-buster/Dockerfile create mode 100644 5.030.003-slim-stretch/DevelPatchPerl.patch create mode 100644 5.030.003-slim-stretch/Dockerfile diff --git a/5.028.003-main,threaded-buster/DevelPatchPerl.patch b/5.028.003-main,threaded-buster/DevelPatchPerl.patch new file mode 100644 index 00000000..504674af --- /dev/null +++ b/5.028.003-main,threaded-buster/DevelPatchPerl.patch @@ -0,0 +1,169 @@ +diff --git a/Configure b/Configure +index f99377e..e020242 100755 +--- a/Configure ++++ b/Configure +@@ -4689,7 +4689,7 @@ else + fi + $rm -f try try.* + case "$gccversion" in +-1*) cpp=`./loc gcc-cpp $cpp $pth` ;; ++1.*) cpp=`./loc gcc-cpp $cpp $pth` ;; + esac + case "$gccversion" in + '') gccosandvers='' ;; +@@ -4729,7 +4729,7 @@ esac + # gcc 3.* complain about adding -Idirectories that they already know about, + # so we will take those off from locincpth. + case "$gccversion" in +-3*) ++3.*) + echo "main(){}">try.c + for incdir in $locincpth; do + warn=`$cc $ccflags -I$incdir -c try.c 2>&1 | \ +@@ -5455,13 +5455,13 @@ fi + case "$hint" in + default|recommended) + case "$gccversion" in +- 1*) dflt="$dflt -fpcc-struct-return" ;; ++ 1.*) dflt="$dflt -fpcc-struct-return" ;; + esac + case "$optimize:$DEBUGGING" in + *-g*:old) dflt="$dflt -DDEBUGGING";; + esac + case "$gccversion" in +- 2*) if $test -d /etc/conf/kconfig.d && ++ 2.*) if $test -d /etc/conf/kconfig.d && + $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1 + then + # Interactive Systems (ISC) POSIX mode. +@@ -5470,7 +5470,7 @@ default|recommended) + ;; + esac + case "$gccversion" in +- 1*) ;; ++ 1.*) ;; + 2.[0-8]*) ;; + ?*) set strict-aliasing -fno-strict-aliasing + eval $checkccflag +@@ -5588,7 +5588,7 @@ case "$cppflags" in + ;; + esac + case "$gccversion" in +-1*) cppflags="$cppflags -D__GNUC__" ++1.*) cppflags="$cppflags -D__GNUC__" + esac + case "$mips_type" in + '');; +@@ -23026,7 +23026,7 @@ fi + + : add -D_FORTIFY_SOURCE if feasible and not already there + case "$gccversion" in +-[4567].*) case "$optimize$ccflags" in ++[456789].*|[1-9][0-9]*) case "$optimize$ccflags" in + *-O*) case "$ccflags$cppsymbols" in + *_FORTIFY_SOURCE=*) # Don't add it again. + echo "You seem to have -D_FORTIFY_SOURCE already, not adding it." >&4 +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 diff --git a/5.028.003-main,threaded-buster/Dockerfile b/5.028.003-main,threaded-buster/Dockerfile new file mode 100644 index 00000000..72157777 --- /dev/null +++ b/5.028.003-main,threaded-buster/Dockerfile @@ -0,0 +1,29 @@ +FROM buildpack-deps:buster +LABEL maintainer="Peter Martini , Zak B. Elep " + +COPY *.patch /usr/src/perl/ +WORKDIR /usr/src/perl + +RUN true \ + && curl -SL https://www.cpan.org/src/5.0/perl-5.28.3.tar.xz -o perl-5.28.3.tar.xz \ + && echo '77dc1ddf541643af14d585867d3d0741cce45d0dbe8f1467024e63165d9e2fc5 *perl-5.28.3.tar.xz' | sha256sum -c - \ + && tar --strip-components=1 -xaf perl-5.28.3.tar.xz -C /usr/src/perl \ + && rm perl-5.28.3.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.3","-de0"] diff --git a/5.028.003-main,threaded-stretch/DevelPatchPerl.patch b/5.028.003-main,threaded-stretch/DevelPatchPerl.patch new file mode 100644 index 00000000..504674af --- /dev/null +++ b/5.028.003-main,threaded-stretch/DevelPatchPerl.patch @@ -0,0 +1,169 @@ +diff --git a/Configure b/Configure +index f99377e..e020242 100755 +--- a/Configure ++++ b/Configure +@@ -4689,7 +4689,7 @@ else + fi + $rm -f try try.* + case "$gccversion" in +-1*) cpp=`./loc gcc-cpp $cpp $pth` ;; ++1.*) cpp=`./loc gcc-cpp $cpp $pth` ;; + esac + case "$gccversion" in + '') gccosandvers='' ;; +@@ -4729,7 +4729,7 @@ esac + # gcc 3.* complain about adding -Idirectories that they already know about, + # so we will take those off from locincpth. + case "$gccversion" in +-3*) ++3.*) + echo "main(){}">try.c + for incdir in $locincpth; do + warn=`$cc $ccflags -I$incdir -c try.c 2>&1 | \ +@@ -5455,13 +5455,13 @@ fi + case "$hint" in + default|recommended) + case "$gccversion" in +- 1*) dflt="$dflt -fpcc-struct-return" ;; ++ 1.*) dflt="$dflt -fpcc-struct-return" ;; + esac + case "$optimize:$DEBUGGING" in + *-g*:old) dflt="$dflt -DDEBUGGING";; + esac + case "$gccversion" in +- 2*) if $test -d /etc/conf/kconfig.d && ++ 2.*) if $test -d /etc/conf/kconfig.d && + $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1 + then + # Interactive Systems (ISC) POSIX mode. +@@ -5470,7 +5470,7 @@ default|recommended) + ;; + esac + case "$gccversion" in +- 1*) ;; ++ 1.*) ;; + 2.[0-8]*) ;; + ?*) set strict-aliasing -fno-strict-aliasing + eval $checkccflag +@@ -5588,7 +5588,7 @@ case "$cppflags" in + ;; + esac + case "$gccversion" in +-1*) cppflags="$cppflags -D__GNUC__" ++1.*) cppflags="$cppflags -D__GNUC__" + esac + case "$mips_type" in + '');; +@@ -23026,7 +23026,7 @@ fi + + : add -D_FORTIFY_SOURCE if feasible and not already there + case "$gccversion" in +-[4567].*) case "$optimize$ccflags" in ++[456789].*|[1-9][0-9]*) case "$optimize$ccflags" in + *-O*) case "$ccflags$cppsymbols" in + *_FORTIFY_SOURCE=*) # Don't add it again. + echo "You seem to have -D_FORTIFY_SOURCE already, not adding it." >&4 +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 diff --git a/5.028.003-main,threaded-stretch/Dockerfile b/5.028.003-main,threaded-stretch/Dockerfile new file mode 100644 index 00000000..fd60ed71 --- /dev/null +++ b/5.028.003-main,threaded-stretch/Dockerfile @@ -0,0 +1,29 @@ +FROM buildpack-deps:stretch +LABEL maintainer="Peter Martini , Zak B. Elep " + +COPY *.patch /usr/src/perl/ +WORKDIR /usr/src/perl + +RUN true \ + && curl -SL https://www.cpan.org/src/5.0/perl-5.28.3.tar.xz -o perl-5.28.3.tar.xz \ + && echo '77dc1ddf541643af14d585867d3d0741cce45d0dbe8f1467024e63165d9e2fc5 *perl-5.28.3.tar.xz' | sha256sum -c - \ + && tar --strip-components=1 -xaf perl-5.28.3.tar.xz -C /usr/src/perl \ + && rm perl-5.28.3.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.3","-de0"] diff --git a/5.028.003-main-buster/DevelPatchPerl.patch b/5.028.003-main-buster/DevelPatchPerl.patch new file mode 100644 index 00000000..504674af --- /dev/null +++ b/5.028.003-main-buster/DevelPatchPerl.patch @@ -0,0 +1,169 @@ +diff --git a/Configure b/Configure +index f99377e..e020242 100755 +--- a/Configure ++++ b/Configure +@@ -4689,7 +4689,7 @@ else + fi + $rm -f try try.* + case "$gccversion" in +-1*) cpp=`./loc gcc-cpp $cpp $pth` ;; ++1.*) cpp=`./loc gcc-cpp $cpp $pth` ;; + esac + case "$gccversion" in + '') gccosandvers='' ;; +@@ -4729,7 +4729,7 @@ esac + # gcc 3.* complain about adding -Idirectories that they already know about, + # so we will take those off from locincpth. + case "$gccversion" in +-3*) ++3.*) + echo "main(){}">try.c + for incdir in $locincpth; do + warn=`$cc $ccflags -I$incdir -c try.c 2>&1 | \ +@@ -5455,13 +5455,13 @@ fi + case "$hint" in + default|recommended) + case "$gccversion" in +- 1*) dflt="$dflt -fpcc-struct-return" ;; ++ 1.*) dflt="$dflt -fpcc-struct-return" ;; + esac + case "$optimize:$DEBUGGING" in + *-g*:old) dflt="$dflt -DDEBUGGING";; + esac + case "$gccversion" in +- 2*) if $test -d /etc/conf/kconfig.d && ++ 2.*) if $test -d /etc/conf/kconfig.d && + $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1 + then + # Interactive Systems (ISC) POSIX mode. +@@ -5470,7 +5470,7 @@ default|recommended) + ;; + esac + case "$gccversion" in +- 1*) ;; ++ 1.*) ;; + 2.[0-8]*) ;; + ?*) set strict-aliasing -fno-strict-aliasing + eval $checkccflag +@@ -5588,7 +5588,7 @@ case "$cppflags" in + ;; + esac + case "$gccversion" in +-1*) cppflags="$cppflags -D__GNUC__" ++1.*) cppflags="$cppflags -D__GNUC__" + esac + case "$mips_type" in + '');; +@@ -23026,7 +23026,7 @@ fi + + : add -D_FORTIFY_SOURCE if feasible and not already there + case "$gccversion" in +-[4567].*) case "$optimize$ccflags" in ++[456789].*|[1-9][0-9]*) case "$optimize$ccflags" in + *-O*) case "$ccflags$cppsymbols" in + *_FORTIFY_SOURCE=*) # Don't add it again. + echo "You seem to have -D_FORTIFY_SOURCE already, not adding it." >&4 +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 diff --git a/5.028.003-main-buster/Dockerfile b/5.028.003-main-buster/Dockerfile new file mode 100644 index 00000000..adc9149a --- /dev/null +++ b/5.028.003-main-buster/Dockerfile @@ -0,0 +1,29 @@ +FROM buildpack-deps:buster +LABEL maintainer="Peter Martini , Zak B. Elep " + +COPY *.patch /usr/src/perl/ +WORKDIR /usr/src/perl + +RUN true \ + && curl -SL https://www.cpan.org/src/5.0/perl-5.28.3.tar.xz -o perl-5.28.3.tar.xz \ + && echo '77dc1ddf541643af14d585867d3d0741cce45d0dbe8f1467024e63165d9e2fc5 *perl-5.28.3.tar.xz' | sha256sum -c - \ + && tar --strip-components=1 -xaf perl-5.28.3.tar.xz -C /usr/src/perl \ + && rm perl-5.28.3.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.3","-de0"] diff --git a/5.028.003-main-stretch/DevelPatchPerl.patch b/5.028.003-main-stretch/DevelPatchPerl.patch new file mode 100644 index 00000000..504674af --- /dev/null +++ b/5.028.003-main-stretch/DevelPatchPerl.patch @@ -0,0 +1,169 @@ +diff --git a/Configure b/Configure +index f99377e..e020242 100755 +--- a/Configure ++++ b/Configure +@@ -4689,7 +4689,7 @@ else + fi + $rm -f try try.* + case "$gccversion" in +-1*) cpp=`./loc gcc-cpp $cpp $pth` ;; ++1.*) cpp=`./loc gcc-cpp $cpp $pth` ;; + esac + case "$gccversion" in + '') gccosandvers='' ;; +@@ -4729,7 +4729,7 @@ esac + # gcc 3.* complain about adding -Idirectories that they already know about, + # so we will take those off from locincpth. + case "$gccversion" in +-3*) ++3.*) + echo "main(){}">try.c + for incdir in $locincpth; do + warn=`$cc $ccflags -I$incdir -c try.c 2>&1 | \ +@@ -5455,13 +5455,13 @@ fi + case "$hint" in + default|recommended) + case "$gccversion" in +- 1*) dflt="$dflt -fpcc-struct-return" ;; ++ 1.*) dflt="$dflt -fpcc-struct-return" ;; + esac + case "$optimize:$DEBUGGING" in + *-g*:old) dflt="$dflt -DDEBUGGING";; + esac + case "$gccversion" in +- 2*) if $test -d /etc/conf/kconfig.d && ++ 2.*) if $test -d /etc/conf/kconfig.d && + $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1 + then + # Interactive Systems (ISC) POSIX mode. +@@ -5470,7 +5470,7 @@ default|recommended) + ;; + esac + case "$gccversion" in +- 1*) ;; ++ 1.*) ;; + 2.[0-8]*) ;; + ?*) set strict-aliasing -fno-strict-aliasing + eval $checkccflag +@@ -5588,7 +5588,7 @@ case "$cppflags" in + ;; + esac + case "$gccversion" in +-1*) cppflags="$cppflags -D__GNUC__" ++1.*) cppflags="$cppflags -D__GNUC__" + esac + case "$mips_type" in + '');; +@@ -23026,7 +23026,7 @@ fi + + : add -D_FORTIFY_SOURCE if feasible and not already there + case "$gccversion" in +-[4567].*) case "$optimize$ccflags" in ++[456789].*|[1-9][0-9]*) case "$optimize$ccflags" in + *-O*) case "$ccflags$cppsymbols" in + *_FORTIFY_SOURCE=*) # Don't add it again. + echo "You seem to have -D_FORTIFY_SOURCE already, not adding it." >&4 +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 diff --git a/5.028.003-main-stretch/Dockerfile b/5.028.003-main-stretch/Dockerfile new file mode 100644 index 00000000..7685eb94 --- /dev/null +++ b/5.028.003-main-stretch/Dockerfile @@ -0,0 +1,29 @@ +FROM buildpack-deps:stretch +LABEL maintainer="Peter Martini , Zak B. Elep " + +COPY *.patch /usr/src/perl/ +WORKDIR /usr/src/perl + +RUN true \ + && curl -SL https://www.cpan.org/src/5.0/perl-5.28.3.tar.xz -o perl-5.28.3.tar.xz \ + && echo '77dc1ddf541643af14d585867d3d0741cce45d0dbe8f1467024e63165d9e2fc5 *perl-5.28.3.tar.xz' | sha256sum -c - \ + && tar --strip-components=1 -xaf perl-5.28.3.tar.xz -C /usr/src/perl \ + && rm perl-5.28.3.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.3","-de0"] diff --git a/5.028.003-slim,threaded-buster/DevelPatchPerl.patch b/5.028.003-slim,threaded-buster/DevelPatchPerl.patch new file mode 100644 index 00000000..504674af --- /dev/null +++ b/5.028.003-slim,threaded-buster/DevelPatchPerl.patch @@ -0,0 +1,169 @@ +diff --git a/Configure b/Configure +index f99377e..e020242 100755 +--- a/Configure ++++ b/Configure +@@ -4689,7 +4689,7 @@ else + fi + $rm -f try try.* + case "$gccversion" in +-1*) cpp=`./loc gcc-cpp $cpp $pth` ;; ++1.*) cpp=`./loc gcc-cpp $cpp $pth` ;; + esac + case "$gccversion" in + '') gccosandvers='' ;; +@@ -4729,7 +4729,7 @@ esac + # gcc 3.* complain about adding -Idirectories that they already know about, + # so we will take those off from locincpth. + case "$gccversion" in +-3*) ++3.*) + echo "main(){}">try.c + for incdir in $locincpth; do + warn=`$cc $ccflags -I$incdir -c try.c 2>&1 | \ +@@ -5455,13 +5455,13 @@ fi + case "$hint" in + default|recommended) + case "$gccversion" in +- 1*) dflt="$dflt -fpcc-struct-return" ;; ++ 1.*) dflt="$dflt -fpcc-struct-return" ;; + esac + case "$optimize:$DEBUGGING" in + *-g*:old) dflt="$dflt -DDEBUGGING";; + esac + case "$gccversion" in +- 2*) if $test -d /etc/conf/kconfig.d && ++ 2.*) if $test -d /etc/conf/kconfig.d && + $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1 + then + # Interactive Systems (ISC) POSIX mode. +@@ -5470,7 +5470,7 @@ default|recommended) + ;; + esac + case "$gccversion" in +- 1*) ;; ++ 1.*) ;; + 2.[0-8]*) ;; + ?*) set strict-aliasing -fno-strict-aliasing + eval $checkccflag +@@ -5588,7 +5588,7 @@ case "$cppflags" in + ;; + esac + case "$gccversion" in +-1*) cppflags="$cppflags -D__GNUC__" ++1.*) cppflags="$cppflags -D__GNUC__" + esac + case "$mips_type" in + '');; +@@ -23026,7 +23026,7 @@ fi + + : add -D_FORTIFY_SOURCE if feasible and not already there + case "$gccversion" in +-[4567].*) case "$optimize$ccflags" in ++[456789].*|[1-9][0-9]*) case "$optimize$ccflags" in + *-O*) case "$ccflags$cppsymbols" in + *_FORTIFY_SOURCE=*) # Don't add it again. + echo "You seem to have -D_FORTIFY_SOURCE already, not adding it." >&4 +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 diff --git a/5.028.003-slim,threaded-buster/Dockerfile b/5.028.003-slim,threaded-buster/Dockerfile new file mode 100644 index 00000000..d1b92764 --- /dev/null +++ b/5.028.003-slim,threaded-buster/Dockerfile @@ -0,0 +1,53 @@ +FROM debian:buster-slim +LABEL maintainer="Peter Martini , Zak B. Elep " + +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.3.tar.xz -o perl-5.28.3.tar.xz \ + && echo '77dc1ddf541643af14d585867d3d0741cce45d0dbe8f1467024e63165d9e2fc5 *perl-5.28.3.tar.xz' | sha256sum -c - \ + && tar --strip-components=1 -xaf perl-5.28.3.tar.xz -C /usr/src/perl \ + && rm perl-5.28.3.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.3","-de0"] diff --git a/5.028.003-slim,threaded-stretch/DevelPatchPerl.patch b/5.028.003-slim,threaded-stretch/DevelPatchPerl.patch new file mode 100644 index 00000000..504674af --- /dev/null +++ b/5.028.003-slim,threaded-stretch/DevelPatchPerl.patch @@ -0,0 +1,169 @@ +diff --git a/Configure b/Configure +index f99377e..e020242 100755 +--- a/Configure ++++ b/Configure +@@ -4689,7 +4689,7 @@ else + fi + $rm -f try try.* + case "$gccversion" in +-1*) cpp=`./loc gcc-cpp $cpp $pth` ;; ++1.*) cpp=`./loc gcc-cpp $cpp $pth` ;; + esac + case "$gccversion" in + '') gccosandvers='' ;; +@@ -4729,7 +4729,7 @@ esac + # gcc 3.* complain about adding -Idirectories that they already know about, + # so we will take those off from locincpth. + case "$gccversion" in +-3*) ++3.*) + echo "main(){}">try.c + for incdir in $locincpth; do + warn=`$cc $ccflags -I$incdir -c try.c 2>&1 | \ +@@ -5455,13 +5455,13 @@ fi + case "$hint" in + default|recommended) + case "$gccversion" in +- 1*) dflt="$dflt -fpcc-struct-return" ;; ++ 1.*) dflt="$dflt -fpcc-struct-return" ;; + esac + case "$optimize:$DEBUGGING" in + *-g*:old) dflt="$dflt -DDEBUGGING";; + esac + case "$gccversion" in +- 2*) if $test -d /etc/conf/kconfig.d && ++ 2.*) if $test -d /etc/conf/kconfig.d && + $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1 + then + # Interactive Systems (ISC) POSIX mode. +@@ -5470,7 +5470,7 @@ default|recommended) + ;; + esac + case "$gccversion" in +- 1*) ;; ++ 1.*) ;; + 2.[0-8]*) ;; + ?*) set strict-aliasing -fno-strict-aliasing + eval $checkccflag +@@ -5588,7 +5588,7 @@ case "$cppflags" in + ;; + esac + case "$gccversion" in +-1*) cppflags="$cppflags -D__GNUC__" ++1.*) cppflags="$cppflags -D__GNUC__" + esac + case "$mips_type" in + '');; +@@ -23026,7 +23026,7 @@ fi + + : add -D_FORTIFY_SOURCE if feasible and not already there + case "$gccversion" in +-[4567].*) case "$optimize$ccflags" in ++[456789].*|[1-9][0-9]*) case "$optimize$ccflags" in + *-O*) case "$ccflags$cppsymbols" in + *_FORTIFY_SOURCE=*) # Don't add it again. + echo "You seem to have -D_FORTIFY_SOURCE already, not adding it." >&4 +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 diff --git a/5.028.003-slim,threaded-stretch/Dockerfile b/5.028.003-slim,threaded-stretch/Dockerfile new file mode 100644 index 00000000..dc295220 --- /dev/null +++ b/5.028.003-slim,threaded-stretch/Dockerfile @@ -0,0 +1,53 @@ +FROM debian:stretch-slim +LABEL maintainer="Peter Martini , Zak B. Elep " + +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.3.tar.xz -o perl-5.28.3.tar.xz \ + && echo '77dc1ddf541643af14d585867d3d0741cce45d0dbe8f1467024e63165d9e2fc5 *perl-5.28.3.tar.xz' | sha256sum -c - \ + && tar --strip-components=1 -xaf perl-5.28.3.tar.xz -C /usr/src/perl \ + && rm perl-5.28.3.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.3","-de0"] diff --git a/5.028.003-slim-buster/DevelPatchPerl.patch b/5.028.003-slim-buster/DevelPatchPerl.patch new file mode 100644 index 00000000..504674af --- /dev/null +++ b/5.028.003-slim-buster/DevelPatchPerl.patch @@ -0,0 +1,169 @@ +diff --git a/Configure b/Configure +index f99377e..e020242 100755 +--- a/Configure ++++ b/Configure +@@ -4689,7 +4689,7 @@ else + fi + $rm -f try try.* + case "$gccversion" in +-1*) cpp=`./loc gcc-cpp $cpp $pth` ;; ++1.*) cpp=`./loc gcc-cpp $cpp $pth` ;; + esac + case "$gccversion" in + '') gccosandvers='' ;; +@@ -4729,7 +4729,7 @@ esac + # gcc 3.* complain about adding -Idirectories that they already know about, + # so we will take those off from locincpth. + case "$gccversion" in +-3*) ++3.*) + echo "main(){}">try.c + for incdir in $locincpth; do + warn=`$cc $ccflags -I$incdir -c try.c 2>&1 | \ +@@ -5455,13 +5455,13 @@ fi + case "$hint" in + default|recommended) + case "$gccversion" in +- 1*) dflt="$dflt -fpcc-struct-return" ;; ++ 1.*) dflt="$dflt -fpcc-struct-return" ;; + esac + case "$optimize:$DEBUGGING" in + *-g*:old) dflt="$dflt -DDEBUGGING";; + esac + case "$gccversion" in +- 2*) if $test -d /etc/conf/kconfig.d && ++ 2.*) if $test -d /etc/conf/kconfig.d && + $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1 + then + # Interactive Systems (ISC) POSIX mode. +@@ -5470,7 +5470,7 @@ default|recommended) + ;; + esac + case "$gccversion" in +- 1*) ;; ++ 1.*) ;; + 2.[0-8]*) ;; + ?*) set strict-aliasing -fno-strict-aliasing + eval $checkccflag +@@ -5588,7 +5588,7 @@ case "$cppflags" in + ;; + esac + case "$gccversion" in +-1*) cppflags="$cppflags -D__GNUC__" ++1.*) cppflags="$cppflags -D__GNUC__" + esac + case "$mips_type" in + '');; +@@ -23026,7 +23026,7 @@ fi + + : add -D_FORTIFY_SOURCE if feasible and not already there + case "$gccversion" in +-[4567].*) case "$optimize$ccflags" in ++[456789].*|[1-9][0-9]*) case "$optimize$ccflags" in + *-O*) case "$ccflags$cppsymbols" in + *_FORTIFY_SOURCE=*) # Don't add it again. + echo "You seem to have -D_FORTIFY_SOURCE already, not adding it." >&4 +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 diff --git a/5.028.003-slim-buster/Dockerfile b/5.028.003-slim-buster/Dockerfile new file mode 100644 index 00000000..a8b5350c --- /dev/null +++ b/5.028.003-slim-buster/Dockerfile @@ -0,0 +1,53 @@ +FROM debian:buster-slim +LABEL maintainer="Peter Martini , Zak B. Elep " + +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.3.tar.xz -o perl-5.28.3.tar.xz \ + && echo '77dc1ddf541643af14d585867d3d0741cce45d0dbe8f1467024e63165d9e2fc5 *perl-5.28.3.tar.xz' | sha256sum -c - \ + && tar --strip-components=1 -xaf perl-5.28.3.tar.xz -C /usr/src/perl \ + && rm perl-5.28.3.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.3","-de0"] diff --git a/5.028.003-slim-stretch/DevelPatchPerl.patch b/5.028.003-slim-stretch/DevelPatchPerl.patch new file mode 100644 index 00000000..504674af --- /dev/null +++ b/5.028.003-slim-stretch/DevelPatchPerl.patch @@ -0,0 +1,169 @@ +diff --git a/Configure b/Configure +index f99377e..e020242 100755 +--- a/Configure ++++ b/Configure +@@ -4689,7 +4689,7 @@ else + fi + $rm -f try try.* + case "$gccversion" in +-1*) cpp=`./loc gcc-cpp $cpp $pth` ;; ++1.*) cpp=`./loc gcc-cpp $cpp $pth` ;; + esac + case "$gccversion" in + '') gccosandvers='' ;; +@@ -4729,7 +4729,7 @@ esac + # gcc 3.* complain about adding -Idirectories that they already know about, + # so we will take those off from locincpth. + case "$gccversion" in +-3*) ++3.*) + echo "main(){}">try.c + for incdir in $locincpth; do + warn=`$cc $ccflags -I$incdir -c try.c 2>&1 | \ +@@ -5455,13 +5455,13 @@ fi + case "$hint" in + default|recommended) + case "$gccversion" in +- 1*) dflt="$dflt -fpcc-struct-return" ;; ++ 1.*) dflt="$dflt -fpcc-struct-return" ;; + esac + case "$optimize:$DEBUGGING" in + *-g*:old) dflt="$dflt -DDEBUGGING";; + esac + case "$gccversion" in +- 2*) if $test -d /etc/conf/kconfig.d && ++ 2.*) if $test -d /etc/conf/kconfig.d && + $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1 + then + # Interactive Systems (ISC) POSIX mode. +@@ -5470,7 +5470,7 @@ default|recommended) + ;; + esac + case "$gccversion" in +- 1*) ;; ++ 1.*) ;; + 2.[0-8]*) ;; + ?*) set strict-aliasing -fno-strict-aliasing + eval $checkccflag +@@ -5588,7 +5588,7 @@ case "$cppflags" in + ;; + esac + case "$gccversion" in +-1*) cppflags="$cppflags -D__GNUC__" ++1.*) cppflags="$cppflags -D__GNUC__" + esac + case "$mips_type" in + '');; +@@ -23026,7 +23026,7 @@ fi + + : add -D_FORTIFY_SOURCE if feasible and not already there + case "$gccversion" in +-[4567].*) case "$optimize$ccflags" in ++[456789].*|[1-9][0-9]*) case "$optimize$ccflags" in + *-O*) case "$ccflags$cppsymbols" in + *_FORTIFY_SOURCE=*) # Don't add it again. + echo "You seem to have -D_FORTIFY_SOURCE already, not adding it." >&4 +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 diff --git a/5.028.003-slim-stretch/Dockerfile b/5.028.003-slim-stretch/Dockerfile new file mode 100644 index 00000000..5a091649 --- /dev/null +++ b/5.028.003-slim-stretch/Dockerfile @@ -0,0 +1,53 @@ +FROM debian:stretch-slim +LABEL maintainer="Peter Martini , Zak B. Elep " + +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.3.tar.xz -o perl-5.28.3.tar.xz \ + && echo '77dc1ddf541643af14d585867d3d0741cce45d0dbe8f1467024e63165d9e2fc5 *perl-5.28.3.tar.xz' | sha256sum -c - \ + && tar --strip-components=1 -xaf perl-5.28.3.tar.xz -C /usr/src/perl \ + && rm perl-5.28.3.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.3","-de0"] diff --git a/5.030.003-main,threaded-buster/DevelPatchPerl.patch b/5.030.003-main,threaded-buster/DevelPatchPerl.patch new file mode 100644 index 00000000..11fdab08 --- /dev/null +++ b/5.030.003-main,threaded-buster/DevelPatchPerl.patch @@ -0,0 +1,14 @@ +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 diff --git a/5.030.003-main,threaded-buster/Dockerfile b/5.030.003-main,threaded-buster/Dockerfile new file mode 100644 index 00000000..5b0ba1ec --- /dev/null +++ b/5.030.003-main,threaded-buster/Dockerfile @@ -0,0 +1,29 @@ +FROM buildpack-deps:buster +LABEL maintainer="Peter Martini , Zak B. Elep " + +COPY *.patch /usr/src/perl/ +WORKDIR /usr/src/perl + +RUN true \ + && curl -SL https://www.cpan.org/src/5.0/perl-5.30.3.tar.xz -o perl-5.30.3.tar.xz \ + && echo '6967595f2e3f3a94544c35152f9a25e0cb8ea24ae45f4bf1882f2e33f4a400f4 *perl-5.30.3.tar.xz' | sha256sum -c - \ + && tar --strip-components=1 -xaf perl-5.30.3.tar.xz -C /usr/src/perl \ + && rm perl-5.30.3.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.3","-de0"] diff --git a/5.030.003-main,threaded-stretch/DevelPatchPerl.patch b/5.030.003-main,threaded-stretch/DevelPatchPerl.patch new file mode 100644 index 00000000..11fdab08 --- /dev/null +++ b/5.030.003-main,threaded-stretch/DevelPatchPerl.patch @@ -0,0 +1,14 @@ +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 diff --git a/5.030.003-main,threaded-stretch/Dockerfile b/5.030.003-main,threaded-stretch/Dockerfile new file mode 100644 index 00000000..904f7b8a --- /dev/null +++ b/5.030.003-main,threaded-stretch/Dockerfile @@ -0,0 +1,29 @@ +FROM buildpack-deps:stretch +LABEL maintainer="Peter Martini , Zak B. Elep " + +COPY *.patch /usr/src/perl/ +WORKDIR /usr/src/perl + +RUN true \ + && curl -SL https://www.cpan.org/src/5.0/perl-5.30.3.tar.xz -o perl-5.30.3.tar.xz \ + && echo '6967595f2e3f3a94544c35152f9a25e0cb8ea24ae45f4bf1882f2e33f4a400f4 *perl-5.30.3.tar.xz' | sha256sum -c - \ + && tar --strip-components=1 -xaf perl-5.30.3.tar.xz -C /usr/src/perl \ + && rm perl-5.30.3.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.3","-de0"] diff --git a/5.030.003-main-buster/DevelPatchPerl.patch b/5.030.003-main-buster/DevelPatchPerl.patch new file mode 100644 index 00000000..11fdab08 --- /dev/null +++ b/5.030.003-main-buster/DevelPatchPerl.patch @@ -0,0 +1,14 @@ +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 diff --git a/5.030.003-main-buster/Dockerfile b/5.030.003-main-buster/Dockerfile new file mode 100644 index 00000000..8cdcd80d --- /dev/null +++ b/5.030.003-main-buster/Dockerfile @@ -0,0 +1,29 @@ +FROM buildpack-deps:buster +LABEL maintainer="Peter Martini , Zak B. Elep " + +COPY *.patch /usr/src/perl/ +WORKDIR /usr/src/perl + +RUN true \ + && curl -SL https://www.cpan.org/src/5.0/perl-5.30.3.tar.xz -o perl-5.30.3.tar.xz \ + && echo '6967595f2e3f3a94544c35152f9a25e0cb8ea24ae45f4bf1882f2e33f4a400f4 *perl-5.30.3.tar.xz' | sha256sum -c - \ + && tar --strip-components=1 -xaf perl-5.30.3.tar.xz -C /usr/src/perl \ + && rm perl-5.30.3.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.3","-de0"] diff --git a/5.030.003-main-stretch/DevelPatchPerl.patch b/5.030.003-main-stretch/DevelPatchPerl.patch new file mode 100644 index 00000000..11fdab08 --- /dev/null +++ b/5.030.003-main-stretch/DevelPatchPerl.patch @@ -0,0 +1,14 @@ +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 diff --git a/5.030.003-main-stretch/Dockerfile b/5.030.003-main-stretch/Dockerfile new file mode 100644 index 00000000..d517fa8b --- /dev/null +++ b/5.030.003-main-stretch/Dockerfile @@ -0,0 +1,29 @@ +FROM buildpack-deps:stretch +LABEL maintainer="Peter Martini , Zak B. Elep " + +COPY *.patch /usr/src/perl/ +WORKDIR /usr/src/perl + +RUN true \ + && curl -SL https://www.cpan.org/src/5.0/perl-5.30.3.tar.xz -o perl-5.30.3.tar.xz \ + && echo '6967595f2e3f3a94544c35152f9a25e0cb8ea24ae45f4bf1882f2e33f4a400f4 *perl-5.30.3.tar.xz' | sha256sum -c - \ + && tar --strip-components=1 -xaf perl-5.30.3.tar.xz -C /usr/src/perl \ + && rm perl-5.30.3.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.3","-de0"] diff --git a/5.030.003-slim,threaded-buster/DevelPatchPerl.patch b/5.030.003-slim,threaded-buster/DevelPatchPerl.patch new file mode 100644 index 00000000..11fdab08 --- /dev/null +++ b/5.030.003-slim,threaded-buster/DevelPatchPerl.patch @@ -0,0 +1,14 @@ +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 diff --git a/5.030.003-slim,threaded-buster/Dockerfile b/5.030.003-slim,threaded-buster/Dockerfile new file mode 100644 index 00000000..05bce101 --- /dev/null +++ b/5.030.003-slim,threaded-buster/Dockerfile @@ -0,0 +1,53 @@ +FROM debian:buster-slim +LABEL maintainer="Peter Martini , Zak B. Elep " + +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.3.tar.xz -o perl-5.30.3.tar.xz \ + && echo '6967595f2e3f3a94544c35152f9a25e0cb8ea24ae45f4bf1882f2e33f4a400f4 *perl-5.30.3.tar.xz' | sha256sum -c - \ + && tar --strip-components=1 -xaf perl-5.30.3.tar.xz -C /usr/src/perl \ + && rm perl-5.30.3.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.3","-de0"] diff --git a/5.030.003-slim,threaded-stretch/DevelPatchPerl.patch b/5.030.003-slim,threaded-stretch/DevelPatchPerl.patch new file mode 100644 index 00000000..11fdab08 --- /dev/null +++ b/5.030.003-slim,threaded-stretch/DevelPatchPerl.patch @@ -0,0 +1,14 @@ +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 diff --git a/5.030.003-slim,threaded-stretch/Dockerfile b/5.030.003-slim,threaded-stretch/Dockerfile new file mode 100644 index 00000000..e3b586d7 --- /dev/null +++ b/5.030.003-slim,threaded-stretch/Dockerfile @@ -0,0 +1,53 @@ +FROM debian:stretch-slim +LABEL maintainer="Peter Martini , Zak B. Elep " + +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.3.tar.xz -o perl-5.30.3.tar.xz \ + && echo '6967595f2e3f3a94544c35152f9a25e0cb8ea24ae45f4bf1882f2e33f4a400f4 *perl-5.30.3.tar.xz' | sha256sum -c - \ + && tar --strip-components=1 -xaf perl-5.30.3.tar.xz -C /usr/src/perl \ + && rm perl-5.30.3.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.3","-de0"] diff --git a/5.030.003-slim-buster/DevelPatchPerl.patch b/5.030.003-slim-buster/DevelPatchPerl.patch new file mode 100644 index 00000000..11fdab08 --- /dev/null +++ b/5.030.003-slim-buster/DevelPatchPerl.patch @@ -0,0 +1,14 @@ +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 diff --git a/5.030.003-slim-buster/Dockerfile b/5.030.003-slim-buster/Dockerfile new file mode 100644 index 00000000..6d0313a9 --- /dev/null +++ b/5.030.003-slim-buster/Dockerfile @@ -0,0 +1,53 @@ +FROM debian:buster-slim +LABEL maintainer="Peter Martini , Zak B. Elep " + +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.3.tar.xz -o perl-5.30.3.tar.xz \ + && echo '6967595f2e3f3a94544c35152f9a25e0cb8ea24ae45f4bf1882f2e33f4a400f4 *perl-5.30.3.tar.xz' | sha256sum -c - \ + && tar --strip-components=1 -xaf perl-5.30.3.tar.xz -C /usr/src/perl \ + && rm perl-5.30.3.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.3","-de0"] diff --git a/5.030.003-slim-stretch/DevelPatchPerl.patch b/5.030.003-slim-stretch/DevelPatchPerl.patch new file mode 100644 index 00000000..11fdab08 --- /dev/null +++ b/5.030.003-slim-stretch/DevelPatchPerl.patch @@ -0,0 +1,14 @@ +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 diff --git a/5.030.003-slim-stretch/Dockerfile b/5.030.003-slim-stretch/Dockerfile new file mode 100644 index 00000000..8466c567 --- /dev/null +++ b/5.030.003-slim-stretch/Dockerfile @@ -0,0 +1,53 @@ +FROM debian:stretch-slim +LABEL maintainer="Peter Martini , Zak B. Elep " + +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.3.tar.xz -o perl-5.30.3.tar.xz \ + && echo '6967595f2e3f3a94544c35152f9a25e0cb8ea24ae45f4bf1882f2e33f4a400f4 *perl-5.30.3.tar.xz' | sha256sum -c - \ + && tar --strip-components=1 -xaf perl-5.30.3.tar.xz -C /usr/src/perl \ + && rm perl-5.30.3.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.3","-de0"] From 5849058ee9ab03082589adf6816688ae6838536e Mon Sep 17 00:00:00 2001 From: "Zak B. Elep" Date: Thu, 4 Jun 2020 14:53:54 +0800 Subject: [PATCH 3/5] :gear: Remove 5.28.2/5.30.2 --- .../DevelPatchPerl.patch | 104 ------------------ 5.028.002-main,threaded-buster/Dockerfile | 29 ----- .../rt-perl-133295.patch | 69 ------------ .../DevelPatchPerl.patch | 104 ------------------ 5.028.002-main,threaded-stretch/Dockerfile | 29 ----- 5.028.002-main-buster/DevelPatchPerl.patch | 104 ------------------ 5.028.002-main-buster/Dockerfile | 29 ----- 5.028.002-main-buster/rt-perl-133295.patch | 69 ------------ 5.028.002-main-stretch/DevelPatchPerl.patch | 104 ------------------ 5.028.002-main-stretch/Dockerfile | 29 ----- .../DevelPatchPerl.patch | 104 ------------------ 5.028.002-slim,threaded-buster/Dockerfile | 53 --------- .../rt-perl-133295.patch | 69 ------------ .../DevelPatchPerl.patch | 104 ------------------ 5.028.002-slim,threaded-stretch/Dockerfile | 53 --------- 5.028.002-slim-buster/DevelPatchPerl.patch | 104 ------------------ 5.028.002-slim-buster/Dockerfile | 53 --------- 5.028.002-slim-buster/rt-perl-133295.patch | 69 ------------ 5.028.002-slim-stretch/DevelPatchPerl.patch | 104 ------------------ 5.028.002-slim-stretch/Dockerfile | 53 --------- .../DevelPatchPerl.patch | 14 --- 5.030.002-main,threaded-buster/Dockerfile | 29 ----- .../DevelPatchPerl.patch | 14 --- 5.030.002-main,threaded-stretch/Dockerfile | 29 ----- 5.030.002-main-buster/DevelPatchPerl.patch | 14 --- 5.030.002-main-buster/Dockerfile | 29 ----- 5.030.002-main-stretch/DevelPatchPerl.patch | 14 --- 5.030.002-main-stretch/Dockerfile | 29 ----- .../DevelPatchPerl.patch | 14 --- 5.030.002-slim,threaded-buster/Dockerfile | 53 --------- .../DevelPatchPerl.patch | 14 --- 5.030.002-slim,threaded-stretch/Dockerfile | 53 --------- 5.030.002-slim-buster/DevelPatchPerl.patch | 14 --- 5.030.002-slim-buster/Dockerfile | 53 --------- 5.030.002-slim-stretch/DevelPatchPerl.patch | 14 --- 5.030.002-slim-stretch/Dockerfile | 53 --------- 36 files changed, 1876 deletions(-) delete mode 100644 5.028.002-main,threaded-buster/DevelPatchPerl.patch delete mode 100644 5.028.002-main,threaded-buster/Dockerfile delete mode 100644 5.028.002-main,threaded-buster/rt-perl-133295.patch delete mode 100644 5.028.002-main,threaded-stretch/DevelPatchPerl.patch delete mode 100644 5.028.002-main,threaded-stretch/Dockerfile delete mode 100644 5.028.002-main-buster/DevelPatchPerl.patch delete mode 100644 5.028.002-main-buster/Dockerfile delete mode 100644 5.028.002-main-buster/rt-perl-133295.patch delete mode 100644 5.028.002-main-stretch/DevelPatchPerl.patch delete mode 100644 5.028.002-main-stretch/Dockerfile delete mode 100644 5.028.002-slim,threaded-buster/DevelPatchPerl.patch delete mode 100644 5.028.002-slim,threaded-buster/Dockerfile delete mode 100644 5.028.002-slim,threaded-buster/rt-perl-133295.patch delete mode 100644 5.028.002-slim,threaded-stretch/DevelPatchPerl.patch delete mode 100644 5.028.002-slim,threaded-stretch/Dockerfile delete mode 100644 5.028.002-slim-buster/DevelPatchPerl.patch delete mode 100644 5.028.002-slim-buster/Dockerfile delete mode 100644 5.028.002-slim-buster/rt-perl-133295.patch delete mode 100644 5.028.002-slim-stretch/DevelPatchPerl.patch delete mode 100644 5.028.002-slim-stretch/Dockerfile delete mode 100644 5.030.002-main,threaded-buster/DevelPatchPerl.patch delete mode 100644 5.030.002-main,threaded-buster/Dockerfile delete mode 100644 5.030.002-main,threaded-stretch/DevelPatchPerl.patch delete mode 100644 5.030.002-main,threaded-stretch/Dockerfile delete mode 100644 5.030.002-main-buster/DevelPatchPerl.patch delete mode 100644 5.030.002-main-buster/Dockerfile delete mode 100644 5.030.002-main-stretch/DevelPatchPerl.patch delete mode 100644 5.030.002-main-stretch/Dockerfile delete mode 100644 5.030.002-slim,threaded-buster/DevelPatchPerl.patch delete mode 100644 5.030.002-slim,threaded-buster/Dockerfile delete mode 100644 5.030.002-slim,threaded-stretch/DevelPatchPerl.patch delete mode 100644 5.030.002-slim,threaded-stretch/Dockerfile delete mode 100644 5.030.002-slim-buster/DevelPatchPerl.patch delete mode 100644 5.030.002-slim-buster/Dockerfile delete mode 100644 5.030.002-slim-stretch/DevelPatchPerl.patch delete mode 100644 5.030.002-slim-stretch/Dockerfile diff --git a/5.028.002-main,threaded-buster/DevelPatchPerl.patch b/5.028.002-main,threaded-buster/DevelPatchPerl.patch deleted file mode 100644 index 0234f948..00000000 --- a/5.028.002-main,threaded-buster/DevelPatchPerl.patch +++ /dev/null @@ -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 diff --git a/5.028.002-main,threaded-buster/Dockerfile b/5.028.002-main,threaded-buster/Dockerfile deleted file mode 100644 index 07491b3f..00000000 --- a/5.028.002-main,threaded-buster/Dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -FROM buildpack-deps:buster -LABEL maintainer="Peter Martini , Zak B. Elep " - -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"] diff --git a/5.028.002-main,threaded-buster/rt-perl-133295.patch b/5.028.002-main,threaded-buster/rt-perl-133295.patch deleted file mode 100644 index f7963738..00000000 --- a/5.028.002-main,threaded-buster/rt-perl-133295.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 0d9e812de5885109532ec8bf484f165213ab97cb Mon Sep 17 00:00:00 2001 -From: David Mitchell -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 ; diff --git a/5.028.002-main,threaded-stretch/DevelPatchPerl.patch b/5.028.002-main,threaded-stretch/DevelPatchPerl.patch deleted file mode 100644 index 0234f948..00000000 --- a/5.028.002-main,threaded-stretch/DevelPatchPerl.patch +++ /dev/null @@ -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 diff --git a/5.028.002-main,threaded-stretch/Dockerfile b/5.028.002-main,threaded-stretch/Dockerfile deleted file mode 100644 index a52ce1e7..00000000 --- a/5.028.002-main,threaded-stretch/Dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -FROM buildpack-deps:stretch -LABEL maintainer="Peter Martini , Zak B. Elep " - -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"] diff --git a/5.028.002-main-buster/DevelPatchPerl.patch b/5.028.002-main-buster/DevelPatchPerl.patch deleted file mode 100644 index 0234f948..00000000 --- a/5.028.002-main-buster/DevelPatchPerl.patch +++ /dev/null @@ -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 diff --git a/5.028.002-main-buster/Dockerfile b/5.028.002-main-buster/Dockerfile deleted file mode 100644 index 34838d1a..00000000 --- a/5.028.002-main-buster/Dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -FROM buildpack-deps:buster -LABEL maintainer="Peter Martini , Zak B. Elep " - -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"] diff --git a/5.028.002-main-buster/rt-perl-133295.patch b/5.028.002-main-buster/rt-perl-133295.patch deleted file mode 100644 index f7963738..00000000 --- a/5.028.002-main-buster/rt-perl-133295.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 0d9e812de5885109532ec8bf484f165213ab97cb Mon Sep 17 00:00:00 2001 -From: David Mitchell -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 ; diff --git a/5.028.002-main-stretch/DevelPatchPerl.patch b/5.028.002-main-stretch/DevelPatchPerl.patch deleted file mode 100644 index 0234f948..00000000 --- a/5.028.002-main-stretch/DevelPatchPerl.patch +++ /dev/null @@ -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 diff --git a/5.028.002-main-stretch/Dockerfile b/5.028.002-main-stretch/Dockerfile deleted file mode 100644 index 9b83ac67..00000000 --- a/5.028.002-main-stretch/Dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -FROM buildpack-deps:stretch -LABEL maintainer="Peter Martini , Zak B. Elep " - -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"] diff --git a/5.028.002-slim,threaded-buster/DevelPatchPerl.patch b/5.028.002-slim,threaded-buster/DevelPatchPerl.patch deleted file mode 100644 index 0234f948..00000000 --- a/5.028.002-slim,threaded-buster/DevelPatchPerl.patch +++ /dev/null @@ -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 diff --git a/5.028.002-slim,threaded-buster/Dockerfile b/5.028.002-slim,threaded-buster/Dockerfile deleted file mode 100644 index cc701afb..00000000 --- a/5.028.002-slim,threaded-buster/Dockerfile +++ /dev/null @@ -1,53 +0,0 @@ -FROM debian:buster-slim -LABEL maintainer="Peter Martini , Zak B. Elep " - -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"] diff --git a/5.028.002-slim,threaded-buster/rt-perl-133295.patch b/5.028.002-slim,threaded-buster/rt-perl-133295.patch deleted file mode 100644 index f7963738..00000000 --- a/5.028.002-slim,threaded-buster/rt-perl-133295.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 0d9e812de5885109532ec8bf484f165213ab97cb Mon Sep 17 00:00:00 2001 -From: David Mitchell -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 ; diff --git a/5.028.002-slim,threaded-stretch/DevelPatchPerl.patch b/5.028.002-slim,threaded-stretch/DevelPatchPerl.patch deleted file mode 100644 index 0234f948..00000000 --- a/5.028.002-slim,threaded-stretch/DevelPatchPerl.patch +++ /dev/null @@ -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 diff --git a/5.028.002-slim,threaded-stretch/Dockerfile b/5.028.002-slim,threaded-stretch/Dockerfile deleted file mode 100644 index ed61e341..00000000 --- a/5.028.002-slim,threaded-stretch/Dockerfile +++ /dev/null @@ -1,53 +0,0 @@ -FROM debian:stretch-slim -LABEL maintainer="Peter Martini , Zak B. Elep " - -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"] diff --git a/5.028.002-slim-buster/DevelPatchPerl.patch b/5.028.002-slim-buster/DevelPatchPerl.patch deleted file mode 100644 index 0234f948..00000000 --- a/5.028.002-slim-buster/DevelPatchPerl.patch +++ /dev/null @@ -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 diff --git a/5.028.002-slim-buster/Dockerfile b/5.028.002-slim-buster/Dockerfile deleted file mode 100644 index 515881d8..00000000 --- a/5.028.002-slim-buster/Dockerfile +++ /dev/null @@ -1,53 +0,0 @@ -FROM debian:buster-slim -LABEL maintainer="Peter Martini , Zak B. Elep " - -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"] diff --git a/5.028.002-slim-buster/rt-perl-133295.patch b/5.028.002-slim-buster/rt-perl-133295.patch deleted file mode 100644 index f7963738..00000000 --- a/5.028.002-slim-buster/rt-perl-133295.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 0d9e812de5885109532ec8bf484f165213ab97cb Mon Sep 17 00:00:00 2001 -From: David Mitchell -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 ; diff --git a/5.028.002-slim-stretch/DevelPatchPerl.patch b/5.028.002-slim-stretch/DevelPatchPerl.patch deleted file mode 100644 index 0234f948..00000000 --- a/5.028.002-slim-stretch/DevelPatchPerl.patch +++ /dev/null @@ -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 diff --git a/5.028.002-slim-stretch/Dockerfile b/5.028.002-slim-stretch/Dockerfile deleted file mode 100644 index 6149a0d2..00000000 --- a/5.028.002-slim-stretch/Dockerfile +++ /dev/null @@ -1,53 +0,0 @@ -FROM debian:stretch-slim -LABEL maintainer="Peter Martini , Zak B. Elep " - -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"] diff --git a/5.030.002-main,threaded-buster/DevelPatchPerl.patch b/5.030.002-main,threaded-buster/DevelPatchPerl.patch deleted file mode 100644 index 11fdab08..00000000 --- a/5.030.002-main,threaded-buster/DevelPatchPerl.patch +++ /dev/null @@ -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 diff --git a/5.030.002-main,threaded-buster/Dockerfile b/5.030.002-main,threaded-buster/Dockerfile deleted file mode 100644 index 78af7b55..00000000 --- a/5.030.002-main,threaded-buster/Dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -FROM buildpack-deps:buster -LABEL maintainer="Peter Martini , Zak B. Elep " - -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"] diff --git a/5.030.002-main,threaded-stretch/DevelPatchPerl.patch b/5.030.002-main,threaded-stretch/DevelPatchPerl.patch deleted file mode 100644 index 11fdab08..00000000 --- a/5.030.002-main,threaded-stretch/DevelPatchPerl.patch +++ /dev/null @@ -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 diff --git a/5.030.002-main,threaded-stretch/Dockerfile b/5.030.002-main,threaded-stretch/Dockerfile deleted file mode 100644 index 344bdf2a..00000000 --- a/5.030.002-main,threaded-stretch/Dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -FROM buildpack-deps:stretch -LABEL maintainer="Peter Martini , Zak B. Elep " - -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"] diff --git a/5.030.002-main-buster/DevelPatchPerl.patch b/5.030.002-main-buster/DevelPatchPerl.patch deleted file mode 100644 index 11fdab08..00000000 --- a/5.030.002-main-buster/DevelPatchPerl.patch +++ /dev/null @@ -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 diff --git a/5.030.002-main-buster/Dockerfile b/5.030.002-main-buster/Dockerfile deleted file mode 100644 index 2287b841..00000000 --- a/5.030.002-main-buster/Dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -FROM buildpack-deps:buster -LABEL maintainer="Peter Martini , Zak B. Elep " - -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"] diff --git a/5.030.002-main-stretch/DevelPatchPerl.patch b/5.030.002-main-stretch/DevelPatchPerl.patch deleted file mode 100644 index 11fdab08..00000000 --- a/5.030.002-main-stretch/DevelPatchPerl.patch +++ /dev/null @@ -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 diff --git a/5.030.002-main-stretch/Dockerfile b/5.030.002-main-stretch/Dockerfile deleted file mode 100644 index 66ab04a8..00000000 --- a/5.030.002-main-stretch/Dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -FROM buildpack-deps:stretch -LABEL maintainer="Peter Martini , Zak B. Elep " - -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"] diff --git a/5.030.002-slim,threaded-buster/DevelPatchPerl.patch b/5.030.002-slim,threaded-buster/DevelPatchPerl.patch deleted file mode 100644 index 11fdab08..00000000 --- a/5.030.002-slim,threaded-buster/DevelPatchPerl.patch +++ /dev/null @@ -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 diff --git a/5.030.002-slim,threaded-buster/Dockerfile b/5.030.002-slim,threaded-buster/Dockerfile deleted file mode 100644 index d5684d07..00000000 --- a/5.030.002-slim,threaded-buster/Dockerfile +++ /dev/null @@ -1,53 +0,0 @@ -FROM debian:buster-slim -LABEL maintainer="Peter Martini , Zak B. Elep " - -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"] diff --git a/5.030.002-slim,threaded-stretch/DevelPatchPerl.patch b/5.030.002-slim,threaded-stretch/DevelPatchPerl.patch deleted file mode 100644 index 11fdab08..00000000 --- a/5.030.002-slim,threaded-stretch/DevelPatchPerl.patch +++ /dev/null @@ -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 diff --git a/5.030.002-slim,threaded-stretch/Dockerfile b/5.030.002-slim,threaded-stretch/Dockerfile deleted file mode 100644 index 34066bea..00000000 --- a/5.030.002-slim,threaded-stretch/Dockerfile +++ /dev/null @@ -1,53 +0,0 @@ -FROM debian:stretch-slim -LABEL maintainer="Peter Martini , Zak B. Elep " - -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"] diff --git a/5.030.002-slim-buster/DevelPatchPerl.patch b/5.030.002-slim-buster/DevelPatchPerl.patch deleted file mode 100644 index 11fdab08..00000000 --- a/5.030.002-slim-buster/DevelPatchPerl.patch +++ /dev/null @@ -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 diff --git a/5.030.002-slim-buster/Dockerfile b/5.030.002-slim-buster/Dockerfile deleted file mode 100644 index e786d461..00000000 --- a/5.030.002-slim-buster/Dockerfile +++ /dev/null @@ -1,53 +0,0 @@ -FROM debian:buster-slim -LABEL maintainer="Peter Martini , Zak B. Elep " - -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"] diff --git a/5.030.002-slim-stretch/DevelPatchPerl.patch b/5.030.002-slim-stretch/DevelPatchPerl.patch deleted file mode 100644 index 11fdab08..00000000 --- a/5.030.002-slim-stretch/DevelPatchPerl.patch +++ /dev/null @@ -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 diff --git a/5.030.002-slim-stretch/Dockerfile b/5.030.002-slim-stretch/Dockerfile deleted file mode 100644 index bdf43892..00000000 --- a/5.030.002-slim-stretch/Dockerfile +++ /dev/null @@ -1,53 +0,0 @@ -FROM debian:stretch-slim -LABEL maintainer="Peter Martini , Zak B. Elep " - -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"] From 29c5d132362cb0a05f809758102d68743a439eab Mon Sep 17 00:00:00 2001 From: "Zak B. Elep" Date: Thu, 4 Jun 2020 15:01:58 +0800 Subject: [PATCH 4/5] :gear: build-image.yml: Bump for 5.30.3 --- .github/workflows/build-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml index 1022db20..4fa29fe1 100644 --- a/.github/workflows/build-image.yml +++ b/.github/workflows/build-image.yml @@ -1,7 +1,7 @@ name: Build and test latest supported Perls env: - VERSION: 5.030.002 + VERSION: 5.030.003 on: [push, pull_request] From d84ab91cb988e488beb7a31e20e993dc7fa3aa84 Mon Sep 17 00:00:00 2001 From: "Zak B. Elep" Date: Thu, 4 Jun 2020 15:06:37 +0800 Subject: [PATCH 5/5] generate.pl: temporarily skip generating for older Perls Appease test failures for now so we can expedite releasing 5.28.3/5.30.3. --- generate.pl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/generate.pl b/generate.pl index 27c83b18..10a35df9 100755 --- a/generate.pl +++ b/generate.pl @@ -5,6 +5,7 @@ use YAML::XS; use Devel::PatchPerl; use LWP::Simple; +use version 0.77; sub die_with_sample { die <{releases}}) { + next unless version->parse($release->{version}) >= version->parse('5.28.0'); do { die_with_sample unless $release->{$_} } for (qw(version sha256));