+# TODO:
+# - use XML ISO entities from sgml-common
Summary: Davenport Group DocBook DTD for technical documentation
Summary(pl): DocBook DTD przeznaczone do pisania dokumentacji technicznej
%define ver 4.1.2
%define sver 412
Name: docbook-dtd%{sver}-xml
Version: 1.0
-Release: 3
+Release: 6
Vendor: OASIS
License: Free
Group: Applications/Publishing/XML
URL: http://www.oasis-open.org/docbook/
Source0: http://www.oasis-open.org/docbook/xml/%{ver}/docbkx%{sver}.zip
BuildRequires: unzip
-Requires: sgml-common >= 0.5
+Requires(post,preun): /usr/bin/xmlcatalog
+Requires: libxml2-progs >= 2.4.17-6
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%define dtdpath %{_datadir}/sgml/docbook/xml-dtd-%{ver}
+
%description
OASIS DocBook DTD for technical documentation.
ciekawych rzeczy.
%prep
-%setup -q -c -T
-unzip -qa %{SOURCE0}
+%setup -q -c
chmod -R a+rX *
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{_datadir}/sgml/docbook/xml-dtd-%{ver}
+install -d $RPM_BUILD_ROOT%{dtdpath}
-install *.dtd *.mod $RPM_BUILD_ROOT%{_datadir}/sgml/docbook/xml-dtd-%{ver}
-install *.ent $RPM_BUILD_ROOT%{_datadir}/sgml/docbook/xml-dtd-%{ver} || :
-cp -a ent $RPM_BUILD_ROOT%{_datadir}/sgml/docbook/xml-dtd-%{ver}
+install *.{cat,dtd,mod} $RPM_BUILD_ROOT%{dtdpath}
+cp -a ent $RPM_BUILD_ROOT%{dtdpath}
# associate default declaration for xml
# and map system identifier for xml because opensp seems to misinterpret
# xml-style system identifiers (file://...)
cat <<EOF >>$RPM_BUILD_ROOT%{_datadir}/sgml/docbook/xml-dtd-%{ver}/catalog
-
+OVERRIDE YES
-- default decl --
-DTDDECL "-//OASIS//DTD DocBook XML V%{ver}//EN" "../../xml.dcl"
+SGMLDECL "../../xml.dcl"
-- hacks for opensp --
SYSTEM "file://%{_datadir}/sgml/docbook/xml-dtd-%{ver}/docbookx.dtd" "%{_datadir}/sgml/docbook/xml-dtd-%{ver}/docbookx.dtd"
SYSTEM "http://www.oasis-open.org/docbook/xml/%{ver}/docbookx.dtd" "%{_datadir}/sgml/docbook/xml-dtd-%{ver}/docbookx.dtd"
-EOF
-
-# install catalog (but filter out ISO entities)
-#grep -v 'ISO ' docbook.cat >> $RPM_BUILD_ROOT%{_datadir}/sgml/docbook/xml-dtd-%{ver}/catalog
-cat docbook.cat >> $RPM_BUILD_ROOT%{_datadir}/sgml/docbook/xml-dtd-%{ver}/catalog
+xmlcatalog --noout --create $RPM_BUILD_ROOT%{dtdpath}/catalog.xml
+xmlcatalog --noout --add rewriteSystem \
+ http://www.oasis-open.org/docbook/xml/%{ver}/ \
+ file://%{dtdpath}/ \
+ $RPM_BUILD_ROOT%{dtdpath}/catalog.xml
-gzip -9nf *.txt
-[ ! -f ChangeLog ] || gzip -9nf ChangeLog
+grep PUBLIC docbook.cat|grep -v ISO |sed 's/^/xmlcatalog --noout --add /;s/PUBLIC/public/;s=$= '$RPM_BUILD_ROOT'/%{dtdpath}/catalog.xml=' |sh
%clean
rm -rf $RPM_BUILD_ROOT
%post
-# Update the centralized catalog corresponding to this version of the DTD
-/usr/bin/install-catalog --add /etc/sgml/xml-docbook-%{ver}.cat /usr/share/sgml/docbook/xml-dtd-%{ver}/catalog > /dev/null
+if ! grep -q /etc/sgml/xml-docbook-%{ver}.cat /etc/sgml/catalog ; then
+ /usr/bin/install-catalog --add /etc/sgml/xml-docbook-%{ver}.cat %{dtdpath}/docbook.cat > /dev/null
+fi
+if ! grep -q %{dtdpath}/catalog.xml /etc/xml/catalog ; then
+ /usr/bin/xmlcatalog --noout --add nextCatalog "" %{dtdpath}/catalog.xml /etc/xml/catalog
+fi
-%postun
-/usr/bin/install-catalog --remove /etc/sgml/xml-docbook-%{ver}.cat /usr/share/sgml/docbook/xml-dtd-%{ver}/catalog > /dev/null
+%preun
+if [ "$1" = "0" ] ; then
+ /usr/bin/install-catalog --remove /etc/sgml/xml-docbook-%{ver}.cat %{dtdpath}/docbook.cat > /dev/null
+ /usr/bin/xmlcatalog --noout --del %{dtdpath}/catalog.xml /etc/xml/catalog
+fi
%files
%defattr(644,root,root,755)
-%doc *.gz
-%{_datadir}/sgml/docbook/*
+%doc *.txt ChangeLog
+%{dtdpath}