Re: meson documentation build open issues
Christoph Berg <myon@debian.org>
Re: Andres Freund
> > > The reason for that is simply that the docs take too long to build.
> >
> > That why I'd prefer to be able to separate arch:all and arch:any
> > builds, yes.
>
> What's stopping you from doing that? I think the only arch:any content we
> have is the docs, and those you can build separately? Doc builds do trigger
> generation of a handful of files besides the docs, but not more.
Historically, .deb files have been required to contain the manpages
for all executables even when there's a separate -doc package. This
means we'd need a separate (hopefully fast) manpage build even when
the arch:any binaries are built. We might get around that by
introducing a new postgresql-manpages-XX arch:all package, but that
might be too much micropackaging.
The install-doc-man target will likely fix it, will play with it a bit
more, thanks.
> > > I'm working on merging it. Having it for core PG isn't a huge difficulty, the
> > > extension story is what's been holding me back...
> >
> > In-core extensions or external ones?
>
> Both, although the difficulty of doing it is somewhat separate for each.
I'd think most external extensions could stay with pgxs.mk for the
time being.
> + <varlistentry id="configure-with-sepgsql-meson">
> + <term><option>-Dselinux={ disabled | auto | enabled }</option></term>
> + <listitem>
> + <para>
> + Build with selinux support, enabling the <xref linkend="sepgsql"/>
> + extension.
This option defaults to ... auto?
> index 90e2c062fa8..003b57498bb 100644
> --- a/doc/src/sgml/meson.build
> +++ b/doc/src/sgml/meson.build
> @@ -142,6 +142,7 @@ if docs_dep.found()
> '--install-dir-contents', dir_doc_html, html],
> build_always_stale: true, build_by_default: false,
> )
> + alias_target('doc-html', install_doc_html)
> alias_target('install-doc-html', install_doc_html)
Shouldn't this just build the html docs, without installing?
> + alias_target('doc-man', install_doc_html)
> alias_target('install-doc-man', install_doc_man)
... same
> + <varlistentry id="meson-target-install-world">
> + <term><option>install-install-world</option></term>
install-world
> + <varlistentry id="meson-target-install-doc-man">
> + <term><option>install-doc-html</option></term>
> + <listitem>
> + <para>
> + Install documentation in man page format.
install-doc-man
> + <sect3 id="meson-targets-docs">
> + <title>Documentation Targets</title>
> + <varlistentry id="meson-target-docs">
> + <term><option>docs</option></term>
> + <term><option>doc-html</option></term>
> + <listitem>
> + <para>
> + Build documentation in multi-page HTML format. Note that
> + <option>docs</option> does <emphasis>not</emphasis> include building
> + man page documentation, as man page generation seldom fails when
> + building HTML documentation succeeds.
Why is that a reason for not building the manpages?
> + <sect3 id="meson-targets-code">
> + <title>Code Targets</title>
I would have expected the sections to be in the order
build-docs-install. Having install first seems weird to me.
> + <sect3 id="meson-targets-other">
> + <title>Other Targets</title>
> +
> + <variablelist>
> +
> + <varlistentry id="meson-target-clean">
> + <term><option>clean</option></term>
> + <listitem>
> + <para>
> + Remove all build products
> + </para>
> + </listitem>
> + </varlistentry>
> +
> + <varlistentry id="meson-target-test">
> + <term><option>test</option></term>
> + <listitem>
> + <para>
> + Remove all enabled tests. Support for some classes of tests can be
> + enabled / disabled with <xref linkend="configure-tap-tests-meson"/>
> + and <xref linkend="configure-pg-test-extra-meson"/>.
This should explicitly say if contrib tests are included (or there
needs to be a separate test-world target.)
> Subject: [PATCH v1 5/5] meson: Add -Dpkglibdir option
Will give that a try, thanks!
Christoph
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