Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kcgpk-0000vE-4k for pgsql-pkg-yum@arkaria.postgresql.org; Wed, 11 Nov 2020 03:30:08 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kcgpj-00058d-4y for pgsql-pkg-yum@arkaria.postgresql.org; Wed, 11 Nov 2020 03:30:07 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kcgpi-00058W-Qi for pgsql-pkg-yum@lists.postgresql.org; Wed, 11 Nov 2020 03:30:07 +0000 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1kcgpe-0004dr-AD for pgsql-pkg-yum@postgresql.org; Wed, 11 Nov 2020 03:30:06 +0000 Received: by mail-wr1-x42d.google.com with SMTP id l1so1119062wrb.9 for ; Tue, 10 Nov 2020 19:30:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=8fcZG8OkBqWV29M/eMAogbrWxqYPTxPscaMBCk32w5w=; b=Q0QPGcsOq8x3zRAM/lG/RGm+7yaCbRKKaZ7ICLLX7eUsepVEdDaOjrPYGsC/tKMvDc HX2cRYovndlPy8p27bVmVUVxEXz08aa6rmU1kjqaRiRskrqfxKqHrWHhHy9zV48RGpyY Ky+Ar5SgSMEh3dlP1MJKGPPfoeXlYu3KYX1G3rPSmbuBXZUzT65hLk+kPt94HOSunVuZ IGECVT712r5sS8kxj3p5hpF1ZDuY/xDnUYk/F/RyyVPLiP/hgtTH8AEKgBVvkWFDvPjV a/ecvjTfs8FvcUtrSbtpWrlWWn6T+ahfjyOEIKOMhOj5bIKsq4gW3zwtps2nTPqdgueR dSoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=8fcZG8OkBqWV29M/eMAogbrWxqYPTxPscaMBCk32w5w=; b=n3ZvK/1PVnsQ9I35eMtyUWi5jwLMKvq0aIs9W9XqYYyNTWMF952jrGJOYRnpYFcZgj mjjaGGOQPAmglwcKWZfFnsOg5alWXc1izEay9i/o5n0K5LH8aAWHgjSlYMONNlVRuaxL WLYyp193hCZyDpSDtKj6nW3Mij5718kszjyNF7GKtKGm8CYFTt2XzIVcSpheKi+FqlD5 JWMw8NrbRQpVIFMOxDk/67m0fi+6fz90DoJJZB/zq6YoxPvy4CJEhRjntq+lBJbUjyMd 8nEIvaqPUBKzZssr4swF/ajebsawsXMZObI69umLapn4LzSxBSGcmX6SrxqfL5NEL0Xq 3azg== X-Gm-Message-State: AOAM531CATFmCYtO+ip96/9d6RRCBm6rAE8YiC2ZnQxd5LuykyPt/RSn G1d9Fbr9DJtWs2Pwg0vEA2KNLGTAn6cG/L09FMUafyVBJ089kAaT9CbPlj667/M2ch/11BfWjrn ojIP3Zic5qOckzFjv8Cn0o0J9Hv8IDaH8SUJhk8NMOG8MOTT7sM/zXOcUkweogBBlBVvwlfjlbr 3RY2eMy8RbLEHCL4QD6oNV30Pxcbsty12WuAMphebQlXo+FII74fP1vyh6+/P91d4= X-Google-Smtp-Source: ABdhPJzqcvPcBLmBmvZmc7urHsVNDAWw3HfcWQ0oZtft/xd3vqQpTTPbWCS2Z3uC5MqqTzXGpTfhuryDpdVSaYF8kdA= X-Received: by 2002:adf:f304:: with SMTP id i4mr14678981wro.268.1605065400635; Tue, 10 Nov 2020 19:30:00 -0800 (PST) MIME-Version: 1.0 References: <20201105190206.4358b61d@firost> <20201109114034.2cc8aab5@firost> <20201110145627.07954db0@firost> In-Reply-To: <20201110145627.07954db0@firost> From: Craig Ringer Date: Wed, 11 Nov 2020 11:29:49 +0800 Message-ID: Subject: Re: missing perl test modules in postgresqlXX-devel ? To: Jehan-Guillaume de Rorthais Cc: pgsql-pkg-yum@postgresql.org Content-Type: multipart/alternative; boundary="0000000000000bf8e705b3cc69ba" X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --0000000000000bf8e705b3cc69ba Content-Type: text/plain; charset="UTF-8" On Tue, Nov 10, 2020 at 9:56 PM Jehan-Guillaume de Rorthais wrote: > On Tue, 10 Nov 2020 13:57:22 +0800 > Craig Ringer wrote: > > > [...] > > > > so apparently the TAP tests aren't built/enabled for any RHEL/CentOS > > versions in -13. The same is true for 10 and up, at least. > > > > That's ... surprising. There's no comment to indicate why. > > > > Git logs suggest the cause is commit 511834297 "Disable tap tests on > RHEL > > 7" . I think the package in question is perl-Test-Simple a.k.a > > 'perl(Test::Simple)'. > > That's surprising. Grep'ing postgresql source doesn't catch anything about > Test::Simple. TAP tests in PostgreSQL sources rely on Test::More which is > part > of the official Perl core modules at least since 5.8.0... Do I miss > something? > Yep. Perl test frameworks are an insane messy tangle of WTFery, so it's not surprising. Test::More became part of Test::Simple at some point. When you "cpanm Test::More" you get "Test::Simple" installed: $ cpanm --test-only Test::More --> Working on Test::More Fetching http://www.cpan.org/authors/id/E/EX/EXODIST/Test-Simple-1.302183.tar.gz ... OK Configuring Test-Simple-1.302183 ... OK Building and testing Test-Simple-1.302183 ... Then there's this horrid tangle of Test2:: packages, TAP:: packages, and more all jumbled up into it. And now we're apparently supposed to transition to Test2::Suite instead, at some point, somehow... Anyway, we should probably be declaring Requires 'perl(Test::More)' instead of Requires perl-Test-Simple because that tells the package manager we're asking for a specific Perl module, rather than a specific package containing a Perl module. $ sudo dnf -y install 'perl(Test::More)' Package perl-Test-Simple-3:1.302174-1.fc32.noarch is already installed. Dependencies resolved. Nothing to do. This is true on centos7 too: $ docker run -t centos:7 yum -y install 'perl(Test::More)' ... ---> Package perl-Test-Simple.noarch 0:0.98-243.el7 will be installed ... Installed: perl-Test-Simple.noarch 0:0.98-243.el7 but I'm not sure about RHEL7 official. > It looks like the test should be updated to enable them for RHEL 8 at > least. > > > > I don't really feel like wrestling builds for an obsolete OS version to > get > > these packaged for EL-7 though. > > EL7 is still very popular. A lot of new upgrade/packages are still going to > EL7, at least for maintenance. > Yep. I know, I maintain some. But I don't have nearly enough clones to do everything I want to do, so some things have to slip. Would you mind firing up a RHEL7 AWS EC2 instance and checking if yum -y install 'perl(Test::More)' runs? If so, we can probably restore the dependency, and then restore --enable-tap-tests support. Alternatively we might be able to build with --enable-tap-tests and make 'perl(Test::More)' a build-time-only dependency when built on EL7. This means that TAP test running would have an undeclared dependency that won't actually work on EL7 without a separate package install step, which kind of sucks. But so long as it doesn't break other functionality in Makefile.global it's probably actually OK. If EL7's yum and rpm aren't too stupid to cope, we can possibly use a Recommends: dependency for 'perl(Test::More)' there. I'd need you to run some tests on a real RHEL 7 VM or host if you want to pursue this. I can help but can't take this on right now. I'll be able to send you a toy specfile to use rpmbuilds commands with to check things. --0000000000000bf8e705b3cc69ba Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Tue, Nov 10, 2020 at 9:56 PM Jehan-Gui= llaume de Rorthais <jgdr@dalibo.com> wrote:
On Tue, 10 Nov 2020 13:57:22 +0800
Craig Ringer <
craig.ringer@enterprisedb.com> wrote:

