Обсуждение: Documentation building broken in CFBot

Поиск
Список
Период
Сортировка

Documentation building broken in CFBot

От
Daniel Gustafsson
Дата:
Since recently, all Travis builds in the CFBot are broken for docs builds in
the xmllint step.  Turns out, the oasis-open.org URL to the DTD is now
redirecting to HTTPS and xmllint is normally only compiled with HTTP support
which causes this to now break.

That being said, XMLLint will load the DTD locally if available so environments
which have the packages referenced in the postgres docs won't notice as they
provide the DTD.  The package containing the DTD is however not installed on
the CFBot.  I've opened a PR against the CFBot repo [0], but until merged the
builds will be red without necessarily being an issue with the patch being
built.

cheers ./daniel

[0] https://github.com/macdice/cfbot/pull/12





Re: Documentation building broken in CFBot

От
"Jonathan S. Katz"
Дата:
On 11/11/20 5:47 AM, Daniel Gustafsson wrote:
> Since recently, all Travis builds in the CFBot are broken for docs builds in
> the xmllint step.  Turns out, the oasis-open.org URL to the DTD is now
> redirecting to HTTPS and xmllint is normally only compiled with HTTP support
> which causes this to now break.

Interesting. I ran into this issue yesterday when I was trying to build
the docs locally.

> That being said, XMLLint will load the DTD locally if available so environments
> which have the packages referenced in the postgres docs won't notice as they
> provide the DTD.  The package containing the DTD is however not installed on
> the CFBot.  I've opened a PR against the CFBot repo [0], but until merged the
> builds will be red without necessarily being an issue with the patch being
> built.

I do wonder if it's worth it to update the doc build documentation[1] as
well to mention this?

Jonathan

[1] https://www.postgresql.org/docs/current/docguide-toolsets.html

Вложения

Re: Documentation building broken in CFBot

От
Daniel Gustafsson
Дата:
> On 11 Nov 2020, at 15:51, Jonathan S. Katz <jkatz@postgresql.org> wrote:

> I do wonder if it's worth it to update the doc build documentation[1] as
> well to mention this?

Well, ideally you would never encounter this error if you install the packages
listed as required.  That being said, the lists must be up to date of course.
Since I assume you were building on macOS, which package manager are you using?

My guess is that docbook-xml should be added to the macports install set, but I
don't use macports myself so thats just guessing based on what their packages
seem to contain.

Homebrew doesn't have a docbook-xml package, but the docbook package seems to
contain what other have in docbook-xml.

cheers ./daniel


Re: Documentation building broken in CFBot

От
Tom Lane
Дата:
Daniel Gustafsson <daniel@yesql.se> writes:
>> On 11 Nov 2020, at 15:51, Jonathan S. Katz <jkatz@postgresql.org> wrote:
>> I do wonder if it's worth it to update the doc build documentation[1] as
>> well to mention this?

> Well, ideally you would never encounter this error if you install the packages
> listed as required.

I wonder if we should start passing "--nonet" to xmllint et al.  I've
always felt that that silent reach into the internet was an anti-feature
on numerous grounds: it's slow, it's not very secure, it makes the results
uncertainly reproducible, etc etc etc.

            regards, tom lane



Re: Documentation building broken in CFBot

От
Magnus Hagander
Дата:
On Wed, Nov 11, 2020 at 4:43 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> Daniel Gustafsson <daniel@yesql.se> writes:
> >> On 11 Nov 2020, at 15:51, Jonathan S. Katz <jkatz@postgresql.org> wrote:
> >> I do wonder if it's worth it to update the doc build documentation[1] as
> >> well to mention this?
>
> > Well, ideally you would never encounter this error if you install the packages
> > listed as required.
>
> I wonder if we should start passing "--nonet" to xmllint et al.  I've
> always felt that that silent reach into the internet was an anti-feature
> on numerous grounds: it's slow, it's not very secure, it makes the results
> uncertainly reproducible, etc etc etc.

