Package: guix-patches;
Reported by: Bruno Victal <mirai <at> makinata.eu>
Date: Wed, 26 Apr 2023 00:54:02 UTC
Severity: normal
Tags: patch
Done: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Bug is archived. No further changes may be made.
Message #17 received at 63081 <at> debbugs.gnu.org (full text, mbox):
From: Bruno Victal <mirai <at> makinata.eu> To: 63081 <at> debbugs.gnu.org Cc: andreas <at> enge.fr, Bruno Victal <mirai <at> makinata.eu>, maxim.cournoyer <at> gmail.com Subject: [PATCH 4/8] gnu: docbook-xsl-1.79.1: Refactor package. Date: Wed, 26 Apr 2023 01:56:56 +0100
* gnu/packages/docbook.scm (docbook-xsl-1.79.1)[source]: Remove bundled binary files. [arguments]: Use #:install-plan. Patch catalog.xml using xmlcatalog. Add phase 'install-doc. [native-inputs]: Add libxml2. --- gnu/packages/docbook.scm | 94 ++++++++++++++++++++++++++-------------- 1 file changed, 61 insertions(+), 33 deletions(-) diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm index 2fe0c2dbc5..b3e53557e8 100644 --- a/gnu/packages/docbook.scm +++ b/gnu/packages/docbook.scm @@ -430,44 +430,72 @@ (define-public docbook-xsl-1.79.1 name "-ns-" version ".tar.bz2")) (sha256 (base32 - "170ggf5dgjar65kkn5n33kvjr3pdinpj66nnxfx8b2avw0k91jin")))) + "170ggf5dgjar65kkn5n33kvjr3pdinpj66nnxfx8b2avw0k91jin")) + (modules '((guix build utils))) + ;; Bundled binary files. + (snippet + #~(delete-file-recursively "tools")))) (build-system copy-build-system) (outputs '("out" "doc")) (arguments (list + #:install-plan + (let ((target (format #f "xml/xsl/~a-~a/" name version)) + (select-rx '("\\.xml$" "\\.xsl$" "\\.dtd$" "\\.ent$"))) + #~`(#$@(map + (lambda (directory) + ;; XXX: When filters are used, the source basename + ;; isn't kept under the target path, append it again. + (let ((target* (string-append target directory))) + (list directory target* #:include-regexp select-rx))) + (list "assembly" "common" "eclipse" "epub" "epub3" "fo" + "highlighting" "html" "htmlhelp" "javahelp" "lib" + "manpages" "params" "profiling" "roundtrip" + "template" "website" + "xhtml" "xhtml-1_1" "xhtml5")) + ("catalog.xml" #$target) + ("VERSION.xsl" #$target))) #:phases - #~(modify-phases %standard-phases - ;; XXX: The copy-build-system doesn't seem to allow installing to a - ;; different output. - (replace 'install - (lambda _ - (let ((xml (string-append #$output "/xml/xsl/" #$name "-" #$version)) - (doc (string-append #$output:doc - "/share/doc/" #$name "-" #$version)) - (select-rx (make-regexp - "(\\.xml$|\\.xsl$|\\.dtd$|\\.ent$)"))) - ;; Install catalog. - (install-file "catalog.xml" xml) - (install-file "VERSION.xsl" xml) - (substitute* (string-append xml "/catalog.xml") - (("rewritePrefix=\"./") - (string-append "rewritePrefix=\"file://" xml "/"))) - ;; Install style sheets. - (for-each (lambda (dir) - (for-each (lambda (f) - (install-file - f (string-append xml "/" (dirname f)))) - (find-files dir select-rx))) - '("assembly" "common" "eclipse" "epub" "epub3" "fo" - "highlighting" "html" "htmlhelp" "javahelp" "lib" - "manpages" "params" "profiling" "roundtrip" - "template" "website" - "xhtml" "xhtml-1_1" "xhtml5")) - ;; Install documentation. - (install-file "NEWS" doc) - (install-file "RELEASE-NOTES.html" doc) - (copy-recursively "slides" doc) - (copy-recursively "webhelp" doc))))))) + #~(let ((dest-path (format #f "~a/xml/xsl/~a-~a" + #$output #$name #$version))) + (modify-phases %standard-phases + (add-before 'install 'patch-catalog-xml + (lambda* (#:key inputs #:allow-other-keys) + (let ((xmlcatalog (search-input-file inputs + "/bin/xmlcatalog")) + (catalog-files (find-files "." "catalog\\.xml$")) + (store-uri (string-append "file://" dest-path "/"))) + (for-each + (lambda (catalog) + (for-each + (lambda (type) + ;; Patch /current/ references to point to /gnu/store/…. + (invoke xmlcatalog "--noout" + "--add" type + "http://docbook.sourceforge.net/release/xsl-ns/current/" + store-uri + catalog) + ;; Patch versioned references to point to /gnu/store/…. + (invoke xmlcatalog "--noout" + "--add" type + (format + #f "http://docbook.sourceforge.net/release/xsl-ns/~a/" + #$version) + store-uri + catalog)) + (list "rewriteSystem" "rewriteURI"))) + catalog-files)))) + ;; XXX: The copy-build-system doesn't seem to allow installing to a + ;; different output. + (add-after 'install 'install-doc + (lambda _ + (let ((doc (format #f "~a/share/doc/~a-~a" + #$output:doc #$name #$version))) + (install-file "NEWS" doc) + (install-file "RELEASE-NOTES.html" doc) + (copy-recursively "slides" doc) + (copy-recursively "webhelp" doc)))))))) + (native-inputs (list libxml2)) (home-page "https://docbook.org") (synopsis "DocBook XSL namespaced style sheets for document authoring") (description "This package provides the @emph{namespaced} XSL style sheets -- 2.39.2
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.