Re: Documentation for building with meson

From: Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>
To: samay sharma <smilingsamay(at)gmail(dot)com>, Andres Freund <andres(at)anarazel(dot)de>
Cc: Justin Pryzby <pryzby(at)telsasoft(dot)com>, Nazir Bilal Yavuz <byavuz81(at)gmail(dot)com>, John Naylor <john(dot)naylor(at)enterprisedb(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Documentation for building with meson
Date: 2023-03-15 11:28:36
Message-ID: 0517adcd-4fea-f20d-0a74-31f75627138e@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> [PATCH v8 1/5] Make minor additions and corrections to meson docs

The last hunk revealed that there is some mixing up between meson setup
and meson configure. This goes a bit further. For example, earlier it
says that to get a list of meson setup options, call meson configure
--help and look at https://mesonbuild.com/Commands.html#configure, which
are both wrong. Also later throughout the text it uses one or the
other. I think this has the potential to be very confusing, and we
should clean this up carefully.

The text about additional meson test options maybe should go into the
regress.sgml chapter?

> [PATCH v8 2/5] Add data layout options sub-section in installation
docs

This makes sense. Please double check your patch for correct title
casing, vertical spacing of XML, to keep everything looking consistent.

This text isn't yours, but since your patch emphasizes it, I wonder if
it could use some clarification:

+ These options affect how PostgreSQL lays out data on disk.
+ Note that changing these breaks on-disk database compatibility,
+ meaning you cannot use <command>pg_upgrade</command> to upgrade to
+ a build with different values of these options.

This isn't really correct. What breaking on-disk compatibility means is
that you can't use a server compiled one way with a data directory
initialized by binaries compiled another way. pg_upgrade may well have
the ability to upgrade between one or the other; that's up to pg_upgrade
to figure out but not an intrinsic property. (I wonder why pg_upgrade
cares about the WAL block size.)

> [PATCH v8 3/5] Remove Anti-Features section from Installation from
source docs

Makes sense. But is "--disable-thread-safety" really a developer
feature? I think not.

> [PATCH v8 4/5] Re-organize Miscellaneous section

This moves the Miscellaneous section after Developer Features. I think
Developer Features should be last.

Maybe should remove this section and add the options to the regular
PostgreSQL Features section.

Also consider the grouping in meson_options.txt, which is slightly
different yet.

> [PATCH v8 5/5] Change Short Version for meson installation guide

+# create working directory
+mkdir postgres
+cd postgres
+
+# fetch source code
+git clone https://git.postgresql.org/git/postgresql.git src

This comes after the "Getting the Source" section, so at this point they
already have the source and don't need to do "git clone" etc. again.

+# setup and enter build directory (done only first time)
+## Unix based platforms
+meson setup build src --prefix=$PWD/install
+
+## Windows
+meson setup build src --prefix=%cd%/install

Maybe some people work this way, but to me the directory structures you
create here are completely weird.

+# Initialize a new database
+../install/bin/initdb -D ../data
+
+# Start database
+../install/bin/pg_ctl -D ../data/ -l logfile start
+
+# Connect to the database
+../install/bin/psql -d postgres

The terminology here needs to be tightened up. You are using "database"
here to mean three different things.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tomas Vondra 2023-03-15 12:00:22 Re: logical decoding and replication of sequences, take 2
Previous Message Juan José Santamaría Flecha 2023-03-15 11:18:25 Re: Fix fseek() detection of unseekable files on WIN32