gnu: docbook-xml: Use XSLT to patch catalog.xml.
(sxml transforms) are unsuited here due to guile-bug #20339. * gnu/packages/aux-files/xml/patch-catalog-xml.xsl: New file. * Makefile.am: Register it. * gnu/packages/docbook.scm (docbook-xml-5)[native-inputs]: Add libxslt. [arguments]: Add phase to patch catalog.xml using XSLT. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
This commit is contained in:
parent
a29754b4f1
commit
e9ba6d2c47
|
@ -436,7 +436,8 @@ AUX_FILES = \
|
||||||
gnu/packages/aux-files/python/sanity-check.py \
|
gnu/packages/aux-files/python/sanity-check.py \
|
||||||
gnu/packages/aux-files/python/sitecustomize.py \
|
gnu/packages/aux-files/python/sitecustomize.py \
|
||||||
gnu/packages/aux-files/renpy/renpy.in \
|
gnu/packages/aux-files/renpy/renpy.in \
|
||||||
gnu/packages/aux-files/run-in-namespace.c
|
gnu/packages/aux-files/run-in-namespace.c \
|
||||||
|
gnu/packages/aux-files/xml/patch-catalog-xml.xsl
|
||||||
|
|
||||||
# Templates, examples.
|
# Templates, examples.
|
||||||
EXAMPLES = \
|
EXAMPLES = \
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: 2023 Bruno Victal <mirai@makinata.eu>
|
||||||
|
SPDX-License-Identifier: ISC
|
||||||
|
|
||||||
|
Fix uri attributes to point to paths in the store.
|
||||||
|
-->
|
||||||
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
|
||||||
|
<xsl:output method="xml"/>
|
||||||
|
<xsl:param name="prefix">/</xsl:param>
|
||||||
|
<!-- begin identity transform -->
|
||||||
|
<xsl:template match="@*|node()">
|
||||||
|
<xsl:copy>
|
||||||
|
<xsl:apply-templates select="@*|node()"/>
|
||||||
|
</xsl:copy>
|
||||||
|
</xsl:template>
|
||||||
|
<!-- end identity transform -->
|
||||||
|
|
||||||
|
<xsl:template match="@uri">
|
||||||
|
<xsl:attribute name="uri">
|
||||||
|
<xsl:value-of select="concat('file://', $prefix, '/', .)"/>
|
||||||
|
</xsl:attribute>
|
||||||
|
</xsl:template>
|
||||||
|
</xsl:stylesheet>
|
|
@ -8,6 +8,7 @@
|
||||||
;;; Copyright © 2021 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2021 Mark H Weaver <mhw@netris.org>
|
||||||
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2021 Andrew Whatson <whatson@gmail.com>
|
;;; Copyright © 2021 Andrew Whatson <whatson@gmail.com>
|
||||||
|
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -71,11 +72,22 @@
|
||||||
(lambda _
|
(lambda _
|
||||||
;; XXX: These files do not need 0755 permission.
|
;; XXX: These files do not need 0755 permission.
|
||||||
(for-each (cut chmod <> #o644) (find-files "."))))
|
(for-each (cut chmod <> #o644) (find-files "."))))
|
||||||
|
(add-before 'install 'patch-catalog-xml
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(let ((xsltproc (search-input-file inputs "/bin/xsltproc"))
|
||||||
|
(dtd-path (string-append #$output "/xml/dtd/docbook")))
|
||||||
|
(invoke xsltproc "--nonet" "--noout"
|
||||||
|
"--stringparam" "prefix" dtd-path
|
||||||
|
"--output" "catalog.xml.new"
|
||||||
|
#$(local-file
|
||||||
|
(search-auxiliary-file "xml/patch-catalog-xml.xsl"))
|
||||||
|
"catalog.xml")
|
||||||
|
(rename-file "catalog.xml.new" "catalog.xml"))))
|
||||||
(replace 'install
|
(replace 'install
|
||||||
(lambda _
|
(lambda _
|
||||||
(let ((dtd-path (string-append #$output "/xml/dtd/docbook")))
|
(let ((dtd-path (string-append #$output "/xml/dtd/docbook")))
|
||||||
(copy-recursively "." dtd-path)))))))
|
(copy-recursively "." dtd-path)))))))
|
||||||
(native-inputs (list unzip))
|
(native-inputs (list libxslt unzip))
|
||||||
(home-page "https://docbook.org")
|
(home-page "https://docbook.org")
|
||||||
(synopsis "DocBook XML DTDs for document authoring")
|
(synopsis "DocBook XML DTDs for document authoring")
|
||||||
(description
|
(description
|
||||||
|
|
Loading…
Reference in New Issue