I think we should. It would also lead to "break early" which is easier
to diagnose than "break at a random point when someone external
changed something".

-- 
 Magnus Hagander
 Me: https://www.hagander.net/
 Work: https://www.redpill-linpro.com/



Re: Documentation building broken in CFBot

От
"Jonathan S. Katz"
Дата:
On 11/11/20 10:43 AM, Tom Lane wrote:
> Daniel Gustafsson <daniel@yesql.se> writes:
>>> On 11 Nov 2020, at 15:51, Jonathan S. Katz <jkatz@postgresql.org> wrote:
>>> I do wonder if it's worth it to update the doc build documentation[1] as
>>> well to mention this?
>
>> Well, ideally you would never encounter this error if you install the packages
>> listed as required.
>
> I wonder if we should start passing "--nonet" to xmllint et al.  I've
> always felt that that silent reach into the internet was an anti-feature
> on numerous grounds: it's slow, it's not very secure, it makes the results
> uncertainly reproducible, etc etc etc.

It was still bugging out for me locally with --nonet, but that could
also be operator error.

Agree overall though, it seems to go against the grain of a lot of the
other things that we do. We do make a network request for loading the
website styles when building the docs, but that is also an optional
feature. Right now, I can't even get "make html" to successfully run.

Jonathan

Вложения

Re: Documentation building broken in CFBot

От
Tom Lane
Дата:
"Jonathan S. Katz" <jkatz@postgresql.org> writes:
> On 11/11/20 10:43 AM, Tom Lane wrote:
>> I wonder if we should start passing "--nonet" to xmllint et al.  I've
>> always felt that that silent reach into the internet was an anti-feature
>> on numerous grounds: it's slow, it's not very secure, it makes the results
>> uncertainly reproducible, etc etc etc.

> It was still bugging out for me locally with --nonet, but that could
> also be operator error.

The point of --nonet is that then you would *have to* install the DTDs
locally in order to build the docs.

(Well, I wouldn't be quite that draconian about it; if we do this,
I think it should be more like "we use --nonet by default but you can
override that".)

            regards, tom lane



Re: Documentation building broken in CFBot

От
"Jonathan S. Katz"
Дата:
On 11/11/20 11:11 AM, Tom Lane wrote:
> "Jonathan S. Katz" <jkatz@postgresql.org> writes:
>> On 11/11/20 10:43 AM, Tom Lane wrote:
>>> I wonder if we should start passing "--nonet" to xmllint et al.  I've
>>> always felt that that silent reach into the internet was an anti-feature
>>> on numerous grounds: it's slow, it's not very secure, it makes the results
>>> uncertainly reproducible, etc etc etc.
>
>> It was still bugging out for me locally with --nonet, but that could
>> also be operator error.
>
> The point of --nonet is that then you would *have to* install the DTDs
> locally in order to build the docs.

Yup, I had tried installing the DTDs locally, and clearly failed at it
:) I also did not spend too much time trying to troubleshoot my failures.

