guix-patches
[Top][All Lists]
Advanced

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

[bug#65479] [PATCH core-updates v3 08/63] gnu: docbook-xsl: Add compatib


From: Bruno Victal
Subject: [bug#65479] [PATCH core-updates v3 08/63] gnu: docbook-xsl: Add compatibility entry.
Date: Mon, 9 Oct 2023 21:05:56 +0100

Remap "http://docbook.sourceforge.net/release/xsl-ns/"; to
"http://docbook.sourceforge.net/release/xsl/";.

* gnu/packages/docbook.scm (docbook-xsl)[arguments]<#:phases>: Add
compatibility entry.
---
 gnu/packages/docbook.scm | 41 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 40 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm
index d23844306c..b3b7a37249 100644
--- a/gnu/packages/docbook.scm
+++ b/gnu/packages/docbook.scm
@@ -388,7 +388,46 @@ (define-public docbook-xsl
                                   
"http://docbook.sourceforge.net/release/xsl/current/";
                                   store-uri
                                   catalog))
-                        (list "rewriteSystem" "rewriteURI")))
+                        (list "rewriteSystem" "rewriteURI"))
+
+                       ;; Originally the
+                       ;; "http://docbook.sourceforge.net/release/xsl/";
+                       ;; URI referred to the non-namespaced docbook-xsl,
+                       ;; with its namespaced version using a URI differing in
+                       ;; the path component as '…/xsl-ns/'.
+                       ;; At some point the namespaced version was made the
+                       ;; canonical docbook-xsl package whilst preserving the
+                       ;; original URI.
+                       ;;
+                       ;; For compatibility with XML files that still specify
+                       ;; the legacy namespaced docbook-xsl URIs we re-add them
+                       ;; here.
+                       (for-each
+                        (lambda (type)
+                          ;; Remap /xsl-ns/ to /xsl/.
+                          ;; Note: URI resolutions are not recursive.
+                          ;; A rewrite rule from:
+                          ;;   'http://docbook.sourceforge.net/release/xsl-ns/'
+                          ;; to
+                          ;;   'http://docbook.sourceforge.net/release/xsl/'
+                          ;; will not trigger the rewrite rule that ultimately
+                          ;; remaps to a /gnu/store URI, as can be seen by
+                          ;; invoking:
+                          ;; $ xmlcatalog "" \
+                          ;;     
'http://docbook.sourceforge.net/release/xsl-ns/current/'
+                          ;; 
http://docbook.sourceforge.net/release/xsl/current/
+                          ;; $ xmlcatalog "" \
+                          ;;     
'http://docbook.sourceforge.net/release/xsl/current/'
+                          ;; file://gnu/store/…/xml/xsl/…
+                          ;;
+                          ;; See XML Catalog specification, item 7.2.2. for
+                          ;; details.
+                          (invoke xmlcatalog "--noout"
+                                "--add" type
+                                
"http://docbook.sourceforge.net/release/xsl-ns/current/";
+                                store-uri
+                                catalog))
+                          (list "rewriteSystem" "rewriteURI")))
                      catalog-files))))
             (replace 'install
               (lambda _
-- 
2.41.0






reply via email to

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