> [...]
>
> so apparently the TAP tests aren't built/enabled for any RHEL/Cent= OS
> versions in -13. The same is true for 10 and up, at least.
>
> That's ... surprising. There's no comment to indicate why.
>
> Git logs suggest the cause is commit 511834297 "Disable tap tests= =C2=A0 on RHEL
> 7" . I think the package in question is perl-Test-Simple a.k.a > 'perl(Test::Simple)'.

That's surprising. Grep'ing postgresql source doesn't catch any= thing about
Test::Simple. TAP tests in PostgreSQL sources rely on Test::More which is p= art
of the official Perl core modules at least since 5.8.0... Do I miss somethi= ng?

Yep.

Perl = test frameworks are an insane messy tangle of WTFery, so it's not surpr= ising.

Test::More became part of Test::Simple at s= ome point. When you "cpanm Test::More" you get "Test::Simple= " installed:

$ cpanm --test-only Test::More--> Working on Test::More
Fetching http://www.cpan.org/aut= hors/id/E/EX/EXODIST/Test-Simple-1.302183.tar.gz ... OK
Configuring = Test-Simple-1.302183 ... OK
Building and testing Test-Simple-1.302183 ..= .

Then there's this horrid tangle of= Test2:: packages, TAP:: packages, and more all jumbled up into it. And now= we're apparently supposed to transition to Test2::Suite instead, at so= me point, somehow...