> (Well, I wouldn't be quite that draconian about it; if we do this,
> I think it should be more like "we use --nonet by default but you can
> override that".)
That sounds reasonable.

Also FWIW yesterday I had tried quickly swapping the DTD references to
use HTTPS but still hit similar issues, and per above I did not spend
much time trying to troubleshoot.

Jonathan

Вложения

Re: Documentation building broken in CFBot

От
Daniel Gustafsson
Дата:
> On 11 Nov 2020, at 16:43, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> Daniel Gustafsson <daniel@yesql.se> writes:
>>> On 11 Nov 2020, at 15:51, Jonathan S. Katz <jkatz@postgresql.org> wrote:
>>> I do wonder if it's worth it to update the doc build documentation[1] as
>>> well to mention this?
>
>> Well, ideally you would never encounter this error if you install the packages
>> listed as required.
>
> I wonder if we should start passing "--nonet" to xmllint et al.  I've
> always felt that that silent reach into the internet was an anti-feature
> on numerous grounds: it's slow, it's not very secure, it makes the results
> uncertainly reproducible, etc etc etc.

..and it will most likely come as a surprise to most.  I think we should start
doing that.

cheers ./daniel


Re: Documentation building broken in CFBot

От
Daniel Gustafsson
Дата:
> On 11 Nov 2020, at 17:13, Jonathan S. Katz <jkatz@postgresql.org> wrote:
>
> On 11/11/20 11:11 AM, Tom Lane wrote:
>> "Jonathan S. Katz" <jkatz@postgresql.org> writes:
>>> On 11/11/20 10:43 AM, Tom Lane wrote:
>>>> I wonder if we should start passing "--nonet" to xmllint et al.  I've
>>>> always felt that that silent reach into the internet was an anti-feature
>>>> on numerous grounds: it's slow, it's not very secure, it makes the results
>>>> uncertainly reproducible, etc etc etc.
>>
>>> It was still bugging out for me locally with --nonet, but that could
>>> also be operator error.
>>
>> The point of --nonet is that then you would *have to* install the DTDs
>> locally in order to build the docs.
>
> Yup, I had tried installing the DTDs locally, and clearly failed at it
> :) I also did not spend too much time trying to troubleshoot my failures.

Looking at config/docbook.m4 we check for the existence of the DTDs, but we
don't seem to use the findings in have_docbook?  Shouldn't we do something like
the below:

--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
@@ -492,6 +492,7 @@ DBTOEPUB    = @DBTOEPUB@
 FOP                            = @FOP@
 XMLLINT                        = @XMLLINT@
 XSLTPROC               = @XSLTPROC@
+have_docbook   = @have_docbook@

..and then error out in the doc/ Makefiles for the relevant targets in case
have_docbook is "no"?  Seems like that could save troubleshooting efforts like
the one referenced above.  Commit 7267fdd7a3a did in fact include this in the
global Makefile but has been removed at some point (which I'm currently too
undercaffeinated to find).

cheers ./daniel


Re: Documentation building broken in CFBot

От
Thomas Munro
Дата:
On Wed, Nov 11, 2020 at 11:47 PM Daniel Gustafsson <daniel@yesql.se> wrote:
> [0] https://github.com/macdice/cfbot/pull/12

Done, thanks!  Will probably take a few hours for the results to show up.



Re: Documentation building broken in CFBot

От
Peter Eisentraut
Дата:
On 2020-11-11 21:04, Daniel Gustafsson wrote:
>> On 11 Nov 2020, at 16:43, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>>
>> Daniel Gustafsson <daniel@yesql.se> writes:
>>>> On 11 Nov 2020, at 15:51, Jonathan S. Katz <jkatz@postgresql.org> wrote:
>>>> I do wonder if it's worth it to update the doc build documentation[1] as
>>>> well to mention this?
>>
>>> Well, ideally you would never encounter this error if you install the packages
>>> listed as required.
>>
>> I wonder if we should start passing "--nonet" to xmllint et al.  I've
>> always felt that that silent reach into the internet was an anti-feature
>> on numerous grounds: it's slow, it's not very secure, it makes the results
>> uncertainly reproducible, etc etc etc.
> 
> ..and it will most likely come as a surprise to most.  I think we should start
> doing that.

How about this patch.

Вложения

Re: Documentation building broken in CFBot

От
Daniel Gustafsson
Дата:
> On 13 Nov 2020, at 12:16, Peter Eisentraut <peter.eisentraut@enterprisedb.com> wrote:
>
> On 2020-11-11 21:04, Daniel Gustafsson wrote:
>>> On 11 Nov 2020, at 16:43, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>>>
>>> Daniel Gustafsson <daniel@yesql.se> writes:
>>>>> On 11 Nov 2020, at 15:51, Jonathan S. Katz <jkatz@postgresql.org> wrote:
>>>>> I do wonder if it's worth it to update the doc build documentation[1] as
>>>>> well to mention this?
>>>
>>>> Well, ideally you would never encounter this error if you install the packages
>>>> listed as required.
>>>
>>> I wonder if we should start passing "--nonet" to xmllint et al.  I've
>>> always felt that that silent reach into the internet was an anti-feature
>>> on numerous grounds: it's slow, it's not very secure, it makes the results
>>> uncertainly reproducible, etc etc etc.
>> ..and it will most likely come as a surprise to most.  I think we should start
>> doing that.
>
> How about this patch.

