diff mbox series

[bug#72060,v2] gnu: Add xml-namespace-xsd.

Message ID 0771c5bdac599f05154969c2ec23f95d546dbeb5.1720788607.git.gemmaro.dev@gmail.com
State New
Headers show
Series [bug#72060,v2] gnu: Add xml-namespace-xsd. | expand

Commit Message

gemmaro July 12, 2024, 12:50 p.m. UTC
* 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(+)


base-commit: 2d6a3799fcda5c017f653c6e96b91964b07a7ee0
prerequisite-patch-id: 62fc54ed554df985530503c8e8c5b718c16b709b
prerequisite-patch-id: c22785847e70bf2f4c94547dd7851ad7de06b92a

Comments

Liliana Marie Prikler July 12, 2024, 8:01 p.m. UTC | #1
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
gemmaro July 21, 2024, 2:46 a.m. UTC | #2
Liliana Marie Prikler <liliana.prikler@gmail.com> writes:

> 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

Thank you for your review.
I sent revision 3 [1].

I may have forgotten to include your email address in X-Debbugs-Cc.
If that is the case, I apologise for the inconvenience.

[1] https://issues.guix.gnu.org/72060#3

Regards,
gemmaro.
Liliana Marie Prikler July 21, 2024, 10:04 a.m. UTC | #3
Am Sonntag, dem 21.07.2024 um 11:46 +0900 schrieb gemmaro:
> Thank you for your review.
> I sent revision 3 [1].
> 
> I may have forgotten to include your email address in X-Debbugs-Cc.
> If that is the case, I apologise for the inconvenience.
> 
> [1] https://issues.guix.gnu.org/72060#3
Thanks for the hint.  I've pushed v3 just now.

Cheers
diff mbox series

Patch

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")
+       (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")
+                                 "--noout"
+                                 "--create"
+                                 "--add"
+                                 "uri"
+                                 "http://www.w3.org/2001/xml.xsd"
+                                 (string-append out "/xml.xsd")
+                                 (string-append out "/catalog.xml"))))))))
+    (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.  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)))