On Sat, Sep 3, 2022 at 2:11 AM Tom Lane <t...@sss.pgh.pa.us> wrote: > > Andres Freund <and...@anarazel.de> writes: > > 5.14 would be a trivial lift as far as the buildfarm is concerned. > > Yeah, that seems like a reasonable new minimum for Perl. I might > see about setting up an animal running 5.14.0, just so we can say > "5.14" in the docs without fine print.
Until such time as that happens, here is a draft to require 5.14.2. -- John Naylor EDB: http://www.enterprisedb.com
config/perl.m4 | 4 ++-- configure | 6 +++--- doc/src/sgml/install-windows.sgml | 2 +- doc/src/sgml/installation.sgml | 4 ++-- src/pl/plperl/plc_perlboot.pl | 1 - src/test/perl/PostgreSQL/Test/Cluster.pm | 2 +- src/test/perl/README | 10 +++------- src/tools/msvc/gendef.pl | 1 - src/tools/pgindent/pgindent | 1 - 9 files changed, 12 insertions(+), 19 deletions(-) diff --git a/config/perl.m4 b/config/perl.m4 index c9fd91397c..29f54bbb79 100644 --- a/config/perl.m4 +++ b/config/perl.m4 @@ -11,11 +11,11 @@ if test "$PERL"; then pgac_perl_version=`$PERL -v 2>/dev/null | sed -n ['s/This is perl.*v[a-z ]*\([0-9]\.[0-9][0-9.]*\).*$/\1/p']` AC_MSG_NOTICE([using perl $pgac_perl_version]) if echo "$pgac_perl_version" | sed ['s/[.a-z_]/ /g'] | \ - $AWK '{ if ([$]1 == 5 && ([$]2 > 8 || ($[2] == 8 && [$]3 >= 3))) exit 1; else exit 0;}' + $AWK '{ if ([$]1 == 5 && ([$]2 > 14 || ($[2] == 14 && [$]3 >= 2))) exit 1; else exit 0;}' then AC_MSG_WARN([ *** The installed version of Perl, $PERL, is too old to use with PostgreSQL. -*** Perl version 5.8.3 or later is required, but this is $pgac_perl_version.]) +*** Perl version 5.14.2 or later is required, but this is $pgac_perl_version.]) PERL="" fi fi diff --git a/configure b/configure index fd2a782454..160c181441 100755 --- a/configure +++ b/configure @@ -10491,14 +10491,14 @@ if test "$PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: using perl $pgac_perl_version" >&5 $as_echo "$as_me: using perl $pgac_perl_version" >&6;} if echo "$pgac_perl_version" | sed 's/[.a-z_]/ /g' | \ - $AWK '{ if ($1 == 5 && ($2 > 8 || ($2 == 8 && $3 >= 3))) exit 1; else exit 0;}' + $AWK '{ if ($1 == 5 && ($2 > 14 || ($2 == 14 && $3 >= 2))) exit 1; else exit 0;}' then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** The installed version of Perl, $PERL, is too old to use with PostgreSQL. -*** Perl version 5.8.3 or later is required, but this is $pgac_perl_version." >&5 +*** Perl version 5.14.2 or later is required, but this is $pgac_perl_version." >&5 $as_echo "$as_me: WARNING: *** The installed version of Perl, $PERL, is too old to use with PostgreSQL. -*** Perl version 5.8.3 or later is required, but this is $pgac_perl_version." >&2;} +*** Perl version 5.14.2 or later is required, but this is $pgac_perl_version." >&2;} PERL="" fi fi diff --git a/doc/src/sgml/install-windows.sgml b/doc/src/sgml/install-windows.sgml index c00ab2b4b2..2e41d75db0 100644 --- a/doc/src/sgml/install-windows.sgml +++ b/doc/src/sgml/install-windows.sgml @@ -190,7 +190,7 @@ $ENV{MSBFLAGS}="/m"; or Cygwin Perl will not work. It must also be present in the PATH. Binaries can be downloaded from <ulink url="https://www.activestate.com"></ulink> - (Note: version 5.8.3 or later is required, + (Note: version 5.14.2 or later is required, the free Standard Distribution is sufficient). </para></listitem> </varlistentry> diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml index 7c79608e55..5d7c573729 100644 --- a/doc/src/sgml/installation.sgml +++ b/doc/src/sgml/installation.sgml @@ -165,7 +165,7 @@ su - postgres <application>PL/Perl</application> you need a full <productname>Perl</productname> installation, including the <filename>libperl</filename> library and the header files. - The minimum required version is <productname>Perl</productname> 5.8.3. + The minimum required version is <productname>Perl</productname> 5.14.2. Since <application>PL/Perl</application> will be a shared library, the <indexterm><primary>libperl</primary></indexterm> <filename>libperl</filename> library must be a shared library @@ -325,7 +325,7 @@ su - postgres <primary>perl</primary> </indexterm> - <application>Perl</application> 5.8.3 or later is needed to build from a Git checkout, + <application>Perl</application> 5.14.2 or later is needed to build from a Git checkout, or if you changed the input files for any of the build steps that use Perl scripts. If building on Windows you will need <application>Perl</application> in any case. <application>Perl</application> is diff --git a/src/pl/plperl/plc_perlboot.pl b/src/pl/plperl/plc_perlboot.pl index 8fd7f998bc..72cb53f6e3 100644 --- a/src/pl/plperl/plc_perlboot.pl +++ b/src/pl/plperl/plc_perlboot.pl @@ -6,7 +6,6 @@ use strict; use warnings; -use 5.008001; use vars qw(%_SHARED $_TD); PostgreSQL::InServer::Util::bootstrap(); diff --git a/src/test/perl/PostgreSQL/Test/Cluster.pm b/src/test/perl/PostgreSQL/Test/Cluster.pm index 27fa607da4..d678f65d88 100644 --- a/src/test/perl/PostgreSQL/Test/Cluster.pm +++ b/src/test/perl/PostgreSQL/Test/Cluster.pm @@ -2780,7 +2780,7 @@ all values '' if not found. Does not differentiate between null and empty string for fields, no field is ever undef. The restart_lsn and confirmed_flush_lsn fields are returned verbatim, and also -as a 2-list of [highword, lowword] integer. Since we rely on Perl 5.8.8 we can't +as a 2-list of [highword, lowword] integer. Since we rely on Perl 5.14.2 we can't "use bigint", it's from 5.20, and we can't assume we have Math::Bigint from CPAN either. diff --git a/src/test/perl/README b/src/test/perl/README index 4b160cce36..26e4b41221 100644 --- a/src/test/perl/README +++ b/src/test/perl/README @@ -78,10 +78,6 @@ Each test script should end with: done_testing(); -Test::More::like entails use of the qr// operator. Avoid Perl 5.8.8 bug -#39185 by not using the "$" regular expression metacharacter in qr// when also -using the "/m" modifier. Instead of "$", use "\n" or "(?=\n|\z)". - Test::Builder::Level controls how far up in the call stack a test will look at when reporting a failure. This should be incremented by any subroutine which directly or indirectly calls test routines from Test::More, such as @@ -103,7 +99,7 @@ Portability ----------- Avoid using any bleeding-edge Perl features. We have buildfarm animals -running Perl versions as old as 5.8.3, so your tests will be expected +running Perl versions as old as 5.14.2, so your tests will be expected to pass on that. Also, do not use any non-core Perl modules except IPC::Run. Or, if you @@ -116,8 +112,8 @@ One way to test for compatibility with old Perl versions is to use perlbrew; see http://perlbrew.pl . After installing that, do export PERLBREW_CONFIGURE_FLAGS='-de -Duseshrplib' - perlbrew --force install 5.8.3 - perlbrew use 5.8.3 + perlbrew --force install 5.14.2 + perlbrew use 5.14.2 perlbrew install-cpanm cpanm install Test::Simple@0.98 cpanm install IPC::Run@0.79 diff --git a/src/tools/msvc/gendef.pl b/src/tools/msvc/gendef.pl index b8c514a831..b4af3dea81 100644 --- a/src/tools/msvc/gendef.pl +++ b/src/tools/msvc/gendef.pl @@ -3,7 +3,6 @@ use strict; use warnings; -use 5.8.0; use List::Util qw(max); my @def; diff --git a/src/tools/pgindent/pgindent b/src/tools/pgindent/pgindent index 2ef07bb9fd..47d2790ef6 100755 --- a/src/tools/pgindent/pgindent +++ b/src/tools/pgindent/pgindent @@ -4,7 +4,6 @@ use strict; use warnings; -use 5.008001; use Cwd qw(abs_path getcwd); use File::Find;