LGTM, thanks.

cheers ./daniel


Re: Documentation building broken in CFBot

От
Tom Lane
Дата:
Peter Eisentraut <peter.eisentraut@enterprisedb.com> writes:
> On 2020-11-11 21:04, Daniel Gustafsson wrote:
>> On 11 Nov 2020, at 16:43, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>>> I wonder if we should start passing "--nonet" to xmllint et al.

> How about this patch.

This looks like it probably works as far as the actual build goes, but
could we change configure's call of xmllint likewise?  On a lot of my test
machines (where, as a rule, I don't install DocBook; but xmllint may exist
anyway), that probe for the docbook DTDs is the slowest step in configure,
and not by a small margin.

Actually, I kinda wonder why we bother probing for that at all; it doesn't
look like anything is done with have_docbook.

            regards, tom lane



Re: Documentation building broken in CFBot

От
Tom Lane
Дата:
I wrote:
> Peter Eisentraut <peter.eisentraut@enterprisedb.com> writes:
>> How about this patch.

> This looks like it probably works as far as the actual build goes, but
> could we change configure's call of xmllint likewise?  On a lot of my test
> machines (where, as a rule, I don't install DocBook; but xmllint may exist
> anyway), that probe for the docbook DTDs is the slowest step in configure,
> and not by a small margin.

> Actually, I kinda wonder why we bother probing for that at all; it doesn't
> look like anything is done with have_docbook.

This came up again today on another thread [1], so I took a second look
and confirmed that configure's test is completely dead code.  So here is
a patch to remove it outright, mooting the question of whether it ought
to use --no-net.

After removing PGAC_CHECK_DOCBOOK, there wasn't much left of docbook.m4,
and what there was had little to do with docbook; so I chose to just
remove that file altogether.

This is actually entirely independent of Peter's patch.  I'm tempted
to propose that we could back-patch it and thereby save some configure
cycles for developers, since it has no impact on anybody's build
process.

            regards, tom lane

[1] https://www.postgresql.org/message-id/flat/A55A7FC9-FA60-47FE-98B5-139CDC57CE6E%40gmail.com

diff --git a/aclocal.m4 b/aclocal.m4
index bfd34ecec8..5e22482cd5 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -5,7 +5,6 @@ m4_include([config/ax_pthread.m4])
 m4_include([config/c-compiler.m4])
 m4_include([config/c-library.m4])
 m4_include([config/check_decls.m4])
-m4_include([config/docbook.m4])
 m4_include([config/general.m4])
 m4_include([config/libtool.m4])
 m4_include([config/llvm.m4])
