Re: meson documentation build open issues

From: Andres Freund <andres(at)anarazel(dot)de>
To: Christoph Berg <myon(at)debian(dot)org>, Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>, Andrew Dunstan <andrew(at)dunslane(dot)net>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: meson documentation build open issues
Date: 2023-11-03 16:38:48
Message-ID: 20231103163848.26egkh5qdgw3vmil@awork3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On 2023-11-03 15:26:05 +0100, Christoph Berg wrote:
> Re: Peter Eisentraut
> > > "meson compile" doesn't seem to build the docs by default ( see <https://buildfarm.postgresql.org/cgi-bin/show_stage_log.pl?nm=crake&dt=2023-04-06%2018%3A17%3A04&stg=build>),
> > > and I'd rather it didn't, building the docs is a separate and optional
> > > step for the buildfarm.
> >
> > You can control this with the "docs" option for meson, as of recently.
>
> I've been looking into switching the Debian PG 17 build to meson, but
> I'm running into several problems.
>
> * The docs are still not built by default, and -Ddocs=enabled doesn't
> change that

Maybe I am missing something - they aren't built by default in autoconf
either?

> * None of the "build docs" targets are documented in install-meson.html

Hm, odd, I thought they were, but you are right. There were some docs patches
that we never really could find agreement upon :/

> * "ninja -C build alldocs" works, but it's impossible to see what
> flavors it's actually building. Everything is autodetected, and
> perhaps I would like to no build the .txt/something variants,
> but I have no idea what switch that is, or what package I have to
> uninstall so it's not autodetected (only html and pdf are
> documented.)

I think a package build should probably turn off auto-detection (
meson setup --auto-features=disabled) and enable specific features that are
desired - in which case you get errors if they are not available. Which
presumably is the behaviour you'd like?

> Are there any other targets for the individual formats? (I could
> probably use one for the manpages only, without the html.)

Yes, there are.
ninja doc/src/sgml/{postgres-A4.pdf,html,postgres.html,man1}

Perhaps more interesting for your purposes, there are the
install-doc-{html,man} targets.

I remember discussing adding doc-{html,man} targets alongside
install-doc-{html,man}, not sure why we ended up not doing that. I'd be in
favor of adding them.

I've also been wondering about a 'help' target that documents important
targets in a interactively usable way.

> Non-doc issues:
>
> * LLVM is off by default (ok), when I enable it with -Dllvm=auto, it
> gets detected, but no .bc files are built, nor installed

Support for that has not yet been merged.

> * selinux is not autodetected. It needs -Dselinux=auto, but that's not
> documented in install-meson.html

Uh, huh. There's no documentation for --with-selinux in the installation.sgml
either, just in sepgsql.sgml. So when the relevant docs got translated to
meson, -Dselinux= wasn't documented either.

> * There is no split between libdir and pkglibdir. We had used that in
> the past for libpq -> /usr/lib/x86_64-linux-gnu and PG stuff ->
> /usr/lib/postgresql/17/lib.

I don't think the autoconf build currently exposes separately configuring
pkglibdir either, I think that's a debian patch? I'm entirely open to adding
an explicit configuration option for this though.

Thanks for looking at this, it's quite helpful!

Greetings,

Andres Freund

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tomas Vondra 2023-11-03 16:43:26 Re: MergeJoin beats HashJoin in the case of multiple hash clauses
Previous Message Jim Jones 2023-11-03 16:14:47 Re: [PATCH] Add XMLText function (SQL/XML X038)