Re: pgsql: Adjust configure to insist on Perl version >= 5.8.3.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Daniel Gustafsson <daniel(at)yesql(dot)se>
Cc: Noah Misch <noah(at)leadboat(dot)com>, Postgres hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Craig Ringer <craig(dot)ringer(at)enterprisedb(dot)com>
Subject: Re: pgsql: Adjust configure to insist on Perl version >= 5.8.3.
Date: 2021-10-08 16:03:41
Message-ID: 234637.1633709021@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

Daniel Gustafsson <daniel(at)yesql(dot)se> writes:
> On 8 Oct 2021, at 06:24, Noah Misch <noah(at)leadboat(dot)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(at)0(dot)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(at)0(dot)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

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Andrew Dunstan 2021-10-08 20:28:45 Re: pgsql: Reference test binary using TESTDIR in 001_libpq_pipeline.pl.
Previous Message Andrew Dunstan 2021-10-08 15:41:50 Re: pgsql: Reference test binary using TESTDIR in 001_libpq_pipeline.pl.

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2021-10-08 16:12:43 Re: Time to upgrade buildfarm coverage for some EOL'd OSes?
Previous Message Fujii Masao 2021-10-08 15:41:33 Re: pgbench bug candidate: negative "initial connection time"