Обсуждение: 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