Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=gnome226.git;a=commitdiff;h=722152d2823edd7774d4183e88cd870a901dd121
commit 722152d2823edd7774d4183e88cd870a901dd121 Author: bouleetbil <bouleet...@frogdev.info> Date: Fri Feb 20 19:05:55 2009 +0100 docbook-xml-4.5-1-i686 *version bump *change m8r *added all docbook-xml *fixe up2date later diff --git a/source/apps/docbook-xml/FrugalBuild b/source/apps/docbook-xml/FrugalBuild index 13cfeed..040240b 100644 --- a/source/apps/docbook-xml/FrugalBuild +++ b/source/apps/docbook-xml/FrugalBuild @@ -1,9 +1,9 @@ -# Compiling Time: 0.01 SBU -# Maintainer: AlexExtreme <a...@alex-smith.me.uk> +# Compiling Time: 0 SBU +# Maintainer: bouleetbil <bouleet...@frogdev.info> pkgname=docbook-xml -pkgver=4.2 -pkgrel=4 +pkgver=4.5 +pkgrel=1 pkgdesc="A widely used XML scheme for writing documentation and help" url="http://www.oasis-open.org/docbook/xml/" depends=('libxml2') @@ -11,15 +11,26 @@ rodepends=('sed') groups=('apps') archs=('i686' 'x86_64' 'ppc') up2date="lynx -dump ${url}index.1.shtml|grep current|sed 's/.*V\([0-9\.]\+\) .*/\1/'" -source=(http://www.oasis-open.org/docbook/xml/$pkgver/$pkgname-$pkgver.zip) -sha1sums=('5e3a35663cd028c5c5fbb959c3858fec2d7f8b9e') +source=(${url}$pkgver/$pkgname-$pkgver.zip \ + ${url}4.4/$pkgname-4.4.zip \ + ${url}4.3/$pkgname-4.3.zip \ + ${url}4.2/$pkgname-4.2.zip) +sha1sums=('b9124233b50668fb508773aa2b3ebc631d7c1620' \ + '7c4d91c82ad3747e1b5600c91782758e5d91c22b' \ + 'e79a59e9164c1013b8cc9f64f96f909a184ca016' \ + '5e3a35663cd028c5c5fbb959c3858fec2d7f8b9e') -build() -{ - Fmkdir /usr/share/sgml/docbook/catalog - Ffilerel docbook.cat /usr/share/sgml/docbook/catalog/ - Fmkdir /usr/share/sgml/docbook/dtd/xml-dtd-$pkgver - Ffilerel *.dtd /usr/share/sgml/docbook/dtd/xml-dtd-$pkgver/ - Ffilerel *.mod /usr/share/sgml/docbook/dtd/xml-dtd-$pkgver/ - Fcprrel ent /usr/share/sgml/docbook/dtd/xml-dtd-$pkgver/ +build() { + subver=('4.2' '4.3' '4.4' '4.5') + for version in "${subv...@]}" + do + Fextract $pkgname-$version.zip + Fmkdir /usr/share/sgml/docbook/dtd/xml-dtd-$version + Ffilerel *.cat /usr/share/sgml/docbook/dtd/xml-dtd-$version/ + Ffilerel *.dtd /usr/share/sgml/docbook/dtd/xml-dtd-$version/ + Ffilerel *.xml /usr/share/sgml/docbook/dtd/xml-dtd-$version/ + Ffilerel *.mod /usr/share/sgml/docbook/dtd/xml-dtd-$version/ + Fcprel ent /usr/share/sgml/docbook/dtd/xml-dtd-$version/ + done } + diff --git a/source/apps/docbook-xml/docbook-xml.install b/source/apps/docbook-xml/docbook-xml.install index ef8bca8..b07538e 100644 --- a/source/apps/docbook-xml/docbook-xml.install +++ b/source/apps/docbook-xml/docbook-xml.install @@ -1,132 +1,113 @@ -post_install() { +subver=('4.2' '4.3' '4.4' '4.5') +ROOTCATALOG=/etc/xml/catalog +CATALOG=/etc/xml/docbook +DOCBOOKDIR=/usr/share/sgml/docbook +DTDS= +LATEST_DTD= +LATEST_DATE= - if [ ! -f /etc/xml/catalog ]; then mkdir -p /etc/xml; xmlcatalog --noout --create /etc/xml/catalog; fi && - if [ ! -e /etc/xml/docbook ]; then xmlcatalog --noout --create /etc/xml/docbook; fi && - - _NEW=`echo $1 | sed 's|\(.*\)\-.*|\1|'` - xmlcatalog --noout --add "public" \ - "-//OASIS//ELEMENTS DocBook XML Information Pool V4.1.2//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/dbpoolx.mod" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "-//OASIS//DTD DocBook XML V4.1.2//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/docbookx.dtd" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/dbcentx.mod" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "-//OASIS//ENTITIES DocBook XML Notations V4.1.2//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/dbnotnx.mod" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "-//OASIS//ENTITIES DocBook XML Additional General Entities V4.1.2//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/dbgenent.mod" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.1.2//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/dbhierx.mod" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/soextblx.dtd" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "-//OASIS//DTD DocBook XML CALS Table Model V4.1.2//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/calstblx.dtd" /etc/xml/docbook && - xmlcatalog --noout --add "rewriteSystem" \ - "http://www.oasis-open.org/docbook/xml/4.1.2" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW" /etc/xml/docbook && - xmlcatalog --noout --add "rewriteURI" \ - "http://www.oasis-open.org/docbook/xml/4.1.2" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW" /etc/xml/docbook && - - xmlcatalog --noout --add "delegatePublic" \ - "-//OASIS//ENTITIES DocBook XML" \ - "file:///etc/xml/docbook" /etc/xml/catalog && - xmlcatalog --noout --add "delegatePublic" \ - "-//OASIS//DTD DocBook XML" \ - "file:///etc/xml/docbook" /etc/xml/catalog && - xmlcatalog --noout --add "delegateSystem" \ - "http://www.oasis-open.org/docbook/" \ - "file:///etc/xml/docbook" /etc/xml/catalog && - xmlcatalog --noout --add "delegateURI" \ - "http://www.oasis-open.org/docbook/" \ - "file:///etc/xml/docbook" /etc/xml/catalog && - - xmlcatalog --noout --add "public" \ - "ISO 8879:1986//ENTITIES Publishing//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-pub.ent" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "ISO 8879:1986//ENTITIES Greek Letters//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-grk1.ent" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "ISO 8879:1986//ENTITIES Box and Line Drawing//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-box.ent" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "ISO 8879:1986//ENTITIES Greek Symbols//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-grk3.ent" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-amsn.ent" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-num.ent" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-grk4.ent" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "ISO 8879:1986//ENTITIES Diacritical Marks//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-dia.ent" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "ISO 8879:1986//ENTITIES Monotoniko Greek//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-grk2.ent" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-amsa.ent" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-amso.ent" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "ISO 8879:1986//ENTITIES Russian Cyrillic//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-cyr1.ent" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "ISO 8879:1986//ENTITIES General Technical//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-tech.ent" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-amsc.ent" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "ISO 8879:1986//ENTITIES Added Latin 1//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-lat1.ent" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-amsb.ent" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "ISO 8879:1986//ENTITIES Added Latin 2//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-lat2.ent" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-amsr.ent" /etc/xml/docbook && - xmlcatalog --noout --add "public" \ - "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN" \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-cyr2.ent" /etc/xml/docbook && - - xmlcatalog --noout --add "delegatePublic" \ - "ISO 8879:1986" \ - "file:///etc/xml/docbook" /etc/xml/catalog -} -post_upgrade() { -# strategy is now to remove all lines added by post_install and add them -# completely new. This is a bit much, since the only the firts two lines -# change with new versions, but this way we can do it via the subroutines here -# Also it is good to remove the lines after deinstallation to get meaningful -# error messages by apps like conglomerate when docbook-xml is NOT installed - pre_remove $1 $2 - post_install $1 +# +# create the catalogs root and docbook specific +# +create_catalogs() { + +if [[ ! -r ${ROOTCATALOG} ]] ; then + echo "Creating XML Catalog root ${ROOTCATALOG}" + /usr/bin/xmlcatalog --noout --create ${ROOTCATALOG} + if [[ ! -r ${ROOTCATALOG} ]] ; then + echo "Failed creating ${ROOTCATALOG}, aborting" >&2 + return 1 + fi + else + # clean out existing entries + clean_catalog "file://${CATALOG}" ${ROOTCATALOG} + fi + + if [[ ! -r ${CATALOG} ]] ; then + echo "Creating DocBook XML Catalog ${CATALOG}" + /usr/bin/xmlcatalog --noout --create ${CATALOG} + if [[ ! -r ${CATALOG} ]] ; then + echo "Failed creating ${CATALOG}, aborting" >&2 + return 1 + fi + fi + + # dtd pointers + xmlcatalog --noout --add "delegatePublic" "-//OASIS//ENTITIES DocBook XML" "file://${CATALOG}" ${ROOTCATALOG} &>/dev/null + xmlcatalog --noout --add "delegatePublic" "-//OASIS//DTD DocBook XML" "file://${CATALOG}" ${ROOTCATALOG} &>/dev/null + xmlcatalog --noout --add "delegateSystem" "http://www.oasis-open.org/docbook/" "file://${CATALOG}" ${ROOTCATALOG} &>/dev/null + xmlcatalog --noout --add "delegateURI" "http://www.oasis-open.org/docbook/" "file://${CATALOG}" ${ROOTCATALOG} &>/dev/null + + # entities pointer + xmlcatalog --noout --add "delegatePublic" "ISO 8879:1986" "file://${CATALOG}" ${ROOTCATALOG} &>/dev/null + for version in "${subv...@]}" + do + if [ ! -e /etc/xml/catalog ]; then mkdir -p /etc/xml; xmlcatalog --noout \ + --create /etc/xml/catalog; fi && + if [ ! -e /etc/xml/docbook ]; then xmlcatalog --noout --create \ + /etc/xml/docbook; fi && + xmlcatalog --noout --add "public" \ + "-//OASIS//ELEMENTS DocBook XML Information Pool V${version}//EN" \ + "file:///usr/share/sgml/docbook/dtd/xml-dtd-${version}/dbpoolx.mod" \ + /etc/xml/docbook && + xmlcatalog --noout --add "public" \ + "-//OASIS//DTD DocBook XML V${version}//EN" \ + "http://oasis-open.org/docbook/xml/${version}/docbookx.dtd" \ + /etc/xml/docbook && + xmlcatalog --noout --add "public" \ + "-//OASIS//ENTITIES DocBook XML Character Entities V${version}//EN" \ + "file:///usr/share/xml/docbook/xml-dtd-${version}/dbcentx.mod" \ + /etc/xml/docbook && + xmlcatalog --noout --add "public" \ + "-//OASIS//ENTITIES DocBook XML Notations V${version}//EN" \ + "file:///usr/share/sgml/docbook/dtd/xml-dtd-${version}/dbnotnx.mod" \ + /etc/xml/docbook && + xmlcatalog --noout --add "public" \ + "-//OASIS//ENTITIES DocBook XML Additional General Entities V${version}//EN" \ + "file:///usr/share/sgml/docbook/dtd/xml-dtd-${version}/dbgenent.mod" \ + /etc/xml/docbook && + xmlcatalog --noout --add "public" \ + "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V${version}//EN" \ + "file:///usr/share/sgml/docbook/dtd/xml-dtd-${version}/dbhierx.mod" \ + /etc/xml/docbook && + xmlcatalog --noout --add "public" \ + "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \ + "file:///usr/share/sgml/docbook/dtd/xml-dtd-${version}/soextblx.dtd" \ + /etc/xml/docbook && + xmlcatalog --noout --add "public" \ + "-//OASIS//DTD DocBook XML CALS Table Model V${version}//EN" \ + "file:///usr/share/sgml/docbook/dtd/xml-dtd-${version}/calstblx.dtd" \ + /etc/xml/docbook && + xmlcatalog --noout --add "rewriteSystem" \ + "http://www.oasis-open.org/docbook/xml/${version}" \ + "file:///usr/share/sgml/docbook/dtd/xml-dtd-${version}" \ + /etc/xml/docbook && + xmlcatalog --noout --add "rewriteURI" \ + "http://www.oasis-open.org/docbook/xml/${version}" \ + "file:///usr/share/sgml/docbook/dtd/xml-dtd-${version}" \ + /etc/xml/docbook && + xmlcatalog --noout --add "delegatePublic" \ + "-//OASIS//ENTITIES DocBook XML" \ + "file:///etc/xml/docbook" /etc/xml/catalog && + xmlcatalog --noout --add "delegatePublic" \ + "-//OASIS//DTD DocBook XML" \ + "file:///etc/xml/docbook" /etc/xml/catalog && + xmlcatalog --noout --add "delegateSystem" \ + "http://www.oasis-open.org/docbook/" \ + "file:///etc/xml/docbook" /etc/xml/catalog && + xmlcatalog --noout --add "delegateURI" \ + "http://www.oasis-open.org/docbook/" \ + "file:///etc/xml/docbook" /etc/xml/catalog + done } -pre_remove() { -# this is to get rid of the outdated lines -# line #1: remove all the lines added by a current install scriptlet, ATTENTION: -# if other packages start to add lines to the catalog, this line needs to be more adjusted -# maybe we need the _OLD variable here -# line #2: kills the delegateURI and delegateSystem +# +# delete the catalogs root and docbook specific +# +delete_catalogs() { +for version in "${subv...@]}" + do xmlcatalog --noout --del \ "-//OASIS//ENTITIES DocBook XML" \ /etc/xml/catalog && @@ -141,48 +122,251 @@ pre_remove() { /etc/xml/catalog && xmlcatalog --noout --del \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-pub.ent" /etc/xml/docbook && + "file:///usr/share/sgml/docbook/dtd/xml-dtd-$version/ent/iso-pub.ent" /etc/xml/docbook && xmlcatalog --noout --del \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-grk1.ent" /etc/xml/docbook && + "file:///usr/share/sgml/docbook/dtd/xml-dtd-$version/ent/iso-grk1.ent" /etc/xml/docbook && xmlcatalog --noout --del \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-box.ent" /etc/xml/docbook && + "file:///usr/share/sgml/docbook/dtd/xml-dtd-$version/ent/iso-box.ent" /etc/xml/docbook && xmlcatalog --noout --del \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-grk3.ent" /etc/xml/docbook && + "file:///usr/share/sgml/docbook/dtd/xml-dtd-$version/ent/iso-grk3.ent" /etc/xml/docbook && xmlcatalog --noout --del \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-amsn.ent" /etc/xml/docbook && + "file:///usr/share/sgml/docbook/dtd/xml-dtd-$version/ent/iso-amsn.ent" /etc/xml/docbook && xmlcatalog --noout --del \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-num.ent" /etc/xml/docbook && + "file:///usr/share/sgml/docbook/dtd/xml-dtd-$version/ent/iso-num.ent" /etc/xml/docbook && xmlcatalog --noout --del \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-grk4.ent" /etc/xml/docbook && + "file:///usr/share/sgml/docbook/dtd/xml-dtd-$version/ent/iso-grk4.ent" /etc/xml/docbook && xmlcatalog --noout --del \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-dia.ent" /etc/xml/docbook && + "file:///usr/share/sgml/docbook/dtd/xml-dtd-$version/ent/iso-dia.ent" /etc/xml/docbook && xmlcatalog --noout --del \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-grk2.ent" /etc/xml/docbook && + "file:///usr/share/sgml/docbook/dtd/xml-dtd-$version/ent/iso-grk2.ent" /etc/xml/docbook && xmlcatalog --noout --del \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-amsa.ent" /etc/xml/docbook && + "file:///usr/share/sgml/docbook/dtd/xml-dtd-$version/ent/iso-amsa.ent" /etc/xml/docbook && xmlcatalog --noout --del \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-amso.ent" /etc/xml/docbook && + "file:///usr/share/sgml/docbook/dtd/xml-dtd-$version/ent/iso-amso.ent" /etc/xml/docbook && xmlcatalog --noout --del \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-cyr1.ent" /etc/xml/docbook && + "file:///usr/share/sgml/docbook/dtd/xml-dtd-$version/ent/iso-cyr1.ent" /etc/xml/docbook && xmlcatalog --noout --del \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-tech.ent" /etc/xml/docbook && + "file:///usr/share/sgml/docbook/dtd/xml-dtd-$version/ent/iso-tech.ent" /etc/xml/docbook && xmlcatalog --noout --del \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-amsc.ent" /etc/xml/docbook && + "file:///usr/share/sgml/docbook/dtd/xml-dtd-$version/ent/iso-amsc.ent" /etc/xml/docbook && xmlcatalog --noout --del \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-lat1.ent" /etc/xml/docbook && + "file:///usr/share/sgml/docbook/dtd/xml-dtd-$version/ent/iso-lat1.ent" /etc/xml/docbook && xmlcatalog --noout --del \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-amsb.ent" /etc/xml/docbook && + "file:///usr/share/sgml/docbook/dtd/xml-dtd-$version/ent/iso-amsb.ent" /etc/xml/docbook && xmlcatalog --noout --del \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-lat2.ent" /etc/xml/docbook && + "file:///usr/share/sgml/docbook/dtd/xml-dtd-$version/ent/iso-lat2.ent" /etc/xml/docbook && xmlcatalog --noout --del \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-amsr.ent" /etc/xml/docbook && + "file:///usr/share/sgml/docbook/dtd/xml-dtd-$version/ent/iso-amsr.ent" /etc/xml/docbook && xmlcatalog --noout --del \ - "file:///usr/share/sgml/docbook/dtd/xml-dtd-$_NEW/ent/iso-cyr2.ent" /etc/xml/docbook && + "file:///usr/share/sgml/docbook/dtd/xml-dtd-$version/ent/iso-cyr2.ent" /etc/xml/docbook && xmlcatalog --noout --del \ "ISO 8879:1986" /etc/xml/catalog +done +} + +# +# fill in the DTDS variable based on installed versions +# +set_dtds() { + DTDS=$(find ${DOCBOOKDIR} -path '*/xml-dtd-*/docbookx.dtd') + if [[ -z ${DTDS} ]]; then + echo "No installed DocBook XML DTDs found" + return 1 + else + return 0 + fi +} + +# +# clean_catalog +# $1 == regex to clean +# $2 == catalog +# +clean_catalog() { + typeset list f regex=$1 catalog=$2 + + list=$(egrep --only-matching "${regex}" "${catalog}" | sort -u) + for f in ${list}; do + xmlcatalog --noout --del "${f}" ${catalog} + done +} + +# +# populate a specific dtd version into the docbook catalog +# $1 == /path/to/docbookx.dtd +# +populate_dtd() { + typeset dtd=$1 docbookdir=${1%/*} dtd_date + typeset v=${docbookdir##*-} + + # sanity check + if [[ ${dtd} != */xml-dtd-*/* ]]; then + echo "Warning: I don't understand \"${dtd}\"" >&2 + return + fi + echo "Found DocBook XML ${v} in ${docbookdir}" + + # Populate the docbook catalog with this version + xmlcatalog --noout --add "public" "-//OASIS//ELEMENTS DocBook XML Information Pool V${v}//EN" "file://${docbookdir}/dbpoolx.mod" ${CATALOG} &>/dev/null + xmlcatalog --noout --add "public" "-//OASIS//DTD DocBook XML V${v}//EN" "file://${docbookdir}/docbookx.dtd" ${CATALOG} &>/dev/null + xmlcatalog --noout --add "public" "-//OASIS//ENTITIES DocBook XML Character Entities V${v}//EN" "file://${docbookdir}/dbcentx.mod" ${CATALOG} &>/dev/null + xmlcatalog --noout --add "public" "-//OASIS//ENTITIES DocBook XML Notations V${v}//EN" "file://${docbookdir}/dbnotnx.mod" ${CATALOG} &>/dev/null + xmlcatalog --noout --add "public" "-//OASIS//ENTITIES DocBook XML Additional General Entities V${v}//EN" "file://${docbookdir}/dbgenent.mod" ${CATALOG} &>/dev/null + xmlcatalog --noout --add "public" "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V${v}//EN" "file://${docbookdir}/dbhierx.mod" ${CATALOG} &>/dev/null + xmlcatalog --noout --add "public" "-//OASIS//DTD XML Exchange Table Model 19990315//EN" "file://${docbookdir}/soextblx.dtd" ${CATALOG} &>/dev/null + xmlcatalog --noout --add "public" "-//OASIS//DTD DocBook XML CALS Table Model V${v}//EN" "file://${docbookdir}/calstblx.dtd" ${CATALOG} &>/dev/null + xmlcatalog --noout --add "rewriteSystem" "http://www.oasis-open.org/docbook/xml/${v}" "file://${docbookdir}" ${CATALOG} &>/dev/null + xmlcatalog --noout --add "rewriteURI" "http://www.oasis-open.org/docbook/xml/${v}" "file://${docbookdir}" ${CATALOG} &>/dev/null + + # grab the RCS date from docbookx.dtd for comparison purposes + if [[ ! -f ${docbookdir}/ent/iso-lat1.ent ]]; then + return 0 + fi + dtd_date=$(egrep --only-matching --max-count=1 \ + '[0-9]{4}/[0-9]{2}/[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}' "${dtd}") + if [[ -z ${dtd_date} ]]; then + return 0 + fi + dtd_date=$(date -d "$dtd_date" +%s) + if [[ -z $LATEST_DTD || $dtd_date -gt $LATEST_DATE ]]; then + LATEST_DATE=${dtd_date} + LATEST_DTD=${dtd} + fi +} + +# +# populate ISO DocBook entities from the most recent DTD +# +populate_entities() { + typeset isodir=${LATEST_DTD%/*}/ent i j + typeset -a entities avail + + # sanity check + if [[ -z ${LATEST_DTD} || ! -d ${isodir} ]]; then + echo "No ISO DocBook entities available for catalog" + return 0 + fi + echo "Using ISO DocBook entities from ${isodir}" + + # here are the entities we know about; + # note these must remain sorted! + entities=( + "iso-amsa.ent" "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN" + "iso-amsb.ent" "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN" + "iso-amsc.ent" "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN" + "iso-amsn.ent" "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN" + "iso-amso.ent" "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN" + "iso-amsr.ent" "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN" + "iso-box.ent" "ISO 8879:1986//ENTITIES Box and Line Drawing//EN" + "iso-cyr1.ent" "ISO 8879:1986//ENTITIES Russian Cyrillic//EN" + "iso-cyr2.ent" "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN" + "iso-dia.ent" "ISO 8879:1986//ENTITIES Diacritical Marks//EN" + "iso-grk1.ent" "ISO 8879:1986//ENTITIES Greek Letters//EN" + "iso-grk2.ent" "ISO 8879:1986//ENTITIES Monotoniko Greek//EN" + "iso-grk3.ent" "ISO 8879:1986//ENTITIES Greek Symbols//EN" + "iso-grk4.ent" "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN" + "iso-lat1.ent" "ISO 8879:1986//ENTITIES Added Latin 1//EN" + "iso-lat2.ent" "ISO 8879:1986//ENTITIES Added Latin 2//EN" + "iso-num.ent" "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" + "iso-pub.ent" "ISO 8879:1986//ENTITIES Publishing//EN" + "iso-tech.ent" "ISO 8879:1986//ENTITIES General Technical//EN" + ) + + # here are the entities available; assume no spaces in filenames... + avail=($(ls ${isodir} | sort)) + + # double-check the lists + i=0 ; j=0 + while [[ ${i} -lt ${#entiti...@]} || ${j} -lt ${#ava...@]} ]]; do + if [[ ${i} -ge ${#entiti...@]} ]]; then + #echo "Warning: Extra ISO entities file: ${avail[j]}" + let j=j+1 + elif [[ ${j} -ge ${#ava...@]} ]]; then + #echo "Warning: Entities file not found: ${entities[i]}" + let i=i+2 + elif [[ ${avail[j]} < ${entities[i]} ]]; then + #echo "Warning: Extra ISO entities file: ${avail[j]}" + let j=j+1 + elif [[ ${entities[i]} < ${avail[j]} ]]; then + #echo "Warning: Entities file not found: ${entities[i]}" + let i=i+2 + elif [[ ${entities[i]} == ${avail[j]} ]]; then + xmlcatalog --noout --add "public" "${entities[i+1]}" \ + "file://${isodir}/${entities[i]}" ${CATALOG} + let j=j+1 + let i=i+2 + else + return 1 + fi + done +} + + +# +# update catalog +# +update_catalog() { + + # Clean out old dtds from catalog + clean_catalog "${DOCBOOKDIR}/xml-dtd-[^/\"']*/[^/\"']*" ${CATALOG} + clean_catalog "${DOCBOOKDIR}/xml-dtd-[^/\"']*/[^/\"']*" ${ROOTCATALOG} + if set_dtds; then + for d in ${DTDS}; do + populate_dtd ${d} + done + populate_entities + fi } +# +# Install catalog +# +catalog_postinst() { + +for version in "${subv...@]}" +do + install-catalog --add /etc/sgml/xml-docbook-$version.cat \ + /usr/share/sgml/docbook/dtd/xml-dtd-$version/docbook.cat &>/dev/null + install-catalog --add /etc/sgml/sgml-docbook.cat \ + /etc/sgml/xml-docbook-$version.cat &>/dev/null +done + + +} +# +# Uninstall catalog +# +catalog_postrm() { + + for version in "${subv...@]}" + do + install-catalog --remove /etc/sgml/xml-docbook-$version.cat \ + /usr/share/sgml/docbook/dtd/xml-dtd-$version/docbook.cat &>/dev/null + install-catalog --remove /etc/sgml/sgml-docbook.cat \ + /etc/sgml/xml-docbook-$version.cat &>/dev/null + done +} + + +post_install() { + echo "updating docbook catalogue... " + create_catalogs + update_catalog + catalog_postinst +} + +post_upgrade() { + post_install $1 + +} + +pre_remove() { + echo "updating docbook catalogue... " + catalog_postrm +} + + op=$1 shift _______________________________________________ Frugalware-git mailing list Frugalware-git@frugalware.org http://frugalware.org/mailman/listinfo/frugalware-git