diff --git a/config/docbook.m4 b/config/docbook.m4
deleted file mode 100644
index 34b829eade..0000000000
--- a/config/docbook.m4
+++ /dev/null
@@ -1,40 +0,0 @@
-# config/docbook.m4
-
-# PGAC_PATH_XMLLINT
-# -----------------
-AC_DEFUN([PGAC_PATH_XMLLINT],
-[PGAC_PATH_PROGS(XMLLINT, xmllint)])
-
-
-# PGAC_CHECK_DOCBOOK(VERSION)
-# ---------------------------
-AC_DEFUN([PGAC_CHECK_DOCBOOK],
-[AC_REQUIRE([PGAC_PATH_XMLLINT])
-AC_CACHE_CHECK([for DocBook XML V$1], [pgac_cv_check_docbook],
-[cat >conftest.xml <<EOF
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V$1//EN" "http://www.oasis-open.org/docbook/xml/$1/docbookx.dtd">
-<book>
- <title>test</title>
- <chapter>
-  <title>random</title>
-   <sect1>
-    <title>testsect</title>
-    <para>text</para>
-  </sect1>
- </chapter>
-</book>
-EOF
-
-pgac_cv_check_docbook=no
-
-if test -n "$XMLLINT"; then
-  $XMLLINT --noout --valid conftest.xml 1>&AS_MESSAGE_LOG_FD 2>&1
-  if test $? -eq 0; then
-    pgac_cv_check_docbook=yes
-  fi
-fi
-rm -f conftest.xml])
-
-have_docbook=$pgac_cv_check_docbook
-AC_SUBST([have_docbook])
-])# PGAC_CHECK_DOCBOOK
diff --git a/configure b/configure
index dd64692345..273ff0f6f9 100755
--- a/configure
+++ b/configure
@@ -633,7 +633,6 @@ PROVE
 FOP
 XSLTPROC
 DBTOEPUB
-have_docbook
 XMLLINT
 TCL_SHLIB_LD_LIBS
 TCL_SHARED_BUILD
@@ -18548,7 +18547,7 @@ fi
 fi

 #
-# Check for DocBook and tools
+# Check for documentation-building tools
 #
 if test -z "$XMLLINT"; then
   for ac_prog in xmllint
@@ -18604,42 +18603,6 @@ $as_echo_n "checking for XMLLINT... " >&6; }
 $as_echo "$XMLLINT" >&6; }
 fi

-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DocBook XML V4.5" >&5
-$as_echo_n "checking for DocBook XML V4.5... " >&6; }
-if ${pgac_cv_check_docbook+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.xml <<EOF
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<book>
- <title>test</title>
- <chapter>
-  <title>random</title>
-   <sect1>
-    <title>testsect</title>
-    <para>text</para>
-  </sect1>
- </chapter>
-</book>
-EOF
-
-pgac_cv_check_docbook=no
-
-if test -n "$XMLLINT"; then
-  $XMLLINT --noout --valid conftest.xml 1>&5 2>&1
-  if test $? -eq 0; then
-    pgac_cv_check_docbook=yes
-  fi
-fi
-rm -f conftest.xml
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv_check_docbook" >&5
-$as_echo "$pgac_cv_check_docbook" >&6; }
-
-have_docbook=$pgac_cv_check_docbook
-
-
 if test -z "$DBTOEPUB"; then
   for ac_prog in dbtoepub
 do
diff --git a/configure.ac b/configure.ac
index 748fb50236..bade2e0993 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2237,10 +2237,9 @@ if test "$with_python" = yes; then
 fi

 #
-# Check for DocBook and tools
+# Check for documentation-building tools
 #
-PGAC_PATH_XMLLINT
-PGAC_CHECK_DOCBOOK(4.5)
+PGAC_PATH_PROGS(XMLLINT, xmllint)
 PGAC_PATH_PROGS(DBTOEPUB, dbtoepub)
 PGAC_PATH_PROGS(XSLTPROC, xsltproc)
 PGAC_PATH_PROGS(FOP, fop)

Re: Documentation building broken in CFBot

От
Peter Eisentraut
Дата:
On 2020-11-26 18:24, Tom Lane wrote:
> This came up again today on another thread [1], so I took a second look
> and confirmed that configure's test is completely dead code.  So here is
> a patch to remove it outright, mooting the question of whether it ought
> to use --no-net.
> 
> After removing PGAC_CHECK_DOCBOOK, there wasn't much left of docbook.m4,
> and what there was had little to do with docbook; so I chose to just
> remove that file altogether.
> 
> This is actually entirely independent of Peter's patch.  I'm tempted
> to propose that we could back-patch it and thereby save some configure
> cycles for developers, since it has no impact on anybody's build
> process.

