meson "experimental"?
In installation.sgml it says
"""
Alternatively, PostgreSQL can be built using Meson. This is currently
experimental.
"""
Do we want to alter this statement for PG17, considering that this is
now the only way to build for Windows using MSVC?
(A joke response is that the Windows port itself is experimental, so it
doesn't matter much that the build system for it is as well.)
I would still call Meson use on non-Windows platforms experimental at
this time.
So maybe something like
"Alternatively, PostgreSQL can be built using Meson. This is the only
option for building PostgreSQL in Windows using Visual Something[*].
For other platforms, using Meson is currently experimental."
[*] What is the correct name for this?
Hi.
"Alternatively, PostgreSQL can be built using Meson. This is the only
option for building PostgreSQL in Windows using Visual Something[*].
For other platforms, using Meson is currently experimental."
+1 good catch
[*] What is the correct name for this?
I believe in this section it should be "Visual Studio" as we specify
elsewhere [1]https://www.postgresql.org/docs/devel/install-meson.html[2]https://www.postgresql.org/docs/devel/installation-platform-notes.html. In [2]https://www.postgresql.org/docs/devel/installation-platform-notes.html we name specific required versions. Maybe we
should reference this section.
While on it, in [2]https://www.postgresql.org/docs/devel/installation-platform-notes.html section 17.7.5 is named "Visual". I don't think
such a product exists and find it confusing. Maybe we should rename
the section to "Visual Studio".
Also I don't see any mention of the minimum required version of Ninja.
I think we should add it too, or maybe reference the corresponding
section I couldn't find in "17.1 Requirements"
[1]: https://www.postgresql.org/docs/devel/install-meson.html
[2]: https://www.postgresql.org/docs/devel/installation-platform-notes.html
--
Best regards,
Aleksander Alekseev
Hi,
[*] What is the correct name for this?
I believe in this section it should be "Visual Studio" as we specify
elsewhere [1][2]. In [2] we name specific required versions. Maybe we
should reference this section.While on it, in [2] section 17.7.5 is named "Visual". I don't think
such a product exists and find it confusing. Maybe we should rename
the section to "Visual Studio".
Here are corresponding patches.
Also I don't see any mention of the minimum required version of Ninja.
I think we should add it too, or maybe reference the corresponding
section I couldn't find in "17.1 Requirements"[1]: https://www.postgresql.org/docs/devel/install-meson.html
[2]: https://www.postgresql.org/docs/devel/installation-platform-notes.html
By a quick look on the buildfarm we seem to use Ninja >= 1.11.1.
However since Meson can use both Ninja and VS as a backend I'm not
certain which section would be most appropriate for naming the minimal
required version of Ninja.
--
Best regards,
Aleksander Alekseev
Attachments:
v1-0001-Meson-is-not-experimental-on-Windows.patchapplication/octet-stream; name=v1-0001-Meson-is-not-experimental-on-Windows.patchDownload
From db3a111683e96b1f6b87e7026a800e82dfe1e1a7 Mon Sep 17 00:00:00 2001
From: Aleksander Alekseev <aleksander@timescale.com>
Date: Thu, 30 May 2024 13:18:55 +0300
Subject: [PATCH v1 1/2] Meson is not experimental on Windows
---
doc/src/sgml/installation.sgml | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml
index 1b32d5ca62..695ff4f41e 100644
--- a/doc/src/sgml/installation.sgml
+++ b/doc/src/sgml/installation.sgml
@@ -55,9 +55,11 @@
</indexterm>
Alternatively, <productname>PostgreSQL</productname> can be built using
- <ulink url="https://mesonbuild.com/">Meson</ulink>. This is currently
- experimental. If you choose to use
- <application>Meson</application>, then you don't need
+ <ulink url="https://mesonbuild.com/">Meson</ulink>. This is the only
+ option for building <productname>PostgreSQL</productname> on Windows
+ using <productname>Visual Studio</productname>. For other platforms,
+ using <application>Meson</application> is currently experimental.
+ If you choose to use <application>Meson</application>, then you don't need
<acronym>GNU</acronym> <application>make</application>, but the other
requirements below still apply.
</para>
--
2.45.0
v1-0002-Rename-section-17.7.5-to-Visual-Studio.patchapplication/octet-stream; name=v1-0002-Rename-section-17.7.5-to-Visual-Studio.patchDownload
From 5336c2f69160d2a04f97c96fab6749c2a007dd5a Mon Sep 17 00:00:00 2001
From: Aleksander Alekseev <aleksander@timescale.com>
Date: Thu, 30 May 2024 13:19:56 +0300
Subject: [PATCH v1 2/2] Rename section 17.7.5 to Visual Studio
---
doc/src/sgml/installation.sgml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml
index 695ff4f41e..0a0e0b5cba 100644
--- a/doc/src/sgml/installation.sgml
+++ b/doc/src/sgml/installation.sgml
@@ -3784,10 +3784,10 @@ make: *** [postgres] Error 1
</sect2>
<sect2 id="installation-notes-visual">
- <title>Visual</title>
+ <title>Visual Studio</title>
<indexterm zone="installation-notes-visual">
- <primary>Visual</primary>
+ <primary>Visual Studio</primary>
<secondary>installation on</secondary>
</indexterm>
--
2.45.0
On Thu, May 30, 2024 at 6:32 AM Aleksander Alekseev <
aleksander@timescale.com> wrote:
By a quick look on the buildfarm we seem to use Ninja >= 1.11.1.
However since Meson can use both Ninja and VS as a backend I'm not
certain which section would be most appropriate for naming the minimal
required version of Ninja.
When I tried building with the VS backend it blew up, I don't recall the
details. I think we should just use ninja everywhere. That keeps things
simple. On Windows I just install python and then do "pip install meson
ninja"
cheers
andrew
Hi,
By a quick look on the buildfarm we seem to use Ninja >= 1.11.1.
However since Meson can use both Ninja and VS as a backend I'm not
certain which section would be most appropriate for naming the minimal
required version of Ninja.When I tried building with the VS backend it blew up, I don't recall the details. I think we should just use ninja everywhere. That keeps things simple. On Windows I just install python and then do "pip install meson ninja"
If we know that it doesn't work I suggest removing mention of
--backend option from [1]https://www.postgresql.org/docs/devel/install-meson.html until it will, in order to avoid any
confusion.
[1]: https://www.postgresql.org/docs/devel/install-meson.html
--
Best regards,
Aleksander Alekseev
Hi,
On May 30, 2024 8:03:33 AM PDT, Andrew Dunstan <andrew@dunslane.net> wrote:
On Thu, May 30, 2024 at 6:32 AM Aleksander Alekseev <
aleksander@timescale.com> wrote:By a quick look on the buildfarm we seem to use Ninja >= 1.11.1.
However since Meson can use both Ninja and VS as a backend I'm not
certain which section would be most appropriate for naming the minimal
required version of Ninja.When I tried building with the VS backend it blew up, I don't recall the
details. I think we should just use ninja everywhere. That keeps things
simple.
VS should work, and if not, we should fix it. It's slow, so I'd not use it for scheduled builds, but for people developing using visual studio.
Andres
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.
Hi,
VS should work, and if not, we should fix it. It's slow, so I'd not use it for scheduled builds, but for people developing using visual studio.
Since no one complained, should we assume that there are actually no
such people? If this is the case then VS arguably doesn't give any
value that would make it worth maintaining.
--
Best regards,
Aleksander Alekseev
On Wed, May 29, 2024 at 2:41 AM Peter Eisentraut <peter@eisentraut.org> wrote:
"Alternatively, PostgreSQL can be built using Meson. This is the only
option for building PostgreSQL in Windows using Visual Something[*].
For other platforms, using Meson is currently experimental."
Is it, though? I feel like we're beyond the experimental stage now.
--
Robert Haas
EDB: http://www.enterprisedb.com
On Tue, 4 Jun 2024 at 16:25, Robert Haas <robertmhaas@gmail.com> wrote:
On Wed, May 29, 2024 at 2:41 AM Peter Eisentraut <peter@eisentraut.org>
wrote:"Alternatively, PostgreSQL can be built using Meson. This is the only
option for building PostgreSQL in Windows using Visual Something[*].
For other platforms, using Meson is currently experimental."Is it, though? I feel like we're beyond the experimental stage now.
I clearly missed the discussion in which it was decided to remove the old
MSVC++ support from the tree (and am disappointed about that as I would
have objected loudly). Having recently started testing Meson on Windows
when I realised that change had been made, and having to update builds for
pgAdmin and the Windows installers, I think it's clear it's far more
experimental on that platform than it is on Linux at least.
--
Dave Page
pgAdmin: https://www.pgadmin.org
PostgreSQL: https://www.postgresql.org
EDB: https://www.enterprisedb.com
On 04/06/2024 18:28, Dave Page wrote:
I clearly missed the discussion in which it was decided to remove the
old MSVC++ support from the tree (and am disappointed about that as I
would have objected loudly). Having recently started testing Meson on
Windows when I realised that change had been made, and having to update
builds for pgAdmin and the Windows installers, I think it's clear it's
far more experimental on that platform than it is on Linux at least.
What kind of issues did you run into? Have they been fixed since?
--
Heikki Linnakangas
Neon (https://neon.tech)
On 04.06.24 17:24, Robert Haas wrote:
On Wed, May 29, 2024 at 2:41 AM Peter Eisentraut <peter@eisentraut.org> wrote:
"Alternatively, PostgreSQL can be built using Meson. This is the only
option for building PostgreSQL in Windows using Visual Something[*].
For other platforms, using Meson is currently experimental."Is it, though? I feel like we're beyond the experimental stage now.
Experimental is probably too harsh a word now.
But it doesn't have feature parity with configure/make yet (for example,
no .bc files), so I wouldn't recommend it for production or packaging
builds.
Then, there are issues like [0]/messages/by-id/49e97fd0-c17e-4cbc-aeee-80ac51400736@eisentraut.org. If it's experimental, then this is
like, meh, we'll fix it later. If not, then it's a bug.
More generally, I don't think we've really done a comprehensive check of
how popular extensions build against pgxs-from-meson. Packagers that
make their production builds using meson now might be signing up for a
long tail of the unknown.
[0]: /messages/by-id/49e97fd0-c17e-4cbc-aeee-80ac51400736@eisentraut.org
/messages/by-id/49e97fd0-c17e-4cbc-aeee-80ac51400736@eisentraut.org
On Tue, Jun 4, 2024 at 12:56 PM Peter Eisentraut <peter@eisentraut.org> wrote:
Experimental is probably too harsh a word now.
But it doesn't have feature parity with configure/make yet (for example,
no .bc files), so I wouldn't recommend it for production or packaging
builds.
That's unfortunate. :-(
Then, there are issues like [0]. If it's experimental, then this is
like, meh, we'll fix it later. If not, then it's a bug.
This feels like a case where I'd have to read the entire thread to
understand what the issue is.
More generally, I don't think we've really done a comprehensive check of
how popular extensions build against pgxs-from-meson. Packagers that
make their production builds using meson now might be signing up for a
long tail of the unknown.
That's a fair point, and I don't know what to do about it, but it
seems like something that needs to be addressed.
--
Robert Haas
EDB: http://www.enterprisedb.com
Hi
On Tue, 4 Jun 2024 at 17:36, Heikki Linnakangas <hlinnaka@iki.fi> wrote:
On 04/06/2024 18:28, Dave Page wrote:
I clearly missed the discussion in which it was decided to remove the
old MSVC++ support from the tree (and am disappointed about that as I
would have objected loudly). Having recently started testing Meson on
Windows when I realised that change had been made, and having to update
builds for pgAdmin and the Windows installers, I think it's clear it's
far more experimental on that platform than it is on Linux at least.What kind of issues did you run into? Have they been fixed since?
zlib detection (
/messages/by-id/CA+OCxozrPZx57ue8rmhq6CD1Jic5uqKh80=vTpZurSKESn-dkw@mail.gmail.com)
for which Nazir worked up an as-yet-uncommitted patch.
uuid detection, which Andrew fixed.
I also ran into an issue in which the build fails if both gssapi and
openssl are enabled, but it turns out that's a code issue that affects at
least v16 with the old build system as well.
--
Dave Page
pgAdmin: https://www.pgadmin.org
PostgreSQL: https://www.postgresql.org
EDB: https://www.enterprisedb.com
On Thu, May 30, 2024 at 01:32:18PM +0300, Aleksander Alekseev wrote:
[*] What is the correct name for this?
I believe in this section it should be "Visual Studio" as we specify
elsewhere [1][2]. In [2] we name specific required versions. Maybe we
should reference this section.While on it, in [2] section 17.7.5 is named "Visual". I don't think
such a product exists and find it confusing. Maybe we should rename
the section to "Visual Studio".
Agreed. I've pushed your patch for that:
Here are corresponding patches.
The <sect2> ID is new in v17, so I also renamed it like
s/installation-notes-visual/installation-notes-visual-studio/.
(I didn't examine or push your other patch, which was about $SUBJECT.)
Hi,
Agreed. I've pushed your patch for that:
Here are corresponding patches.
The <sect2> ID is new in v17, so I also renamed it like
s/installation-notes-visual/installation-notes-visual-studio/.(I didn't examine or push your other patch, which was about $SUBJECT.)
Thanks. Re-attaching 0001 and adding it to the nearest CF to make it
visible on cfbot.
--
Best regards,
Aleksander Alekseev
Attachments:
v1-0001-Meson-is-not-experimental-on-Windows.patchapplication/octet-stream; name=v1-0001-Meson-is-not-experimental-on-Windows.patchDownload
From db3a111683e96b1f6b87e7026a800e82dfe1e1a7 Mon Sep 17 00:00:00 2001
From: Aleksander Alekseev <aleksander@timescale.com>
Date: Thu, 30 May 2024 13:18:55 +0300
Subject: [PATCH v1 1/2] Meson is not experimental on Windows
---
doc/src/sgml/installation.sgml | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml
index 1b32d5ca62..695ff4f41e 100644
--- a/doc/src/sgml/installation.sgml
+++ b/doc/src/sgml/installation.sgml
@@ -55,9 +55,11 @@
</indexterm>
Alternatively, <productname>PostgreSQL</productname> can be built using
- <ulink url="https://mesonbuild.com/">Meson</ulink>. This is currently
- experimental. If you choose to use
- <application>Meson</application>, then you don't need
+ <ulink url="https://mesonbuild.com/">Meson</ulink>. This is the only
+ option for building <productname>PostgreSQL</productname> on Windows
+ using <productname>Visual Studio</productname>. For other platforms,
+ using <application>Meson</application> is currently experimental.
+ If you choose to use <application>Meson</application>, then you don't need
<acronym>GNU</acronym> <application>make</application>, but the other
requirements below still apply.
</para>
--
2.45.0
On 05.08.24 15:48, Aleksander Alekseev wrote:
Hi,
Agreed. I've pushed your patch for that:
Here are corresponding patches.
The <sect2> ID is new in v17, so I also renamed it like
s/installation-notes-visual/installation-notes-visual-studio/.(I didn't examine or push your other patch, which was about $SUBJECT.)
Thanks. Re-attaching 0001 and adding it to the nearest CF to make it
visible on cfbot.
committed