[bug#72243] gnu: Add xlink-xsd.
Commit Message
* gnu/packages/xml.scm (xlink-xsd): New variable.
Change-Id: If18f2018bd205134ea7d7d627b0d09c87c108415
---
gnu/packages/xml.scm | 44 +++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 43 insertions(+), 1 deletion(-)
base-commit: e5c0b62debc6f48a32a65736d9ba3da0b1e59cb9
Comments
Hi gemmaro,
On 2024-07-22 12:59, gemmaro wrote:
> +(define-public xlink-xsd
> + (package
> + (name "xlink-xsd")
> + (version "1.1-2008-06")
> + (source
> + (origin
> + (method url-fetch)
> + (uri (let* ((matches (string-match
> + "[0-9]+.[0-9]+-([0-9]{4})-([0-9]{2})" version))
> + (year (match:substring matches 1))
> + (month (match:substring matches 2)))
> + (string-append "https://www.w3.org/XML/" year "/" month
> + "/xlink.xsd")))
Perhaps something like:
--8<---------------cut here---------------start------------->8---
(define-public …
(let* ((year …)
(month …)
(version (string-join (list "1.1" year month) "-")))
(package …)))
--8<---------------cut here---------------end--------------->8---
would be more readable instead of matching the version string with regex?
> + #:install-plan #~'(("xlink.xsd" "/xml/dtd/xlink/xlink.xsd")
> + ("catalog.xml" "/xml/dtd/xlink/catalog.xml"))
I'd prefer to place these under "/xml/xsd/xlink/{xlink.xsd,catalog.xml}"
instead since these are not DTD files.
Cheers,
@@ -85,7 +85,8 @@ (define-module (gnu packages xml)
#:use-module (guix deprecation)
#:use-module (guix utils)
#:use-module (gnu packages linux)
- #:use-module (gnu packages pkg-config))
+ #:use-module (gnu packages pkg-config)
+ #:use-module (ice-9 regex))
(define-public libxmlb
(package
@@ -1993,3 +1994,44 @@ (define-public xml-namespace-xsd
schema language defined by the XML Schema Recommendation Second Edition of 28 October
2004.")
(license license:w3c)))
+
+(define-public xlink-xsd
+ (package
+ (name "xlink-xsd")
+ (version "1.1-2008-06")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (let* ((matches (string-match
+ "[0-9]+.[0-9]+-([0-9]{4})-([0-9]{2})" version))
+ (year (match:substring matches 1))
+ (month (match:substring matches 2)))
+ (string-append "https://www.w3.org/XML/" year "/" month
+ "/xlink.xsd")))
+ (sha256
+ (base32 "0jpjha5iiq4rf4hx3qfnmyya9cf17ysxz0rbhsffn5nwgxnghgf8"))))
+ (build-system copy-build-system)
+ (arguments
+ (list
+ #:install-plan #~'(("xlink.xsd" "/xml/dtd/xlink/xlink.xsd")
+ ("catalog.xml" "/xml/dtd/xlink/catalog.xml"))
+ #:phases #~(modify-phases %standard-phases
+ (add-before 'install 'create-catalog
+ (lambda _
+ (invoke "xmlcatalog"
+ "--noout"
+ "--create"
+ "--add"
+ "uri"
+ "http://www.w3.org/1999/xlink.xsd"
+ "xlink.xsd"
+ "catalog.xml"))))))
+ (native-inputs (list libxml2))
+ (home-page "https://www.w3.org/TR/xlink/")
+ (synopsis "XML Schema for XML Linking language")
+ (description
+ "This package provides an XML Schema document and its catalog file for
+the XML Linking Language (XLink). It provides the XLink-1.1 specific
+declarations and definitions for use in defining linking elements
+which conform to the XLink specification.")
+ (license license:w3c)))