Remove configure-time probe for DocBook DTD.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 30 Nov 2020 20:24:13 +0000 (15:24 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 30 Nov 2020 20:24:13 +0000 (15:24 -0500)
Checking for DocBook being installed was valuable when we were on the
OpenSP docs toolchain, because that was rather hard to get installed
fully.  Nowadays, as long as you have xmllint and xsltproc installed,
you're good, because those programs will fetch the DocBook files off
the net at need.  Moreover, testing this at configure time means that
a network access may well occur whether or not you have any interest
in building the docs later.  That can be slow (typically 2 or 3
seconds, though much higher delays have been reported), and it seems
not very nice to be doing an off-machine access without warning, too.

Hence, drop the PGAC_CHECK_DOCBOOK probe, and adjust related
documentation.  Without that macro, there's not much left of
config/docbook.m4 at all, so I just removed it.

Back-patch to v11, where we started to use xmllint in the
PGAC_CHECK_DOCBOOK probe.

Discussion: https://postgr.es/m/E2EE6B76-2D96-408A-B961-CAE47D1A86F0@yesql.se
Discussion: https://postgr.es/m/A55A7FC9-FA60-47FE-98B5-139CDC57CE6E@gmail.com

aclocal.m4
config/docbook.m4 [deleted file]
configure
configure.ac
doc/src/sgml/docguide.sgml

index bfd34ecec8cd7d0e1e37a66435ffed2903f8f120..5e22482cd53de3330b0983465b96305b8404b6e5 100644 (file)
@@ -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 (file)
index 34b829e..0000000
+++ /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
index dd64692345b3612deec79fe3aa9d43408efe01a4..ffcd0c5b1d4d8f3249b9c63906bdb54dba75f89a 100755 (executable)
--- a/configure
+++ b/configure
@@ -630,10 +630,9 @@ vpath_build
 PG_SYSROOT
 PG_VERSION_NUM
 PROVE
+DBTOEPUB
 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,55 +18603,19 @@ $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
+if test -z "$XSLTPROC"; then
+  for ac_prog in xsltproc
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_DBTOEPUB+:} false; then :
+if ${ac_cv_path_XSLTPROC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  case $DBTOEPUB in
+  case $XSLTPROC in
   [\\/]* | ?:[\\/]*)
-  ac_cv_path_DBTOEPUB="$DBTOEPUB" # Let the user override the test with a path.
+  ac_cv_path_XSLTPROC="$XSLTPROC" # Let the user override the test with a path.
   ;;
   *)
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -18662,7 +18625,7 @@ do
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_DBTOEPUB="$as_dir/$ac_word$ac_exec_ext"
+    ac_cv_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -18673,40 +18636,40 @@ IFS=$as_save_IFS
   ;;
 esac
 fi
-DBTOEPUB=$ac_cv_path_DBTOEPUB
-if test -n "$DBTOEPUB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DBTOEPUB" >&5
-$as_echo "$DBTOEPUB" >&6; }
+XSLTPROC=$ac_cv_path_XSLTPROC
+if test -n "$XSLTPROC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5
+$as_echo "$XSLTPROC" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
-  test -n "$DBTOEPUB" && break
+  test -n "$XSLTPROC" && break
 done
 
 else
-  # Report the value of DBTOEPUB in configure's output in all cases.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DBTOEPUB" >&5
-$as_echo_n "checking for DBTOEPUB... " >&6; }
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DBTOEPUB" >&5
-$as_echo "$DBTOEPUB" >&6; }
+  # Report the value of XSLTPROC in configure's output in all cases.
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XSLTPROC" >&5
+$as_echo_n "checking for XSLTPROC... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5
+$as_echo "$XSLTPROC" >&6; }
 fi
 
-if test -z "$XSLTPROC"; then
-  for ac_prog in xsltproc
+if test -z "$FOP"; then
+  for ac_prog in fop
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_XSLTPROC+:} false; then :
+if ${ac_cv_path_FOP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  case $XSLTPROC in
+  case $FOP in
   [\\/]* | ?:[\\/]*)
-  ac_cv_path_XSLTPROC="$XSLTPROC" # Let the user override the test with a path.
+  ac_cv_path_FOP="$FOP" # Let the user override the test with a path.
   ;;
   *)
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -18716,7 +18679,7 @@ do
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext"
+    ac_cv_path_FOP="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -18727,40 +18690,40 @@ IFS=$as_save_IFS
   ;;
 esac
 fi
