[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#72060] [PATCH v2] gnu: Add xml-namespace-xsd.
From: |
Liliana Marie Prikler |
Subject: |
[bug#72060] [PATCH v2] gnu: Add xml-namespace-xsd. |
Date: |
Fri, 12 Jul 2024 22:01:39 +0200 |
User-agent: |
Evolution 3.48.4 |
Am Freitag, dem 12.07.2024 um 21:50 +0900 schrieb gemmaro:
> * gnu/packages/xml.scm (xml-namespace-xsd): New variable.
>
> Change-Id: Iec2d68f1d9190ba9e1723ca10adf1de0dfd2d722
> ---
> I forgot to add copy-build-system in the first revision.
>
> gnu/packages/xml.scm | 39 +++++++++++++++++++++++++++++++++++++++
> 1 file changed, 39 insertions(+)
>
> diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
> index c6ddae50ae..71344dea0f 100644
> --- a/gnu/packages/xml.scm
> +++ b/gnu/packages/xml.scm
> @@ -33,6 +33,7 @@
> ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
> ;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz>
> ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
> +;;; Copyright © 2024 gemmaro <gemmaro.dev@gmail.com>
> ;;;
> ;;; This file is part of GNU Guix.
> ;;;
> @@ -76,6 +77,7 @@ (define-module (gnu packages xml)
> #:use-module (guix download)
> #:use-module (guix git-download)
> #:use-module (guix build-system cmake)
> + #:use-module (guix build-system copy)
> #:use-module (guix build-system gnu)
> #:use-module (guix build-system meson)
> #:use-module (guix build-system perl)
> @@ -1953,3 +1955,40 @@ (define-public python-xmltodict
> (description "This package provides a Python library to convert
> XML to
> @code{OrderedDict}.")
> (license license:expat)))
> +
> +(define-public xml-namespace-xsd
> + (package
> + (name "xml-namespace-xsd")
> + (version "2009-01")
> + (source
> + (origin
> + (method url-fetch)
> + (uri "https://www.w3.org/2009/01/xml.xsd")
It's a good idea to formulate URI in terms of version. In this case,
replacing the dash with a slash.
> + (sha256
> + (base32
> "0agqmxbhk2q9xa38m02z7ggbb124z6avnqyhz8k43iicqhv1fw6c"))))
> + (build-system copy-build-system)
> + (arguments
> + (list
> + #:install-plan #~'(("xml.xsd" "/xml/dtd/namespace/xml.xsd"))
> + #:phases #~(modify-phases %standard-phases
> + (add-before 'install 'create-catalog
> + (lambda* (#:key inputs #:allow-other-keys)
> + (let ((out (string-append #$output
> "/xml/dtd/namespace")))
> + (mkdir-p out)
> + (invoke (search-input-file inputs
> "/bin/xmlcatalog")
You can probably invoke the command by command name. Otherwise you'd
need to go through (or native-inputs inputs)
> + "--noout"
> + "--create"
> + "--add"
> + "uri"
> + "http://www.w3.org/2001/xml.xsd"
> + (string-append out "/xml.xsd")
> + (string-append out
> "/catalog.xml"))))))))
Don't forget that you can write to the local directory. You should
also do so and reflect the added file in the install-plan.
> + (native-inputs (list libxml2))
> + (home-page "https://www.w3.org/XML/1998/namespace")
> + (synopsis "XML Schema for XML namespace")
> + (description
> + "This package provides an XML Schema fragment and its catalog.
An XML Schema fragment?
> The schema
> +constrains the syntax of @code{xml:lang}, @code{xml:spec},
> @code{xml:base}, and
> +@code{xml:id} in the schema language defined by the XML Schema
> Recommendation Second
> +Edition of 28 October 2004.")
> + (license license:w3c)))
Cheers