@ -136,6 +136,7 @@
<listitem>
<listitem>
<para>
<para>
This is a program for converting, among other things, XML to PDF.
This is a program for converting, among other things, XML to PDF.
It is needed only if you want to build the documentation in PDF format.
</para>
</para>
</listitem>
</listitem>
</varlistentry>
</varlistentry>
@ -151,25 +152,13 @@
here.
here.
</para>
</para>
<para>
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 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 id="docguide-toolsets-inst-fedora-et-al">
<sect2 id="docguide-toolsets-inst-fedora-et-al">
<title>Installation on Fedora, RHEL, and Derivatives</title>
<title>Installation on Fedora, RHEL, and Derivatives</title>
<para>
<para>
To install the required packages, use:
To install the required packages, use:
<programlisting>
<programlisting>
yum install docbook-dtds docbook-style-xsl fop libxslt
yum install docbook-dtds docbook-style-xsl libxslt fop
</programlisting>
</programlisting>
</para>
</para>
</sect2>
</sect2>
@ -180,7 +169,7 @@ yum install docbook-dtds docbook-style-xsl fop libxslt
<para>
<para>
To install the required packages with <command>pkg</command>, use:
To install the required packages with <command>pkg</command>, use:
<programlisting>
<programlisting>
pkg install docbook-xml docbook-xsl fop libxslt
pkg install docbook-xml docbook-xsl libxslt fop
</programlisting>
</programlisting>
</para>
</para>
@ -199,7 +188,7 @@ pkg install docbook-xml docbook-xsl fop libxslt
available for <productname>Debian GNU/Linux</productname>.
available for <productname>Debian GNU/Linux</productname>.
To install, simply use:
To install, simply use:
<programlisting>
<programlisting>
apt-get install docbook-xml docbook-xsl fop libxml2-utils xsltproc
apt-get install docbook-xml docbook-xsl libxml2-utils xsltproc fop
</programlisting>
</programlisting>
</para>
</para>
</sect2>
</sect2>
@ -208,21 +197,37 @@ apt-get install docbook-xml docbook-xsl fop libxml2-utils xsltproc
<title>macOS</title>
<title>macOS</title>
<para>
<para>
On macOS, you can build the HTML and man documentation without installing
If you use MacPorts, the following will get you set up:
anything extra. If you want to build PDFs or want to install a local copy
<programlisting>
of DocBook, you can get those from your preferred package manager.
sudo port install docbook-xml docbook-xsl-nons libxslt fop
</programlisting>
If you use Homebrew, use this:
<programlisting>
brew install docbook docbook-xsl libxslt fop
</programlisting>
</para>
</para>
<para>
<para>
If you use MacPorts, the following will get you set up:
The Homebrew-supplied programs require the following environment variable
to be set:
<programlisting>
<programlisting>
sudo port install docbook-xml-4.5 docbook-xsl fop
export XML_CATALOG_FILES=/usr/local/etc/xml/catalog
</programlisting>
</programlisting>
If you use Homebrew, us e this:
Without it, <command>xsltproc</command> will throw errors lik e this:
<programlisting>
<programlisting>
brew install docbook docbook-xsl fop
I/O error : Attempt to load network entity http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd
postgres.sgml:21: warning: failed to load external entity "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
...
</programlisting>
</programlisting>
</para>
</para>
<para>
While it is possible to use the Apple-provided versions
of <command>xmllint</command> and <command>xsltproc</command>
instead of those from MacPorts or Homebrew, you'll still need
to install the DocBook DTD and stylesheets, and set up a catalog
file that points to them.
</para>
</sect2>
</sect2>
<sect2 id="docguide-toolsets-configure">
<sect2 id="docguide-toolsets-configure">
@ -253,19 +258,20 @@ checking for dbtoepub... dbtoepub
these programs, for example
these programs, for example
<screen>
<screen>
./configure ... XMLLINT=/opt/local/bin/xmllint ...
./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>
</screen>
</para>
</para>
<para>
If you prefer to build <productname>PostgreSQL</productname> using
Meson, instead run <command>meson setup</command> as described in
<xref linkend="install-meson"/>, and then see
<xref linkend="docguide-build-meson"/>.
</para>
</sect2>
</sect2>
</sect1>
</sect1>
<sect1 id="docguide-build">
<sect1 id="docguide-build">
<title>Building the Documentation</title>
<title>Building the Documentation with Make </title>
<para>
<para>
Once you have everything set up, change to the directory
Once you have everything set up, change to the directory
@ -410,6 +416,30 @@ ADDITIONAL_FLAGS='-Xmx1500m'
</sect1>
</sect1>
<sect1 id="docguide-build-meson">
<title>Building the Documentation with Meson</title>
<para>
Two options are provided for building the documentation using Meson.
Change to the <filename>build</filename> directory before running
one of these commands, or add <option>-C build</option> to the command.
</para>
<para>
To build just the <acronym>HTML</acronym> version of the documentation:
<screen>
<prompt>build$ </prompt><userinput>ninja docs</userinput>
</screen>
To build all forms of the documentation:
<screen>
<prompt>build$ </prompt><userinput>ninja alldocs</userinput>
</screen>
The output appears in the
subdirectory <filename>build/doc/src/sgml</filename>.
</para>
</sect1>
<sect1 id="docguide-authoring">
<sect1 id="docguide-authoring">
<title>Documentation Authoring</title>
<title>Documentation Authoring</title>