guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#61015] [PATCH v2 4/4] gnu: docbook-xml-4.1.2: Add missing catalog.x


From: Bruno Victal
Subject: [bug#61015] [PATCH v2 4/4] gnu: docbook-xml-4.1.2: Add missing catalog.xml.
Date: Sat, 11 Mar 2023 17:54:13 +0000

* gnu/packages/aux-files/xml/docbook-xml/catalog-4.1.2.xml: New file.
* Makefile.am: Register it.
* gnu/packages/docbook.scm (docbook-xml-4.1.2)[arguments]: Use prebuilt 
catalog.xml.
[native-inputs]: Add libxml2.
---
 Makefile.am                                   |  3 +-
 .../xml/docbook-xml/catalog-4.1.2.xml         | 31 ++++++++++++++++
 gnu/packages/docbook.scm                      | 36 ++++++++++++++++++-
 3 files changed, 68 insertions(+), 2 deletions(-)
 create mode 100644 gnu/packages/aux-files/xml/docbook-xml/catalog-4.1.2.xml

diff --git a/Makefile.am b/Makefile.am
index 73369c746c..310bbe1494 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -437,7 +437,8 @@ AUX_FILES =                                         \
   gnu/packages/aux-files/python/sitecustomize.py       \
   gnu/packages/aux-files/renpy/renpy.in        \
   gnu/packages/aux-files/run-in-namespace.c            \
-  gnu/packages/aux-files/xml/patch-catalog-xml.xsl
+  gnu/packages/aux-files/xml/patch-catalog-xml.xsl     \
+  gnu/packages/aux-files/xml/docbook-xml/catalog-4.1.2.xml
 
 # Templates, examples.
 EXAMPLES =                                     \
diff --git a/gnu/packages/aux-files/xml/docbook-xml/catalog-4.1.2.xml 
b/gnu/packages/aux-files/xml/docbook-xml/catalog-4.1.2.xml
new file mode 100644
index 0000000000..cfb1849202
--- /dev/null
+++ b/gnu/packages/aux-files/xml/docbook-xml/catalog-4.1.2.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog 
V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd";>
+<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
+  <public publicId="-//OASIS//DTD DocBook XML V4.1.2//EN" uri="docbookx.dtd"/>
+  <public publicId="-//OASIS//DTD DocBook XML CALS Table Model V4.1.2//EN" 
uri="calstblx.dtd"/>
+  <public publicId="-//OASIS//DTD XML Exchange Table Model 19990315//EN" 
uri="soextblx.dtd"/>
+  <public publicId="-//OASIS//ELEMENTS DocBook XML Information Pool 
V4.1.2//EN" uri="dbpoolx.mod"/>
+  <public publicId="-//OASIS//ELEMENTS DocBook XML Document Hierarchy 
V4.1.2//EN" uri="dbhierx.mod"/>
+  <public publicId="-//OASIS//ENTITIES DocBook XML Additional General Entities 
V4.1.2//EN" uri="dbgenent.mod"/>
+  <public publicId="-//OASIS//ENTITIES DocBook XML Notations V4.1.2//EN" 
uri="dbnotnx.mod"/>
+  <public publicId="-//OASIS//ENTITIES DocBook XML Character Entities 
V4.1.2//EN" uri="dbcentx.mod"/>
+  <public publicId="ISO 8879:1986//ENTITIES Diacritical Marks//EN" 
uri="ent/iso-dia.ent"/>
+  <public publicId="ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" 
uri="ent/iso-num.ent"/>
+  <public publicId="ISO 8879:1986//ENTITIES Publishing//EN" 
uri="ent/iso-pub.ent"/>
+  <public publicId="ISO 8879:1986//ENTITIES General Technical//EN" 
uri="ent/iso-tech.ent"/>
+  <public publicId="ISO 8879:1986//ENTITIES Added Latin 1//EN" 
uri="ent/iso-lat1.ent"/>
+  <public publicId="ISO 8879:1986//ENTITIES Added Latin 2//EN" 
uri="ent/iso-lat2.ent"/>
+  <public publicId="ISO 8879:1986//ENTITIES Greek Letters//EN" 
uri="ent/iso-grk1.ent"/>
+  <public publicId="ISO 8879:1986//ENTITIES Monotoniko Greek//EN" 
uri="ent/iso-grk2.ent"/>
+  <public publicId="ISO 8879:1986//ENTITIES Greek Symbols//EN" 
uri="ent/iso-grk3.ent"/>
+  <public publicId="ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN" 
uri="ent/iso-grk4.ent"/>
+  <public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Arrow 
Relations//EN" uri="ent/iso-amsa.ent"/>
+  <public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Binary 
Operators//EN" uri="ent/iso-amsb.ent"/>
+  <public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: 
Delimiters//EN" uri="ent/iso-amsc.ent"/>
+  <public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Negated 
Relations//EN" uri="ent/iso-amsn.ent"/>
+  <public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN" 
uri="ent/iso-amso.ent"/>
+  <public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN" 
uri="ent/iso-amsr.ent"/>
+  <public publicId="ISO 8879:1986//ENTITIES Box and Line Drawing//EN" 
uri="ent/iso-box.ent"/>
+  <public publicId="ISO 8879:1986//ENTITIES Russian Cyrillic//EN" 
uri="ent/iso-cyr1.ent"/>
+  <public publicId="ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN" 
uri="ent/iso-cyr2.ent"/>
+</catalog>
diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm
index 2d11333608..902e418b17 100644
--- a/gnu/packages/docbook.scm
+++ b/gnu/packages/docbook.scm
@@ -39,6 +39,7 @@ (define-module (gnu packages docbook)
   #:use-module (gnu packages web-browsers)
   #:use-module (gnu packages xml)
   #:use-module (guix gexp)
+  #:use-module (guix utils)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -151,7 +152,40 @@ (define-public docbook-xml-4.1.2
                                   "/docbkx412.zip"))
               (sha256
                (base32
-                "0wkp5rvnqj0ghxia0558mnn4c7s3n501j99q2isp3sp0ci069w1h"))))))
+                "0wkp5rvnqj0ghxia0558mnn4c7s3n501j99q2isp3sp0ci069w1h"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments docbook-xml)
+       ((#:phases phases)
+        #~(modify-phases #$phases
+            (add-after 'unpack 'copy-catalog-file
+              ;; docbook-xml-4.1.2 is unique in the fact that it doesn't come
+              ;; with a catalog.xml file, requiring it to be generated by hand
+              ;; from the docbook.cat SGML catalog. We could automatically
+              ;; generate it here at the cost of enlarging the package
+              ;; definition with a rudimentary (PEG) parser for the SGML
+              ;; catalog but this is overkill since this file is unlikely to
+              ;; change, therefore we ship a pre-generated catalog.xml.
+              (lambda _
+                (copy-file
+                 #$(local-file
+                    (search-auxiliary-file
+                     "xml/docbook-xml/catalog-4.1.2.xml"))
+                 "catalog.xml")))
+            (add-after 'patch-catalog-xml 'add-rewrite-entries
+              (lambda* (#:key inputs #:allow-other-keys)
+                (let ((xmlcatalog (search-input-file inputs "/bin/xmlcatalog"))
+                      (dtd-path (string-append #$output "/xml/dtd/docbook")))
+                  (for-each
+                   (lambda (type)
+                     (invoke xmlcatalog "--noout"
+                             "--add" type
+                             "http://www.oasis-open.org/docbook/xml/4.1.2/";
+                             (string-append "file://" dtd-path "/")
+                             "catalog.xml"))
+                   (list "rewriteSystem" "rewriteURI")))))))))
+    (native-inputs
+     (modify-inputs (package-native-inputs docbook-xml)
+       (prepend libxml2)))))
 
 (define-public docbook-xsl
   (package
-- 
2.39.1






reply via email to

[Prev in Thread] Current Thread [Next in Thread]