Yes, this seems fine.  docbook.m4 used to do more interesting things, 
when we had DSSSL, and no catalog mechanisms, and generally more 
complicated installations.  It also served as a sort of test suite, when 
if someone complained that they can't build the documentation, we could 
look at config.log to see if their tools were installed correctly.  But 
right now it's not that interesting anymore.

Backpatching to PG11 should be okay.  Before that, it's different tools.



Re: Documentation building broken in CFBot

От
Peter Eisentraut
Дата:
On 2020-11-13 15:58, Tom Lane wrote:
> Peter Eisentraut <peter.eisentraut@enterprisedb.com> writes:
>> On 2020-11-11 21:04, Daniel Gustafsson wrote:
>>> On 11 Nov 2020, at 16:43, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>>>> I wonder if we should start passing "--nonet" to xmllint et al.
> 
>> How about this patch.
> 
> This looks like it probably works as far as the actual build goes, but
> could we change configure's call of xmllint likewise?  On a lot of my test
> machines (where, as a rule, I don't install DocBook; but xmllint may exist
> anyway), that probe for the docbook DTDs is the slowest step in configure,
> and not by a small margin.
> 
> Actually, I kinda wonder why we bother probing for that at all; it doesn't
> look like anything is done with have_docbook.

We could change the call in configure to something like

PGAC_PATH_PROGS(XMLLINT, 'xmllint --nonet')

But the unfortunate effect of that would be to make it harder for casual 
contributors to build the documentation.  For example, on a new MacBook, 
the documentation builds out of the box without needing to install 
anything at all.  That's a pretty big upgrade over 10 years ago. :)

I suggest if someone wants to turn off the current behavior, they can set

XMLLINT='xmllint --nonet'
XSLTPROC='xsltproc --nonet'

in the environment, and it will get picked up automatically.



Re: Documentation building broken in CFBot

От
Tom Lane
Дата:
Peter Eisentraut <peter.eisentraut@enterprisedb.com> writes:
> On 2020-11-26 18:24, Tom Lane wrote:
>> This came up again today on another thread [1], so I took a second look
>> and confirmed that configure's test is completely dead code.  So here is
>> a patch to remove it outright, mooting the question of whether it ought
>> to use --no-net.

> Yes, this seems fine.  docbook.m4 used to do more interesting things, 
> when we had DSSSL, and no catalog mechanisms, and generally more 
> complicated installations.  It also served as a sort of test suite, when 
> if someone complained that they can't build the documentation, we could 
> look at config.log to see if their tools were installed correctly.  But 
> right now it's not that interesting anymore.

Check.

> Backpatching to PG11 should be okay.  Before that, it's different tools.

Ah, I see there used to be more things in docbook.m4, so removing the
file altogether isn't feasible before v11.  But we could still drop
the PGAC_CHECK_DOCBOOK macro, no?  Even in the older branches, there
is nothing paying attention to have_docbook.

            regards, tom lane



Re: Documentation building broken in CFBot

От
Tom Lane
Дата:
Peter Eisentraut <peter.eisentraut@enterprisedb.com> writes:
> We could change the call in configure to something like

> PGAC_PATH_PROGS(XMLLINT, 'xmllint --nonet')

> But the unfortunate effect of that would be to make it harder for casual 
> contributors to build the documentation.  For example, on a new MacBook, 
> the documentation builds out of the box without needing to install 
> anything at all.  That's a pretty big upgrade over 10 years ago. :)

I agree that that has its advantages.  To me, the big problem here is
with configure's call, because that is executed whether or not you want
to build the documentation.  If we flushed PGAC_CHECK_DOCBOOK, then
I'd only about 10% care whether we make the other change at all, or
whether --nonet is the default or not.

            regards, tom lane



Re: Documentation building broken in CFBot

