Re: pgsql: Adjust configure to insist on Perl version >= 5.8.3. - Mailing list pgsql-hackers

From Tom Lane
Subject Re: pgsql: Adjust configure to insist on Perl version >= 5.8.3.
Date
Msg-id 313640.1633886230@sss.pgh.pa.us
Whole thread Raw
In response to Re: pgsql: Adjust configure to insist on Perl version >= 5.8.3.  (Noah Misch <noah@leadboat.com>)
Responses Re: pgsql: Adjust configure to insist on Perl version >= 5.8.3.
List pgsql-hackers
Noah Misch <noah@leadboat.com> writes:
> On Sat, Oct 09, 2021 at 04:34:46PM -0400, Tom Lane wrote:
>> ... Now I'm wondering what
>> version of IPC::Run to recommend.

> You mentioned prairiedog uses IPC::Run 0.79.  That's from 2005.  (Perl 5.8.3
> is from 2004, and Test::More 0.87 is from 2009.)  I'd just use 0.79 in the
> README recipe.  IPC::Run is easy to upgrade, so if we find cause to rely on a
> newer version, I'd be fine updating that requirement.

Yeah, since we know 0.79 works, there seems no reason to suggest a
later version.  The only reason to suggest an earlier version would
be if some other buildfarm critter is using something older than 0.79.

I'm tempted to propose adjusting configure to require IPC::Run >= 0.79,
so that we can find out if that's true.  If it isn't, that's still a
good change to codify what our minimum expectation is.  As you say,
we can always move that goalpost in future if we find it necessary.

However, back to the matter of the recipe.  I'm feeling discouraged
again because experimentation shows that cpanm insists on updating
the ExtUtils suite to current while installing Test::Simple.  You
can then downgrade that, but it's not a complete fix, because there
are some new ExtUtils modules that don't get uninstalled.  There's
also assorted CPAN infrastructure left behind.

The closest I can get to what we want using cpanm is with this recipe:

    cpanm install Test::Simple@0.87_01
    cpanm install IPC::Run@0.79
    cpanm install ExtUtils::MakeMaker@6.50  # downgrade

(Note: the actual prerequisite of this release of Test::Simple seems
to be "> 6.30", but the first such version that actually passes its
own tests for me is 6.50.  FWIW, prairiedog currently has 6.59.)

Attached is the diff of module manifests between a raw perl 5.8.3
installation and what this results in.  Probably the added CPAN::Meta
modules are mostly harmless, but the forced addition of JSON::PP seems
annoying.

AFAICT the only way to get to precisely the minimum configuration
is to do the extra module installs by hand, without using cpan or
cpanm.  I'm probably going to go and re-set-up prairiedog that way,
but it seems like a bit too much trouble to ask of most developers.

Thoughts?

            regards, tom lane

--- perlmodules.raw.583    2021-10-10 12:24:12.700060319 -0400
+++ perlmodules.makemaker650.583    2021-10-10 12:54:29.871522532 -0400
@@ -35,6 +35,16 @@
 CGI::Util    1.4
 CPAN    1.76_01
 CPAN::FirstTime    1.60
+CPAN::Meta    2.143240
+CPAN::Meta::Converter    2.143240
+CPAN::Meta::Feature    2.143240
+CPAN::Meta::History    2.143240
+CPAN::Meta::Merge    2.143240
+CPAN::Meta::Prereqs    2.143240
+CPAN::Meta::Requirements    2.131
+CPAN::Meta::Spec    2.143240
+CPAN::Meta::Validator    2.143240
+CPAN::Meta::YAML    0.011
 CPAN::Nox    1.03
 Carp    1.01
 Carp::Heavy    1.01
@@ -80,37 +90,47 @@
 Errno    1.09_00
 Exporter    5.57
 Exporter::Heavy    5.57
-ExtUtils::Command    1.05
-ExtUtils::Command::MM    0.03
+ExtUtils::Command    7.62
+ExtUtils::Command::MM    6.50
 ExtUtils::Constant    0.14
 ExtUtils::Embed    1.250601
-ExtUtils::Install    1.32
-ExtUtils::Installed    0.08
-ExtUtils::Liblist    1.01
-ExtUtils::Liblist::Kid    1.3
-ExtUtils::MM    0.04
-ExtUtils::MM_Any    0.07
-ExtUtils::MM_BeOS    1.04
-ExtUtils::MM_Cygwin    1.06
-ExtUtils::MM_DOS    0.02
-ExtUtils::MM_MacOS    1.07
-ExtUtils::MM_NW5    2.06
-ExtUtils::MM_OS2    1.04
-ExtUtils::MM_UWIN    0.02
-ExtUtils::MM_Unix    1.42
-ExtUtils::MM_VMS    5.70
-ExtUtils::MM_Win32    1.09
-ExtUtils::MM_Win95    0.03
-ExtUtils::MY    0.01
-ExtUtils::MakeMaker    6.17
-ExtUtils::MakeMaker::bytes    0.01
-ExtUtils::MakeMaker::vmsish    0.01
-ExtUtils::Manifest    1.42
+ExtUtils::Install    2.06
+ExtUtils::Installed    2.06
+ExtUtils::Liblist    6.50
+ExtUtils::Liblist::Kid    6.5
+ExtUtils::MM    6.50
+ExtUtils::MM_AIX    6.50
+ExtUtils::MM_Any    6.50
+ExtUtils::MM_BeOS    6.50
+ExtUtils::MM_Cygwin    6.50
+ExtUtils::MM_DOS    6.5
+ExtUtils::MM_Darwin    6.50
+ExtUtils::MM_MacOS    6.5
+ExtUtils::MM_NW5    6.50
+ExtUtils::MM_OS2    6.50
+ExtUtils::MM_OS390    7.62
+ExtUtils::MM_QNX    6.50
+ExtUtils::MM_UWIN    6.5
+ExtUtils::MM_Unix    6.50
+ExtUtils::MM_VMS    6.50
+ExtUtils::MM_VOS    6.50
+ExtUtils::MM_Win32    6.50
+ExtUtils::MM_Win95    6.50
+ExtUtils::MY    6.5
+ExtUtils::MakeMaker    6.50
+ExtUtils::MakeMaker::Config    6.50
+ExtUtils::MakeMaker::Locale    7.62
+ExtUtils::MakeMaker::bytes    6.5
+ExtUtils::MakeMaker::version    7.62
+ExtUtils::MakeMaker::version::regex    7.62
+ExtUtils::MakeMaker::version::vpp    7.62
+ExtUtils::MakeMaker::vmsish    6.5
+ExtUtils::Manifest    1.70
 ExtUtils::Miniperl    undef
-ExtUtils::Mkbootstrap    1.15
-ExtUtils::Mksymlists    1.19
-ExtUtils::Packlist    0.04
-ExtUtils::testlib    1.15
+ExtUtils::Mkbootstrap    6.50
+ExtUtils::Mksymlists    6.50
+ExtUtils::Packlist    2.06
+ExtUtils::testlib    6.5
 Fatal    1.03
 Fcntl    1.05
 File::Basename    2.72
@@ -130,7 +150,7 @@
 File::Spec::Unix    1.5
 File::Spec::VMS    1.4
 File::Spec::Win32    1.4
-File::Temp    0.14
+File::Temp    0.22
 File::stat    1.00
 FileCache    1.03
 FileHandle    2.01
@@ -158,8 +178,17 @@
 IPC::Msg    1.02
 IPC::Open2    1.01
 IPC::Open3    1.0105
+IPC::Run    0.79
+IPC::Run::Debug    undef
+IPC::Run::IO    undef
+IPC::Run::Timer    undef
+IPC::Run::Win32Helper    undef
+IPC::Run::Win32IO    undef
+IPC::Run::Win32Pump    undef
 IPC::Semaphore    1.02
 IPC::SysV    1.04
+JSON::PP    2.27203
+JSON::PP::Boolean    undef
 List::Util    1.13
 Locale::Constants    2.01
 Locale::Country    2.61
@@ -211,6 +240,7 @@
 O    1.00
 Opcode    1.05
 POSIX    1.07
+Parse::CPAN::Meta    1.4414
 PerlIO    1.03
 PerlIO::encoding    0.07
 PerlIO::scalar    0.02
@@ -263,13 +293,17 @@
 Term::Complete    1.401
 Term::ReadLine    1.01
 Test    1.24
-Test::Builder    0.17
+Test::Builder    0.87_01
+Test::Builder::IO::Scalar    2.110
+Test::Builder::Module    0.87_01
+Test::Builder::Tester    1.18
+Test::Builder::Tester::Color    1.18
 Test::Harness    2.40
 Test::Harness::Assert    0.02
 Test::Harness::Iterator    0.02
 Test::Harness::Straps    0.19
-Test::More    0.47
-Test::Simple    0.47
+Test::More    0.87_01
+Test::Simple    0.87_01
 Text::Abbrev    1.01
 Text::Balanced    1.95
 Text::ParseWords    3.21
@@ -317,6 +351,7 @@
 fields    2.03
 filetest    1.01
 if    0.03
+install    0.01
 integer    1.00
 less    0.01
 lib    0.5565

pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: Bug in DefineRange() with multiranges
Next
From: Mikael Kjellström
Date:
Subject: Re: Time to upgrade buildfarm coverage for some EOL'd OSes?