diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..9f24a60 --- /dev/null +++ b/Makefile @@ -0,0 +1,147 @@ +# +# Makefile to install DocBook 4.x +# +# Author: +# Thomas Schraitle +# + +ifndef PREFIX + PREFIX := /usr +endif + +# ifdef DESTDIR +# DESTDIR := $(dir $(patsubst %/,%,$(dir $(DESTDIR)))) +# endif + +SHELL := /bin/bash +PACKAGE := docbook_4 +VERSION := 4.5 +CDIR := $(shell pwd) +# +DATADIR := $(DESTDIR)$(PREFIX)/share +# +SGML_DIR := $(DATADIR)/sgml +XML_DIR := $(DATADIR)/xml + +# Catalog stuff +DB_CATALOG_SRC := $(PACKAGE).xml +XML_CATALOG_DIR := $(DESTDIR)/etc/xml/catalog.d +XML_CATALOG := $(XML_CATALOG_DIR)/$(DB_CATALOG_SRC) +SGML_CATALOGS := $(wildcard CATALOG*) +SGML_CATALOG_DIR := $(SGML_DIR) +# +SGML_CONFIG_DIR := $(DESTDIR)/var/lib/sgml +SGML_CATALOG_FILES := $(addprefix $(SGML_CONFIG_DIR)/,$(SGML_CATALOGS)) +# +DB_XML_DIR := $(XML_DIR)/docbook +DB_SGML_DIR := $(SGML_DIR)/docbook +XML_SCHEMA_DIR := $(DB_XML_DIR)/schema +# +DTD_SGML_DIR := $(DB_SGML_DIR)/dtd +# +DB_VERSIONS := 4.2 4.3 4.4 4.5 +DB_XML_VERSIONS := 4.1.2 $(DB_VERSIONS) +DB_SGML_VERSIONS := 4.1 $(DB_VERSIONS) + +SGML_DB_PATHS := $(foreach p,$(DB_SGML_VERSIONS),$(DTD_SGML_DIR)/$(p)) +XML_IN_SGML_DIRS := $(addsuffix xml,$(foreach p,$(DB_XML_VERSIONS),$(DTD_SGML_DIR)/$(p))) + +## All DTD paths and files (restricted to docbookx.dtd) +DTD_DEST_DIRS := $(sort docbook-xml-4.1.2 $(wildcard docbook-xml-4.?)) +DTD_DEST_DIRS := $(subst -,/,$(patsubst docbook-%, %,$(DTD_DEST_DIRS))) +DTD_DEST_DIRS := $(subst xml,dtd,$(DTD_DEST_DIRS)) +DTD_DEST_DIRS := $(addprefix $(XML_SCHEMA_DIR)/,$(DTD_DEST_DIRS)) + +DTD_DEST_FILES := $(addsuffix /docbookx.dtd,$(DTD_DEST_DIRS)) + +# Add the DocBook SGML files too (HINT: SGML has docbook.dtd, without "x"!) +DTD_DEST_FILES += $(addsuffix /docbook.dtd,$(SGML_DB_PATHS)) + +## All RNG paths and files (restricted to docbook.rng) +RNG_DEST_DIRS := $(sort $(wildcard docbook-rng-4.?)) +RNG_DEST_DIRS := $(subst -,/,$(patsubst docbook-%, %,$(RNG_DEST_DIRS))) +RNG_DEST_DIRS := $(addprefix $(XML_SCHEMA_DIR)/,$(RNG_DEST_DIRS)) + +RNG_DEST_FILES := $(addsuffix /docbook.rng,$(RNG_DEST_DIRS)) + +## All XSD paths and files (restricted to docbook.xsd) +XSD_DEST_DIRS := $(sort $(wildcard docbook-xsd-4.?)) +XSD_DEST_DIRS := $(subst -,/,$(patsubst docbook-%, %,$(XSD_DEST_DIRS))) +XSD_DEST_DIRS := $(addprefix $(XML_SCHEMA_DIR)/,$(XSD_DEST_DIRS)) + +XSD_DEST_FILES := $(addsuffix /docbook.xsd,$(XSD_DEST_DIRS)) + +# All destination files to be unpacked +ALL_DEST_FILES := $(DTD_DEST_FILES) $(RNG_DEST_FILES) $(XSD_DEST_FILES) +XML_DB_PATHS := $(DTD_DEST_DIRS) $(RNG_DEST_DIRS) $(XSD_DEST_DIRS) + +# All installation directories that needs to be created before +INST_DIRECTORIES := $(XML_DB_PATHS) $(SGML_DB_PATHS) $(SGML_CONFIG_DIR) \ + $(XML_CATALOG_DIR) $(SGML_CATALOG_DIR) + + +#----------------------------- +.PHONY: install +install: $(XML_CATALOG) $(SGML_CATALOG_FILES) $(ALL_DEST_FILES) +install: | $(XML_IN_SGML_DIRS) + @echo "# Installed in $(DESTDIR)$(PREFIX)..." +# @echo "DTD_DEST_DIRS=$(DTD_DEST_DIRS)" +# @echo "SGML_CATALOGS=$(SGML_CATALOGS)" +# @echo "SGML_CATALOG_FILES=$(SGML_CATALOG_FILES)" + @echo "INST_DIRECTORIES=$(INST_DIRECTORIES)" + @echo "DESTDIR=$(DESTDIR)" + @echo "Finished." + +$(SGML_CONFIG_DIR)/CATALOG.%: CATALOG.% | $(SGML_CONFIG_DIR) $(SGML_CATALOG_DIR) + @echo "# Installing SGML catalog $<..." + cp $< $(dir $@) + cp $< $(SGML_CATALOG_DIR) + +$(XML_IN_SGML_DIRS): | $(INST_DIRECTORIES) + @echo "Creating link $@..." + ln -s ../../../xml/docbook/schema/dtd/$(patsubst %xml,%,$(subst $(DTD_SGML_DIR)/,,$@)) $@ + +$(DTD_SGML_DIR)/%/docbook.dtd: docbook-sgml-% + @echo "# Copying $<" + @cp -a $ @@ -11,8 +11,8 @@ uri="dbpoolx.mod"/> ---- docbook_4/dtd/4.3/catalog.xml.~1~ 2004-03-31 13:45:14.000000000 +0200 -+++ docbook_4/dtd/4.3/catalog.xml 2005-05-17 15:27:35.000000000 +0200 +--- docbook_4/docbook-sgml-4.3/catalog.xml.~1~ 2004-03-31 13:45:14.000000000 +0200 ++++ docbook_4/docbook-sgml-4.3/catalog.xml 2005-05-17 15:27:35.000000000 +0200 @@ -34,6 +34,9 @@ diff --git a/docbook-4-3.diff b/docbook-4-3.diff index 63817c6..2ce7d3a 100644 --- a/docbook-4-3.diff +++ b/docbook-4-3.diff @@ -1,5 +1,5 @@ ---- dtd/4.3/docbook.dcl.~1~ 2004-03-31 13:44:16.000000000 +0200 -+++ dtd/4.3/docbook.dcl 2004-06-06 09:07:41.722095720 +0200 +--- docbook-sgml-4.3/docbook.dcl.~1~ 2004-03-31 13:44:16.000000000 +0200 ++++ docbook-sgml-4.3/docbook.dcl 2004-06-06 09:07:41.722095720 +0200 @@ -61,8 +61,8 @@ NAMING LCNMSTRT "" @@ -12,8 +12,8 @@ GENERAL YES ENTITY NO ---- dtd/4.3/htmltblx.mod.~1~ 2004-03-31 13:43:24.000000000 +0200 -+++ dtd/4.3/htmltblx.mod 2004-06-06 09:45:55.033459400 +0200 +--- docbook-sgml-4.3/htmltblx.mod.~1~ 2004-03-31 13:43:24.000000000 +0200 ++++ docbook-sgml-4.3/htmltblx.mod 2004-06-06 09:45:55.033459400 +0200 @@ -213,8 +213,10 @@ bgcolor CDATA #IMPLIED '> diff --git a/docbook-xml-4.1.2-catalog.xml b/docbook-xml-4.1.2-catalog.xml new file mode 100644 index 0000000..bfa2aa1 --- /dev/null +++ b/docbook-xml-4.1.2-catalog.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docbook.4.4.dcl.diff b/docbook.4.4.dcl.diff index fcd8bc0..93c42a3 100644 --- a/docbook.4.4.dcl.diff +++ b/docbook.4.4.dcl.diff @@ -1,5 +1,5 @@ ---- docbook.dcl.~1~ 2005-01-27 14:59:49.000000000 +0100 -+++ docbook.dcl 2005-08-17 13:48:37.000000000 +0200 +--- docbook_4/docbook-sgml-4.4/docbook.dcl.~1~ 2017-10-17 08:26:00.675876558 +0200 ++++ docbook_4/docbook-sgml-4.4/docbook.dcl 2017-10-17 08:26:30.895997614 +0200 @@ -61,8 +61,8 @@ NAMING LCNMSTRT "" @@ -11,5 +11,3 @@ NAMECASE GENERAL YES ENTITY NO - -Diff finished. Wed Aug 17 13:48:41 2005 diff --git a/docbook_4.changes b/docbook_4.changes index 90f8381..0113800 100644 --- a/docbook_4.changes +++ b/docbook_4.changes @@ -1,3 +1,22 @@ +------------------------------------------------------------------- +Mon Nov 13 15:56:39 UTC 2017 - thomas.schraitle@suse.com + +- Fix XML catalog problems (missing or mistyped identifiers) +- Fix version 4.1.2 link in SGML (yes!) directory +- Add missing docbook-xml-4.1.2-catalog.xml +- + +------------------------------------------------------------------- +Tue Oct 17 09:05:19 UTC 2017 - thomas.schraitle@suse.com + +- Spec file changes: + * Adapted patches (only directory) + * Used spec-cleaner + * Removed obsolete stuff + * Installed files through Makefile + * Used/require sgml-skel >= 0.7 + * Used update-xml-catalog + ------------------------------------------------------------------- Thu Feb 19 09:42:19 UTC 2015 - toms@opensuse.org diff --git a/docbook_4.spec b/docbook_4.spec index bc18ad6..3993e4d 100644 --- a/docbook_4.spec +++ b/docbook_4.spec @@ -1,7 +1,7 @@ # # spec file for package docbook_4 # -# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,27 +16,25 @@ # +%define regcat %{_bindir}/sgml-register-catalog Name: docbook_4 -BuildRequires: fdupes -BuildRequires: sgml-skel -BuildRequires: unzip -Provides: docbook -Provides: docbook-dtd -Provides: docbook-dtds -Requires: iso_ent -%define regcat /usr/bin/sgml-register-catalog -PreReq: %{regcat} /usr/bin/xmlcatalog sgml-skel -PreReq: sed grep awk -Summary: DocBook DTD Version 4.x -License: BSD-3-Clause and MIT -Group: Productivity/Publishing/DocBook Version: 4.5 Release: 0 +Summary: DocBook DTD Version 4.x +License: BSD-3-Clause AND MIT +Group: Productivity/Publishing/DocBook +Url: http://www.oasis-open.org/docbook/ Source2: docbook_4-README.SUSE +Source3: %{name}.xml Source7: CATALOG.docbook_4 +Source8: Makefile +# Only needed to regenerate docbook_4.xml +Source9: generate-docbook_4-xmlcat.py + # DocBook 4.1 Source410: http://www.oasis-open.org/docbook/sgml/4.1/docbk41.zip -Source411: http://www.oasis-open.org/docbook/xml/4.1/docbkx412.zip +Source411: docbook-xml-4.1.2-catalog.xml +Source412: http://www.oasis-open.org/docbook/xml/4.1/docbkx412.zip # No RNG and XSD files for DB4.1 Source414: CATALOG.db41xml # DocBook 4.2 @@ -67,9 +65,22 @@ Source454: CATALOG.db45xml Patch1: docbook-4-3.diff Patch2: docbook-4-3-xml-cat.diff Patch3: docbook.4.4.dcl.diff -BuildRoot: %{_tmppath}/%{name}-%{version}-build +# +BuildRequires: fdupes +BuildRequires: sgml-skel >= 0.7 +BuildRequires: unzip +Requires: iso_ent +PreReq: %{_bindir}/xmlcatalog +PreReq: awk +PreReq: grep +PreReq: sed +PreReq: sgml-skel +Requires(post): sgml-skel >= 0.7 +Requires(postun): sgml-skel >= 0.7 +Provides: docbook +Provides: docbook-dtd +Provides: docbook-dtds BuildArch: noarch -Url: http://www.oasis-open.org/docbook/ %description DocBook is a schema. It is particularly well-suited to books and papers @@ -94,263 +105,60 @@ Schema. %define xml_docbook_xsd_dir %{xml_docbook_dir}/schema/xsd %define xml_docbook_custom_dir %{xml_docbook_dir}/custom %define xml_docbook_style_dir %{xml_docbook_dir}/stylesheet -%define sgml_config_dir /var/lib/sgml +%define sgml_config_dir %{_localstatedir}/lib/sgml %define sgml_sysconf_dir %{_sysconfdir}/sgml -%define xml_config_dir /var/lib/xml +%define xml_config_dir %{_localstatedir}/lib/xml %define xml_sysconf_dir %{_sysconfdir}/xml +%define FOR_ROOT_CAT for-catalog-%{name}-%{version}.xml +%define my_all_cat docbook_4 db41xml db42xml db43xml db44xml db45xml %prep -%setup -n %{name} -c -T +%setup -q -n %{name} -c -T cp -p $RPM_SOURCE_DIR/%{name}-README.SUSE README.SUSE -%{INSTALL_DIR} dtd/4.{1,2,3,4,5} 4.{1,2,3,4,5}xml -echo "**** %{S:410}" -pushd dtd/4.1 - unzip -q -a %{S:410} -popd -pushd 4.1xml - unzip -q -a %{S:411} -popd -pushd dtd/4.2 - unzip -q -a %{S:420} -popd -pushd 4.2xml - unzip -q -a %{S:421} -popd -pushd dtd/4.3 - unzip -q -a %{S:430} -popd -pushd 4.3xml - unzip -q -a %{S:431} -popd -pushd dtd/4.4 - unzip -q -a %{S:440} -%patch3 -p 0 -popd -pushd 4.4xml - unzip -q -a %{S:441} -popd -pushd dtd/4.5 - unzip -q -a %{S:450} -popd -pushd 4.5xml - unzip -q -a %{S:451} -popd -%patch -p 1 -P 1 -p 0 + +# DocBook 4.1 +unzip -q -a %{SOURCE410} -d docbook-sgml-4.1 +unzip -q -a %{SOURCE412} -d docbook-xml-4.1.2 +cp -vi %{SOURCE411} docbook-xml-4.1.2/catalog.xml +# DocBook 4.2 +unzip -q -a %{SOURCE420} -d docbook-sgml-4.2 +unzip -q -a %{SOURCE421} -d docbook-xml-4.2 +unzip -q -a %{SOURCE422} -d docbook-rng-4.2 +unzip -q -a %{SOURCE423} -d docbook-xsd-4.2 +# DocBook 4.3 +unzip -q -a %{SOURCE430} -d docbook-sgml-4.3 +unzip -q -a %{SOURCE431} -d docbook-xml-4.3 +unzip -q -a %{SOURCE432} -d docbook-rng-4.3 +unzip -q -a %{SOURCE433} -d docbook-xsd-4.3 +# DocBook 4.4 +unzip -q -a %{SOURCE440} -d docbook-sgml-4.4 +unzip -q -a %{SOURCE441} -d docbook-xml-4.4 +unzip -q -a %{SOURCE442} -d docbook-rng-4.4 +unzip -q -a %{SOURCE443} -d docbook-xsd-4.4 +# DocBook 4.5 +unzip -q -a %{SOURCE450} -d docbook-sgml-4.5 +unzip -q -a %{SOURCE451} -d docbook-xml-4.5 +unzip -q -a %{SOURCE452} -d docbook-rng-4.5 +unzip -q -a %{SOURCE453} -d docbook-xsd-4.5 + +%patch1 -p 1 -p 0 %patch2 -p 1 +%patch3 -p 1 + # CATALOG.* files -cp %{S:7} %{S:414} %{S:424} %{S:434} %{S:444} %{S:454} . +cp %{SOURCE3} %{SOURCE7} %{SOURCE8} %{SOURCE414} %{SOURCE424} %{SOURCE434} %{SOURCE444} %{SOURCE454} . chmod -R a+rX,g-w,o-w . +# Remove executable bit from files find . -type f | xargs chmod a-x %build -CATALOG=docbook_41.xml -# # build root catalog fragment -xmlcatbin=/usr/bin/xmlcatalog -$xmlcatbin --create --noout $CATALOG -docbookdir=%{xml_docbook_dtd_dir}/4.1 -$xmlcatbin --noout --add "public" \ - "-//OASIS//ELEMENTS DocBook XML Information Pool V4.1.2//EN" \ - "file://$docbookdir/dbpoolx.mod" $CATALOG -$xmlcatbin --noout --add "public" \ - "-//OASIS//DTD DocBook XML V4.1.2//EN" \ - "file://$docbookdir/docbookx.dtd" $CATALOG -$xmlcatbin --noout --add "public" \ - "-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN" \ - "file://$docbookdir/dbcentx.mod" $CATALOG -$xmlcatbin --noout --add "public" \ - "-//OASIS//ENTITIES DocBook XML Notations V4.1.2//EN" \ - "file://$docbookdir/dbnotnx.mod" $CATALOG -$xmlcatbin --noout --add "public" \ - "-//OASIS//ENTITIES DocBook XML Additional General Entities V4.1.2//EN" \ - "file://$docbookdir/dbgenent.mod" $CATALOG -$xmlcatbin --noout --add "public" \ - "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.1.2//EN" \ - "file://$docbookdir/dbhierx.mod" $CATALOG -$xmlcatbin --noout --add "public" \ - "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \ - "file://$docbookdir/soextblx.dtd" $CATALOG -$xmlcatbin --noout --add "public" \ - "-//OASIS//DTD DocBook XML CALS Table Model V4.1.2//EN" \ - "file://$docbookdir/calstblx.dtd" $CATALOG -$xmlcatbin --noout --add "rewriteSystem" \ - "http://www.oasis-open.org/docbook/xml/4.1.2" \ - "file://$docbookdir" $CATALOG -$xmlcatbin --noout --add "rewriteSystem" \ - "http://www.docbook.org/xml/4.1.2" \ - "file://$docbookdir" $CATALOG -$xmlcatbin --noout --add "rewriteURI" \ - "http://www.oasis-open.org/docbook/xml/4.1.2" \ - "file://$docbookdir" $CATALOG -# === iso -isodir=$docbookdir/ent -$xmlcatbin --noout --add "public" \ - "ISO 8879:1986//ENTITIES Publishing//EN//XML" \ - "file://$isodir/iso-pub.ent" $CATALOG -$xmlcatbin --noout --add "public" \ - "ISO 8879:1986//ENTITIES Greek Letters//EN//XML" \ - "file://$isodir/iso-grk1.ent" $CATALOG -$xmlcatbin --noout --add "public" \ - "ISO 8879:1986//ENTITIES Box and Line Drawing//EN//XML" \ - "file://$isodir/iso-box.ent" $CATALOG -$xmlcatbin --noout --add "public" \ - "ISO 8879:1986//ENTITIES Greek Symbols//EN//XML" \ - "file://$isodir/iso-grk3.ent" $CATALOG -$xmlcatbin --noout --add "public" \ - "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN//XML" \ - "file://$isodir/iso-amsn.ent" $CATALOG -$xmlcatbin --noout --add "public" \ - "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML" \ - "file://$isodir/iso-num.ent" $CATALOG -$xmlcatbin --noout --add "public" \ - "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN//XML" \ - "file://$isodir/iso-grk4.ent" $CATALOG -$xmlcatbin --noout --add "public" \ - "ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML" \ - "file://$isodir/iso-dia.ent" $CATALOG -$xmlcatbin --noout --add "public" \ - "ISO 8879:1986//ENTITIES Monotoniko Greek//EN//XML" \ - "file://$isodir/iso-grk2.ent" $CATALOG -$xmlcatbin --noout --add "public" \ - "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN//XML" \ - "file://$isodir/iso-amsa.ent" $CATALOG -$xmlcatbin --noout --add "public" \ - "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN//XML" \ - "file://$isodir/iso-amso.ent" $CATALOG -$xmlcatbin --noout --add "public" \ - "ISO 8879:1986//ENTITIES Russian Cyrillic//EN//XML" \ - "file://$isodir/iso-cyr1.ent" $CATALOG -$xmlcatbin --noout --add "public" \ - "ISO 8879:1986//ENTITIES General Technical//EN//XML" \ - "file://$isodir/iso-tech.ent" $CATALOG -$xmlcatbin --noout --add "public" \ - "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN//XML" \ - "file://$isodir/iso-amsc.ent" $CATALOG -$xmlcatbin --noout --add "public" \ - "ISO 8879:1986//ENTITIES Added Latin 1//EN//XML" \ - "file://$isodir/iso-lat1.ent" $CATALOG -$xmlcatbin --noout --add "public" \ - "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN//XML" \ - "file://$isodir/iso-amsb.ent" $CATALOG -$xmlcatbin --noout --add "public" \ - "ISO 8879:1986//ENTITIES Added Latin 2//EN//XML" \ - "file://$isodir/iso-lat2.ent" $CATALOG -$xmlcatbin --noout --add "public" \ - "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN//XML" \ - "file://$isodir/iso-amsr.ent" $CATALOG -$xmlcatbin --noout --add "public" \ - "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML" \ - "file://$isodir/iso-cyr2.ent" $CATALOG -# ==== -%define FOR_ROOT_CAT for-catalog-%{name}-%{version}.xml -CATALOG=etc/xml/$CATALOG -rm -f %{FOR_ROOT_CAT}.tmp -$xmlcatbin --noout --create %{FOR_ROOT_CAT}.tmp -for v in 4.2 4.3 4.4 4.5; do - cat42=%{xml_docbook_dtd_dir}/$v/catalog.xml - for s in \ - "-//OASIS//DTD DocBook XML V${v}//EN" \ - "-//OASIS//DTD DocBook CALS Table Model V${v}//EN" \ - "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \ - "-//OASIS//ELEMENTS DocBook Information Pool V${v}//EN" \ - "-//OASIS//ELEMENTS DocBook Document Hierarchy V${v}//EN" \ - "-//OASIS//ENTITIES DocBook Additional General Entities V${v}//EN" \ - "-//OASIS//ENTITIES DocBook Notations V${v}//EN" \ - "-//OASIS//ENTITIES DocBook Character Entities V${v}//EN" - do - $xmlcatbin --noout --add "delegatePublic" "$s" \ - "file://$cat42" %{FOR_ROOT_CAT}.tmp - done - case $v in - 4.[345]) - $xmlcatbin --noout --add "delegatePublic" \ - "-//OASIS//ELEMENTS DocBook XML HTML Tables V${v}//EN" \ - "file://$cat42" %{FOR_ROOT_CAT}.tmp - ;; - *) - true - esac - $xmlcatbin --noout --add "delegateSystem" \ - "http://www.oasis-open.org/docbook/xml/${v}" \ - "file://$cat42" %{FOR_ROOT_CAT}.tmp - $xmlcatbin --noout --add "delegateSystem" \ - "http://www.docbook.org/xml/${v}" \ - "file://$cat42" %{FOR_ROOT_CAT}.tmp - $xmlcatbin --noout --add "delegateURI" \ - "http://www.oasis-open.org/docbook/xml/${v}" \ - "file://$cat42" %{FOR_ROOT_CAT}.tmp - $xmlcatbin --noout --add "rewriteSystem" \ - "http://www.oasis-open.org/docbook/xml/${v}" \ - "file://%{xml_docbook_dtd_dir}/${v}" %{FOR_ROOT_CAT}.tmp - $xmlcatbin --noout --add "rewriteSystem" \ - "http://www.docbook.org/xml/${v}" \ - "file://%{xml_docbook_dtd_dir}/${v}" %{FOR_ROOT_CAT}.tmp - $xmlcatbin --noout --add "delegatePublic" \ - "ISO 8879:1986" \ - "file:///$CATALOG" %{FOR_ROOT_CAT}.tmp -done -# 41xml -for s in \ - "-//OASIS//DTD DocBook XML V4.1" \ - "-//OASIS//ELEMENTS DocBook Information Pool V4.1" \ - "-//OASIS//ELEMENTS DocBook Document Hierarchy V4.1" \ - "-//OASIS//ENTITIES DocBook Additional General Entities V4.1" \ - "-//OASIS//ENTITIES DocBook Notations V4.1" \ - "-//OASIS//ENTITIES DocBook Character Entities V4.1" - do - $xmlcatbin --noout --add "delegatePublic" "$s" \ - "file:///$CATALOG" %{FOR_ROOT_CAT}.tmp -done -$xmlcatbin --noout --add "delegateSystem" \ - "http://www.oasis-open.org/docbook/xml/4.1" \ - "file:///$CATALOG" %{FOR_ROOT_CAT}.tmp -$xmlcatbin --noout --add "delegateURI" \ - "http://www.oasis-open.org/docbook/xml/4.1" \ - "file:///$CATALOG" %{FOR_ROOT_CAT}.tmp -# Create tag -sed '/ -/<\/catalog/i\ - ' \ - %{FOR_ROOT_CAT}.tmp > %{FOR_ROOT_CAT} +# Nothing to build %install -%{INSTALL_DIR} $RPM_BUILD_ROOT%{sgml_config_dir} -%{INSTALL_DIR} $RPM_BUILD_ROOT%{xml_config_dir} -%{INSTALL_DATA} CATALOG.* $RPM_BUILD_ROOT%{sgml_config_dir} -# for CATALOG.* links -%define my_all_cat docbook_4 db41xml db42xml db43xml db44xml db45xml -for v in 4.1 4.2 4.3 4.4 4.5; do - vl=${v/\.} - %{INSTALL_DIR} $RPM_BUILD_ROOT%{sgml_docbook_dtd_dir}/$v - %{INSTALL_DATA} dtd/${v}/* $RPM_BUILD_ROOT%{sgml_docbook_dtd_dir}/${v} - %{INSTALL_DIR} $RPM_BUILD_ROOT%{xml_docbook_dtd_dir}/$v - cp -a ${v}xml/* $RPM_BUILD_ROOT%{xml_docbook_dtd_dir}/$v - ln -s %{xml_docbook_dtd_dir}/$v $RPM_BUILD_ROOT%{sgml_docbook_dtd_dir}/${v}xml - ln -sf %{sgml_config_dir}/CATALOG.db${vl}xml \ - $RPM_BUILD_ROOT%{sgml_dir}/CATALOG.db${vl}xml -done -ln -sf %{sgml_docbook_dtd_dir}/4.1 $RPM_BUILD_ROOT%{sgml_dir}/%{name}.1 -ln -sf %{sgml_config_dir}/CATALOG.%{name} \ - $RPM_BUILD_ROOT%{sgml_dir}/CATALOG.%{name} -ln -sf %{sgml_config_dir}/CATALOG.%{name} \ - $RPM_BUILD_ROOT%{sgml_dir}/CATALOG.docbk41 -cat_dir=%{buildroot}/etc/xml -%{INSTALL_DIR} $cat_dir -%{INSTALL_DATA} %{FOR_ROOT_CAT} docbook_41.xml $cat_dir -# rng -%{INSTALL_DIR} $RPM_BUILD_ROOT%{xml_docbook_rng_dir}/{4.3,4.4} \ - $RPM_BUILD_ROOT%{xml_docbook_xsd_dir}/{4.3,4.4} -unzip -q -a -d $RPM_BUILD_ROOT%{xml_docbook_rng_dir}/4.2 %{S:422} -unzip -q -a -d $RPM_BUILD_ROOT%{xml_docbook_rng_dir}/4.3 %{S:432} -unzip -q -a -d $RPM_BUILD_ROOT%{xml_docbook_rng_dir}/4.4 %{S:442} -unzip -q -a -d $RPM_BUILD_ROOT%{xml_docbook_rng_dir}/4.5 %{S:452} -# w3c schema -unzip -q -a -d $RPM_BUILD_ROOT%{xml_docbook_xsd_dir}/4.2 %{S:422} -unzip -q -a -d $RPM_BUILD_ROOT%{xml_docbook_xsd_dir}/4.3 %{S:433} -unzip -q -a -d $RPM_BUILD_ROOT%{xml_docbook_xsd_dir}/4.4 %{S:443} -unzip -q -a -d $RPM_BUILD_ROOT%{xml_docbook_xsd_dir}/4.5 %{S:453} +make DESTDIR=%{buildroot} install + # cleanup -%fdupes $RPM_BUILD_ROOT +%fdupes -s %{buildroot} %post if [ -x %{regcat} ]; then @@ -362,13 +170,19 @@ fi # in case of an update, remove old if [ "2" = "$1" ]; then - /usr/bin/edit-xml-catalog --group --catalog /etc/xml/suse-catalog.xml \ + %{_bindir}/edit-xml-catalog --group --catalog %{_sysconfdir}/xml/suse-catalog.xml \ --del %{name}-%{version} || true fi -/usr/bin/edit-xml-catalog --group --catalog /etc/xml/suse-catalog.xml \ - --add /etc/xml/%{FOR_ROOT_CAT} +if [ ! -f %{_sysconfdir}/xml/suse-catalog.xml -a -x %{_bindir}/edit-xml-catalog ]; then +%{_bindir}/edit-xml-catalog --group --catalog %{_sysconfdir}/xml/suse-catalog.xml \ + --add %{_sysconfdir}/xml/%{FOR_ROOT_CAT} +fi + +update-xml-catalog +exit 0 %postun +update-xml-catalog if [ "$1" = "0" -a -x %{regcat} ]; then for c in %{my_all_cat}; do %{regcat} -r %{sgml_dir}/CATALOG.$c \ @@ -377,13 +191,15 @@ if [ "$1" = "0" -a -x %{regcat} ]; then fi # remove entries only on removal of file if [ "0" = "$1" -a ! -f %{xml_sysconf_dir}/%{FOR_ROOT_CAT} ] ; then - /usr/bin/edit-xml-catalog --group --catalog /etc/xml/suse-catalog.xml \ + %{_bindir}/edit-xml-catalog --group --catalog %{_sysconfdir}/xml/suse-catalog.xml \ --del %{name}-%{version} fi +exit 0 %files -%defattr(-, root, root) %config %{sgml_config_dir}/CATALOG.* +%config %{_sysconfdir}/xml/catalog.d/%{name}.xml + %doc README.SUSE %{sgml_dir}/CATALOG.* %{sgml_docbook_dtd_dir}/4.1 @@ -392,13 +208,13 @@ fi %{sgml_docbook_dtd_dir}/4.4 %{sgml_docbook_dtd_dir}/4.5 # -%{sgml_docbook_dtd_dir}/4.1xml +%{sgml_docbook_dtd_dir}/4.1.2xml %{sgml_docbook_dtd_dir}/4.2xml %{sgml_docbook_dtd_dir}/4.3xml %{sgml_docbook_dtd_dir}/4.4xml %{sgml_docbook_dtd_dir}/4.5xml # -%{xml_docbook_dtd_dir}/4.1 +%{xml_docbook_dtd_dir}/4.1.2 %{xml_docbook_dtd_dir}/4.2 %{xml_docbook_dtd_dir}/4.3 %{xml_docbook_dtd_dir}/4.4 @@ -414,10 +230,7 @@ fi %{xml_docbook_xsd_dir}/4.4 %{xml_docbook_xsd_dir}/4.5 # -%config %{xml_sysconf_dir}/docbook_41.xml -%config %{xml_sysconf_dir}/%{FOR_ROOT_CAT} %dir %{sgml_dir}/docbook/dtd -%{sgml_dir}/docbook_4.1 %dir %{xml_docbook_dir}/schema %dir %{xml_docbook_dtd_dir} %dir %{xml_docbook_rng_dir} diff --git a/docbook_4.xml b/docbook_4.xml new file mode 100644 index 0000000..41d3f04 --- /dev/null +++ b/docbook_4.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/generate-docbook_4-xmlcat.py b/generate-docbook_4-xmlcat.py new file mode 100644 index 0000000..19b460f --- /dev/null +++ b/generate-docbook_4-xmlcat.py @@ -0,0 +1,155 @@ +#!/usr/bin/env python3 +# +# + +from lxml import etree +from lxml.builder import ElementMaker + +import os.path + +CATATALOG_NS="urn:oasis:names:tc:entity:xmlns:xml:catalog" +CATALOG="file:///usr/share/xml/docbook/schema/dtd/{ver}/catalog.xml" + +DB_VERSIONS=["4.1.2", "4.2", "4.3", "4.4", "4.5"] + +DTD="-//OASIS//DTD DocBook XML V{ver}//EN" +CALS="-//OASIS//DTD DocBook CALS Table Model V{ver}//EN" +POOL="-//OASIS//ELEMENTS DocBook Information Pool V{ver}//EN" +HIER="-//OASIS//ELEMENTS DocBook Document Hierarchy V{ver}//EN" +GEN_ENT="-//OASIS//ENTITIES DocBook Additional General Entities V{ver}//EN" +NOTA="-//OASIS//ENTITIES DocBook Notations V{ver}//EN" +CHAR_ENT="-//OASIS//ENTITIES DocBook Character Entities V{ver}//EN" +ADD_CHAR_ENT="-//OASIS//ENTITIES DocBook Additional General Entities V{ver}//EN" +HTML="-//OASIS//ELEMENTS DocBook XML grep HTML Tables V{ver}//EN" + + +SYSTEM_IDENTIFIERS=[ + "http://www.oasis-open.org/docbook/xml/{ver}", + "http://www.docbook.org/xml/{ver}", + ] + +MISC_IDENTIFIERS=[ + "-//OASIS//DTD XML Exchange Table Model 19990315//EN", + ] + +XML_ENTITIES=[ + ("ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN//XML", + "http://www.w3.org/2003/entities/iso8879/isoamsa.ent",), + + ("ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN//XML", + "http://www.w3.org/2003/entities/iso8879/isoamsb.ent",), + + ("ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN//XML", + "http://www.w3.org/2003/entities/iso8879/isoamsc.ent",), + + ("ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN//XML", + "http://www.w3.org/2003/entities/iso8879/isoamsn.ent",), + + ("ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN//XML", + "http://www.w3.org/2003/entities/iso8879/isoamso.ent",), + + ("ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN//XML", + "http://www.w3.org/2003/entities/iso8879/isoamsr.ent",), + + ("ISO 8879:1986//ENTITIES Box and Line Drawing//EN//XML", + "http://www.w3.org/2003/entities/iso8879/isobox.ent",), + + ("ISO 8879:1986//ENTITIES Russian Cyrillic//EN//XML", + "http://www.w3.org/2003/entities/iso8879/isocyr1.ent",), + + ("ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML", + "http://www.w3.org/2003/entities/iso8879/isocyr2.ent",), + + ("ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML", + "http://www.w3.org/2003/entities/iso8879/isodia.ent",), + + ("ISO 8879:1986//ENTITIES Greek Letters//EN//XML", + "http://www.w3.org/2003/entities/iso8879/isogrk1.ent",), + + ("ISO 8879:1986//ENTITIES Monotoniko Greek//EN//XML", + "http://www.w3.org/2003/entities/iso8879/isogrk2.ent",), + + ("ISO 8879:1986//ENTITIES Greek Symbols//EN//XML", + "http://www.w3.org/2003/entities/iso8879/isogrk3.ent",), + + ("ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN//XML", + "http://www.w3.org/2003/entities/iso8879/isogrk4.ent",), + + ("ISO 8879:1986//ENTITIES Added Latin 1//EN//XML", + "http://www.w3.org/2003/entities/iso8879/isolat1.ent",), + + ("ISO 8879:1986//ENTITIES Added Latin 2//EN//XML", + "http://www.w3.org/2003/entities/iso8879/isolat2.ent",), + + ("ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML", + "http://www.w3.org/2003/entities/iso8879/isonum.ent",), + + ("ISO 8879:1986//ENTITIES Publishing//EN//XML", + "http://www.w3.org/200osc 3/entities/iso8879/isopub.ent",), + + ("ISO 8879:1986//ENTITIES General Technical//EN//XML", + "http://www.w3.org/2003/entities/iso8879/isotech.ent",), + ] + +DOCBOOK_IDENTIFIERS={ + "4.1.2": [DTD, CALS, POOL, HIER, GEN_ENT, NOTA, CHAR_ENT, ADD_CHAR_ENT], + "4.2": [DTD, CALS, POOL, HIER, GEN_ENT, NOTA, CHAR_ENT, ADD_CHAR_ENT], + "4.3": [DTD, CALS, POOL, HIER, HTML, GEN_ENT, NOTA, CHAR_ENT, ADD_CHAR_ENT], + "4.4": [DTD, CALS, POOL, HIER, HTML, GEN_ENT, NOTA, CHAR_ENT, ADD_CHAR_ENT], + "4.5": [DTD, CALS, POOL, HIER, HTML, GEN_ENT, NOTA, CHAR_ENT, ADD_CHAR_ENT], + } + +E = ElementMaker(namespace=CATATALOG_NS, nsmap={None : CATATALOG_NS}) + +catalog = E.catalog +group = E.group +public = E.public +system = E.system +delpub = E.delegatePublic +delsys = E.delegateSystem +deluri = E.delegateURI +rewsys = E.rewriteSystem + +def create_db_catalog(): + c = catalog() + g = group({'id': 'docbook_4'}) + for version in DB_VERSIONS: + g.append(etree.Comment(' === Version {ver} === '.format(ver=version))) + for ident in DOCBOOK_IDENTIFIERS[version]: + g.append(delpub({'publicIdStartString': ident.format(ver=version), + 'catalog': CATALOG.format(ver=version)})) + for sysid in SYSTEM_IDENTIFIERS: + #g.append(delsys({'systemIdStartString': sysid.format(ver=version), + # 'catalog': CATALOG.format(ver=version)})) + g.append(rewsys({'systemIdStartString': sysid.format(ver=version), + 'rewritePrefix': os.path.dirname(CATALOG.format(ver=version)) + } + )) + + # We use the latest DocBook version for our misc part: + g.append(etree.Comment(' === Miscellenous === ')) + for misc in MISC_IDENTIFIERS: + g.append(delpub(publicIdStartString=misc, + catalog=CATALOG.format(ver='4.5'))) + c.append(g) + c.append(etree.Comment(' === XML Entities === ')) + c.append(create_entities_catalog()) + return c + + +def create_entities_catalog(): + g = group({'id': 'docbook_4_xmlentities'}) + entfile = "file:///usr/share/xml/docbook/schema/dtd/4.5/ent/{}" + for pub, sys in XML_ENTITIES: + e = sys.rsplit("/", 1)[-1] + entity = entfile.format(e) + g.append(public(publicId=pub, + uri=entity)) + g.append(system(systemId=sys, + uri=entity)) + return g + + +if __name__=="__main__": + catalog = create_db_catalog() + print(etree.tostring(catalog, encoding="unicode", pretty_print=True))