[MASSMAIL]Silence Meson warning on HEAD - Mailing list pgsql-hackers

From Tristan Partin
Subject [MASSMAIL]Silence Meson warning on HEAD
Date
Msg-id D096Q3NFFVH1.1T5RE4MOO9ZFH@neon.tech
Whole thread Raw
Responses Re: Silence Meson warning on HEAD
Re: Silence Meson warning on HEAD
List pgsql-hackers
A warning was recently[0] introduced into the Meson build:

WARNING: Project targets '>=0.54' but uses feature introduced in '0.55.0': Passing executable/found program object to
scriptparameter of add_dist_script 

There are 3 way to solve the issue that I have laid out in 3 separate
patches that you pick at your leisure:

1. version-check.diff

Wrap the offending line in a Meson version check.

2. perl-string.diff

Pass the perl program as a string via its .path() method.

3. meson-bump.diff

Bump the minimum meson version from 0.54 to 0.55, at least.

I chose to do some analysis on option 3. The other 2 options are
perfectly valid. I looked at all the systems in the buildfarm, and found
the following results:

First column is the list of systems we test HEAD against in the
buildfarm. Second column is the Meson version available to those
systems, based on what I could find. Third column is whether or not we
test Meson on that system.

System                                       Meson Version  Tested
AlmaLinux 8                                  0.58.2
AlmaLinux 9                                  0.63.3
Alpine Linux 3.19.1                          1.3.0
Amazon Linux 2                               0.55.1
Amazon Linux 2023                            0.62.2
ArchLinux                                    1.4.0
CentOS 7                                     0.55.1
CentOS 7.1                                   0.55.1
CentOS 7.4                                   0.55.1
CentOS 7.9.2009                              0.55.1
CentOS Stream 8                              0.58.2
Debian 10                                    0.56.1
Debian 11                                    0.56.2
Debian 11.5                                  0.56.2
Debian 12                                    1.0.1
Debian 7.0
Debian 8.11
Debian 9
Debian 9.3
Debian unstable                              1.4.0          x
DragonFly BSD 6.2.2                          0.63.2
Fedora 38                                    1.0.1
Fedora 39                                    1.3.2          x
Fedora 40                                    1.3.2
FreeBSD 12.2
FreeBSD 13.1                                 0.57.1
FreeBSD 14                                   1.4.0
Loongnix-Server 8.4.0
macOS 13.6
macOS 14.0
macOS 14.0 / MacPorts                        1.4.0
macOS 14.3                                   1.4.0          x
NetBSD 10.0                                  1.2.3
NetBSD 9.2                                   1.2.3
OmniOS / illumos r151038
OpenBSD 6.8
OpenBSD 6.9
OpenBSD 7.3
OpenBSD 7.4                                  1.2.1
OpenIndiana/illumos hipster rolling release  1.4.0
openSUSE 15.0                                0.46.0
openSUSE 15.3                                0.54.2
Oracle Linux 9                               0.63.3
Photon 2.0
Photon 3.0
Raspbian 7.8                                 0.56.2
Raspbian 8.0                                 1.0.1
Red Hat Enterprise Linux 7                   0.55.1
Red Hat Enterprise Linux 7.1                 0.55.1
Red Hat Enterprise Linux 7.9                 0.55.1
Red Hat Enterprise Linux 9.2                 0.63.3
Solaris 11.4.42 CBE                          0.59.2
SUSE Linux Enterprise Server 12 SP5
SUSE Linux Enterprise Server 15 SP2
Ubuntu 16.04                                 0.40.1
Ubuntu 16.04.3                               0.40.1
Ubuntu 18.04                                 0.45.1
Ubuntu 18.04.5                               0.45.1
Ubuntu 20.04.6                               0.53.2
Ubuntu 22.04.1                               0.61.2
Ubuntu 22.04.3                               0.61.2
Windows 10 / Cygwin64 3.4.9                  1.2.3
Windows / Msys 12.2.0                        1.4.0          x
Windows Server 2016                          1.3.1          x
Windows Server 2019                          1.0.1          x

Some notes:

- The minimum Meson version we test against is 1.0.1, on drongo
- For any  RHEL 7 derivatives, you see, I took the EPEL Meson version
- Debian 10 requires the backports repository to be enabled
- OmniOS / illumos r151038 has Python 3.9, so could fetch Meson over
  pypi since it isn't packaged
- Missing information on OpenBSD 6.8, 6.9, and 7.3, but they should have
  at least 0.55.0 available based on release dates
- The missing macOS versions could definitely run 0.55 either through
  Homebrew, Macports, or PyPI
- Other systems didn't have easily publicly available information

At the top of the root meson.build file, there is this comment:

> # We want < 0.56 for python 3.5 compatibility on old platforms. EPEL for
> # RHEL 7 has 0.55. < 0.54 would require replacing some uses of the fs
> # module, < 0.53 all uses of fs. So far there's no need to go to >=0.56.

Seems like as good an opportunity to bump Meson to 0.56 for Postgres 17,
which I have found to exist in the EPEL for RHEL 7. I don't know what
version exists in the base repo. Perhaps it is 0.55, which would still
get rid of the aforementioned warning.

Committer, please pick your patch :).

[0]: https://www.postgresql.org/message-id/40e80f77-a294-4f29-a16f-e21bc7bc75fc@eisentraut.org

--
Tristan Partin
Neon (https://neon.tech)

Attachment

pgsql-hackers by date:

Previous
From: David Rowley
Date:
Subject: Re: Why is parula failing?
Next
From: Andrew Dunstan
Date:
Subject: Re: WIP Incremental JSON Parser