Anyway, we should proba= bly be declaring

=C2=A0=C2=A0=C2=A0 Requires '= perl(Test::More)'

instead of

=C2=A0=C2=A0=C2=A0 Requires perl-Test-Simple

because that tells the package manager we're asking for a specific P= erl module, rather than a specific package containing a Perl module.
<= div>
$ sudo dnf -y install 'perl(Test::More)'
Pack= age perl-Test-Simple-3:1.302174-1.fc32.noarch is already installed.
Depe= ndencies resolved.
Nothing to do.

This is true = on centos7 too:

$ docker run -t centos:7 yum -y in= stall 'perl(Test::More)'
...
---> Package pe= rl-Test-Simple.noarch 0:0.98-243.el7 will be installed
...
<= div>Installed:
=C2=A0 perl-Test-Simple.noarch 0:0.98-243.el7 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0

but I'm not sure about RHEL7 official.
<= /div>

> It looks like the test should be updated to enable them for RHEL 8 at = least.
>
> I don't really feel like wrestling builds for an obsolete OS versi= on to get
> these packaged for EL-7 though.

EL7 is still very popular. A lot of new upgrade/packages are still going to=
EL7, at least for maintenance.

Yep.

I know, I maintain some. But I don't have nearly = enough clones to do everything I want to do, so some things have to slip.

Would you mind firing up a RHEL7 AWS EC2 instance a= nd checking if

=C2=A0=C2=A0=C2=A0 yum -y install &= #39;perl(Test::More)'

runs?

If so, we can probably restore the dependency, and then restore --en= able-tap-tests support.

Alternatively we might be = able to build with --enable-tap-tests and make 'perl(Test::More)' a= build-time-only dependency when built on EL7. This means that TAP test run= ning would have an undeclared dependency that won't actually work on EL= 7 without a separate package install step, which kind of sucks. But so long= as it doesn't break other functionality in Makefile.global it's pr= obably actually OK.

If EL7's yum and rpm aren&= #39;t too stupid to cope, we can possibly use a Recommends: dependency for = 'perl(Test::More)' there.

I'd need you= to run some tests on a real RHEL 7 VM or host if you want to pursue this. = I can help but can't take this on right now. I'll be able to send y= ou a toy specfile to use rpmbuilds commands with to check things.
=

--0000000000000bf8e705b3cc69ba--