forked from Lainports/freebsd-ports
to unbreak gtk-doc as well as removes a ton of gross hacks to support the old location. Also, import some CVS patches from SK to fix some potential crashes when installing bad catalogs. While I tested this with a full SK database rebuild, problems may still occur. Please let me know if you encounter any issues with OMF files after this commit.
246 lines
8.1 KiB
Bash
246 lines
8.1 KiB
Bash
#!/bin/sh
|
|
|
|
PATH=${PATH}:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
|
|
export PATH
|
|
|
|
PREFIX=`xml2-config --prefix`
|
|
ROOTCATALOG=${PREFIX}/share/xml/catalog
|
|
CATALOG=${PREFIX}/share/xml/docbook/catalog
|
|
|
|
if [ "$2" = "PRE-INSTALL" ]; then
|
|
|
|
#
|
|
# 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
|
|
#
|
|
found=`find ${PREFIX}/share/ -follow -name docbookx.dtd 2> /dev/null`
|
|
if [ "$found" = "" ] ; then
|
|
echo could not locate docbookx.dtd for DocBook XML
|
|
exit 1
|
|
fi
|
|
|
|
dtd412=""
|
|
for dtd in $found; do
|
|
check=`grep '//OASIS//DTD DocBook XML V4.1.2//EN' $dtd`
|
|
if [ "$check" != "" ] ; then
|
|
dtd412=$dtd
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [ "$dtd412" = "" ] ; then
|
|
echo could not locate version 4.1.2 of DocBook XML
|
|
exit 1
|
|
fi
|
|
|
|
docbookdir=`dirname $dtd412`
|
|
echo Found DocBook XML 4.1.2 DTD in $docbookdir
|
|
|
|
xmlcatalog --noout --add "public" \
|
|
"-//OASIS//ELEMENTS DocBook XML Information Pool V4.1.2//EN" \
|
|
"file://$docbookdir/dbpoolx.mod" $CATALOG
|
|
xmlcatalog --noout --add "public" \
|
|
"-//OASIS//DTD DocBook XML V4.1.2//EN" \
|
|
"file://$docbookdir/docbookx.dtd" $CATALOG
|
|
xmlcatalog --noout --add "public" \
|
|
"-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN" \
|
|
"file://$docbookdir/dbcentx.mod" $CATALOG
|
|
xmlcatalog --noout --add "public" \
|
|
"-//OASIS//ENTITIES DocBook XML Notations V4.1.2//EN" \
|
|
"file://$docbookdir/dbnotnx.mod" $CATALOG
|
|
xmlcatalog --noout --add "public" \
|
|
"-//OASIS//ENTITIES DocBook XML Additional General Entities V4.1.2//EN" \
|
|
"file://$docbookdir/dbgenent.mod" $CATALOG
|
|
xmlcatalog --noout --add "public" \
|
|
"-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.1.2//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 V4.1.2//EN" \
|
|
"file://$docbookdir/calstblx.dtd" $CATALOG
|
|
xmlcatalog --noout --add "rewriteSystem" \
|
|
"http://www.oasis-open.org/docbook/xml/4.1.2" \
|
|
"file://$docbookdir" $CATALOG
|
|
xmlcatalog --noout --add "rewriteURI" \
|
|
"http://www.oasis-open.org/docbook/xml/4.1.2" \
|
|
"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 ${PREFIX}/share/ -follow -iname "iso*amsb.ent" 2> /dev/null`
|
|
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 ${PREFIX}/share/ -follow -name chunk.xsl 2> /dev/null`
|
|
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.0 1.51.0 1.52.0 1.52.1 1.52.2 1.53.0 1.54.0 \
|
|
1.54.1 1.55.0 1.56.0 1.56.1 1.57.0 1.58.0 1.58.1 1.59.0 \
|
|
1.59.1 1.60.0 1.62.3
|
|
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
|
|
fi
|
|
|
|
if [ "$2" = "POST-INSTALL" ]; then
|
|
SKPREFIX=`scrollkeeper-config --prefix`
|
|
echo "`date +"%b %d %X"` Installing ScrollKeeper `scrollkeeper-config --version`..." >> /var/log/scrollkeeper.log
|
|
|
|
xmlcatalog --noout --add "public" \
|
|
"-//OMF//DTD Scrollkeeper OMF Variant V1.0//EN" \
|
|
"${SKPREFIX}/share/gnome/xml/scrollkeeper/dtds/scrollkeeper-omf.dtd" \
|
|
${ROOTCATALOG}
|
|
|
|
scrollkeeper-rebuilddb -q -p /var/db/scrollkeeper || /usr/bin/true
|
|
fi
|