Use DocBook XSL stylesheets for man page building
This switches the man page building process to use the DocBook XSL stylesheet toolchain. The previous targets for Docbook2X are removed. configure has been updated to look for the new tools. The Documentation appendix contains the new build instructions. There are also a few isolated tweaks in the documentation to improve places that came out strangely in the man pages.
This commit is contained in:
parent
b1732111f2
commit
c29d7f02c2
|
@ -1,4 +1,4 @@
|
||||||
# $PostgreSQL: pgsql/config/docbook.m4,v 1.10 2008/11/26 11:26:54 petere Exp $
|
# $PostgreSQL: pgsql/config/docbook.m4,v 1.11 2009/08/04 22:04:37 petere Exp $
|
||||||
|
|
||||||
# PGAC_PROG_JADE
|
# PGAC_PROG_JADE
|
||||||
# --------------
|
# --------------
|
||||||
|
@ -97,32 +97,3 @@ if test -n "$DOCBOOKSTYLE"; then
|
||||||
else
|
else
|
||||||
AC_PATH_PROGS(COLLATEINDEX, collateindex.pl)
|
AC_PATH_PROGS(COLLATEINDEX, collateindex.pl)
|
||||||
fi])# PGAC_PATH_COLLATEINDEX
|
fi])# PGAC_PATH_COLLATEINDEX
|
||||||
|
|
||||||
|
|
||||||
# PGAC_PATH_DOCBOOK2MAN
|
|
||||||
# ---------------------
|
|
||||||
# Find docbook2man program from the docbook2X package. Upstream calls
|
|
||||||
# this program docbook2man, but there is also a different docbook2man
|
|
||||||
# out there from the docbook-utils package. Thus, the program we want
|
|
||||||
# is called docbook2x-man on Debian and db2x_docbook2man on Fedora.
|
|
||||||
#
|
|
||||||
# (Consider rewriting this macro using AC_PATH_PROGS_FEATURE_CHECK
|
|
||||||
# when switching to Autoconf 2.62+.)
|
|
||||||
AC_DEFUN([PGAC_PATH_DOCBOOK2MAN],
|
|
||||||
[AC_CACHE_CHECK([for docbook2man], [ac_cv_path_DOCBOOK2MAN],
|
|
||||||
[if test -z "$DOCBOOK2MAN"; then
|
|
||||||
_AS_PATH_WALK([],
|
|
||||||
[for ac_prog in docbook2x-man db2x_docbook2man docbook2man; do
|
|
||||||
ac_path="$as_dir/$ac_prog"
|
|
||||||
AS_EXECUTABLE_P(["$ac_path"]) || continue
|
|
||||||
if "$ac_path" --version 2>/dev/null | $GREP docbook2x >/dev/null 2>&1; then
|
|
||||||
ac_cv_path_DOCBOOK2MAN=$ac_path
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done])
|
|
||||||
else
|
|
||||||
ac_cv_path_DOCBOOK2MAN=$DOCBOOK2MAN
|
|
||||||
fi])
|
|
||||||
DOCBOOK2MAN=$ac_cv_path_DOCBOOK2MAN
|
|
||||||
AC_SUBST(DOCBOOK2MAN)
|
|
||||||
])# PGAC_PATH_DOCBOOK2MAN
|
|
||||||
|
|
|
@ -642,8 +642,8 @@ ac_includes_default="\
|
||||||
|
|
||||||
ac_subst_vars='LTLIBOBJS
|
ac_subst_vars='LTLIBOBJS
|
||||||
vpath_build
|
vpath_build
|
||||||
DOCBOOK2MAN
|
OSX
|
||||||
SGMLSPL
|
XSLTPROC
|
||||||
COLLATEINDEX
|
COLLATEINDEX
|
||||||
DOCBOOKSTYLE
|
DOCBOOKSTYLE
|
||||||
have_docbook
|
have_docbook
|
||||||
|
@ -28028,17 +28028,17 @@ fi
|
||||||
done
|
done
|
||||||
|
|
||||||
fi
|
fi
|
||||||
for ac_prog in sgmlspl
|
for ac_prog in xsltproc
|
||||||
do
|
do
|
||||||
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||||
set dummy $ac_prog; ac_word=$2
|
set dummy $ac_prog; ac_word=$2
|
||||||
{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
|
{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
|
||||||
$as_echo_n "checking for $ac_word... " >&6; }
|
$as_echo_n "checking for $ac_word... " >&6; }
|
||||||
if test "${ac_cv_prog_SGMLSPL+set}" = set; then
|
if test "${ac_cv_prog_XSLTPROC+set}" = set; then
|
||||||
$as_echo_n "(cached) " >&6
|
$as_echo_n "(cached) " >&6
|
||||||
else
|
else
|
||||||
if test -n "$SGMLSPL"; then
|
if test -n "$XSLTPROC"; then
|
||||||
ac_cv_prog_SGMLSPL="$SGMLSPL" # Let the user override the test.
|
ac_cv_prog_XSLTPROC="$XSLTPROC" # Let the user override the test.
|
||||||
else
|
else
|
||||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||||
for as_dir in $PATH
|
for as_dir in $PATH
|
||||||
|
@ -28047,7 +28047,7 @@ do
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
||||||
ac_cv_prog_SGMLSPL="$ac_prog"
|
ac_cv_prog_XSLTPROC="$ac_prog"
|
||||||
$as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
fi
|
fi
|
||||||
|
@ -28057,50 +28057,61 @@ IFS=$as_save_IFS
|
||||||
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
SGMLSPL=$ac_cv_prog_SGMLSPL
|
XSLTPROC=$ac_cv_prog_XSLTPROC
|
||||||
if test -n "$SGMLSPL"; then
|
if test -n "$XSLTPROC"; then
|
||||||
{ $as_echo "$as_me:$LINENO: result: $SGMLSPL" >&5
|
{ $as_echo "$as_me:$LINENO: result: $XSLTPROC" >&5
|
||||||
$as_echo "$SGMLSPL" >&6; }
|
$as_echo "$XSLTPROC" >&6; }
|
||||||
else
|
else
|
||||||
{ $as_echo "$as_me:$LINENO: result: no" >&5
|
{ $as_echo "$as_me:$LINENO: result: no" >&5
|
||||||
$as_echo "no" >&6; }
|
$as_echo "no" >&6; }
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
test -n "$SGMLSPL" && break
|
test -n "$XSLTPROC" && break
|
||||||
done
|
done
|
||||||
|
|
||||||
{ $as_echo "$as_me:$LINENO: checking for docbook2man" >&5
|
for ac_prog in osx sgml2xml sx
|
||||||
$as_echo_n "checking for docbook2man... " >&6; }
|
do
|
||||||
if test "${ac_cv_path_DOCBOOK2MAN+set}" = set; then
|
# 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:$LINENO: checking for $ac_word" >&5
|
||||||
|
$as_echo_n "checking for $ac_word... " >&6; }
|
||||||
|
if test "${ac_cv_prog_OSX+set}" = set; then
|
||||||
$as_echo_n "(cached) " >&6
|
$as_echo_n "(cached) " >&6
|
||||||
else
|
else
|
||||||
if test -z "$DOCBOOK2MAN"; then
|
if test -n "$OSX"; then
|
||||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
ac_cv_prog_OSX="$OSX" # Let the user override the test.
|
||||||
|
else
|
||||||
|
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||||
for as_dir in $PATH
|
for as_dir in $PATH
|
||||||
do
|
do
|
||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_prog in docbook2x-man db2x_docbook2man docbook2man; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
ac_path="$as_dir/$ac_prog"
|
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
||||||
{ test -f "$ac_path" && $as_test_x "$ac_path"; } || continue
|
ac_cv_prog_OSX="$ac_prog"
|
||||||
if "$ac_path" --version 2>/dev/null | $GREP docbook2x >/dev/null 2>&1; then
|
$as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
ac_cv_path_DOCBOOK2MAN=$ac_path
|
break 2
|
||||||
break
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
|
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
OSX=$ac_cv_prog_OSX
|
||||||
|
if test -n "$OSX"; then
|
||||||
|
{ $as_echo "$as_me:$LINENO: result: $OSX" >&5
|
||||||
|
$as_echo "$OSX" >&6; }
|
||||||
else
|
else
|
||||||
ac_cv_path_DOCBOOK2MAN=$DOCBOOK2MAN
|
{ $as_echo "$as_me:$LINENO: result: no" >&5
|
||||||
|
$as_echo "no" >&6; }
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_DOCBOOK2MAN" >&5
|
|
||||||
$as_echo "$ac_cv_path_DOCBOOK2MAN" >&6; }
|
|
||||||
DOCBOOK2MAN=$ac_cv_path_DOCBOOK2MAN
|
|
||||||
|
|
||||||
|
|
||||||
|
test -n "$OSX" && break
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
# Thread testing
|
# Thread testing
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
dnl Process this file with autoconf to produce a configure script.
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
dnl $PostgreSQL: pgsql/configure.in,v 1.607 2009/07/24 15:03:07 tgl Exp $
|
dnl $PostgreSQL: pgsql/configure.in,v 1.608 2009/08/04 22:04:36 petere Exp $
|
||||||
dnl
|
dnl
|
||||||
dnl Developers, please strive to achieve this order:
|
dnl Developers, please strive to achieve this order:
|
||||||
dnl
|
dnl
|
||||||
|
@ -1731,8 +1731,8 @@ PGAC_PROG_JADE
|
||||||
PGAC_CHECK_DOCBOOK(4.2)
|
PGAC_CHECK_DOCBOOK(4.2)
|
||||||
PGAC_PATH_DOCBOOK_STYLESHEETS
|
PGAC_PATH_DOCBOOK_STYLESHEETS
|
||||||
PGAC_PATH_COLLATEINDEX
|
PGAC_PATH_COLLATEINDEX
|
||||||
AC_CHECK_PROGS(SGMLSPL, sgmlspl)
|
AC_CHECK_PROGS(XSLTPROC, xsltproc)
|
||||||
PGAC_PATH_DOCBOOK2MAN
|
AC_CHECK_PROGS(OSX, [osx sgml2xml sx])
|
||||||
|
|
||||||
# Thread testing
|
# Thread testing
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#
|
#
|
||||||
# PostgreSQL documentation makefile
|
# PostgreSQL documentation makefile
|
||||||
#
|
#
|
||||||
# $PostgreSQL: pgsql/doc/src/sgml/Makefile,v 1.119 2009/07/20 18:34:58 petere Exp $
|
# $PostgreSQL: pgsql/doc/src/sgml/Makefile,v 1.120 2009/08/04 22:04:37 petere Exp $
|
||||||
#
|
#
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -33,17 +33,15 @@ ifndef NSGMLS
|
||||||
NSGMLS = nsgmls
|
NSGMLS = nsgmls
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifndef SGMLSPL
|
ifndef OSX
|
||||||
SGMLSPL = sgmlspl
|
OSX = osx
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifndef DOCBOOK2MAN
|
ifndef XSLTPROC
|
||||||
DOCBOOK2MAN = docbook2man_is_missing
|
XSLTPROC = xsltproc
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# docbook2man generates man pages from docbook refentry source code.
|
override XSLTPROCFLAGS += --stringparam pg.version '$(VERSION)'
|
||||||
D2MSCRIPT= $(D2MDIR)/docbook2man-spec.pl
|
|
||||||
D2MLINKS = $(D2MDIR)/docbook2man-spec_makelinks
|
|
||||||
|
|
||||||
|
|
||||||
GENERATED_SGML = bookindex.sgml version.sgml \
|
GENERATED_SGML = bookindex.sgml version.sgml \
|
||||||
|
@ -70,25 +68,14 @@ override SPFLAGS += -wall -wno-unused-param -wno-empty -wfully-tagged
|
||||||
## Man pages
|
## Man pages
|
||||||
##
|
##
|
||||||
|
|
||||||
.PHONY: html man draft clean
|
.PHONY: man
|
||||||
|
|
||||||
DEFAULTSECTION = l
|
man: man-stamp
|
||||||
|
|
||||||
fix_man_xrefs = $(PERL) -npi -e 's{\[XRef to GUC-([A-Z0-9-]*)\]}{($$l = $$1) =~ tr/A-Z-/a-z_/, $$l}ge || s{\[XRef to [A-Z0-9-]*\]}{in the documentation}g'
|
man-stamp: stylesheet-man.xsl postgres.xml
|
||||||
lowercase = tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'
|
$(XSLTPROC) $(XSLTPROCFLAGS) $^
|
||||||
|
rm man1/SPI* man1/dblink*
|
||||||
man: postgres.sgml $(ALLSGML)
|
touch $@
|
||||||
$(NSGMLS) $(NSGMLS_FLAGS) $(SGMLINCLUDE) $< | $(SGMLSPL) $(D2MSCRIPT) --lowercase --section $(DEFAULTSECTION) --date "`date '+%Y-%m-%d'`"
|
|
||||||
# One more time, to resolve cross-references
|
|
||||||
$(NSGMLS) $(NSGMLS_FLAGS) $(SGMLINCLUDE) $< | $(SGMLSPL) $(D2MSCRIPT) --lowercase --section $(DEFAULTSECTION) --date "`date '+%Y-%m-%d'`"
|
|
||||||
$(fix_man_xrefs) *.1 *.7
|
|
||||||
$(mkinstalldirs) man1 man7
|
|
||||||
$(D2MLINKS) < manpage.links
|
|
||||||
mv *.1 man1/
|
|
||||||
mv *.7 man7/
|
|
||||||
rm *.$(DEFAULTSECTION)
|
|
||||||
# manpage.links doesn't handle lowercase, needs fixups
|
|
||||||
cd man7 && for file in `awk '{ print $$2 }' ../manpage.links`; do $(lowercase) <$$file >`echo $$file | $(lowercase)` && rm $$file || exit; done
|
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
|
@ -97,6 +84,8 @@ man: postgres.sgml $(ALLSGML)
|
||||||
|
|
||||||
all: html
|
all: html
|
||||||
|
|
||||||
|
.PHONY: html draft
|
||||||
|
|
||||||
JADE.html.call = $(JADE) $(JADEFLAGS) $(SPFLAGS) $(SGMLINCLUDE) $(CATALOG) -d stylesheet.dsl -t sgml -i output-html
|
JADE.html.call = $(JADE) $(JADEFLAGS) $(SPFLAGS) $(SGMLINCLUDE) $(CATALOG) -d stylesheet.dsl -t sgml -i output-html
|
||||||
|
|
||||||
# The draft target creates HTML output in draft mode, without index (for faster build).
|
# The draft target creates HTML output in draft mode, without index (for faster build).
|
||||||
|
@ -222,9 +211,6 @@ regress_README.html: regress.sgml
|
||||||
## XSLT processing
|
## XSLT processing
|
||||||
##
|
##
|
||||||
|
|
||||||
OSX = osx # (may be called sx or sgml2xml on some systems)
|
|
||||||
XSLTPROC = xsltproc
|
|
||||||
|
|
||||||
postgres.xml: postgres.sgml $(ALMOSTALLSGML)
|
postgres.xml: postgres.sgml $(ALMOSTALLSGML)
|
||||||
$(OSX) -D. -x lower $< | \
|
$(OSX) -D. -x lower $< | \
|
||||||
$(PERL) -p -e 's/\[(amp|copy|egrave|gt|lt|mdash|nbsp|ouml|pi|quot|uuml) *\]/\&\1;/g;' \
|
$(PERL) -p -e 's/\[(amp|copy|egrave|gt|lt|mdash|nbsp|ouml|pi|quot|uuml) *\]/\&\1;/g;' \
|
||||||
|
@ -232,8 +218,6 @@ postgres.xml: postgres.sgml $(ALMOSTALLSGML)
|
||||||
>$@
|
>$@
|
||||||
# ' hello Emacs
|
# ' hello Emacs
|
||||||
|
|
||||||
override XSLTPROCFLAGS += --stringparam pg.version '$(VERSION)'
|
|
||||||
|
|
||||||
xslthtml: stylesheet.xsl postgres.xml
|
xslthtml: stylesheet.xsl postgres.xml
|
||||||
$(XSLTPROC) $(XSLTPROCFLAGS) $^
|
$(XSLTPROC) $(XSLTPROCFLAGS) $^
|
||||||
|
|
||||||
|
@ -268,18 +252,6 @@ MAKEINFO = makeinfo
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
|
|
||||||
|
|
||||||
##
|
|
||||||
## Experimental man page building through docbook2x
|
|
||||||
##
|
|
||||||
|
|
||||||
manx: postgres.xml stylesheet-man.xsl
|
|
||||||
$(DOCBOOK2MAN) --solinks -s $(srcdir)/stylesheet-man.xsl --string-param default-manpage-section=$(DEFAULTSECTION) $<
|
|
||||||
$(mkinstalldirs) man1 man7
|
|
||||||
mv *.1 man1/
|
|
||||||
mv *.7 man7/
|
|
||||||
rm *.$(DEFAULTSECTION)
|
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## Check
|
## Check
|
||||||
##
|
##
|
||||||
|
@ -297,7 +269,7 @@ clean distclean maintainer-clean:
|
||||||
# HTML
|
# HTML
|
||||||
rm -f *.html html-stamp
|
rm -f *.html html-stamp
|
||||||
# man
|
# man
|
||||||
rm -rf *.1 *.7 *.$(DEFAULTSECTION) man1 man7 manpage.refs manpage.links manpage.log
|
rm -rf man1 man7 man-stamp
|
||||||
# print
|
# print
|
||||||
rm -f *.rtf *.tex-ps *.tex-pdf *.dvi *.aux *.log *.ps *.pdf *.out *.fot
|
rm -f *.rtf *.tex-ps *.tex-pdf *.dvi *.aux *.log *.ps *.pdf *.out *.fot
|
||||||
# index
|
# index
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/docguide.sgml,v 1.76 2009/06/17 21:58:49 tgl Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/docguide.sgml,v 1.77 2009/08/04 22:04:37 petere Exp $ -->
|
||||||
|
|
||||||
<appendix id="docguide">
|
<appendix id="docguide">
|
||||||
<title>Documentation</title>
|
<title>Documentation</title>
|
||||||
|
@ -83,13 +83,14 @@
|
||||||
|
|
||||||
<variablelist>
|
<variablelist>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><ulink url="http://www.oasis-open.org/docbook/sgml/">DocBook DTD</ulink></term>
|
<term><ulink url="http://www.oasis-open.org/docbook/">DocBook DTD</ulink></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
This is the definition of DocBook itself. We currently use
|
This is the definition of DocBook itself. We currently use
|
||||||
version 4.2; you cannot use later or earlier versions. Note
|
version 4.2; you cannot use later or earlier versions. You
|
||||||
that there is also an <acronym>XML</acronym> version of DocBook
|
need the <acronym>SGML</acronym> variant of the DocBook DTD,
|
||||||
— do not use that.
|
but to build man pages you also need the <acronym>XML</acronym>
|
||||||
|
variant of the same version.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -104,6 +105,30 @@
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><ulink url="http://wiki.docbook.org/topic/DocBookDssslStylesheets">DocBook DSSSL Stylesheets</ulink></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
These contain the processing instructions for converting the
|
||||||
|
DocBook sources to other formats, such as
|
||||||
|
<acronym>HTML</acronym>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><ulink url="http://wiki.docbook.org/topic/DocBookXslStylesheets">DocBook XSL Stylesheets</ulink></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
This is another stylesheet for converting DocBook to other
|
||||||
|
formats. We currently use this to produce man pages and
|
||||||
|
optionally HTMLHelp. You can also use this toolchain to
|
||||||
|
produce HTML or PDF output, but official PostgreSQL releases
|
||||||
|
use the DSSSL stylesheets for that.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><ulink url="http://openjade.sourceforge.net">OpenJade</ulink></term>
|
<term><ulink url="http://openjade.sourceforge.net">OpenJade</ulink></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
@ -120,32 +145,12 @@
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><ulink url="http://wiki.docbook.org/topic/DocBookDssslStylesheets">DocBook DSSSL Stylesheets</ulink></term>
|
<term><ulink url="http://xmlsoft.org/XSLT/">Libxslt</ulink> for <command>xsltproc</command></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
These contain the processing instructions for converting the
|
This is the processing tool to use with the XSLT stylesheets
|
||||||
DocBook sources to other formats, such as
|
(like <command>jade</command> is the processing tool for DSSSL
|
||||||
<acronym>HTML</acronym>.
|
stylesheets).
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><ulink url="http://search.cpan.org/dist/SGMLSpm/">SGMLSpm</ulink></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
This optional package is used to create man pages.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><ulink url="http://docbook2x.sourceforge.net">DocBook2X</ulink></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
This optional package is also used to create man pages. You
|
|
||||||
want the <literal>docbook2man-sgmlspl</literal> package, not
|
|
||||||
the main <literal>docbook2x</literal> package.
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -263,13 +268,8 @@ CATALOG "docbook/4.2/catalog"
|
||||||
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 openjade1.3
|
apt-get install docbook docbook-dsssl docbook-xsl openjade xsltproc
|
||||||
apt-get install docbook
|
|
||||||
apt-get install docbook-dsssl
|
|
||||||
apt-get install sgmlspl # for the man pages
|
|
||||||
</programlisting>
|
</programlisting>
|
||||||
(The plain <literal>openjade</literal> package installs
|
|
||||||
OpenJade 1.4, which seems not to work.)
|
|
||||||
</para>
|
</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
|
@ -511,13 +511,15 @@ CATALOG "docbook-dsssl-1.<replaceable>xx</>/catalog"
|
||||||
checking for onsgmls... onsgmls
|
checking for onsgmls... onsgmls
|
||||||
checking for openjade... openjade
|
checking for openjade... openjade
|
||||||
checking for DocBook V4.2... yes
|
checking for DocBook V4.2... yes
|
||||||
checking for DocBook stylesheets... /usr/lib/sgml/stylesheets/nwalsh-modular
|
checking for DocBook stylesheets... /usr/share/sgml/docbook/stylesheet/dsssl/modular
|
||||||
checking for sgmlspl... sgmlspl
|
checking for collateindex.pl... /usr/bin/collateindex.pl
|
||||||
|
checking for xsltproc... xsltproc
|
||||||
|
checking for osx... osx
|
||||||
</computeroutput>
|
</computeroutput>
|
||||||
</screen>
|
</screen>
|
||||||
If neither <filename>onsgmls</filename> nor
|
If neither <filename>onsgmls</filename> nor
|
||||||
<filename>nsgmls</filename> were found then you will not see the
|
<filename>nsgmls</filename> were found then some of the following tests
|
||||||
remaining 4 lines. <filename>nsgmls</filename> is part of the Jade
|
will be skipped. <filename>nsgmls</filename> is part of the Jade
|
||||||
package. You can pass the environment variables
|
package. You can pass the environment variables
|
||||||
<envar>JADE</envar> and <envar>NSGMLS</envar> to configure to point
|
<envar>JADE</envar> and <envar>NSGMLS</envar> to configure to point
|
||||||
to the programs if they are not found automatically. If
|
to the programs if they are not found automatically. If
|
||||||
|
@ -583,8 +585,7 @@ gmake postgres.tar.gz
|
||||||
<title>Manpages</title>
|
<title>Manpages</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
We use the <application>docbook2man-sgmlspl</application> utility
|
We use the DocBook XSL stylesheets to
|
||||||
from the <productname>DocBook2X</productname> project to
|
|
||||||
convert <productname>DocBook</productname>
|
convert <productname>DocBook</productname>
|
||||||
<sgmltag>refentry</sgmltag> pages to *roff output suitable for man
|
<sgmltag>refentry</sgmltag> pages to *roff output suitable for man
|
||||||
pages. The man pages are also distributed as a tar archive,
|
pages. The man pages are also distributed as a tar archive,
|
||||||
|
@ -592,32 +593,15 @@ gmake postgres.tar.gz
|
||||||
pages, use the commands:
|
pages, use the commands:
|
||||||
<programlisting>
|
<programlisting>
|
||||||
cd doc/src/sgml
|
cd doc/src/sgml
|
||||||
gmake man D2MDIR=<replaceable>directory</replaceable>
|
gmake man
|
||||||
</programlisting>
|
</programlisting>
|
||||||
Use the <varname>D2MDIR</varname> variable to specify the name of
|
|
||||||
the directory where the
|
|
||||||
file <filename>docbook2man-spec.pl</filename> from
|
|
||||||
the <application>docbook2man-sgmlspl</application> package resides.
|
|
||||||
There is no default for that. Since that package is not available
|
|
||||||
or outdated in many packaging systems, you might want to just
|
|
||||||
download the source code tarball and unpack it. No building is
|
|
||||||
required. Then the path is something
|
|
||||||
like <literal>D2MDIR=/home/you/somewhere/docbook2man-sgmlspl-1.0/perl</literal>.
|
|
||||||
You may get warnings like this:
|
|
||||||
<screen>
|
|
||||||
Warning: unrecognized SDATA '[scaron]': please add definition to docbook2man-spec.pl
|
|
||||||
Warning: unrecognized SDATA '[ouml ]': please add definition to docbook2man-spec.pl
|
|
||||||
</screen>
|
|
||||||
which can ignore if (and only if) you are using the latest version
|
|
||||||
of <filename>docbook2man-spec.pl</filename>
|
|
||||||
and you are not seeing any other SDATA warnings besides those.
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
To create the man page package for a release, use the following commands:
|
To create the man page package for a release, use the following commands:
|
||||||
<programlisting>
|
<programlisting>
|
||||||
cd doc/src
|
cd doc/src
|
||||||
gmake man.tar.gz D2MDIR=<replaceable>directory</replaceable>
|
gmake man.tar.gz
|
||||||
</programlisting>
|
</programlisting>
|
||||||
which will result in a tar file being generated in the
|
which will result in a tar file being generated in the
|
||||||
<filename>doc/src</filename> directory.
|
<filename>doc/src</filename> directory.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/postgres.sgml,v 1.89 2009/07/14 22:16:38 petere Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/postgres.sgml,v 1.90 2009/08/04 22:04:37 petere Exp $ -->
|
||||||
|
|
||||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.2//EN" [
|
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.2//EN" [
|
||||||
|
|
||||||
|
@ -16,6 +16,8 @@
|
||||||
|
|
||||||
<bookinfo>
|
<bookinfo>
|
||||||
<corpauthor>The PostgreSQL Global Development Group</corpauthor>
|
<corpauthor>The PostgreSQL Global Development Group</corpauthor>
|
||||||
|
<productname>PostgreSQL</productname>
|
||||||
|
<productnumber>&version;</productnumber>
|
||||||
&legal;
|
&legal;
|
||||||
</bookinfo>
|
</bookinfo>
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<!--
|
<!--
|
||||||
$PostgreSQL: pgsql/doc/src/sgml/ref/analyze.sgml,v 1.26 2009/08/02 22:14:51 tgl Exp $
|
$PostgreSQL: pgsql/doc/src/sgml/ref/analyze.sgml,v 1.27 2009/08/04 22:04:37 petere Exp $
|
||||||
PostgreSQL documentation
|
PostgreSQL documentation
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ ANALYZE [ VERBOSE ] [ <replaceable class="PARAMETER">table</replaceable> [ ( <re
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
In the default <productname>PostgreSQL</productname> configuration,
|
In the default <productname>PostgreSQL</productname> configuration,
|
||||||
<xref linkend="autovacuum" endterm="autovacuum-title">
|
the autovacuum daemon (see <xref linkend="autovacuum">)
|
||||||
takes care of automatic analyzing of tables when they are first loaded
|
takes care of automatic analyzing of tables when they are first loaded
|
||||||
with data, and as they change throughout regular operation.
|
with data, and as they change throughout regular operation.
|
||||||
When autovacuum is disabled,
|
When autovacuum is disabled,
|
||||||
|
|
|
@ -1,16 +1,158 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version='1.0'?>
|
||||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||||
version="1.0">
|
xmlns:exsl="http://exslt.org/common"
|
||||||
|
version='1.0'
|
||||||
|
exclude-result-prefixes="exsl">
|
||||||
|
|
||||||
<xsl:import href="http://docbook2x.sourceforge.net/latest/xslt/man/docbook.xsl"/>
|
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl"/>
|
||||||
|
<xsl:import href="stylesheet-common.xsl" />
|
||||||
|
|
||||||
<!--
|
|
||||||
Man pages don't really support a third section level, but this
|
<!-- The following is a workaround for what may actually be a mistake
|
||||||
makes our man pages work OK and matches the behavior of the sgmlspl
|
in our markup. The problem is in a situation like
|
||||||
style.
|
|
||||||
|
<para>
|
||||||
|
<command>FOO</command> is ...
|
||||||
|
|
||||||
|
there is strictly speaking a line break before "FOO". In the
|
||||||
|
HTML output, this does not appear to be a problem, but in the man
|
||||||
|
page output, this shows up. Using this setting, pure whitespace
|
||||||
|
text nodes are removed, so the problem is solved. -->
|
||||||
|
<xsl:strip-space elements="para"/>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Parameters -->
|
||||||
|
|
||||||
|
<xsl:param name="man.authors.section.enabled">0</xsl:param>
|
||||||
|
<xsl:param name="man.copyright.section.enabled">0</xsl:param>
|
||||||
|
<xsl:param name="man.output.base.dir"></xsl:param>
|
||||||
|
<xsl:param name="man.output.in.separate.dir" select="1"></xsl:param>
|
||||||
|
<xsl:param name="refentry.meta.get.quietly" select="0"></xsl:param>
|
||||||
|
<xsl:param name="man.th.extra3.max.length">40</xsl:param> <!-- enough room for "PostgreSQL 8.5devel Documentation" -->
|
||||||
|
<xsl:param name="refentry.xref.manvolnum" select="1"/> <!-- overridden from stylesheet-common.xsl -->
|
||||||
|
|
||||||
|
<!-- Fixup for apostrophe groff output. See the following references:
|
||||||
|
<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=457839>
|
||||||
|
<https://sourceforge.net/tracker/?func=detail&aid=2412738&group_id=21935&atid=373747>
|
||||||
-->
|
-->
|
||||||
<xsl:template match="refsect3">
|
<xsl:param name="man.string.subst.map.local.post">
|
||||||
<xsl:call-template name="SS-section" />
|
<substitution oldstring="\'" newstring="\(aq"></substitution>
|
||||||
|
</xsl:param>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Custom templates -->
|
||||||
|
|
||||||
|
<xsl:template match="refentry" mode="xref-to">
|
||||||
|
<xsl:param name="referrer"/>
|
||||||
|
<xsl:param name="xrefstyle"/>
|
||||||
|
|
||||||
|
<xsl:choose>
|
||||||
|
<!-- If the refname contains a space, we construct a reference
|
||||||
|
like CREATE DATABASE (CREATE_DATABASE(7)), so the reader
|
||||||
|
knows both the command name being referred to and the name of
|
||||||
|
the man page to read about it. -->
|
||||||
|
<xsl:when test="contains(refnamediv/refname[1],' ')">
|
||||||
|
<xsl:variable name="mangled.title">
|
||||||
|
<xsl:value-of select="translate(refnamediv/refname[1],' ','_')"/>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:apply-templates select="refnamediv/refname[1]"/>
|
||||||
|
<xsl:text> (</xsl:text>
|
||||||
|
<xsl:call-template name="bold">
|
||||||
|
<xsl:with-param name="node" select="exsl:node-set($mangled.title)"/>
|
||||||
|
<xsl:with-param name="context" select="."/>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:apply-templates select="refmeta/manvolnum"/>
|
||||||
|
<xsl:text>)</xsl:text>
|
||||||
|
</xsl:when>
|
||||||
|
|
||||||
|
<!-- This is the original case, except that boldness has been
|
||||||
|
added, per the convention mentioned in man-pages(7). -->
|
||||||
|
<xsl:otherwise>
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="refmeta/refentrytitle">
|
||||||
|
<xsl:call-template name="bold">
|
||||||
|
<xsl:with-param name="node" select="refmeta/refentrytitle"/>
|
||||||
|
<xsl:with-param name="context" select="."/>
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<xsl:call-template name="bold">
|
||||||
|
<xsl:with-param name="node" select="refnamediv/refname[1]"/>
|
||||||
|
<xsl:with-param name="context" select="."/>
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
<xsl:apply-templates select="refmeta/manvolnum"/>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Overridden template as workaround for this problem:
|
||||||
|
<https://sourceforge.net/tracker/?func=detail&aid=2831602&group_id=21935&atid=373747>
|
||||||
|
-->
|
||||||
|
<xsl:template name="write.stubs">
|
||||||
|
<xsl:param name="first.refname"/>
|
||||||
|
<xsl:param name="section"/>
|
||||||
|
<xsl:param name="lang"/>
|
||||||
|
<xsl:for-each select="refnamediv/refname">
|
||||||
|
<xsl:if test=". != $first.refname">
|
||||||
|
<xsl:call-template name="write.text.chunk">
|
||||||
|
<xsl:with-param name="filename">
|
||||||
|
<xsl:call-template name="make.adjusted.man.filename">
|
||||||
|
<xsl:with-param name="name" select="."/>
|
||||||
|
<xsl:with-param name="section" select="$section"/>
|
||||||
|
<xsl:with-param name="lang" select="$lang"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:with-param>
|
||||||
|
<xsl:with-param name="quiet" select="$man.output.quietly"/>
|
||||||
|
<xsl:with-param name="suppress-context-node-name" select="1"/>
|
||||||
|
<xsl:with-param name="message-prolog">Note: </xsl:with-param>
|
||||||
|
<xsl:with-param name="message-epilog"> (soelim stub)</xsl:with-param>
|
||||||
|
<xsl:with-param name="content">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="$man.output.in.separate.dir = 0">
|
||||||
|
<xsl:value-of select="concat('.so man', $section, '/')"/>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<xsl:value-of select="'.so '"/> <!-- added case -->
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
<xsl:call-template name="make.adjusted.man.filename">
|
||||||
|
<xsl:with-param name="name" select="$first.refname"/>
|
||||||
|
<xsl:with-param name="section" select="$section"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:text> </xsl:text>
|
||||||
|
</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:if>
|
||||||
|
</xsl:for-each>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Gentext customization -->
|
||||||
|
|
||||||
|
<!-- see http://www.sagehill.net/docbookxsl/CustomGentext.html -->
|
||||||
|
<xsl:param name="local.l10n.xml" select="document('')"/>
|
||||||
|
<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
|
||||||
|
<l:l10n language="en">
|
||||||
|
<!-- Use ISO 8601 date format. -->
|
||||||
|
<l:context name="datetime">
|
||||||
|
<l:template name="format" text="Y-m-d"/>
|
||||||
|
</l:context>
|
||||||
|
|
||||||
|
<!-- Slight rephrasing to indicate that missing sections are found
|
||||||
|
in the documentation. -->
|
||||||
|
<l:context name="xref-number-and-title">
|
||||||
|
<l:template name="chapter" text="Chapter %n, %t, in the documentation"/>
|
||||||
|
<l:template name="sect1" text="Section %n, “%t”, in the documentation"/>
|
||||||
|
<l:template name="sect2" text="Section %n, “%t”, in the documentation"/>
|
||||||
|
<l:template name="sect3" text="Section %n, “%t”, in the documentation"/>
|
||||||
|
<l:template name="sect4" text="Section %n, “%t”, in the documentation"/>
|
||||||
|
<l:template name="sect5" text="Section %n, “%t”, in the documentation"/>
|
||||||
|
</l:context>
|
||||||
|
</l:l10n>
|
||||||
|
</l:i18n>
|
||||||
|
|
||||||
</xsl:stylesheet>
|
</xsl:stylesheet>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/trigger.sgml,v 1.57 2009/07/28 02:56:29 tgl Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/trigger.sgml,v 1.58 2009/08/04 22:04:37 petere Exp $ -->
|
||||||
|
|
||||||
<chapter id="triggers">
|
<chapter id="triggers">
|
||||||
<title>Triggers</title>
|
<title>Triggers</title>
|
||||||
|
@ -541,7 +541,7 @@ typedef struct Trigger
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="trigger-example">
|
<sect1 id="trigger-example">
|
||||||
<title>A Complete Example</title>
|
<title>A Complete Trigger Example</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Here is a very simple example of a trigger function written in C.
|
Here is a very simple example of a trigger function written in C.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# -*-makefile-*-
|
# -*-makefile-*-
|
||||||
# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.254 2009/06/23 03:46:00 tgl Exp $
|
# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.255 2009/08/04 22:04:37 petere Exp $
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# All PostgreSQL makefiles include this file and use the variables it sets,
|
# All PostgreSQL makefiles include this file and use the variables it sets,
|
||||||
|
@ -187,11 +187,6 @@ TCL_SHLIB_LD_LIBS = @TCL_SHLIB_LD_LIBS@
|
||||||
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
|
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
|
||||||
PTHREAD_LIBS = @PTHREAD_LIBS@
|
PTHREAD_LIBS = @PTHREAD_LIBS@
|
||||||
|
|
||||||
have_docbook = @have_docbook@
|
|
||||||
DOCBOOKSTYLE = @DOCBOOKSTYLE@
|
|
||||||
COLLATEINDEX = @COLLATEINDEX@
|
|
||||||
DOCBOOK2MAN = @DOCBOOK2MAN@
|
|
||||||
|
|
||||||
|
|
||||||
##########################################################################
|
##########################################################################
|
||||||
#
|
#
|
||||||
|
@ -298,9 +293,13 @@ STRIP_SHARED_LIB = @STRIP_SHARED_LIB@
|
||||||
|
|
||||||
# Documentation
|
# Documentation
|
||||||
|
|
||||||
|
have_docbook = @have_docbook@
|
||||||
|
COLLATEINDEX = @COLLATEINDEX@
|
||||||
|
DOCBOOKSTYLE = @DOCBOOKSTYLE@
|
||||||
JADE = @JADE@
|
JADE = @JADE@
|
||||||
NSGMLS = @NSGMLS@
|
NSGMLS = @NSGMLS@
|
||||||
SGMLSPL = @SGMLSPL@
|
OSX = @OSX@
|
||||||
|
XSLTPROC = @XSLTPROC@
|
||||||
|
|
||||||
# Code coverage
|
# Code coverage
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue