diff options
Diffstat (limited to 'libxml2/doc/buildDocBookCatalog')
-rwxr-xr-x | libxml2/doc/buildDocBookCatalog | 414 |
1 files changed, 414 insertions, 0 deletions
diff --git a/libxml2/doc/buildDocBookCatalog b/libxml2/doc/buildDocBookCatalog new file mode 100755 index 0000000..d1b8c94 --- /dev/null +++ b/libxml2/doc/buildDocBookCatalog @@ -0,0 +1,414 @@ +#! /bin/bash + +usage() +{ + cat <<EOF +Usage: $pname [OPTION] + +Known values for OPTION are: + --prefix=DIR change the output directory for catalog files + [default $DIR] + --show display the output filenames and paths + --version=x.y.z change the DocBook version [default $VERSION] + --debug display script action information + --help display this help and exit +EOF +} + +setdefault() +{ + echo Unable to update root catalog $ROOTCATALOG + ROOTCATALOG=$HOME/xmlcatalog + CATALOG=$HOME/dbkxmlcatalog + DIR=$HOME + CAT=xmlcatalog + echo Using $ROOTCATALOG as the root catalog + echo Remember to export XML_CATALOG_FILES=$ROOTCATALOG + echo + prefix=1 +} + +fixname() +{ +# +# ROOTCATALOG contains the full pathname for the catalog. We will +# split that into the directory name and the filename, then we will +# see if the directory exists. If it does not, we will attempt to +# create it. +# + if test $verbose = 1 + then + echo Checking path $ROOTCATALOG for permissions + fi +# First we split the filename and directory name + CAT=`basename $ROOTCATALOG` + DIR=`dirname $ROOTCATALOG` + if test "$DIR" = "" + then + echo Unable to isolate directory name from '$ROOTCATALOG' - exiting + exit 1 + fi + CATALOG=${DIR}/docbook + parent=`dirname $DIR` + if test "$parent" == "" + then + parent=/ + fi + if [ ! -d $DIR ] + then + if test $verbose = 1 + then + echo Directory $DIR missing - I will try to create it + fi + if [ ! -w $parent ] + then + if test $verbose = 1 + then + echo No write permission for directory $parent + fi + setdefault + else + newdir=1 + fi + else + if [ -f $ROOTCATALOG -a ! -w $ROOTCATALOG ] || + [ -e $ROOTCATALOG -a ! -f $ROOTCATALOG ] || + [ ! -e $ROOTCATALOG -a ! -w $DIR ] + then + setdefault + fi + fi + +} +finddbx() +{ +dtd421="" +s="//OASIS//DTD DocBook XML V${VERSION}//EN" +found=`find $1 -name docbookx.dtd -exec grep -l "$s" {} \;` +for dtd in $found; do + docbookdir=`dirname $dtd` + echo Found DocBook XML $VERSION DTD in $docbookdir +# +# The original script had a check for write permission on the file +# but I can't see why it should be necessary +# + dtd421=$dtd + break +done +} + +# +# Preset script control params +show=0 +prefix=0 +newdir=0 +verbose=0 +# +# Isolate the script name for messages +pname=`basename $0` +VERSION=4.1.2 + +if test "$XML_CATALOG_FILES" != "" +then + ROOTCATALOG=$XML_CATALOG_FILES +else + ROOTCATALOG=/etc/xml/catalog +fi + +# +# Interpret script parameters +while test $# -gt 0; do + case "$1" in + -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + + case "$1" in + -p=* | --prefix=*) + ROOTCATALOG=$optarg/catalog + prefix=1 + ;; + + -s | --show) + show=1 + ;; + + -v=* | --version=*) + VERSION=$optarg + ;; + + -d | --debug) + verbose=1 + ;; + + -h | --help) + usage + exit 0 + ;; + + * ) + echo Invalid argument "$1" + usage + exit 1 + ;; + esac + shift +done +fixname +if test $prefix != 0 +then + export XML_CATALOG_FILES=$ROOTCATALOG +fi +if test $show != 0 +then + echo XML Catalog is $ROOTCATALOG + echo Docbook Catalog is $CATALOG + exit 0 +fi +if test $newdir!=0 +then + mkdir -p $DIR + chmod 755 $DIR +fi + +echo Starting run +# +# create the catalogs root and docbook specific +# +if [ ! -r $ROOTCATALOG ] ; then + echo creating XML Catalog root $ROOTCATALOG + xmlcatalog --noout --create $ROOTCATALOG +fi +if [ ! -r $ROOTCATALOG ] ; then + echo Failed creating XML Catalog root $ROOTCATALOG + exit 1 +fi +if [ ! -r $CATALOG ] ; then + echo creating DocBook XML Catalog $CATALOG + xmlcatalog --noout --create $CATALOG +fi +if [ ! -r $CATALOG ] ; then + echo Failed creating DocBook XML Catalog $CATALOG + exit 1 +fi + +# +# find the prefix for DocBook DTD +# +finddbx /usr/share/xml +if [ "$dtd421" = "" ] ; then + finddbx $HOME +fi +if [ "$dtd421" = "" ] ; then + finddbx /usr/local +fi +if [ "$dtd421" = "" ] ; then + finddbx /usr/share/sgml +fi + +if [ "$dtd421" = "" ] ; then + echo could not locate version $VERSION of DocBook XML + exit 1 +fi + +xmlcatalog --noout --add "public" \ + "-//OASIS//ELEMENTS DocBook XML Information Pool V${VERSION}//EN" \ + "file://$docbookdir/dbpoolx.mod" $CATALOG +xmlcatalog --noout --add "public" \ + "-//OASIS//DTD DocBook XML V${VERSION}//EN" \ + "file://$docbookdir/docbookx.dtd" $CATALOG +xmlcatalog --noout --add "public" \ + "-//OASIS//ENTITIES DocBook XML Character Entities V${VERSION}//EN" \ + "file://$docbookdir/dbcentx.mod" $CATALOG +xmlcatalog --noout --add "public" \ + "-//OASIS//ENTITIES DocBook XML Notations V${VERSION}//EN" \ + "file://$docbookdir/dbnotnx.mod" $CATALOG +xmlcatalog --noout --add "public" \ + "-//OASIS//ENTITIES DocBook XML Additional General Entities V${VERSION}//EN" \ + "file://$docbookdir/dbgenent.mod" $CATALOG +xmlcatalog --noout --add "public" \ + "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V${VERSION}//EN" \ + "file://$docbookdir/dbhierx.mod" $CATALOG +xmlcatalog --noout --add "public" \ + "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \ + "file://$docbookdir/soextblx.dtd" $CATALOG +xmlcatalog --noout --add "public" \ + "-//OASIS//DTD DocBook XML CALS Table Model V${VERSION}//EN" \ + "file://$docbookdir/calstblx.dtd" $CATALOG +xmlcatalog --noout --add "rewriteSystem" \ + "http://www.oasis-open.org/docbook/xml/${VERSION}" \ + "file://$docbookdir" $CATALOG +xmlcatalog --noout --add "rewriteURI" \ + "http://www.oasis-open.org/docbook/xml/${VERSION}" \ + "file://$docbookdir" $CATALOG + +xmlcatalog --noout --add "delegatePublic" \ + "-//OASIS//ENTITIES DocBook XML" \ + "file://$CATALOG" $ROOTCATALOG +xmlcatalog --noout --add "delegatePublic" \ + "-//OASIS//DTD DocBook XML" \ + "file://$CATALOG" $ROOTCATALOG +xmlcatalog --noout --add "delegateSystem" \ + "http://www.oasis-open.org/docbook/" \ + "file://$CATALOG" $ROOTCATALOG +xmlcatalog --noout --add "delegateURI" \ + "http://www.oasis-open.org/docbook/" \ + "file://$CATALOG" $ROOTCATALOG + +# +# find the prefix for ISO DocBook entities +# +top=`dirname $docbookdir` +found=`find $top -name iso-amsb.ent` +if [ "$found" = "" ] ; then + found=`find /usr/share/xml -name iso-amsb.ent` +fi +if [ "$found" = "" ] ; then + found=`find $HOME -name iso-amsb.ent` +fi +if [ "$found" = "" ] ; then + found=`find /usr/local -name iso-amsb.ent` +fi +if [ "$found" = "" ] ; then + found=`find /usr/share/sgml -name iso-amsb.ent` +fi +if [ "$found" = "" ] ; then + echo could not locate iso-amsb.ent of ISO DocBook entities + exit 1 +fi + +entxml="" +for tst in $found; do + check=`grep '<!ENTITY ominus."\⊖">' $tst` + if [ "$check" != "" ] ; then + entxml=$tst + break + fi +done + +if [ "$entxml" = "" ] ; then + echo could not locate ISO DocBook entities + exit 1 +fi +isodir=`dirname $entxml` +echo Found ISO DocBook entities in $isodir + +xmlcatalog --noout --add "public" \ + "ISO 8879:1986//ENTITIES Publishing//EN" \ + "file://$isodir/iso-pub.ent" $CATALOG +xmlcatalog --noout --add "public" \ + "ISO 8879:1986//ENTITIES Greek Letters//EN" \ + "file://$isodir/iso-grk1.ent" $CATALOG +xmlcatalog --noout --add "public" \ + "ISO 8879:1986//ENTITIES Box and Line Drawing//EN" \ + "file://$isodir/iso-box.ent" $CATALOG +xmlcatalog --noout --add "public" \ + "ISO 8879:1986//ENTITIES Greek Symbols//EN" \ + "file://$isodir/iso-grk3.ent" $CATALOG +xmlcatalog --noout --add "public" \ + "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN" \ + "file://$isodir/iso-amsn.ent" $CATALOG +xmlcatalog --noout --add "public" \ + "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" \ + "file://$isodir/iso-num.ent" $CATALOG +xmlcatalog --noout --add "public" \ + "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN" \ + "file://$isodir/iso-grk4.ent" $CATALOG +xmlcatalog --noout --add "public" \ + "ISO 8879:1986//ENTITIES Diacritical Marks//EN" \ + "file://$isodir/iso-dia.ent" $CATALOG +xmlcatalog --noout --add "public" \ + "ISO 8879:1986//ENTITIES Monotoniko Greek//EN" \ + "file://$isodir/iso-grk2.ent" $CATALOG +xmlcatalog --noout --add "public" \ + "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN" \ + "file://$isodir/iso-amsa.ent" $CATALOG +xmlcatalog --noout --add "public" \ + "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN" \ + "file://$isodir/iso-amso.ent" $CATALOG +xmlcatalog --noout --add "public" \ + "ISO 8879:1986//ENTITIES Russian Cyrillic//EN" \ + "file://$isodir/iso-cyr1.ent" $CATALOG +xmlcatalog --noout --add "public" \ + "ISO 8879:1986//ENTITIES General Technical//EN" \ + "file://$isodir/iso-tech.ent" $CATALOG +xmlcatalog --noout --add "public" \ + "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN" \ + "file://$isodir/iso-amsc.ent" $CATALOG +xmlcatalog --noout --add "public" \ + "ISO 8879:1986//ENTITIES Added Latin 1//EN" \ + "file://$isodir/iso-lat1.ent" $CATALOG +xmlcatalog --noout --add "public" \ + "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN" \ + "file://$isodir/iso-amsb.ent" $CATALOG +xmlcatalog --noout --add "public" \ + "ISO 8879:1986//ENTITIES Added Latin 2//EN" \ + "file://$isodir/iso-lat2.ent" $CATALOG +xmlcatalog --noout --add "public" \ + "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN" \ + "file://$isodir/iso-amsr.ent" $CATALOG +xmlcatalog --noout --add "public" \ + "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN" \ + "file://$isodir/iso-cyr2.ent" $CATALOG + +xmlcatalog --noout --add "delegatePublic" \ + "ISO 8879:1986" \ + "file://$CATALOG" $ROOTCATALOG + +# +# find the prefix for XSLT stylesheets +# +top=`dirname $docbookdir` +found=`find $top -name chunk.xsl` +if [ "$found" = "" ] ; then + found=`find /usr/share/xml -name chunk.xsl` +fi +if [ "$found" = "" ] ; then + found=`find $HOME -name chunk.xsl` +fi +if [ "$found" = "" ] ; then + found=`find /usr/local -name chunk.xsl` +fi +if [ "$found" = "" ] ; then + found=`find /usr/share/sgml -name chunk.xsl` +fi +if [ "$found" = "" ] ; then + echo could not locate chunk-common.xsl of DocBook XSLT stylesheets + exit 1 +fi + +xsldir="" +for tst in $found; do + dir=`dirname $tst` + dir=`dirname $dir` + if [ -r $dir/html/docbook.xsl -a -r $dir/common/l10n.xml ]; then + xsldir=$dir + break + fi +done + +if [ "$xsldir" = "" ] ; then + echo could not locate DocBook XSLT stylesheets + exit 1 +fi +echo Found DocBook XSLT stylesheets in $xsldir +for version in current 1.39 1.40 1.41 1.42 1.43 1.44 1.45 1.46 1.47 \ + 1.48 1.49 1.50 +do + xmlcatalog --noout --add "rewriteSystem" \ + "http://docbook.sourceforge.net/release/xsl/$version" \ + "file://$xsldir" $CATALOG + xmlcatalog --noout --add "rewriteURI" \ + "http://docbook.sourceforge.net/release/xsl/$version" \ + "file://$xsldir" $CATALOG +done + +xmlcatalog --noout --add "delegateSystem" \ + "http://docbook.sourceforge.net/release/xsl/" \ + "file://$CATALOG" $ROOTCATALOG +xmlcatalog --noout --add "delegateURI" \ + "http://docbook.sourceforge.net/release/xsl/" \ + "file://$CATALOG" $ROOTCATALOG + +# +# |