-XSLTPROC=$ac_cv_path_XSLTPROC
-if test -n "$XSLTPROC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5
-$as_echo "$XSLTPROC" >&6; }
+FOP=$ac_cv_path_FOP
+if test -n "$FOP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FOP" >&5
+$as_echo "$FOP" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
-  test -n "$XSLTPROC" && break
+  test -n "$FOP" && break
 done
 
 else
-  # Report the value of XSLTPROC in configure's output in all cases.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XSLTPROC" >&5
-$as_echo_n "checking for XSLTPROC... " >&6; }
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5
-$as_echo "$XSLTPROC" >&6; }
+  # Report the value of FOP in configure's output in all cases.
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FOP" >&5
+$as_echo_n "checking for FOP... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FOP" >&5
+$as_echo "$FOP" >&6; }
 fi
 
-if test -z "$FOP"; then
-  for ac_prog in fop
+if test -z "$DBTOEPUB"; then
+  for ac_prog in dbtoepub
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_FOP+:} false; then :
+if ${ac_cv_path_DBTOEPUB+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  case $FOP in
+  case $DBTOEPUB in
   [\\/]* | ?:[\\/]*)
-  ac_cv_path_FOP="$FOP" # Let the user override the test with a path.
+  ac_cv_path_DBTOEPUB="$DBTOEPUB" # Let the user override the test with a path.
   ;;
   *)
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -18770,7 +18733,7 @@ do
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_FOP="$as_dir/$ac_word$ac_exec_ext"
+    ac_cv_path_DBTOEPUB="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -18781,25 +18744,25 @@ IFS=$as_save_IFS
   ;;
 esac
 fi
-FOP=$ac_cv_path_FOP
-if test -n "$FOP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FOP" >&5
-$as_echo "$FOP" >&6; }
+DBTOEPUB=$ac_cv_path_DBTOEPUB
+if test -n "$DBTOEPUB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DBTOEPUB" >&5
+$as_echo "$DBTOEPUB" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
-  test -n "$FOP" && break
+  test -n "$DBTOEPUB" && break
 done
 
 else
-  # Report the value of FOP in configure's output in all cases.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FOP" >&5
-$as_echo_n "checking for FOP... " >&6; }
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FOP" >&5
-$as_echo "$FOP" >&6; }
+  # Report the value of DBTOEPUB in configure's output in all cases.
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DBTOEPUB" >&5
+$as_echo_n "checking for DBTOEPUB... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DBTOEPUB" >&5
+$as_echo "$DBTOEPUB" >&6; }
 fi
 
 
index 748fb50236a1863a1c33bee1806fe28abd7b75b9..466aa51dd67df05b2fd235f8f45526727ef4110f 100644 (file)
@@ -2237,13 +2237,12 @@ 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(DBTOEPUB, dbtoepub)
+PGAC_PATH_PROGS(XMLLINT, xmllint)
 PGAC_PATH_PROGS(XSLTPROC, xsltproc)
 PGAC_PATH_PROGS(FOP, fop)
+PGAC_PATH_PROGS(DBTOEPUB, dbtoepub)
 
 #
 # Check for test tools
index 17d36e91452ec4e2b7514d07249c4edc03d090c4..05dd9a8b44e028f4a6fc0a1720aa3183a42435c7 100644 (file)
    You can get away with not installing DocBook XML and the DocBook XSLT
    stylesheets locally, because the required files will be downloaded from the
    Internet and cached locally.  This may in fact be the preferred solution if
-   your operating system packages provide only an old version of especially
-   the stylesheets or if no packages are available at all.  See
-   the <option>--nonet</option> option for <command>xmllint</command>
-   and <command>xsltproc</command> for more information.
+   your operating system packages provide only an old version of these files,
+   or if no packages are available at all.
+   If you want to prevent any attempt to access the Internet while building
+   the documentation, you need to pass the <option>--nonet</option> option
+   to <command>xmllint</command> and <command>xsltproc</command>; see below
+   for an example.
   </para>
 
   <sect2>
@@ -228,21 +230,37 @@ brew install docbook docbook-xsl fop
 
   <para>
    Before you can build the documentation you need to run the
-   <filename>configure</filename> script as you would when building
+   <filename>configure</filename> script, as you would when building
    the <productname>PostgreSQL</productname> programs themselves.
-   Check the output near the end of the run, it should look something
+   Check the output near the end of the run; it should look something
    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
+checking for dbtoepub... dbtoepub
 </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>