Re: meson documentation build open issues
Andres Freund <andres@anarazel.de>
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
Commits
-
docs: meson: Change what 'docs' target builds
- 9e5b2a091fd0 17.0 landed
-
meson: Add 'world' target
- 6614cfb43c82 17.0 landed
-
meson: Document build targets, add 'help' target
- 07cb29737a4e 17.0 landed
-
meson: docs: Add {html,man} targets, rename install-doc-*
- ddcab2a03295 17.0 landed
-
docs: Document --with-selinux/-Dselinux options centrally
- 06c70849fb26 17.0 landed
-
meson: Change default of 'selinux' feature option to auto
- c04f3de3dca3 17.0 landed
-
meson: Fix doc installation path computation
- 7b8399819b9b 17.0 landed
-
meson: Install missing example files
- b630d9d6c82a 17.0 landed
-
meson: docs: Install all manpages, not just ones in man1
- f646ac672567 16.1 landed
- a237a07d5351 17.0 landed
-
meson: docs: Allow configuring simple/website style
- 9d2a464a0484 16.0 landed
-
docs: html: load stylesheet via custom.css.source
- b8059bdf1ef8 16.0 landed
-
docs: html: copy images to output as part of xslt build
- 0012979d989f 16.0 landed
-
meson: docs: Preparatory cleanups
- 0ba827ecfc67 16.0 landed
-
docs: Remove support for 'htmlhelp' format
- d75c7fbaf94e 16.0 landed
-
meson: add install-{docs,doc-html,doc-man} targets
- f13eb16485fe 16.0 landed
-
meson: add install-{quiet, world} targets
- e522049f2399 16.0 landed
-
meson: make install_test_files more generic, rename to install_files
- 614c5f5f52d5 16.0 landed
-
meson: rename html_help target to htmlhelp
- 7730ceb43fe5 16.0 landed