From: Peter Eisentraut =0A= Date: Tue, 4 Apr 2017 22:13:59 -0400=0A= Subject: [PATCH] Remove use of Jade and DSSSL=0A= =0A= All documentation is now built using XSLT. Remove all references to=0A= Jade, DSSSL, also JadeTex and some other outdated tooling.=0A= =0A= For HTML builds, this changes nothing, but removes the transitional=0A= "oldhtml" target. For PDF builds, this removes the JadeTex builds and=0A= moves the FOP builds in their place.=0A= ---=0A= config/docbook.m4 | 62 ---=0A= configure | 180 +++------=0A= configure.in | 4 +-=0A= doc/src/sgml/.gitignore | 8 -=0A= doc/src/sgml/Makefile | 167 ++------=0A= doc/src/sgml/docguide.sgml | 620 +++++------------------------=0A= doc/src/sgml/filelist.sgml | 12 -=0A= doc/src/sgml/fixrtf | 46 ---=0A= doc/src/sgml/install-windows.sgml | 10 -=0A= doc/src/sgml/jadetex.cfg | 89 -----=0A= doc/src/sgml/postgres.sgml | 3 +-=0A= doc/src/sgml/stylesheet.dsl | 798 ----------------------------------= ----=0A= src/Makefile.global.in | 5 +-=0A= 13 files changed, 178 insertions(+), 1826 deletions(-)=0A= delete mode 100755 doc/src/sgml/fixrtf=0A= delete mode 100644 doc/src/sgml/jadetex.cfg=0A= delete mode 100644 doc/src/sgml/stylesheet.dsl=0A= =0A= diff --git a/config/docbook.m4 b/config/docbook.m4=0A= index 4304fa7ea1..d550309353 100644=0A= --- a/config/docbook.m4=0A= +++ b/config/docbook.m4=0A= @@ -1,11 +1,5 @@=0A= # config/docbook.m4=0A= =20=0A= -# PGAC_PROG_JADE=0A= -# --------------=0A= -AC_DEFUN([PGAC_PROG_JADE],=0A= -[AC_CHECK_PROGS([JADE], [openjade jade])])=0A= -=0A= -=0A= # PGAC_PROG_NSGMLS=0A= # ----------------=0A= AC_DEFUN([PGAC_PROG_NSGMLS],=0A= @@ -44,59 +38,3 @@ rm -f conftest.sgml])=0A= have_docbook=3D$pgac_cv_check_docbook=0A= AC_SUBST([have_docbook])=0A= ])# PGAC_CHECK_DOCBOOK=0A= -=0A= -=0A= -# PGAC_PATH_DOCBOOK_STYLESHEETS=0A= -# -----------------------------=0A= -AC_DEFUN([PGAC_PATH_DOCBOOK_STYLESHEETS],=0A= -[AC_ARG_VAR(DOCBOOKSTYLE, [location of DocBook stylesheets])dnl=0A= -AC_MSG_CHECKING([for DocBook stylesheets])=0A= -AC_CACHE_VAL([pgac_cv_path_stylesheets],=0A= -[if test -n "$DOCBOOKSTYLE"; then=0A= - pgac_cv_path_stylesheets=3D$DOCBOOKSTYLE=0A= -else=0A= - for pgac_prefix in /usr /usr/local /opt /sw; do=0A= - for pgac_infix in share lib; do=0A= - for pgac_postfix in \=0A= - sgml/stylesheets/nwalsh-modular \=0A= - sgml/stylesheets/docbook \=0A= - sgml/stylesheets/dsssl/docbook \=0A= - sgml/docbook-dsssl \=0A= - sgml/docbook/dsssl/modular \=0A= - sgml/docbook/stylesheet/dsssl/modular \=0A= - sgml/docbook/dsssl-stylesheets \=0A= - sgml/dsssl/docbook-dsssl-nwalsh=0A= - do=0A= - pgac_candidate=3D$pgac_prefix/$pgac_infix/$pgac_postfix=0A= - if test -r "$pgac_candidate/html/docbook.dsl" \=0A= - && test -r "$pgac_candidate/print/docbook.dsl"=0A= - then=0A= - pgac_cv_path_stylesheets=3D$pgac_candidate=0A= - break 3=0A= - fi=0A= - done=0A= - done=0A= - done=0A= -fi])=0A= -DOCBOOKSTYLE=3D$pgac_cv_path_stylesheets=0A= -AC_SUBST([DOCBOOKSTYLE])=0A= -if test -n "$DOCBOOKSTYLE"; then=0A= - AC_MSG_RESULT([$DOCBOOKSTYLE])=0A= -else=0A= - AC_MSG_RESULT(no)=0A= -fi])# PGAC_PATH_DOCBOOK_STYLESHEETS=0A= -=0A= -=0A= -# PGAC_PATH_COLLATEINDEX=0A= -# ----------------------=0A= -# Some DocBook installations provide collateindex.pl in $DOCBOOKSTYLE/bin,= =0A= -# but it's not necessarily marked executable, so we can't use AC_PATH_PROG= =0A= -# to check for it there. Other installations just put it in the PATH.=0A= -AC_DEFUN([PGAC_PATH_COLLATEINDEX],=0A= -[AC_REQUIRE([PGAC_PATH_DOCBOOK_STYLESHEETS])dnl=0A= -if test -n "$DOCBOOKSTYLE" -a -r "$DOCBOOKSTYLE/bin/collateindex.pl"; then= =0A= - COLLATEINDEX=3D"$DOCBOOKSTYLE/bin/collateindex.pl"=0A= - AC_SUBST([COLLATEINDEX])=0A= -else=0A= - AC_PATH_PROG(COLLATEINDEX, collateindex.pl)=0A= -fi])# PGAC_PATH_COLLATEINDEX=0A= diff --git a/configure b/configure=0A= index 56e3f8f242..7927cdd61d 100755=0A= --- a/configure=0A= +++ b/configure=0A= @@ -629,14 +629,12 @@ ac_subst_vars=3D'LTLIBOBJS=0A= vpath_build=0A= PG_VERSION_NUM=0A= PROVE=0A= +FOP=0A= OSX=0A= XSLTPROC=0A= XMLLINT=0A= DBTOEPUB=0A= -COLLATEINDEX=0A= -DOCBOOKSTYLE=0A= have_docbook=0A= -JADE=0A= NSGMLS=0A= TCL_SHLIB_LD_LIBS=0A= TCL_SHARED_BUILD=0A= @@ -869,8 +867,7 @@ PKG_CONFIG_LIBDIR=0A= ICU_CFLAGS=0A= ICU_LIBS=0A= LDFLAGS_EX=0A= -LDFLAGS_SL=0A= -DOCBOOKSTYLE'=0A= +LDFLAGS_SL'=0A= =20=0A= =20=0A= # Initialize some variables set by options.=0A= @@ -1568,8 +1565,6 @@ Some influential environment variables:=0A= ICU_LIBS linker flags for ICU, overriding pkg-config=0A= LDFLAGS_EX extra linker flags for linking executables only=0A= LDFLAGS_SL extra linker flags for linking shared libraries only=0A= - DOCBOOKSTYLE=0A= - location of DocBook stylesheets=0A= =20=0A= Use these variables to override the choices made by `configure' or to help= =0A= it to find libraries and programs with nonstandard names/locations.=0A= @@ -15947,48 +15942,6 @@ fi=0A= test -n "$NSGMLS" && break=0A= done=0A= =20=0A= -for ac_prog in openjade jade=0A= -do=0A= - # Extract the first word of "$ac_prog", so it can be a program name with= args.=0A= -set dummy $ac_prog; ac_word=3D$2=0A= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5=0A= -$as_echo_n "checking for $ac_word... " >&6; }=0A= -if ${ac_cv_prog_JADE+:} false; then :=0A= - $as_echo_n "(cached) " >&6=0A= -else=0A= - if test -n "$JADE"; then=0A= - ac_cv_prog_JADE=3D"$JADE" # Let the user override the test.=0A= -else=0A= -as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR=0A= -for as_dir in $PATH=0A= -do=0A= - IFS=3D$as_save_IFS=0A= - test -z "$as_dir" && as_dir=3D.=0A= - for ac_exec_ext in '' $ac_executable_extensions; do=0A= - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then=0A= - ac_cv_prog_JADE=3D"$ac_prog"=0A= - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_= ext" >&5=0A= - break 2=0A= - fi=0A= -done=0A= - done=0A= -IFS=3D$as_save_IFS=0A= -=0A= -fi=0A= -fi=0A= -JADE=3D$ac_cv_prog_JADE=0A= -if test -n "$JADE"; then=0A= - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JADE" >&5=0A= -$as_echo "$JADE" >&6; }=0A= -else=0A= - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5=0A= -$as_echo "no" >&6; }=0A= -fi=0A= -=0A= -=0A= - test -n "$JADE" && break=0A= -done=0A= -=0A= =20=0A= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DocBook V4.2" >&5=0A= $as_echo_n "checking for DocBook V4.2... " >&6; }=0A= @@ -16025,93 +15978,6 @@ $as_echo "$pgac_cv_check_docbook" >&6; }=0A= have_docbook=3D$pgac_cv_check_docbook=0A= =20=0A= =20=0A= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DocBook stylesheets"= >&5=0A= -$as_echo_n "checking for DocBook stylesheets... " >&6; }=0A= -if ${pgac_cv_path_stylesheets+:} false; then :=0A= - $as_echo_n "(cached) " >&6=0A= -else=0A= - if test -n "$DOCBOOKSTYLE"; then=0A= - pgac_cv_path_stylesheets=3D$DOCBOOKSTYLE=0A= -else=0A= - for pgac_prefix in /usr /usr/local /opt /sw; do=0A= - for pgac_infix in share lib; do=0A= - for pgac_postfix in \=0A= - sgml/stylesheets/nwalsh-modular \=0A= - sgml/stylesheets/docbook \=0A= - sgml/stylesheets/dsssl/docbook \=0A= - sgml/docbook-dsssl \=0A= - sgml/docbook/dsssl/modular \=0A= - sgml/docbook/stylesheet/dsssl/modular \=0A= - sgml/docbook/dsssl-stylesheets \=0A= - sgml/dsssl/docbook-dsssl-nwalsh=0A= - do=0A= - pgac_candidate=3D$pgac_prefix/$pgac_infix/$pgac_postfix=0A= - if test -r "$pgac_candidate/html/docbook.dsl" \=0A= - && test -r "$pgac_candidate/print/docbook.dsl"=0A= - then=0A= - pgac_cv_path_stylesheets=3D$pgac_candidate=0A= - break 3=0A= - fi=0A= - done=0A= - done=0A= - done=0A= -fi=0A= -fi=0A= -=0A= -DOCBOOKSTYLE=3D$pgac_cv_path_stylesheets=0A= -=0A= -if test -n "$DOCBOOKSTYLE"; then=0A= - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOCBOOKSTYLE" >&5=0A= -$as_echo "$DOCBOOKSTYLE" >&6; }=0A= -else=0A= - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5=0A= -$as_echo "no" >&6; }=0A= -fi=0A= -if test -n "$DOCBOOKSTYLE" -a -r "$DOCBOOKSTYLE/bin/collateindex.pl"; then= =0A= - COLLATEINDEX=3D"$DOCBOOKSTYLE/bin/collateindex.pl"=0A= -=0A= -else=0A= - # Extract the first word of "collateindex.pl", so it can be a program na= me with args.=0A= -set dummy collateindex.pl; ac_word=3D$2=0A= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5=0A= -$as_echo_n "checking for $ac_word... " >&6; }=0A= -if ${ac_cv_path_COLLATEINDEX+:} false; then :=0A= - $as_echo_n "(cached) " >&6=0A= -else=0A= - case $COLLATEINDEX in=0A= - [\\/]* | ?:[\\/]*)=0A= - ac_cv_path_COLLATEINDEX=3D"$COLLATEINDEX" # Let the user override the te= st with a path.=0A= - ;;=0A= - *)=0A= - as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR=0A= -for as_dir in $PATH=0A= -do=0A= - IFS=3D$as_save_IFS=0A= - test -z "$as_dir" && as_dir=3D.=0A= - for ac_exec_ext in '' $ac_executable_extensions; do=0A= - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then=0A= - ac_cv_path_COLLATEINDEX=3D"$as_dir/$ac_word$ac_exec_ext"=0A= - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_= ext" >&5=0A= - break 2=0A= - fi=0A= -done=0A= - done=0A= -IFS=3D$as_save_IFS=0A= -=0A= - ;;=0A= -esac=0A= -fi=0A= -COLLATEINDEX=3D$ac_cv_path_COLLATEINDEX=0A= -if test -n "$COLLATEINDEX"; then=0A= - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $COLLATEINDEX" >&5=0A= -$as_echo "$COLLATEINDEX" >&6; }=0A= -else=0A= - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5=0A= -$as_echo "no" >&6; }=0A= -fi=0A= -=0A= -=0A= -fi=0A= for ac_prog in dbtoepub=0A= do=0A= # Extract the first word of "$ac_prog", so it can be a program name with= args.=0A= @@ -16280,6 +16146,48 @@ fi=0A= test -n "$OSX" && break=0A= done=0A= =20=0A= +for ac_prog in fop=0A= +do=0A= + # Extract the first word of "$ac_prog", so it can be a program name with= args.=0A= +set dummy $ac_prog; ac_word=3D$2=0A= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5=0A= +$as_echo_n "checking for $ac_word... " >&6; }=0A= +if ${ac_cv_prog_FOP+:} false; then :=0A= + $as_echo_n "(cached) " >&6=0A= +else=0A= + if test -n "$FOP"; then=0A= + ac_cv_prog_FOP=3D"$FOP" # Let the user override the test.=0A= +else=0A= +as_save_IFS=3D$IFS; IFS=3D$PATH_SEPARATOR=0A= +for as_dir in $PATH=0A= +do=0A= + IFS=3D$as_save_IFS=0A= + test -z "$as_dir" && as_dir=3D.=0A= + for ac_exec_ext in '' $ac_executable_extensions; do=0A= + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then=0A= + ac_cv_prog_FOP=3D"$ac_prog"=0A= + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_= ext" >&5=0A= + break 2=0A= + fi=0A= +done=0A= + done=0A= +IFS=3D$as_save_IFS=0A= +=0A= +fi=0A= +fi=0A= +FOP=3D$ac_cv_prog_FOP=0A= +if test -n "$FOP"; then=0A= + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FOP" >&5=0A= +$as_echo "$FOP" >&6; }=0A= +else=0A= + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5=0A= +$as_echo "no" >&6; }=0A= +fi=0A= +=0A= +=0A= + test -n "$FOP" && break=0A= +done=0A= +=0A= =20=0A= #=0A= # Check for test tools=0A= diff --git a/configure.in b/configure.in=0A= index d7c501af6a..42a2b1a0cf 100644=0A= --- a/configure.in=0A= +++ b/configure.in=0A= @@ -2113,14 +2113,12 @@ fi=0A= # Check for DocBook and tools=0A= #=0A= PGAC_PROG_NSGMLS=0A= -PGAC_PROG_JADE=0A= PGAC_CHECK_DOCBOOK(4.2)=0A= -PGAC_PATH_DOCBOOK_STYLESHEETS=0A= -PGAC_PATH_COLLATEINDEX=0A= AC_CHECK_PROGS(DBTOEPUB, dbtoepub)=0A= AC_CHECK_PROGS(XMLLINT, xmllint)=0A= AC_CHECK_PROGS(XSLTPROC, xsltproc)=0A= AC_CHECK_PROGS(OSX, [osx sgml2xml sx])=0A= +AC_CHECK_PROGS(FOP, fop)=0A= =20=0A= #=0A= # Check for test tools=0A= diff --git a/doc/src/sgml/.gitignore b/doc/src/sgml/.gitignore=0A= index 8197c0140d..a74513837f 100644=0A= --- a/doc/src/sgml/.gitignore=0A= +++ b/doc/src/sgml/.gitignore=0A= @@ -16,15 +16,7 @@=0A= /features-unsupported.sgml=0A= /errcodes-table.sgml=0A= /version.sgml=0A= -/bookindex.sgml=0A= -/HTML.index=0A= # Assorted byproducts from building the above=0A= /postgres.xml=0A= /INSTALL.html=0A= /INSTALL.xml=0A= -/postgres-US.aux=0A= -/postgres-US.log=0A= -/postgres-US.out=0A= -/postgres-A4.aux=0A= -/postgres-A4.log=0A= -/postgres-A4.out=0A= diff --git a/doc/src/sgml/Makefile b/doc/src/sgml/Makefile=0A= index 774d35de20..3a0b541304 100644=0A= --- a/doc/src/sgml/Makefile=0A= +++ b/doc/src/sgml/Makefile=0A= @@ -33,9 +33,10 @@ ifndef DBTOEPUB=0A= DBTOEPUB =3D $(missing) dbtoepub=0A= endif=0A= =20=0A= -ifndef JADE=0A= -JADE =3D $(missing) jade=0A= +ifndef FOP=0A= +FOP =3D $(missing) fop=0A= endif=0A= +=0A= SGMLINCLUDE =3D -D . -D $(srcdir)=0A= =20=0A= ifndef NSGMLS=0A= @@ -57,18 +58,11 @@ endif=0A= override XSLTPROCFLAGS +=3D --stringparam pg.version '$(VERSION)'=0A= =20=0A= =20=0A= -GENERATED_SGML =3D bookindex.sgml version.sgml \=0A= +GENERATED_SGML =3D version.sgml \=0A= features-supported.sgml features-unsupported.sgml errcodes-table.sgml=0A= =20=0A= ALLSGML :=3D $(wildcard $(srcdir)/*.sgml $(srcdir)/ref/*.sgml) $(GENERATED= _SGML)=0A= =20=0A= -# Sometimes we don't want this one.=0A= -ALMOSTALLSGML :=3D $(filter-out %bookindex.sgml,$(ALLSGML))=0A= -=0A= -ifdef DOCBOOKSTYLE=0A= -CATALOG =3D -c $(DOCBOOKSTYLE)/catalog=0A= -endif=0A= -=0A= # Enable some extra warnings=0A= # -wfully-tagged needed to throw a warning on missing tags=0A= # for older tool chains, 2007-08-31=0A= @@ -77,6 +71,7 @@ endif=0A= # noisy to turn on by default, unfortunately.=0A= override SPFLAGS +=3D -wall -wno-unused-param -wno-empty -wfully-tagged=0A= =20=0A= +=0A= ##=0A= ## Man pages=0A= ##=0A= @@ -90,50 +85,9 @@ man-stamp: stylesheet-man.xsl postgres.xml=0A= =20=0A= =20=0A= ##=0A= -## HTML=0A= +## common files=0A= ##=0A= =20=0A= -.PHONY: draft=0A= -=0A= -JADE.html.call =3D $(JADE) $(JADEFLAGS) $(SPFLAGS) $(SGMLINCLUDE) $(CATALO= G) -d stylesheet.dsl -t sgml -i output-html=0A= -ifeq ($(STYLE),website)=0A= -JADE.html.call +=3D -V website-stylesheet=0A= -endif=0A= -=0A= -# The draft target creates HTML output in draft mode, without index (for f= aster build).=0A= -draft: postgres.sgml $(ALMOSTALLSGML) stylesheet.dsl=0A= - $(MKDIR_P) html=0A= - $(JADE.html.call) -V draft-mode $<=0A= - cp $(srcdir)/stylesheet.css html/=0A= -=0A= -oldhtml: oldhtml-stamp=0A= -=0A= -oldhtml-stamp: postgres.sgml $(ALLSGML) stylesheet.dsl=0A= - $(MAKE) check-tabs=0A= - $(MKDIR_P) html=0A= - $(JADE.html.call) -i include-index $<=0A= - cp $(srcdir)/stylesheet.css html/=0A= - touch $@=0A= -=0A= -# single-page HTML=0A= -postgres.html: postgres.sgml $(ALLSGML) stylesheet.dsl=0A= - $(JADE.html.call) -V nochunks -V rootchunk -V '(define %root-filename% #f= )' -V '(define use-output-dir #f)' -i include-index $<=0A= -=0A= -# single-page text=0A= -postgres.txt: postgres.html=0A= - $(LYNX) -force_html -dump -nolist $< > $@=0A= -=0A= -HTML.index: postgres.sgml $(ALMOSTALLSGML) stylesheet.dsl=0A= - @$(MKDIR_P) html=0A= - $(JADE.html.call) -V html-index $<=0A= -=0A= -bookindex.sgml: HTML.index=0A= -ifdef COLLATEINDEX=0A= - LC_ALL=3DC $(PERL) $(COLLATEINDEX) -f -g -i 'bookindex' -o $@ $<=0A= -else=0A= - @$(missing) collateindex.pl $< $@=0A= -endif=0A= -=0A= # Technically, this should depend on Makefile.global, but then=0A= # version.sgml would need to be rebuilt after every configure run,=0A= # even in distribution tarballs. So this is cheating a bit, but it=0A= @@ -154,67 +108,6 @@ features-unsupported.sgml: $(top_srcdir)/src/backend/c= atalog/sql_feature_package=0A= errcodes-table.sgml: $(top_srcdir)/src/backend/utils/errcodes.txt generate= -errcodes-table.pl=0A= $(PERL) $(srcdir)/generate-errcodes-table.pl $< > $@=0A= =20=0A= -##=0A= -## Print=0A= -##=0A= -=0A= -=0A= -# RTF to allow minor editing for hardcopy=0A= -%.rtf: %.sgml $(ALLSGML)=0A= - $(JADE) $(JADEFLAGS) $(SGMLINCLUDE) $(CATALOG) -d stylesheet.dsl -t rtf -= V rtf-backend -i output-print -i include-index postgres.sgml=0A= -=0A= -# TeX=0A= -# Regular TeX and pdfTeX have slightly differing requirements, so we=0A= -# need to distinguish the path we're taking.=0A= -=0A= -JADE.tex.call =3D $(JADE) $(JADEFLAGS) $(SGMLINCLUDE) $(CATALOG) -d $(srcd= ir)/stylesheet.dsl -t tex -V tex-backend -i output-print -i include-index= =0A= -=0A= -%-A4.tex-ps: %.sgml $(ALLSGML)=0A= - $(JADE.tex.call) -V texdvi-output -V '%paper-type%'=3DA4 -o $@ $<=0A= -=0A= -%-US.tex-ps: %.sgml $(ALLSGML)=0A= - $(JADE.tex.call) -V texdvi-output -V '%paper-type%'=3DUSletter -o $@ $<= =0A= -=0A= -%-A4.tex-pdf: %.sgml $(ALLSGML)=0A= - $(JADE.tex.call) -V texpdf-output -V '%paper-type%'=3DA4 -o $@ $<=0A= -=0A= -%-US.tex-pdf: %.sgml $(ALLSGML)=0A= - $(JADE.tex.call) -V texpdf-output -V '%paper-type%'=3DUSletter -o $@ $<= =0A= -=0A= -%.dvi: %.tex-ps=0A= - @rm -f $*.aux $*.log=0A= -# multiple runs are necessary to create proper intra-document links=0A= - jadetex $<=0A= - jadetex $<=0A= - jadetex $<=0A= -=0A= -# PostScript from TeX=0A= -postgres.ps:=0A= - $(error Invalid target; use postgres-A4.ps or postgres-US.ps as targets)= =0A= -=0A= -%.ps: %.dvi=0A= - dvips -o $@ $<=0A= -=0A= -postgres.pdf:=0A= - $(error Invalid target; use postgres-A4.pdf or postgres-US.pdf as target= s)=0A= -=0A= -%.pdf: %.tex-pdf=0A= - @rm -f $*.aux $*.log $*.out=0A= -# multiple runs are necessary to create proper intra-document links=0A= - pdfjadetex $<=0A= - pdfjadetex $<=0A= - pdfjadetex $<=0A= -=0A= -# Cancel built-in suffix rules, interfering with PS building=0A= -.SUFFIXES:=0A= -=0A= -=0A= -# This generates an XML version of the flow-object tree. It's useful=0A= -# for debugging DSSSL code, and possibly to interface to some other=0A= -# tools that can make use of this.=0A= -%.fot: %.sgml $(ALLSGML)=0A= - $(JADE) $(JADEFLAGS) $(SGMLINCLUDE) $(CATALOG) -d stylesheet.dsl -t fot -= i output-print -i include-index -o $@ $<=0A= -=0A= =20=0A= ##=0A= ## Generation of some text files.=0A= @@ -239,19 +132,19 @@ INSTALL.html: %.html : stylesheet-text.xsl %.xml=0A= $(XSLTPROC) $(XSLTPROCFLAGS) $(XSLTPROC_HTML_FLAGS) $^ >$@=0A= =20=0A= INSTALL.xml: standalone-install.sgml installation.sgml version.sgml=0A= - $(OSX) -D. -x lower $(filter-out version.sgml,$^) >$@.tmp=0A= + $(OSX) $(SGMLINCLUDE) -x lower $(filter-out version.sgml,$^) >$@.tmp=0A= $(call mangle-xml,chapter)=0A= =20=0A= =20=0A= ##=0A= -## XSLT processing=0A= +## SGML->XML conversion=0A= ##=0A= =20=0A= # For obscure reasons, GNU make 3.81 complains about circular dependencies= =0A= # if we try to do "make all" in a VPATH build without the explicit=0A= # $(srcdir) on the postgres.sgml dependency in this rule. GNU make bug?= =0A= -postgres.xml: $(srcdir)/postgres.sgml $(ALMOSTALLSGML)=0A= - $(OSX) -D. -x lower -i include-xslt-index $< >$@.tmp=0A= +postgres.xml: $(srcdir)/postgres.sgml $(ALLSGML)=0A= + $(OSX) $(SGMLINCLUDE) -x lower $< >$@.tmp=0A= $(call mangle-xml,book)=0A= =20=0A= define mangle-xml=0A= @@ -261,6 +154,11 @@ $(PERL) -p -e 's/\[(aacute|acirc|aelig|agrave|amp|arin= g|atilde|auml|bull|copy|ea=0A= rm $@.tmp=0A= endef=0A= =20=0A= +=0A= +##=0A= +## HTML=0A= +##=0A= +=0A= ifeq ($(STYLE),website)=0A= XSLTPROC_HTML_FLAGS +=3D --param website.stylesheet 1=0A= endif=0A= @@ -277,6 +175,14 @@ htmlhelp: stylesheet-hh.xsl postgres.xml=0A= $(XMLLINT) --noout --valid postgres.xml=0A= $(XSLTPROC) $(XSLTPROCFLAGS) $^=0A= =20=0A= +=0A= +##=0A= +## Print=0A= +##=0A= +=0A= +postgres.pdf:=0A= + $(error Invalid target; use postgres-A4.pdf or postgres-US.pdf as target= s)=0A= +=0A= %-A4.fo: stylesheet-fo.xsl %.xml=0A= $(XMLLINT) --noout --valid $*.xml=0A= $(XSLTPROC) $(XSLTPROCFLAGS) --stringparam paper.type A4 -o $@ $^=0A= @@ -285,12 +191,13 @@ htmlhelp: stylesheet-hh.xsl postgres.xml=0A= $(XMLLINT) --noout --valid $*.xml=0A= $(XSLTPROC) $(XSLTPROCFLAGS) --stringparam paper.type USletter -o $@ $^= =0A= =20=0A= -FOP =3D fop=0A= +%.pdf: %.fo=0A= + $(FOP) -fo $< -pdf $@=0A= =20=0A= -.SECONDARY: postgres-A4.fo postgres-US.fo=0A= =20=0A= -%-fop.pdf: %.fo=0A= - $(FOP) -fo $< -pdf $@=0A= +##=0A= +## EPUB=0A= +##=0A= =20=0A= epub: postgres.epub=0A= postgres.epub: postgres.xml=0A= @@ -321,7 +228,7 @@ MAKEINFO =3D makeinfo=0A= ##=0A= =20=0A= # Quick syntax check without style processing=0A= -check: postgres.sgml $(ALMOSTALLSGML) check-tabs=0A= +check: postgres.sgml $(ALLSGML) check-tabs=0A= $(NSGMLS) $(SPFLAGS) $(SGMLINCLUDE) -s $<=0A= =20=0A= =20=0A= @@ -394,20 +301,20 @@ check-tabs:=0A= # keeping the dependencies satisfied.=0A= .SECONDARY: postgres.xml $(GENERATED_SGML) HTML.index=0A= .SECONDARY: INSTALL.html INSTALL.xml=0A= -.SECONDARY: %-A4.tex-ps %-US.tex-ps %-A4.tex-pdf %-US.tex-pdf=0A= +.SECONDARY: postgres-A4.fo postgres-US.fo=0A= =20=0A= clean:=0A= # text --- these are shipped, but not in this directory=0A= rm -f INSTALL=0A= rm -f INSTALL.html INSTALL.xml=0A= -# single-page output=0A= - rm -f postgres.html postgres.txt=0A= # print=0A= - rm -f *.rtf *.tex-ps *.tex-pdf *.dvi *.aux *.log *.ps *.pdf *.out *.fot= =0A= -# index=0A= - rm -f HTML.index $(GENERATED_SGML)=0A= -# XSLT=0A= - rm -f postgres.xml *.tmp htmlhelp.hhp toc.hhc index.hhk *.fo=0A= + rm -f *.fo *.pdf=0A= +# generated SGML files=0A= + rm -f $(GENERATED_SGML)=0A= +# SGML->XML conversion=0A= + rm -f postgres.xml *.tmp=0A= +# HTML Help=0A= + rm -f htmlhelp.hhp toc.hhc index.hhk=0A= # EPUB=0A= rm -f postgres.epub=0A= # Texinfo=0A= diff --git a/doc/src/sgml/docguide.sgml b/doc/src/sgml/docguide.sgml=0A= index 57b67137b1..12f8109b5e 100644=0A= --- a/doc/src/sgml/docguide.sgml=0A= +++ b/doc/src/sgml/docguide.sgml=0A= @@ -20,7 +20,7 @@ Documentation=0A= =0A= =0A= =0A= - PDF or PostScript, for printing=0A= + PDF, for printing=0A= =0A= =0A= =0A= @@ -37,8 +37,8 @@ Documentation=0A= =20=0A= =0A= HTML documentation and man pages are part of a=0A= - standard distribution and are installed by default. PDF and=0A= - PostScript format documentation is available separately for=0A= + standard distribution and are installed by default. PDF=0A= + format documentation is available separately for=0A= download.=0A= =0A= =20=0A= @@ -55,6 +55,15 @@ DocBook=0A= used, but technically they are not interchangeable.=0A= =0A= =20=0A= + =0A= + =0A= + The PostgreSQL documentation is currently being transitioned from DocB= ook=0A= + SGML and DSSSL style sheets to DocBook XML and XSLT style sheets. Bef= ore=0A= + careful to look at the instructions relating to the PostgreSQL version= you=0A= + are dealing with, as the procedures and required tools will change.=0A= + =0A= + =0A= +=0A= =0A= DocBook allows an author to specify the=0A= structure and content of a technical document without worrying=0A= @@ -86,11 +95,11 @@ Tool Sets=0A= DocBook DTD=0A= =0A= =0A= - This is the definition of DocBook itself. We currently use=0A= - version 4.2; you cannot use later or earlier versions. You=0A= - need the SGML variant of the DocBook DTD,=0A= - but to build man pages you also need the XML=0A= - variant of the same version.=0A= + This is the definition of DocBook itself. We currently use version= =0A= + 4.2; you cannot use later or earlier versions. You need=0A= + the SGML and the XML variant = of=0A= + the DocBook DTD of the same version. These will usually be in sepa= rate=0A= + packages.=0A= =0A= =0A= =0A= @@ -99,51 +108,35 @@ Tool Sets=0A= ISO = 8879 character entities=0A= =0A= =0A= - These are required by DocBook but are distributed separately=0A= + These are required by DocBook SGML but are distributed separately= =0A= because they are maintained by ISO.=0A= =0A= =0A= =0A= =20=0A= =0A= - DocBook DSSSL Stylesheets=0A= + Do= cBook XSL Stylesheets=0A= =0A= =0A= These contain the processing instructions for converting the=0A= DocBook sources to other formats, such as=0A= HTML.=0A= =0A= - =0A= - =0A= -=0A= - =0A= - Do= cBook XSL Stylesheets=0A= - =0A= - =0A= - This is another stylesheet for converting DocBook to other=0A= - formats. We currently use this to produce man pages and=0A= - optionally HTMLHelp. You can also use this toolchain to=0A= - produce HTML or PDF output, but official PostgreSQL releases=0A= - use the DSSSL stylesheets for that.=0A= - =0A= =20=0A= =0A= - The minimum required version is currently 1.74.0.=0A= + The minimum required version is currently 1.77.0, but it is recomme= nded=0A= + to use the latest available version for best results.=0A= =0A= =0A= =0A= =20=0A= =0A= - OpenJade= =0A= + OpenSP=0A= =0A= =0A= - This is the base package of SGML processing.=0A= - It contains an SGML parser, a=0A= - DSSSL processor (that is, a program to=0A= - convert SGML to other formats using=0A= - DSSSL stylesheets), as well as a number of=0A= - related tools. Jade is now being=0A= - maintained by the OpenJade group, no longer by James Clark.=0A= + This is the base package of SGML processing. No= te=0A= + that we no longer need OpenJade, the DSSSL=0A= + processor, only the OpenSP package for converting SGML to XML.=0A= =0A= =0A= =0A= @@ -166,31 +159,17 @@ Tool Sets=0A= Libxslt for xsltproc=0A= =0A= =0A= - This is the processing tool to use with the XSLT stylesheets=0A= - (like jade is the processing tool for DSSSL=0A= - stylesheets).=0A= + xsltproc is an XSLT processor, that is, a progra= m to=0A= + convert XML to other formats using XSLT stylesheets.=0A= =0A= =0A= =0A= =20=0A= =0A= - JadeTeX=0A= + FOP<= /term>=0A= =0A= =0A= - If you want to, you can also install=0A= - JadeTeX to use=0A= - TeX as a formatting backend for=0A= - Jade.=0A= - JadeTeX can create PostScript or=0A= - PDF files (the latter with bookmarks).=0A= - =0A= -=0A= - =0A= - However, the output from JadeTeX is=0A= - inferior to what you get from the RTF=0A= - backend. Particular problem areas are tables and various=0A= - artifacts of vertical and horizontal spacing. Also, there is=0A= - no opportunity to manually polish the results.=0A= + This is a program for converting, among other things, XML to PDF.= =0A= =0A= =0A= =0A= @@ -206,13 +185,23 @@ Tool Sets=0A= here.=0A= =0A= =20=0A= + =0A= + You can get away with not installing DocBook XML and the DocBook XSLT= =0A= + stylesheets locally, because the required files will be downloaded from= the=0A= + Internet and cached locally. This may in fact be the preferred solutio= n if=0A= + your operating system packages provide only an old version of the=0A= + stylesheets in particular or no packages are available at all. See=0A= + the option for xmllint=0A= + and xsltproc for more information.=0A= + =0A= +=20=0A= =0A= Installation on Fedora, RHEL, and Derivatives=0A= =20=0A= =0A= To install the required packages, use:=0A= =0A= -yum install docbook-dtds docbook-style-dsssl docbook-style-xsl libxslt ope= njade=0A= +yum install docbook-dtds docbook-style-xsl fop libxslt opensp=0A= =0A= =0A= =0A= @@ -243,21 +232,18 @@ Installation on FreeBSD=0A= textproc/libxslt=0A= =0A= =0A= - textproc/openjade=0A= + textproc/fop=0A= + =0A= + =0A= + textproc/opensp=0A= =0A= =0A= =0A= =20=0A= =0A= - A number of things from /usr/ports/print=0A= - (tex, jadetex) might=0A= - also be of interest.=0A= - =0A= -=0A= - =0A= To install the required packages with pkg, use:=0A= =0A= -pkg install docbook-sgml docbook-xml docbook-xsl dsssl-docbook-modular lib= xslt openjade=0A= +pkg install docbook-sgml docbook-xml docbook-xsl fop libxslt opensp=0A= =0A= =0A= =20=0A= @@ -282,7 +268,7 @@ Debian Packages=0A= available for Debian GNU/Linux.=0A= To install, simply use:=0A= =0A= -apt-get install docbook docbook-dsssl docbook-xsl libxml2-utils openjade1.= 3 opensp xsltproc=0A= +apt-get install docbook docbook-xml docbook-xsl fop libxml2-utils opensp x= sltproc=0A= =0A= =0A= =0A= @@ -293,7 +279,7 @@ macOS=0A= =0A= If you use MacPorts, the following will get you set up:=0A= =0A= -sudo port install docbook-dsssl docbook-sgml-4.2 docbook-xml-4.2 docbook-x= sl libxslt openjade opensp=0A= +sudo port install docbook-sgml-4.2 docbook-xml-4.2 docbook-xsl fop libxslt= opensp=0A= =0A= =0A= =0A= @@ -311,73 +297,24 @@ Manual Installation from Source=0A= =0A= =20=0A= =0A= - Installing OpenJade=0A= + Installing OpenSP=0A= =20=0A= - =0A= - =0A= - =0A= - The installation of OpenJade offers a GNU-style=0A= - ./configure; make; make install build=0A= - process. Details can be found in the OpenJade source=0A= - distribution. In a nutshell:=0A= + =0A= + The installation of OpenSP offers a GNU-style=0A= + ./configure; make; make install build process.=0A= + Details can be found in the OpenSP source distribution. In a nutshell= :=0A= =0A= -./configure --enable-default-catalog=3D/usr/local/share/sgml/catalog=0A= +./configure --enable-default-catalog=3D/usr/local/etc/sgml/catalog=0A= make=0A= make install=0A= =0A= - Be sure to remember where you put the default=0A= - catalog; you will need it below. You can also leave=0A= - it off, but then you will have to set the environment variable=0A= - SGML_CATALOG_FILES to point to the file=0A= - whenever you use jade later on.=0A= - (This method is also an option if OpenJade is already=0A= - installed and you want to install the rest of the toolchain=0A= - locally.)=0A= - =0A= -=0A= - =0A= - =0A= - Some users have reported encountering a segmentation fault using= =0A= - OpenJade 1.4devel to build the PDFs, with a message like:=0A= -=0A= -openjade:./stylesheet.dsl:664:2:E: flow object not accepted by port; only = display flow objects accepted=0A= -make: *** [postgres-A4.tex-pdf] Segmentation fault=0A= -=0A= - Downgrading to OpenJade 1.3 should get rid of this error.=0A= - =0A= - =0A= -=0A= - =0A= -=0A= - =0A= - =0A= - Additionally, you should install the files=0A= - dsssl.dtd, fot.dtd,=0A= - style-sheet.dtd, and=0A= - catalog from the=0A= - dsssl directory somewhere, perhaps into=0A= - /usr/local/share/sgml/dsssl. It's=0A= - probably easiest to copy the entire directory:=0A= -=0A= -cp -R dsssl /usr/local/share/sgml=0A= -=0A= - =0A= - =0A= -=0A= - =0A= - =0A= - Finally, create the file=0A= - /usr/local/share/sgml/catalog and add=0A= - this line to it:=0A= -=0A= -CATALOG "dsssl/catalog"=0A= -=0A= - (This is a relative path reference to the file installed in=0A= - . Be sure to adjust it=0A= - if you chose your installation layout differently.)=0A= - =0A= - =0A= - =0A= + Be sure to remember where you put the default catalog;= you=0A= + will need it below. You can also leave it off, but then you will hav= e to=0A= + set the environment variable SGML_CATALOG_FILES to poi= nt=0A= + to the file whenever you use any programs from OpenSP later on. (Thi= s=0A= + method is also an option if OpenSP is already installed and you want = to=0A= + install the rest of the toolchain locally.)=0A= + =0A= =0A= =20=0A= =0A= @@ -451,88 +388,6 @@ Installing the <productname>DocBook</productnam= e> <acronym>DTD</acronym>=0A= </step>=0A= </procedure>=0A= </sect3>=0A= -=0A= - <sect3>=0A= - <title>Installing the DocBook <acronym>DSSSL</acronym> Style Sheets</t= itle>=0A= -=0A= - <para>=0A= - To install the style sheets, unzip and untar the distribution and=0A= - move it to a suitable place, for example=0A= - <filename>/usr/local/share/sgml</filename>. (The archive will=0A= - automatically create a subdirectory.)=0A= -<screen>=0A= -<prompt>$</prompt> <userinput>gunzip docbook-dsssl-1.<replaceable>xx</>.ta= r.gz</userinput>=0A= -<prompt>$</prompt> <userinput>tar -C /usr/local/share/sgml -xf docbook-dss= sl-1.<replaceable>xx</>.tar</userinput>=0A= -</screen>=0A= - </para>=0A= -=0A= - <para>=0A= - The usual catalog entry in=0A= - <filename>/usr/local/share/sgml/catalog</filename> can also be=0A= - made:=0A= -<programlisting>=0A= -CATALOG "docbook-dsssl-1.<replaceable>xx</>/catalog"=0A= -</programlisting>=0A= - Because stylesheets change rather often, and it's sometimes=0A= - beneficial to try out alternative versions,=0A= - <productname>PostgreSQL</productname> doesn't use this catalog=0A= - entry. See <xref linkend=3D"docguide-toolsets-configure"> for=0A= - information about how to select the stylesheets instead.=0A= - </para>=0A= - </sect3>=0A= -=0A= - <sect3>=0A= - <title>Installing <productname>JadeTeX</productname>=0A= -=0A= - =0A= - To install and use JadeTeX, you will=0A= - need a working installation of TeX and=0A= - LaTeX2e, including the supported=0A= - tools and=0A= - graphics packages,=0A= - Babel,=0A= - AMS fonts and=0A= - AMS-LaTeX, the=0A= - PSNFSS extension=0A= - and companion kit of the 35 fonts, the=0A= - dvips program for generating=0A= - PostScript, the macro packages=0A= - fancyhdr,=0A= - hyperref,=0A= - minitoc,=0A= - url and=0A= - ot2enc. All of these can be found on=0A= - your friendly neighborhood =0A= - CTAN site.=0A= - The installation of the TeX base=0A= - system is far beyond the scope of this introduction. Binary=0A= - packages should be available for any system that can run=0A= - TeX.=0A= - =0A= -=0A= - =0A= - Before you can use JadeTeX with the=0A= - PostgreSQL documentation sources, you=0A= - will need to increase the size of=0A= - TeX's internal data structures.=0A= - Details on this can be found in the JadeTeX=0A= - installation instructions.=0A= - =0A= -=0A= - =0A= - Once that is finished you can install JadeTeX:=0A= -=0A= -$ gunzip jadetex-xxx.tar.gz=0A= -$ tar xf jadetex-xxx.tar=0A= -$ cd jadetex=0A= -$ make install=0A= -$ mktexlsr=0A= -=0A= - The last two need to be done as root.=0A= - =0A= -=0A= - =0A= -=0A= =0A= =20=0A= =0A= @@ -547,28 +402,24 @@ Detection by <command>configure</command></tit= le>=0A= <screen>=0A= <computeroutput>=0A= checking for onsgmls... onsgmls=0A= -checking for openjade... openjade=0A= checking for DocBook V4.2... yes=0A= -checking for DocBook stylesheets... /usr/share/sgml/docbook/stylesheet/dss= sl/modular=0A= -checking for collateindex.pl... /usr/bin/collateindex.pl=0A= +checking for dbtoepub... dbtoepub=0A= +checking for xmllint... xmllint=0A= checking for xsltproc... xsltproc=0A= checking for osx... osx=0A= +checking for fop... fop=0A= </computeroutput>=0A= </screen>=0A= If neither <filename>onsgmls</filename> nor=0A= <filename>nsgmls</filename> were found then some of the following tests= =0A= - will be skipped. <filename>nsgmls</filename> is part of the Jade=0A= - package. You can pass the environment variables=0A= - <envar>JADE</envar> and <envar>NSGMLS</envar> to configure to point=0A= + will be skipped. <filename>nsgmls</filename> is part of the OpenSP=0A= + package. You can pass the environment variable=0A= + <envar>NSGMLS</envar> to configure to point=0A= to the programs if they are not found automatically. If=0A= <quote>DocBook V4.2</quote> was not found then you did not install=0A= - the DocBook DTD kit in a place where Jade can find it, or you have=0A= + the DocBook DTD kit in a place where OpenSP can find it, or you have=0A= not set up the catalog files correctly. See the installation hints=0A= - above. The DocBook stylesheets are looked for in a number of=0A= - relatively standard places, but if you have them some other place=0A= - then you should set the environment variable=0A= - <envar>DOCBOOKSTYLE</envar> to the location and rerun=0A= - <filename>configure</filename> afterwards.=0A= + above.=0A= </para>=0A= =20=0A= </sect2>=0A= @@ -604,22 +455,6 @@ <title>HTML=0A= doc/src/sgml$ make STYLE=3Dwebsite html=0A= =0A= =0A= -=0A= - =0A= - To create a proper index, the build might process several identical=0A= - stages. If you do not care about the index, and just want to=0A= - proof-read the output, use draft:=0A= -=0A= -doc/src/sgml$ make draft=0A= -=0A= - =0A= -=0A= - =0A= - To build the documentation as a single HTML page, use:=0A= -=0A= -doc/src/sgml$ make postgres.html= =0A= -=0A= - =0A= =0A= =20=0A= =0A= @@ -632,328 +467,61 @@ Manpages=0A= pages. The man pages are also distributed as a tar archive,=0A= similar to the HTML version. To create the man=0A= pages, use the commands:=0A= -=0A= -cd doc/src/sgml=0A= -make man=0A= -=0A= +=0A= +doc/src/sgml$ make man=0A= +=0A= =0A= =0A= =20=0A= =0A= - Print Output via <application>JadeTeX</application>=0A= + PDF=0A= =20=0A= =0A= - If you want to use JadeTex to produce a=0A= - printable rendition of the documentation, you can use one of the=0A= - following commands:=0A= + To produce a PDF rendition of the documentation=0A= + using FOP, you can use one of the following= =0A= + commands, depending on the preferred paper format:=0A= =20=0A= =0A= =0A= =0A= - To generate PostScript via DVI in A4 format:=0A= + For A4 format:=0A= =0A= -doc/src/sgml$ make postgres-A4.ps= =0A= -=0A= - In U.S. letter format:=0A= -=0A= -doc/src/sgml$ make postgres-US.ps= =0A= +doc/src/sgml$ make postgres-A4.pdf= =0A= =0A= =0A= =0A= =20=0A= =0A= =0A= - To make a PDF:=0A= -=0A= -doc/src/sgml$ make postgres-A4.pdf= =0A= -=0A= - or:=0A= + For U.S. letter format:=0A= =0A= doc/src/sgml$ make postgres-US.pdf= =0A= =0A= - (Of course you can also make a PDF version=0A= - from the PostScript, but if you generate PDF=0A= - directly, it will have hyperlinks and other enhanced features.)=0A= =0A= =0A= =0A= =0A= =20=0A= =0A= - When using JadeTeX to build the PostgreSQL documentation, you will=0A= - probably need to increase some of TeX's internal parameters. These=0A= - can be set in the file texmf.cnf. The following= =0A= - settings worked at the time of this writing:=0A= + Because the PostgreSQL documentation is fairly=0A= + big, FOP will require a significant amount = of=0A= + memory. Because of that, on some systems, the build will fail with a= =0A= + memory-related error message. This can usually be fixed by configurin= g=0A= + Java heap settings in the configuration=0A= + file ~/.foprc, for example:=0A= =0A= -hash_extra.jadetex =3D 200000=0A= -hash_extra.pdfjadetex =3D 200000=0A= -pool_size.jadetex =3D 2000000=0A= -pool_size.pdfjadetex =3D 2000000=0A= -string_vacancies.jadetex =3D 150000=0A= -string_vacancies.pdfjadetex =3D 150000=0A= -max_strings.jadetex =3D 300000=0A= -max_strings.pdfjadetex =3D 300000=0A= -save_size.jadetex =3D 15000=0A= -save_size.pdfjadetex =3D 15000=0A= +# FOP binary distribution=0A= +FOP_OPTS=3D'-Xmx1000m'=0A= +# Debian=0A= +JAVA_ARGS=3D'-Xmx1000m'=0A= +# Red Hat=0A= +ADDITIONAL_FLAGS=3D'-Xmx1000m'=0A= =0A= + There is a minimum amount of memory that is required, and to some exte= nt=0A= + more memory appears to make things faster. On systems with very littl= e=0A= + memory (less than 1 GB), the build will either be very slow due to=0A= + swapping or will not work at all.=0A= =0A= -=0A= - =0A= -=0A= - =0A= - Overflow Text=0A= -=0A= - =0A= - Occasionally text is too wide for the printed margins, and in=0A= - extreme cases, too wide for the printed page, e.g. non-wrapped=0A= - text, wide tables. Overly wide text generates Overfull=0A= - hbox messages in the TeX log output file, e.g.=0A= - postgres-US.log or postgres-A4.log.=0A= - There are 72 points in an inch so anything reported as over 72=0A= - points too wide will probably not fit on the printed page (assuming=0A= - one inch margins). To find the SGML text=0A= - causing the overflow, find the first page number mentioned above=0A= - the overflow message, e.g. [50 ###] (page 50), and=0A= - look at the page after that (e.g. page 51) in the PDF=0A= - file to see the overflow text and adjust the SGML= =0A= - accordingly.=0A= - =0A= - =0A= -=0A= - =0A= - Print Output via <acronym>RTF</acronym>=0A= -=0A= - =0A= - You can also create a printable version of the PostgreSQL= =0A= - documentation by converting it to RTF and=0A= - applying minor formatting corrections using an office suite.=0A= - Depending on the capabilities of the particular office suite, you=0A= - can then convert the documentation to PostScript of=0A= - PDF. The procedure below illustrates this=0A= - process using Applixware.=0A= - =0A= -=0A= - =0A= - =0A= - It appears that current versions of the PostgreSQL documentation=0A= - trigger some bug in or exceed the size limit of OpenJade. If the=0A= - build process of the RTF version hangs for a=0A= - long time and the output file still has size 0, then you might have= =0A= - hit that problem. (But keep in mind that a normal build takes 5=0A= - to 10 minutes, so don't abort too soon.)=0A= - =0A= - =0A= -=0A= - =0A= - <productname>Applixware</productname> <acronym>RTF</acronym> Cl= eanup=0A= -=0A= - =0A= - OpenJade omits specifying a default=0A= - style for body text. In the past, this undiagnosed problem led to=0A= - a long process of table of contents generation. However, with=0A= - great help from the Applixware folks=0A= - the symptom was diagnosed and a workaround is available.=0A= - =0A= -=0A= - =0A= - =0A= - Generate the RTF version by typing:=0A= -=0A= -doc/src/sgml$ make postgres.rtf=0A= -=0A= - =0A= - =0A= -=0A= - =0A= - =0A= - Repair the RTF file to correctly specify all styles, in=0A= - particular the default style. If the document contains=0A= - refentry sections, one must also replace=0A= - formatting hints which tie a preceding paragraph to the current=0A= - paragraph, and instead tie the current paragraph to the=0A= - following one. A utility, fixrtf, is=0A= - available in doc/src/sgml to accomplish=0A= - these repairs:=0A= -=0A= -doc/src/sgml$ ./fixrtf --refentry postgres.rtf= =0A= -=0A= - =0A= -=0A= - =0A= - The script adds {\s0 Normal;} as the zeroth=0A= - style in the document. According to=0A= - Applixware, the RTF standard would=0A= - prohibit adding an implicit zeroth style, though Microsoft Word=0A= - happens to handle this case. For repairing=0A= - refentry sections, the script replaces=0A= - \keepn tags with \keep.=0A= - =0A= - =0A= -=0A= - =0A= - =0A= - Open a new document in Applixware Words a= nd=0A= - then import the RTF file.=0A= - =0A= - =0A= -=0A= - =0A= - =0A= - Generate a new table of contents (ToC) using=0A= - Applixware.=0A= - =0A= -=0A= - =0A= - =0A= - =0A= - Select the existing ToC lines, from the beginning of the first=0A= - character on the first line to the last character of the last=0A= - line.=0A= - =0A= - =0A= -=0A= - =0A= - =0A= - Build a new ToC using=0A= - ToolsBook=0A= - BuildingCreate Table of=0A= - Contents. Select the first three=0A= - levels of headers for inclusion in the ToC. This will replace=0A= - the existing lines imported in the RTF with a native=0A= - Applixware ToC.=0A= - =0A= - =0A= -=0A= - =0A= - =0A= - Adjust the ToC formatting by using=0A= - FormatStyle,=0A= - selecting each of the three ToC styles, and adjusting the=0A= - indents for First and=0A= - Left. Use the following values:=0A= -=0A= - =0A= - =0A= - =0A= - =0A= - Style=0A= - First Indent (inches)=0A= - Left Indent (inches)=0A= - =0A= - =0A= -=0A= - =0A= - =0A= - TOC-Heading 1=0A= - 0.4=0A= - 0.4=0A= - =0A= -=0A= - =0A= - TOC-Heading 2=0A= - 0.8=0A= - 0.8=0A= - =0A= -=0A= - =0A= - TOC-Heading 3=0A= - 1.2=0A= - 1.2=0A= - =0A= - =0A= - =0A= - =0A= - =0A= - =0A= - =0A= - =0A= -=0A= - =0A= - =0A= - Work through the document to:=0A= -=0A= - =0A= - =0A= - =0A= - Adjust page breaks.=0A= - =0A= - =0A= -=0A= - =0A= - =0A= - Adjust table column widths.=0A= - =0A= - =0A= - =0A= - =0A= - =0A= -=0A= - =0A= - =0A= - Replace the right-justified page numbers in the Examples and=0A= - Figures portions of the ToC with correct values. This only takes=0A= - a few minutes.=0A= - =0A= - =0A= -=0A= - =0A= - =0A= - Delete the index section from the document if it is empty.=0A= - =0A= - =0A= -=0A= - =0A= - =0A= - Regenerate and adjust the table of contents.=0A= - =0A= -=0A= - =0A= - =0A= - =0A= - Select the ToC field.=0A= - =0A= - =0A= -=0A= - =0A= - =0A= - Select ToolsBook=0A= - BuildingCreate Table of=0A= - Contents.=0A= - =0A= - =0A= -=0A= - =0A= - =0A= - Unbind the ToC by selecting=0A= - ToolsField=0A= - EditingUnprotect.=0A= - =0A= - =0A= -=0A= - =0A= - =0A= - Delete the first line in the ToC, which is an entry for the=0A= - ToC itself.=0A= - =0A= - =0A= - =0A= - =0A= -=0A= - =0A= - =0A= - Save the document as native Applixware=0A= - Words format to allow easier last minute editing=0A= - later.=0A= - =0A= - =0A= -=0A= - =0A= - =0A= - Print the document=0A= - to a file in PostScript format.=0A= - =0A= - =0A= - =0A= =0A= =20=0A= =0A= diff --git a/doc/src/sgml/filelist.sgml b/doc/src/sgml/filelist.sgml=0A= index 6782f07aea..e2aa1d2a0e 100644=0A= --- a/doc/src/sgml/filelist.sgml=0A= +++ b/doc/src/sgml/filelist.sgml=0A= @@ -193,7 +193,6 @@=0A= =20=0A= =0A= =0A= -=0A= =20=0A= =0A= =0A= =0A= -=0A= -=0A= -=0A= -=0A= -=0A= -=0A= diff --git a/doc/src/sgml/fixrtf b/doc/src/sgml/fixrtf=0A= deleted file mode 100755=0A= index 31cb5f85c0..0000000000=0A= --- a/doc/src/sgml/fixrtf=0A= +++ /dev/null=0A= @@ -1,46 +0,0 @@=0A= -#!/bin/sh=0A= -# fixrtf=0A= -=0A= -# doc/src/sgml/fixrtf=0A= -=0A= -# Repair (slightly) damaged RTF generated by jade=0A= -# Applixware wants the s0 stylesheet defined, whereas=0A= -# M$Word does not care about it.=0A= -# (c) 2001, Thomas Lockhart, PostgreSQL Inc.=0A= -=0A= -flist=3D""=0A= -RPAT=3D""=0A= -for i in $@ ; do=0A= - case "$i" in=0A= - -r|--refentry)=0A= - RPAT=3D'-e s/\\\keepn/\\\keep/g'=0A= - ;;=0A= - -?|--help)=0A= - echo "$0 [--refentry] ..."=0A= - exit 0=0A= - ;;=0A= - -*)=0A= - echo "Command $i not recognized"=0A= - $0 --help=0A= - exit 1=0A= - ;;=0A= - *)=0A= - flist=3D"$flist $i"=0A= - esac=0A= -done=0A= -=0A= -if [ "$flist" =3D "" ] ; then=0A= - flist=3D*.rtf=0A= -fi=0A= -=0A= -for f in $flist ; do=0A= - echo -n "Repairing '$f' ..."=0A= - if [ -r $f ] ; then=0A= - (sed -e 's/{\\stylesheet{\\s1/{\\stylesheet{\\s0 Normal 0;}{\\s1/g' $R= PAT $f > $f.new \=0A= - && mv -f $f.new $f \=0A= - && echo " done") || echo " failed"=0A= - else=0A= - echo " file not found"=0A= - fi=0A= -done=0A= -exit=0A= diff --git a/doc/src/sgml/install-windows.sgml b/doc/src/sgml/install-windo= ws.sgml=0A= index ecec0a60c7..bf84326915 100644=0A= --- a/doc/src/sgml/install-windows.sgml=0A= +++ b/doc/src/sgml/install-windows.sgml=0A= @@ -518,16 +518,6 @@ Building the Documentation=0A= =0A= =20=0A= =0A= - DocBook DSSSL 1.79=0A= - =0A= - Download from=0A= - =0A= - and uncompress in the subdirectory=0A= - docbook-dsssl-1.79.=0A= - =0A= - =0A= -=0A= - =0A= ISO character entities=0A= =0A= Download from=0A= diff --git a/doc/src/sgml/jadetex.cfg b/doc/src/sgml/jadetex.cfg=0A= deleted file mode 100644=0A= index 875598f151..0000000000=0A= --- a/doc/src/sgml/jadetex.cfg=0A= +++ /dev/null=0A= @@ -1,89 +0,0 @@=0A= -% doc/src/sgml/jadetex.cfg=0A= -%=0A= -% This file redefines \FlowObjectSetup and some related macros to greatly= =0A= -% reduce the number of control sequence names created, and also to avoid= =0A= -% creation of many useless hyperlink anchors (bookmarks) in PDF files.=0A= -%=0A= -% The original coding of \FlowObjectSetup defined a control sequence x@LAB= EL=0A= -% for pretty nearly every flow object in the file, whether that object was= =0A= -% cross-referenced or not. Worse yet, it created a hyperlink anchor for= =0A= -% every such object, which not only bloated the output PDF with useless=0A= -% anchors but consumed an additional control sequence name per anchor.=0A= -% This results in overrunning TeX's limited-size string pool.=0A= -%=0A= -% To fix, extend \PageLabel's already-existing mechanism whereby a p@LABEL= =0A= -% control sequence is filled in only for labels that are referenced by at= =0A= -% least one \Pageref call. We now also fill in p@LABEL for labels that ar= e=0A= -% referenced by a \Link. Then, we can drop x@LABEL entirely, and use p@LA= BEL=0A= -% to control emission of both a hyperlink anchor and a page-number label.= =0A= -% Now, both of those things are emitted for all and only the flow objects= =0A= -% that have either a hyperlink reference or a page-number reference.=0A= -% We consume about one control sequence name per flow object plus one per= =0A= -% referenced object, which is a lot better than three per flow object.=0A= -%=0A= -% (With a more invasive patch, we could track the need for an anchor and a= =0A= -% page-number label separately, but that would probably require two contro= l=0A= -% sequences for every flow object. Besides, many objects that have one ki= nd=0A= -% of reference will have the other one too; that's certainly true for obje= cts=0A= -% referenced in either the TOC or the index, for example.)=0A= -%=0A= -%=0A= -% In addition to checking p@LABEL not x@LABEL, this version of \FlowObject= Setup=0A= -% is fixed to clear \Label and \Element whether or not it emits an anchor= =0A= -% and page label. Failure to do that seems to explain some pre-existing b= ugs=0A= -% in which certain SGML constructs weren't correctly cross-referenced.=0A= -%=0A= -\def\FlowObjectSetup#1{%=0A= -\ifDoFOBSet=0A= - \ifLabelElements=0A= - \ifx\Label\@empty\let\Label\Element\fi=0A= - \fi=0A= - \ifx\Label\@empty\else=0A= - \expandafter\ifx\csname p@\Label\endcsname\relax=0A= - \else=0A= - \bgroup=0A= - \ifNestedLink=0A= - \else=0A= - \hyper@anchorstart{\Label}\hyper@anchorend=0A= - \PageLabel{\Label}%=0A= - \fi=0A= - \egroup=0A= - \fi=0A= - \let\Label\@empty=0A= - \let\Element\@empty=0A= - \fi=0A= -\fi=0A= -}=0A= -%=0A= -% Adjust \PageLabel so that the p@NAME control sequence acquires a correct= =0A= -% value immediately; this seems to be needed to avoid scenarios wherein=0A= -% additional TeX runs are needed to reach a stable state of the .aux file.= =0A= -%=0A= -\def\PageLabel#1{%=0A= - \@bsphack=0A= - \expandafter\ifx\csname p@#1\endcsname\relax=0A= - \else=0A= - \protected@write\@auxout{}%=0A= - {\string\pagelabel{#1}{\thepage}}%=0A= - % Ensure the p@NAME control sequence acquires correct value immediately= =0A= - \expandafter\xdef\csname p@#1\endcsname{\thepage}%=0A= - \fi=0A= - \@esphack}=0A= -%=0A= -% In \Link, add code to emit an aux-file entry if the p@NAME sequence isn'= t=0A= -% defined. Much as in \@Setref, this ensures we'll process the referenced= =0A= -% item correctly on the next TeX run.=0A= -%=0A= -\def\Link#1{%=0A= - \begingroup=0A= - \SetupICs{#1}%=0A= - \ifx\Label\@empty\let\Label\Element\fi=0A= -% \typeout{Made a Link at \the\inputlineno, to \Label}%=0A= - \hyper@linkstart{\LinkType}{\Label}%=0A= - \NestedLinktrue=0A= - % If p@NAME control sequence isn't defined, emit dummy def to aux file= =0A= - % so it will get defined properly on next run, much as in \@Setref=0A= - \expandafter\ifx\csname p@\Label\endcsname\relax=0A= - \immediate\write\@mainaux{\string\pagelabel{\Label}{qqq}}%=0A= - \fi=0A= -}=0A= diff --git a/doc/src/sgml/postgres.sgml b/doc/src/sgml/postgres.sgml=0A= index 4e169d1b18..8a3bfc9b0d 100644=0A= --- a/doc/src/sgml/postgres.sgml=0A= +++ b/doc/src/sgml/postgres.sgml=0A= @@ -277,7 +277,6 @@ Appendixes=0A= =0A= =20=0A= &biblio;=0A= - =0A= - ]]>=0A= + =0A= =20=0A= =0A= diff --git a/doc/src/sgml/stylesheet.dsl b/doc/src/sgml/stylesheet.dsl=0A= deleted file mode 100644=0A= index 05cab9a5f3..0000000000=0A= --- a/doc/src/sgml/stylesheet.dsl=0A= +++ /dev/null=0A= @@ -1,798 +0,0 @@=0A= -=0A= -=0A= -=0A= -=0A= -=0A= -=0A= -]]>=0A= -=0A= -=0A= -]]>=0A= -=0A= -]>=0A= -=0A= -=0A= - =0A= - =0A= -=0A= -= =0A= -=0A= -=0A= -=0A= -(define draft-mode #f)=0A= -=0A= -(define pgsql-docs-list "pgsql-docs@postgresql.org")=0A= -=0A= -;; Don't show manpage volume numbers=0A= -(define %refentry-xref-manvolnum% #f)=0A= -=0A= -;; Don't use graphics for callouts. (We could probably do that, but=0A= -;; it needs extra work.)=0A= -(define %callout-graphics% #f)=0A= -=0A= -;; Show comments during the development stage.=0A= -(define %show-comments% draft-mode)=0A= -=0A= -;; Don't append period if run-in title ends with any of these=0A= -;; characters. We had to add the colon here. This is fixed in=0A= -;; stylesheets version 1.71, so it can be removed sometime.=0A= -(define %content-title-end-punct%=0A= - '(#\. #\! #\? #\:))=0A= -=0A= -;; No automatic punctuation after honorific name parts=0A= -(define %honorific-punctuation% "")=0A= -=0A= -;; Change display of some elements=0A= -(element command ($mono-seq$))=0A= -(element envar ($mono-seq$))=0A= -(element lineannotation ($italic-seq$))=0A= -(element literal ($mono-seq$))=0A= -(element option ($mono-seq$))=0A= -(element parameter ($mono-seq$))=0A= -(element structfield ($mono-seq$))=0A= -(element structname ($mono-seq$))=0A= -(element symbol ($mono-seq$))=0A= -(element token ($mono-seq$))=0A= -(element type ($mono-seq$))=0A= -(element varname ($mono-seq$))=0A= -(element (programlisting emphasis) ($bold-seq$)) ;; to highlight sections = of code=0A= -=0A= -;; Special support for Tcl synopses=0A= -(element optional=0A= - (if (equal? (attribute-string (normalize "role")) "tcl")=0A= - (make sequence=0A= - (literal "?")=0A= - ($charseq$)=0A= - (literal "?"))=0A= - (make sequence=0A= - (literal %arg-choice-opt-open-str%)=0A= - ($charseq$)=0A= - (literal %arg-choice-opt-close-str%))))=0A= -=0A= -;; Avoid excessive cross-reference labels=0A= -(define (auto-xref-indirect? target ancestor)=0A= - (cond=0A= -; ;; Always add indirect references to another book=0A= -; ((member (gi ancestor) (book-element-list))=0A= -; #t)=0A= - ;; Add indirect references to the section or component a block=0A= - ;; is in iff chapters aren't autolabelled. (Otherwise "Figure 1-3"=0A= - ;; is sufficient)=0A= - ((and (member (gi target) (block-element-list))=0A= - (not %chapter-autolabel%))=0A= - #t)=0A= - ;; Add indirect references to the component a section is in if=0A= - ;; the sections are not autolabelled=0A= - ((and (member (gi target) (section-element-list))=0A= - (member (gi ancestor) (component-element-list))=0A= - (not %section-autolabel%))=0A= - #t)=0A= - (else #f)))=0A= -=0A= -=0A= -;; Bibliography things=0A= -=0A= -;; Use the titles of bibliography entries in cross-references=0A= -(define biblio-xref-title #t)=0A= -=0A= -;; Process bibliography entry components in the order shown below, not=0A= -;; in the order they appear in the document. (I suppose this should=0A= -;; be made to fit some publishing standard.)=0A= -(define %biblioentry-in-entry-order% #f)=0A= -=0A= -(define (biblioentry-inline-elements)=0A= - (list=0A= - (normalize "author")=0A= - (normalize "authorgroup")=0A= - (normalize "title")=0A= - (normalize "subtitle")=0A= - (normalize "volumenum")=0A= - (normalize "edition")=0A= - (normalize "othercredit")=0A= - (normalize "contrib")=0A= - (normalize "editor")=0A= - (normalize "publishername")=0A= - (normalize "confgroup")=0A= - (normalize "publisher")=0A= - (normalize "isbn")=0A= - (normalize "issn")=0A= - (normalize "pubsnumber")=0A= - (normalize "date")=0A= - (normalize "pubdate")=0A= - (normalize "pagenums")=0A= - (normalize "bibliomisc")))=0A= -=0A= -(mode biblioentry-inline-mode=0A= -=0A= - (element confgroup=0A= - (make sequence=0A= - (literal "Proc. ")=0A= - (next-match)))=0A= -=0A= - (element isbn=0A= - (make sequence=0A= - (literal "ISBN ")=0A= - (process-children)))=0A= -=0A= - (element issn=0A= - (make sequence=0A= - (literal "ISSN ")=0A= - (process-children))))=0A= -=0A= -=0A= -;; The rules in the default stylesheet for productname format it as a=0A= -;; paragraph. This may be suitable for productname directly within=0A= -;; *info, but it's nonsense when productname is used inline, as we do.=0A= -(mode book-titlepage-recto-mode=0A= - (element (para productname) ($charseq$)))=0A= -(mode book-titlepage-verso-mode=0A= - (element (para productname) ($charseq$)))=0A= -;; Add more here if needed...=0A= -=0A= -=0A= -;; Replace a sequence of whitespace in a string by a single space=0A= -(define (normalize-whitespace str #!optional (whitespace '(#\space #\U-000= D)))=0A= - (let loop ((characters (string->list str))=0A= - (result '())=0A= - (prev-was-space #f))=0A= - (if (null? characters)=0A= - (list->string (reverse result))=0A= - (let ((c (car characters))=0A= - (rest (cdr characters)))=0A= - (if (member c whitespace)=0A= - (if prev-was-space=0A= - (loop rest result #t)=0A= - (loop rest (cons #\space result) #t))=0A= - (loop rest (cons c result) #f))))))=0A= -=0A= -=0A= -= =0A= -=0A= -string (t= ime) #t)))))=0A= -=0A= -=0A= -;; Block elements are allowed in PARA in DocBook, but not in P in=0A= -;; HTML. With %fix-para-wrappers% turned on, the stylesheets attempt=0A= -;; to avoid putting block elements in HTML P tags by outputting=0A= -;; additional end/begin P pairs around them.=0A= -(define %fix-para-wrappers% #t)=0A= -=0A= -;; ...but we need to do some extra work to make the above apply to PRE=0A= -;; as well. (mostly pasted from dbverb.dsl)=0A= -(define ($verbatim-display$ indent line-numbers?)=0A= - (let ((content (make element gi: "PRE"=0A= - attributes: (list=0A= - (list "CLASS" (gi)))=0A= - (if (or indent line-numbers?)=0A= - ($verbatim-line-by-line$ indent line-numbers?)= =0A= - (process-children)))))=0A= - (if %shade-verbatim%=0A= - (make element gi: "TABLE"=0A= - attributes: ($shade-verbatim-attr$)=0A= - (make element gi: "TR"=0A= - (make element gi: "TD"=0A= - content)))=0A= - (make sequence=0A= - (para-check)=0A= - content=0A= - (para-check 'restart)))))=0A= -=0A= -;; ...and for notes.=0A= -(element note=0A= - (make sequence=0A= - (para-check)=0A= - ($admonition$)=0A= - (para-check 'restart)))=0A= -=0A= -;;; XXX The above is very ugly. It might be better to run 'tidy' on=0A= -;;; the resulting *.html files.=0A= -=0A= -=0A= -;; Format multiple terms in varlistentry vertically, instead=0A= -;; of comma-separated.=0A= -(element (varlistentry term)=0A= - (make sequence=0A= - (process-children-trim)=0A= - (if (not (last-sibling?))=0A= - (make empty-element gi: "BR")=0A= - (empty-sosofo))))=0A= -=0A= -=0A= -;; Customization of header=0A= -;; - make title a link to the home page=0A= -;; - add tool tips to Prev/Next links=0A= -;; - add Up link=0A= -;; (overrides dbnavig.dsl)=0A= -(define (default-header-nav-tbl-noff elemnode prev next prevsib nextsib)= =0A= - (let* ((r1? (nav-banner? elemnode))=0A= - (r1-sosofo (make element gi: "TR"=0A= - (make element gi: "TH"=0A= - attributes: (list=0A= - (list "COLSPAN" "4")=0A= - (list "ALIGN" "center")=0A= - (list "VALIGN" "bottom"))=0A= - (make element gi: "A"=0A= - attributes: (list=0A= - (list "HREF" (href-to (= nav-home elemnode))))=0A= - (nav-banner elemnode)))))=0A= - (r2? (or (not (node-list-empty? prev))=0A= - (not (node-list-empty? next))=0A= - (nav-context? elemnode)))=0A= - (r2-sosofo (make element gi: "TR"=0A= - (make element gi: "TD"=0A= - attributes: (list=0A= - (list "WIDTH" "10%")=0A= - (list "ALIGN" "left")=0A= - (list "VALIGN" "top"))=0A= - (if (node-list-empty? prev)=0A= - (make entity-ref name: "nbsp")=0A= - (make element gi: "A"=0A= - attributes: (list=0A= - (list "TITLE" (elem= ent-title-string prev))=0A= - (list "HREF"=0A= - (href-to=0A= - prev))=0A= - (list "ACCESSKEY"= =0A= - "P"))=0A= - (gentext-nav-prev prev))))=0A= - (make element gi: "TD"=0A= - attributes: (list=0A= - (list "WIDTH" "10%")=0A= - (list "ALIGN" "left")=0A= - (list "VALIGN" "top"))=0A= - (if (nav-up? elemnode)=0A= - (nav-up elemnode)=0A= - (nav-home-link elemnode)))=0A= - (make element gi: "TD"=0A= - attributes: (list=0A= - (list "WIDTH" "60%")=0A= - (list "ALIGN" "center")=0A= - (list "VALIGN" "bottom"))=0A= - (nav-context elemnode))=0A= - (make element gi: "TD"=0A= - attributes: (list=0A= - (list "WIDTH" "20%")=0A= - (list "ALIGN" "right")=0A= - (list "VALIGN" "top"))=0A= - (if (node-list-empty? next)=0A= - (make entity-ref name: "nbsp")=0A= - (make element gi: "A"=0A= - attributes: (list=0A= - (list "TITLE" (elem= ent-title-string next))=0A= - (list "HREF"=0A= - (href-to=0A= - next))=0A= - (list "ACCESSKEY"= =0A= - "N"))=0A= - (gentext-nav-next next)))))))=0A= - (if (or r1? r2?)=0A= - (make element gi: "DIV"=0A= - attributes: '(("CLASS" "NAVHEADER"))=0A= - (make element gi: "TABLE"=0A= - attributes: (list=0A= - (list "SUMMARY" "Header navigation table")=0A= - (list "WIDTH" %gentext-nav-tblwidth%)=0A= - (list "BORDER" "0")=0A= - (list "CELLPADDING" "0")=0A= - (list "CELLSPACING" "0"))=0A= - (if r1? r1-sosofo (empty-sosofo))=0A= - (if r2? r2-sosofo (empty-sosofo)))=0A= - (make empty-element gi: "HR"=0A= - attributes: (list=0A= - (list "ALIGN" "LEFT")=0A= - (list "WIDTH" %gentext-nav-tblwidth%))))=0A= - (empty-sosofo))))=0A= -=0A= -=0A= -;; Put index "quicklinks" (A | B | C | ...) at the top of the bookindex pa= ge.=0A= -=0A= -(element index=0A= - (let ((preamble (node-list-filter-by-not-gi=0A= - (children (current-node))=0A= - (list (normalize "indexentry"))))=0A= - (indexdivs (node-list-filter-by-gi=0A= - (children (current-node))=0A= - (list (normalize "indexdiv"))))=0A= - (entries (node-list-filter-by-gi=0A= - (children (current-node))=0A= - (list (normalize "indexentry")))))=0A= - (html-document=0A= - (with-mode head-title-mode=0A= - (literal (element-title-string (current-node))))=0A= - (make element gi: "DIV"=0A= - attributes: (list (list "CLASS" (gi)))=0A= - ($component-separator$)=0A= - ($component-title$)=0A= - (if (node-list-empty? indexdivs)=0A= - (empty-sosofo)=0A= - (make element gi: "P"=0A= - attributes: (list (list "CLASS" "INDEXDIV-QUICKLINKS"= ))=0A= - (with-mode indexdiv-quicklinks-mode=0A= - (process-node-list indexdivs))))=0A= - (process-node-list preamble)=0A= - (if (node-list-empty? entries)=0A= - (empty-sosofo)=0A= - (make element gi: "DL"=0A= - (process-node-list entries)))))))=0A= -=0A= -=0A= -(mode indexdiv-quicklinks-mode=0A= - (element indexdiv=0A= - (make sequence=0A= - (make element gi: "A"=0A= - attributes: (list (list "HREF" (href-to (current-node))))=0A= - (element-title-sosofo))=0A= - (if (not (last-sibling?))=0A= - (literal " | ")=0A= - (literal "")))))=0A= -=0A= -=0A= -;; Changed to strip and normalize index term content (overrides=0A= -;; dbindex.dsl)=0A= -(define (htmlindexterm)=0A= - (let* ((attr (gi (current-node)))=0A= - (content (data (current-node)))=0A= - (string (strip (normalize-whitespace content))) ;; changed=0A= - (sortas (attribute-string (normalize "sortas"))))=0A= - (make sequence=0A= - (make formatting-instruction data: attr)=0A= - (if sortas=0A= - (make sequence=0A= - (make formatting-instruction data: "[")=0A= - (make formatting-instruction data: sortas)=0A= - (make formatting-instruction data: "]"))=0A= - (empty-sosofo))=0A= - (make formatting-instruction data: " ")=0A= - (make formatting-instruction data: string)=0A= - (htmlnewline))))=0A= -=0A= -=0A= -]]> =0A= -=0A= -=0A= -= =0A= -=0A= - (string->number (attribute-string (normalize "col= umns"))) 0)=0A= - (string->number (attribute-string (normalize "column= s")))=0A= - 1)=0A= - 1))=0A= - (members (select-elements (children (current-node)) (normalize "me= mber"))))=0A= - (cond=0A= - ((equal? type (normalize "inline"))=0A= - (if (equal? (gi (parent (current-node)))=0A= - (normalize "para"))=0A= - (process-children)=0A= - (make paragraph=0A= - space-before: %para-sep%=0A= - space-after: %para-sep%=0A= - start-indent: (inherited-start-indent))))=0A= - ((equal? type (normalize "vert"))=0A= - (my-simplelist-vert members))=0A= - ((equal? type (normalize "horiz"))=0A= - (simplelist-table 'row cols members)))))=0A= -=0A= -(element member=0A= - (let ((type (inherited-attribute-string (normalize "type"))))=0A= - (cond=0A= - ((equal? type (normalize "inline"))=0A= - (make sequence=0A= - (process-children)=0A= - (if (not (last-sibling?))=0A= - (literal ", ")=0A= - (literal ""))))=0A= - ((equal? type (normalize "vert"))=0A= - (make paragraph=0A= - space-before: 0pt=0A= - space-after: 0pt))=0A= - ((equal? type (normalize "horiz"))=0A= - (make paragraph=0A= - quadding: 'start=0A= - (process-children))))))=0A= -=0A= -=0A= -;; Jadetex doesn't handle links to the content of tables, so=0A= -;; indexterms that point to table entries will go nowhere. We fix=0A= -;; this by pointing the index entry to the table itself instead, which=0A= -;; should be equally useful in practice.=0A= -=0A= -(define (find-parent-table nd)=0A= - (let ((table (ancestor-member nd ($table-element-list$))))=0A= - (if (node-list-empty? table)=0A= - nd=0A= - table)))=0A= -=0A= -;; (The function below overrides the one in print/dbindex.dsl.)=0A= -=0A= -(define (indexentry-link nd)=0A= - (let* ((id (attribute-string (normalize "role") nd))=0A= - (prelim-target (find-indexterm id))=0A= - (target (find-parent-table prelim-target))=0A= - (preferred (not (node-list-empty?=0A= - (select-elements (children (current-node))=0A= - (normalize "emphasis")))))=0A= - (sosofo (if (node-list-empty? target)=0A= - (literal "?")=0A= - (make link=0A= - destination: (node-list-address target)=0A= - (with-mode toc-page-number-mode=0A= - (process-node-list target))))))=0A= - (if preferred=0A= - (make sequence=0A= - font-weight: 'bold=0A= - sosofo)=0A= - sosofo)))=0A= -=0A= -=0A= -;; By default, the part and reference title pages get wrong page=0A= -;; numbers: The first title page gets roman numerals carried over from=0A= -;; preface/toc -- we want Arabic numerals. We also need to make sure=0A= -;; that page-number-restart is set of #f explicitly, because otherwise=0A= -;; it will carry over from the previous component, which is not good.=0A= -;;=0A= -;; (This looks worse than it is. It's copied from print/dbttlpg.dsl=0A= -;; and common/dbcommon.dsl and modified in minor detail.)=0A= -=0A= -(define (first-part?)=0A= - (let* ((book (ancestor (normalize "book")))=0A= - (nd (ancestor-member (current-node)=0A= - (append=0A= - (component-element-list)=0A= - (division-element-list))))=0A= - (bookch (children book)))=0A= - (let loop ((nl bookch))=0A= - (if (node-list-empty? nl)=0A= - #f=0A= - (if (equal? (gi (node-list-first nl)) (normalize "part"))=0A= - (if (node-list=3D? (node-list-first nl) nd)=0A= - #t=0A= - #f)=0A= - (loop (node-list-rest nl)))))))=0A= -=0A= -(define (first-reference?)=0A= - (let* ((book (ancestor (normalize "book")))=0A= - (nd (ancestor-member (current-node)=0A= - (append=0A= - (component-element-list)=0A= - (division-element-list))))=0A= - (bookch (children book)))=0A= - (let loop ((nl bookch))=0A= - (if (node-list-empty? nl)=0A= - #f=0A= - (if (equal? (gi (node-list-first nl)) (normalize "reference"))= =0A= - (if (node-list=3D? (node-list-first nl) nd)=0A= - #t=0A= - #f)=0A= - (loop (node-list-rest nl)))))))=0A= -=0A= -=0A= -(define (part-titlepage elements #!optional (side 'recto))=0A= - (let ((nodelist (titlepage-nodelist=0A= - (if (equal? side 'recto)=0A= - (reference-titlepage-recto-elements)=0A= - (reference-titlepage-verso-elements))=0A= - elements))=0A= - ;; partintro is a special case...=0A= - (partintro (node-list-first=0A= - (node-list-filter-by-gi elements (list (normalize "par= tintro"))))))=0A= - (if (part-titlepage-content? elements side)=0A= - (make simple-page-sequence=0A= - page-n-columns: %titlepage-n-columns%=0A= - ;; Make sure that page number format is correct.=0A= - page-number-format: ($page-number-format$)=0A= - ;; Make sure that the page number is set to 1 if this is the=0A= - ;; first part in the book=0A= - page-number-restart?: (first-part?)=0A= - input-whitespace-treatment: 'collapse=0A= - use: default-text-style=0A= -=0A= - ;; This hack is required for the RTF backend. If an external-gra= phic=0A= - ;; is the first thing on the page, RTF doesn't seem to do the ri= ght=0A= - ;; thing (the graphic winds up on the baseline of the first line= =0A= - ;; of the page, left justified). This "one point rule" fixes=0A= - ;; that problem.=0A= - (make paragraph=0A= - line-spacing: 1pt=0A= - (literal ""))=0A= -=0A= - (let loop ((nl nodelist) (lastnode (empty-node-list)))=0A= - (if (node-list-empty? nl)=0A= - (empty-sosofo)=0A= - (make sequence=0A= - (if (or (node-list-empty? lastnode)=0A= - (not (equal? (gi (node-list-first nl))=0A= - (gi lastnode))))=0A= - (part-titlepage-before (node-list-first nl) side)=0A= - (empty-sosofo))=0A= - (cond=0A= - ((equal? (gi (node-list-first nl)) (normalize "subtitle= "))=0A= - (part-titlepage-subtitle (node-list-first nl) side))= =0A= - ((equal? (gi (node-list-first nl)) (normalize "title"))= =0A= - (part-titlepage-title (node-list-first nl) side))=0A= - (else=0A= - (part-titlepage-default (node-list-first nl) side)))= =0A= - (loop (node-list-rest nl) (node-list-first nl)))))=0A= -=0A= - (if (and %generate-part-toc%=0A= - %generate-part-toc-on-titlepage%=0A= - (equal? side 'recto))=0A= - (make display-group=0A= - (build-toc (current-node)=0A= - (toc-depth (current-node))))=0A= - (empty-sosofo))=0A= -=0A= - ;; PartIntro is a special case=0A= - (if (and (equal? side 'recto)=0A= - (not (node-list-empty? partintro))=0A= - %generate-partintro-on-titlepage%)=0A= - ($process-partintro$ partintro #f)=0A= - (empty-sosofo)))=0A= -=0A= - (empty-sosofo))))=0A= -=0A= -=0A= -(define (reference-titlepage elements #!optional (side 'recto))=0A= - (let ((nodelist (titlepage-nodelist=0A= - (if (equal? side 'recto)=0A= - (reference-titlepage-recto-elements)=0A= - (reference-titlepage-verso-elements))=0A= - elements))=0A= - ;; partintro is a special case...=0A= - (partintro (node-list-first=0A= - (node-list-filter-by-gi elements (list (normalize "par= tintro"))))))=0A= - (if (reference-titlepage-content? elements side)=0A= - (make simple-page-sequence=0A= - page-n-columns: %titlepage-n-columns%=0A= - ;; Make sure that page number format is correct.=0A= - page-number-format: ($page-number-format$)=0A= - ;; Make sure that the page number is set to 1 if this is the=0A= - ;; first part in the book=0A= - page-number-restart?: (first-reference?)=0A= - input-whitespace-treatment: 'collapse=0A= - use: default-text-style=0A= -=0A= - ;; This hack is required for the RTF backend. If an external-gra= phic=0A= - ;; is the first thing on the page, RTF doesn't seem to do the ri= ght=0A= - ;; thing (the graphic winds up on the baseline of the first line= =0A= - ;; of the page, left justified). This "one point rule" fixes=0A= - ;; that problem.=0A= - (make paragraph=0A= - line-spacing: 1pt=0A= - (literal ""))=0A= -=0A= - (let loop ((nl nodelist) (lastnode (empty-node-list)))=0A= - (if (node-list-empty? nl)=0A= - (empty-sosofo)=0A= - (make sequence=0A= - (if (or (node-list-empty? lastnode)=0A= - (not (equal? (gi (node-list-first nl))=0A= - (gi lastnode))))=0A= - (reference-titlepage-before (node-list-first nl) sid= e)=0A= - (empty-sosofo))=0A= - (cond=0A= - ((equal? (gi (node-list-first nl)) (normalize "author")= )=0A= - (reference-titlepage-author (node-list-first nl) side)= )=0A= - ((equal? (gi (node-list-first nl)) (normalize "authorgr= oup"))=0A= - (reference-titlepage-authorgroup (node-list-first nl) = side))=0A= - ((equal? (gi (node-list-first nl)) (normalize "corpauth= or"))=0A= - (reference-titlepage-corpauthor (node-list-first nl) s= ide))=0A= - ((equal? (gi (node-list-first nl)) (normalize "editor")= )=0A= - (reference-titlepage-editor (node-list-first nl) side)= )=0A= - ((equal? (gi (node-list-first nl)) (normalize "subtitle= "))=0A= - (reference-titlepage-subtitle (node-list-first nl) sid= e))=0A= - ((equal? (gi (node-list-first nl)) (normalize "title"))= =0A= - (reference-titlepage-title (node-list-first nl) side))= =0A= - (else=0A= - (reference-titlepage-default (node-list-first nl) side= )))=0A= - (loop (node-list-rest nl) (node-list-first nl)))))=0A= -=0A= - (if (and %generate-reference-toc%=0A= - %generate-reference-toc-on-titlepage%=0A= - (equal? side 'recto))=0A= - (make display-group=0A= - (build-toc (current-node)=0A= - (toc-depth (current-node))))=0A= - (empty-sosofo))=0A= -=0A= - ;; PartIntro is a special case=0A= - (if (and (equal? side 'recto)=0A= - (not (node-list-empty? partintro))=0A= - %generate-partintro-on-titlepage%)=0A= - ($process-partintro$ partintro #f)=0A= - (empty-sosofo)))=0A= -=0A= - (empty-sosofo))))=0A= -=0A= -]]> =0A= -=0A= - =0A= - =0A= -=0A= - =0A= -=0A= diff --git a/src/Makefile.global.in b/src/Makefile.global.in=0A= index 06e39c57e9..b83f09f326 100644=0A= --- a/src/Makefile.global.in=0A= +++ b/src/Makefile.global.in=0A= @@ -399,11 +399,8 @@ STRIP_SHARED_LIB =3D @STRIP_SHARED_LIB@=0A= =20=0A= # Documentation=0A= =20=0A= -have_docbook =3D @have_docbook@=0A= -COLLATEINDEX =3D @COLLATEINDEX@=0A= DBTOEPUB =3D @DBTOEPUB@=0A= -DOCBOOKSTYLE =3D @DOCBOOKSTYLE@=0A= -JADE =3D @JADE@=0A= +FOP =3D @FOP@=0A= NSGMLS =3D @NSGMLS@=0A= OSX =3D @OSX@=0A= XMLLINT =3D @XMLLINT@=0A= --=20=0A= 2.12.2=0A= =0A= --------------EBA01BFB631EB92340371B2B Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgsql-docs mailing list (pgsql-docs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-docs --------------EBA01BFB631EB92340371B2B--