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 234637.1633709021@sss.pgh.pa.us
Whole thread Raw
In response to Re: pgsql: Adjust configure to insist on Perl version >= 5.8.3.  (Daniel Gustafsson <daniel@yesql.se>)
Responses Re: pgsql: Adjust configure to insist on Perl version >= 5.8.3.  (Noah Misch <noah@leadboat.com>)
List pgsql-hackers
Daniel Gustafsson <daniel@yesql.se> writes:
> On 8 Oct 2021, at 06:24, Noah Misch <noah@leadboat.com> wrote:
>> That's obvious from "cpanm install IPC::Run".  Surely if any other non-core
>> module were allowed, the recipe would list it in a similar way.

> The proposed changes talks about with core modules are allowed to use, I think
> that's a different thing.  The distinction between core and non-core modules
> may not be known/clear to people who haven't used Perl in the past.

Yeah, I don't really think that this recipe makes it plain that we have
a policy.  It certainly fails to explain that you're allowed to use
additional modules if you're willing to skip the relevant tests.

> This README isn't primarily targeting committers though IMO, but new developers
> onboarding onto postgres who are trying to learn the dev environment.

Right.

>> If there's something to change, it's improving the actual recipe:

> That we should do as well.

You're not going to get far with "improving the recipe", because it's
just not possible.  To check this, I installed perlbrew on a Fedora 34
machine, and found that it actually can install a mostly-working 5.8.3
(nice!).  But as I suspected earlier, it can't reproduce the old module
configuration:

$ cpanm install Test::More@0.87
--> Working on install
Fetching http://www.cpan.org/authors/id/D/DA/DAGOLDEN/install-0.01.tar.gz ... OK
==> Found dependencies: ExtUtils::MakeMaker
--> Working on ExtUtils::MakeMaker
Fetching http://www.cpan.org/authors/id/B/BI/BINGOS/ExtUtils-MakeMaker-7.62.tar.gz ... OK
Configuring ExtUtils-MakeMaker-7.62 ... OK
Building and testing ExtUtils-MakeMaker-7.62 ... OK
Successfully installed ExtUtils-MakeMaker-7.62 (upgraded from 6.17)
Configuring install-0.01 ... OK
Building and testing install-0.01 ... OK
Successfully installed install-0.01
! Finding Test::More (== 0.87) on cpanmetadb failed.
Found Test::More 1.302188 which doesn't satisfy == 0.87.
2 distributions installed

Not only is that a fail on Test::More itself, but as un-asked-for side
effects, it upgraded ExtUtils::MakeMaker to current, and installed a
module that should not have been there (which kinda defeats the point
of the exercise).

I did find I could install IPC::Run 0.79, which matches prairiedog's
version of that module:

$ cpanm install IPC::Run@0.79
install is up to date. (0.01)
! Finding IPC::Run (== 0.79) on cpanmetadb failed.
--> Working on IPC::Run
Fetching http://cpan.metacpan.org/authors/id/R/RS/RSOD/IPC-Run-0.79.tar.gz ... OK
Configuring IPC-Run-0.79 ... OK
Building and testing IPC-Run-0.79 ... OK
Successfully installed IPC-Run-0.79
1 distribution installed

However, this just reflects the fact that prairiedog's installation
is itself a bit Frankensteinan.  What it has for Test::More and
IPC::Run are just the oldest versions I could find on CPAN back in
2017 when I built that installation.  I can't claim that they have
any historical relevance.  They are, however, a lot more likely to
still be duplicatable from current CPAN than actually-old versions.

So while this recipe is a lot more useful than I thought, it can't
entirely reproduce the Perl environment of older buildfarm members.
I think we really ought to document that.  I also think it is
useful to explicitly state the policy and then give this recipe
as one way to (partially) test against the policy.

            regards, tom lane



pgsql-hackers by date:

Previous
From: Fujii Masao
Date:
Subject: Re: pgbench bug candidate: negative "initial connection time"
Next
From: Tom Lane
Date:
Subject: Re: Time to upgrade buildfarm coverage for some EOL'd OSes?