От
Peter Eisentraut
Дата:
On 2020-11-27 18:53, Tom Lane wrote:
>> Yes, this seems fine.  docbook.m4 used to do more interesting things,
>> when we had DSSSL, and no catalog mechanisms, and generally more
>> complicated installations.  It also served as a sort of test suite, when
>> if someone complained that they can't build the documentation, we could
>> look at config.log to see if their tools were installed correctly.  But
>> right now it's not that interesting anymore.
> 
> Check.
> 
>> Backpatching to PG11 should be okay.  Before that, it's different tools.
> 
> Ah, I see there used to be more things in docbook.m4, so removing the
> file altogether isn't feasible before v11.  But we could still drop
> the PGAC_CHECK_DOCBOOK macro, no?  Even in the older branches, there
> is nothing paying attention to have_docbook.

Well, my point of having this as a mini test suite of the installation 
still applies there, especially since it uses the old tool set that is 
more difficult to install correctly.  Those old tools have no network 
functionality, so there is really no configure speed to be gained.  I 
would leave it alone.

In any case, note that there is also documentation about this at 
<https://www.postgresql.org/docs/devel/docguide-toolsets.html#DOCGUIDE-TOOLSETS-CONFIGURE> 
that would need to be updated to the new behavior.  I think the phrase 
"If xmllint was not found then some of the following tests will be 
skipped." could be removed, since it referred to the DocBook test about 
to be removed.



Re: Documentation building broken in CFBot

От
Tom Lane
Дата:
Peter Eisentraut <peter.eisentraut@enterprisedb.com> writes:
> On 2020-11-27 18:53, Tom Lane wrote:
>> Ah, I see there used to be more things in docbook.m4, so removing the
>> file altogether isn't feasible before v11.  But we could still drop
>> the PGAC_CHECK_DOCBOOK macro, no?  Even in the older branches, there
>> is nothing paying attention to have_docbook.

> Well, my point of having this as a mini test suite of the installation
> still applies there, especially since it uses the old tool set that is
> more difficult to install correctly.  Those old tools have no network
> functionality, so there is really no configure speed to be gained.  I
> would leave it alone.

Wow, has it really only been three years that configure has acted this
way?  But anyway, after testing on a system that has opensp installed
but not docbook, I confirm that the DocBook test falls through quickly
pre-v11.  Agreed then that we only need this change in 11 and up.

> In any case, note that there is also documentation about this at
> <https://www.postgresql.org/docs/devel/docguide-toolsets.html#DOCGUIDE-TOOLSETS-CONFIGURE>
> that would need to be updated to the new behavior.  I think the phrase
> "If xmllint was not found then some of the following tests will be
> skipped." could be removed, since it referred to the DocBook test about
> to be removed.

Right.  That also seems like a good place to add a hint about setting
XMLLINT to 'xmllint --nonet' if you don't want remote fetches to happen
while building the docs.  Shall we do that instead of applying the
patch you posted earlier?

            regards, tom lane



Re: Documentation building broken in CFBot

От
Tom Lane
Дата:
I wrote:
> Peter Eisentraut <peter.eisentraut@enterprisedb.com> writes:
>> In any case, note that there is also documentation about this at
>> <https://www.postgresql.org/docs/devel/docguide-toolsets.html#DOCGUIDE-TOOLSETS-CONFIGURE>
>> that would need to be updated to the new behavior.  I think the phrase
>> "If xmllint was not found then some of the following tests will be
>> skipped." could be removed, since it referred to the DocBook test about
>> to be removed.

> Right.  That also seems like a good place to add a hint about setting
> XMLLINT to 'xmllint --nonet' if you don't want remote fetches to happen
> while building the docs.  Shall we do that instead of applying the
> patch you posted earlier?

Concretely, maybe like the attached?

(Looking at this, I can't avoid the feeling that the programs are being
checked for in a completely random order.  I'm tempted to rearrange
configure to probe xmllint, xsltproc, fop, dbtoepub in that order,
so it matches the proposed documentation.)

            regards, tom lane

