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

Reply via email to