Thread: pgsql: meson: docs: Add {html,man} targets, rename install-doc-*
meson: docs: Add {html,man} targets, rename install-doc-* We have toplevel html, man targets in the autoconf build as well. It'd be odd to have an 'html' target but have the install target be 'install-doc-html', thus rename the install targets to match. Reviewed-by: Christoph Berg <myon@debian.org> Reviewed-by: Peter Eisentraut <peter@eisentraut.org> Discussion: https://postgr.es/m/20231103163848.26egkh5qdgw3vmil@awork3.anarazel.de Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/ddcab2a0329511e8872b62f2c77e5fa33547c277 Modified Files -------------- doc/src/sgml/meson.build | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
On 2023-11-20 Mo 20:53, Andres Freund wrote:
meson: docs: Add {html,man} targets, rename install-doc-* We have toplevel html, man targets in the autoconf build as well. It'd be odd to have an 'html' target but have the install target be 'install-doc-html', thus rename the install targets to match.
This commit of one of its nearby friends appears to have broken crake's docs build:
ERROR: Can't invoke target `html`: ambiguous name.Add target type and/or path: - ./doc/src/sgml/html:custom - ./doc/src/sgml/html:alias See <https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=crake&dt=2023-11-23%2012%3A52%3A04> cheers andrew
-- Andrew Dunstan EDB: https://www.enterprisedb.com
On 2023-11-23 Th 08:32, Andrew Dunstan wrote:
On 2023-11-20 Mo 20:53, Andres Freund wrote:meson: docs: Add {html,man} targets, rename install-doc-* We have toplevel html, man targets in the autoconf build as well. It'd be odd to have an 'html' target but have the install target be 'install-doc-html', thus rename the install targets to match.
This commit of one of its nearby friends appears to have broken crake's docs build:
ERROR: Can't invoke target `html`: ambiguous name.Add target type and/or path: - ./doc/src/sgml/html:custom - ./doc/src/sgml/html:alias See <https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=crake&dt=2023-11-23%2012%3A52%3A04>
This is still broken.
cheers
andrew
-- Andrew Dunstan EDB: https://www.enterprisedb.com
Hi, On 2023-11-23 08:32:21 -0500, Andrew Dunstan wrote: > On 2023-11-20 Mo 20:53, Andres Freund wrote: > > meson: docs: Add {html,man} targets, rename install-doc-* > > > > We have toplevel html, man targets in the autoconf build as well. It'd be odd > > to have an 'html' target but have the install target be 'install-doc-html', > > thus rename the install targets to match. > > > This commit of one of its nearby friends appears to have broken crake's docs > build: > > ERROR: Can't invoke target `html`: ambiguous name.Add target type and/or path: > - ./doc/src/sgml/html:custom > - ./doc/src/sgml/html:alias > > See<https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=crake&dt=2023-11-23%2012%3A52%3A04> Ah, I realize now that this is from meson compile html, not 'ninja html'. That explains why I couldn't reproduce this initially and why CI didn't complain. I don't really understand why meson compile complains in this case. I assume you don't want to disambiguate as suggested, by building html:alias instead? Greetings, Andres Freund
On 2023-11-28 Tu 21:28, Andres Freund wrote: > Hi, > > On 2023-11-23 08:32:21 -0500, Andrew Dunstan wrote: >> On 2023-11-20 Mo 20:53, Andres Freund wrote: >>> meson: docs: Add {html,man} targets, rename install-doc-* >>> >>> We have toplevel html, man targets in the autoconf build as well. It'd be odd >>> to have an 'html' target but have the install target be 'install-doc-html', >>> thus rename the install targets to match. >> >> This commit of one of its nearby friends appears to have broken crake's docs >> build: >> >> ERROR: Can't invoke target `html`: ambiguous name.Add target type and/or path: >> - ./doc/src/sgml/html:custom >> - ./doc/src/sgml/html:alias >> >> See<https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=crake&dt=2023-11-23%2012%3A52%3A04> > Ah, I realize now that this is from meson compile html, not 'ninja html'. That > explains why I couldn't reproduce this initially and why CI didn't complain. > I don't really understand why meson compile complains in this case. I assume > you don't want to disambiguate as suggested, by building html:alias instead? > I've done that as a temporary fix to get crake out of the hole, but it's pretty ugly, and I don't want to do it in a release if at all possible. cheers andrew -- Andrew Dunstan EDB: https://www.enterprisedb.com
Andrew Dunstan <andrew@dunslane.net> writes: > On 2023-11-28 Tu 21:28, Andres Freund wrote: >> I don't really understand why meson compile complains in this case. I assume >> you don't want to disambiguate as suggested, by building html:alias instead? > I've done that as a temporary fix to get crake out of the hole, but it's > pretty ugly, and I don't want to do it in a release if at all possible. Our documentation says specifically that "ninja html" will build the HTML format. I would expect that to work by analogy with the "make" target; having to spell it differently seems like clearly a bug. regards, tom lane
On 2023-11-29 We 08:49, Tom Lane wrote: > Andrew Dunstan <andrew@dunslane.net> writes: >> On 2023-11-28 Tu 21:28, Andres Freund wrote: >>> I don't really understand why meson compile complains in this case. I assume >>> you don't want to disambiguate as suggested, by building html:alias instead? >> I've done that as a temporary fix to get crake out of the hole, but it's >> pretty ugly, and I don't want to do it in a release if at all possible. > Our documentation says specifically that "ninja html" will build the > HTML format. I would expect that to work by analogy with the "make" > target; having to spell it differently seems like clearly a bug. > > "ninja html" does in fact work. What's not working is "meson compile html". And it looks like the reason I used that in the buildfarm code is that ninja doesn't know about other targets like "postgres-US.pdf". Up to now "meson compile postgres-US.pdf html" has worked. FWIW, the buildfarm code doesn't use ninja explicitly anywhere else. cheers andrew -- Andrew Dunstan EDB: https://www.enterprisedb.com
Hi, On 2023-11-29 10:05:26 -0500, Andrew Dunstan wrote: > On 2023-11-29 We 08:49, Tom Lane wrote: > > Andrew Dunstan <andrew@dunslane.net> writes: > > > On 2023-11-28 Tu 21:28, Andres Freund wrote: > > > > I don't really understand why meson compile complains in this case. I assume > > > > you don't want to disambiguate as suggested, by building html:alias instead? > > > I've done that as a temporary fix to get crake out of the hole, but it's > > > pretty ugly, and I don't want to do it in a release if at all possible. > > Our documentation says specifically that "ninja html" will build the > > HTML format. I would expect that to work by analogy with the "make" > > target; having to spell it differently seems like clearly a bug. > > > > > > > "ninja html" does in fact work. What's not working is "meson compile html". > And it looks like the reason I used that in the buildfarm code is that ninja > doesn't know about other targets like "postgres-US.pdf". It does: ninja help|grep pdf doc/src/sgml/postgres-A4.pdf Build documentation in PDF format, with A4 pages doc/src/sgml/postgres-US.pdf Build documentation in PDF format, with US letter pages "ninja doc/src/sgml/postgres-US.pdf" works and has worked since day one. FWIW, you can continue to use meson compile, you just need to disambiguate the target name: meson compile html:alias Which isn't particularly pretty, but does work. Greetings, Andres Freund
On 2023-11-29 We 07:20, Andrew Dunstan wrote: > > On 2023-11-28 Tu 21:28, Andres Freund wrote: >> Hi, >> >> On 2023-11-23 08:32:21 -0500, Andrew Dunstan wrote: >>> On 2023-11-20 Mo 20:53, Andres Freund wrote: >>>> meson: docs: Add {html,man} targets, rename install-doc-* >>>> >>>> We have toplevel html, man targets in the autoconf build as well. >>>> It'd be odd >>>> to have an 'html' target but have the install target be >>>> 'install-doc-html', >>>> thus rename the install targets to match. >>> >>> This commit of one of its nearby friends appears to have broken >>> crake's docs >>> build: >>> >>> ERROR: Can't invoke target `html`: ambiguous name.Add target type >>> and/or path: >>> - ./doc/src/sgml/html:custom >>> - ./doc/src/sgml/html:alias >>> >>> See<https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=crake&dt=2023-11-23%2012%3A52%3A04> >>> >> Ah, I realize now that this is from meson compile html, not 'ninja >> html'. That >> explains why I couldn't reproduce this initially and why CI didn't >> complain. >> I don't really understand why meson compile complains in this case. >> I assume >> you don't want to disambiguate as suggested, by building html:alias >> instead? >> > > I've done that as a temporary fix to get crake out of the hole, but > it's pretty ugly, and I don't want to do it in a release if at all > possible. and doing this has broken the docs build for release 16. cheers andrew -- Andrew Dunstan EDB: https://www.enterprisedb.com
Hi, On 2023-12-01 09:04:19 -0500, Andrew Dunstan wrote: > On 2023-11-29 We 07:20, Andrew Dunstan wrote: > > On 2023-11-28 Tu 21:28, Andres Freund wrote: > > > On 2023-11-23 08:32:21 -0500, Andrew Dunstan wrote: > > > > On 2023-11-20 Mo 20:53, Andres Freund wrote: > > > > > meson: docs: Add {html,man} targets, rename install-doc-* > > > > > > > > > > We have toplevel html, man targets in the autoconf build as > > > > > well. It'd be odd > > > > > to have an 'html' target but have the install target be > > > > > 'install-doc-html', > > > > > thus rename the install targets to match. > > > > > > > > This commit of one of its nearby friends appears to have broken > > > > crake's docs > > > > build: > > > > > > > > ERROR: Can't invoke target `html`: ambiguous name.Add target > > > > type and/or path: > > > > - ./doc/src/sgml/html:custom > > > > - ./doc/src/sgml/html:alias > > > > > > > > See<https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=crake&dt=2023-11-23%2012%3A52%3A04> > > > > > > > Ah, I realize now that this is from meson compile html, not 'ninja > > > html'. That > > > explains why I couldn't reproduce this initially and why CI didn't > > > complain. > > > I don't really understand why meson compile complains in this case. > > > I assume > > > you don't want to disambiguate as suggested, by building html:alias > > > instead? > > > > > > > I've done that as a temporary fix to get crake out of the hole, but it's > > pretty ugly, and I don't want to do it in a release if at all possible. > > > and doing this has broken the docs build for release 16. If I can get somebody to comment on https://postgr.es/m/20231129183619.3hrnwaexbrpygbxg%40awork3.anarazel.de we can remove the need for the :$buildtype suffix. Greetings, Andres Freund
On 2023-12-01 Fr 09:04, Andrew Dunstan wrote:
On 2023-11-29 We 07:20, Andrew Dunstan wrote:
On 2023-11-28 Tu 21:28, Andres Freund wrote:Hi,
On 2023-11-23 08:32:21 -0500, Andrew Dunstan wrote:On 2023-11-20 Mo 20:53, Andres Freund wrote:Ah, I realize now that this is from meson compile html, not 'ninja html'. Thatmeson: docs: Add {html,man} targets, rename install-doc-*
We have toplevel html, man targets in the autoconf build as well. It'd be odd
to have an 'html' target but have the install target be 'install-doc-html',
thus rename the install targets to match.
This commit of one of its nearby friends appears to have broken crake's docs
build:
ERROR: Can't invoke target `html`: ambiguous name.Add target type and/or path:
- ./doc/src/sgml/html:custom
- ./doc/src/sgml/html:alias
See<https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=crake&dt=2023-11-23%2012%3A52%3A04>
explains why I couldn't reproduce this initially and why CI didn't complain.
I don't really understand why meson compile complains in this case. I assume
you don't want to disambiguate as suggested, by building html:alias instead?
I've done that as a temporary fix to get crake out of the hole, but it's pretty ugly, and I don't want to do it in a release if at all possible.
and doing this has broken the docs build for release 16.
OK, so this code is what I have now, and seems to work on both HEAD and REL_16_STABLE:
my $extra_targets = $PGBuild::conf{extra_doc_targets} || ""; my @targs = split(/\s+/, $extra_targets); s!^!doc/src/sgml/! foreach @targs; $extra_targets=join(' ', @targs) ; @makeout = run_log("cd $pgsql && ninja doc/src/sgml/html $extra_targets");
cheers
andrew
-- Andrew Dunstan EDB: https://www.enterprisedb.com