diff --git a/doc/src/sgml/docguide.sgml b/doc/src/sgml/docguide.sgml
index 17d36e9145..66a1951c5e 100644
--- a/doc/src/sgml/docguide.sgml
+++ b/doc/src/sgml/docguide.sgml
@@ -234,15 +234,31 @@ brew install docbook docbook-xsl fop
    like this:
 <screen>
 checking for xmllint... xmllint
-checking for DocBook XML V4.5... yes
 checking for dbtoepub... dbtoepub
 checking for xsltproc... xsltproc
 checking for fop... fop
 </screen>
-   If <filename>xmllint</filename> was not found then some of the following
-   tests will be skipped.
+   If <filename>xmllint</filename> or <filename>xsltproc</filename> is not
+   found, you will not be able to build any of the documentation.
+   <filename>fop</filename> is only needed to build the documentation in
+   PDF format.
+   <filename>dbtoepub</filename> is only needed to build the documentation
+   in EPUB format.
   </para>
 
+  <para>
+   If necessary, you can tell <filename>configure</filename> where to find
+   these programs, for example
+<screen>
+./configure ... XMLLINT=/opt/local/bin/xmllint ...
+</screen>
+   Also, if you want to ensure that <filename>xmllint</filename>
+   and <filename>xsltproc</filename> will not perform any network access,
+   you can do something like
+<screen>
+./configure ... XMLLINT="xmllint --nonet" XSLTPROC="xsltproc --nonet" ...
+</screen>
+  </para>
   </sect2>
  </sect1>


Re: Documentation building broken in CFBot

От
"Jonathan S. Katz"
Дата:
On 11/11/20 11:13 AM, Jonathan S. Katz wrote:
> On 11/11/20 11:11 AM, Tom Lane wrote:
>> "Jonathan S. Katz" <jkatz@postgresql.org> writes:
>>> On 11/11/20 10:43 AM, Tom Lane wrote:
>>>> I wonder if we should start passing "--nonet" to xmllint et al.  I've
>>>> always felt that that silent reach into the internet was an anti-feature
>>>> on numerous grounds: it's slow, it's not very secure, it makes the results
>>>> uncertainly reproducible, etc etc etc.
>>
>>> It was still bugging out for me locally with --nonet, but that could
>>> also be operator error.
>>
>> The point of --nonet is that then you would *have to* install the DTDs
>> locally in order to build the docs.
>
> Yup, I had tried installing the DTDs locally, and clearly failed at it
> :) I also did not spend too much time trying to troubleshoot my failures.
>
>> (Well, I wouldn't be quite that draconian about it; if we do this,
>> I think it should be more like "we use --nonet by default but you can
>> override that".)
> That sounds reasonable.
>
> Also FWIW yesterday I had tried quickly swapping the DTD references to
> use HTTPS but still hit similar issues, and per above I did not spend
> much time trying to troubleshoot.

FYI -- I don't know what, if anything changed, but I'm able to build
docs again on my macOS machine without modifying anything.

So if someone did something -- thanks!

Jonathan


Вложения

Re: Documentation building broken in CFBot

От
Tom Lane
Дата:
"Jonathan S. Katz" <jkatz@postgresql.org> writes:
> FYI -- I don't know what, if anything changed, but I'm able to build
> docs again on my macOS machine without modifying anything.

We didn't really do anything here.  I wonder if oasis-open.org fixed
their HTTP redirect?

            regards, tom lane



Re: Documentation building broken in CFBot

От
"Jonathan S. Katz"
Дата:
On 2/6/21 11:49 AM, Tom Lane wrote:
> "Jonathan S. Katz" <jkatz@postgresql.org> writes:
>> FYI -- I don't know what, if anything changed, but I'm able to build
>> docs again on my macOS machine without modifying anything.
>
> We didn't really do anything here.  I wonder if oasis-open.org fixed
> their HTTP redirect?

Did a quick curl and it seems that by "fixing the redirect" it's
allowing the connection over HTTP.

Either way, it just works now.

Jonathan


Вложения