Thread: pgsql: meson: docs: Add {html,man} targets, rename install-doc-*

pgsql: meson: docs: Add {html,man} targets, rename install-doc-*

From
Andres Freund
Date:
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(-)


Re: pgsql: meson: docs: Add {html,man} targets, rename install-doc-*

From
Andrew Dunstan
Date:


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

Re: pgsql: meson: docs: Add {html,man} targets, rename install-doc-*

From
Andrew Dunstan
Date:


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

Re: pgsql: meson: docs: Add {html,man} targets, rename install-doc-*

From
Andres Freund
Date:
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



Re: pgsql: meson: docs: Add {html,man} targets, rename install-doc-*

From
Andrew Dunstan
Date:
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




Re: pgsql: meson: docs: Add {html,man} targets, rename install-doc-*

From
Tom Lane
Date:
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



Re: pgsql: meson: docs: Add {html,man} targets, rename install-doc-*

From
Andrew Dunstan
Date:
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




Re: pgsql: meson: docs: Add {html,man} targets, rename install-doc-*

From
Andres Freund
Date:
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



Re: pgsql: meson: docs: Add {html,man} targets, rename install-doc-*

From
Andrew Dunstan
Date:
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




Re: pgsql: meson: docs: Add {html,man} targets, rename install-doc-*

From
Andres Freund
Date:
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



Re: pgsql: meson: docs: Add {html,man} targets, rename install-doc-*

From
Andrew Dunstan
Date:


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:
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.


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