gnu: libspiro: Do not build static libraries.
[jackhill/guix/guix.git] / gnu / packages / xml.scm
CommitLineData
d0414883 1;;; GNU Guix --- Functional package management for GNU
3a2efbc8 2;;; Copyright © 2013, 2014, 2015, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
0899144f 3;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
b715dbac 4;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
10ac0f9f 5;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
5c1cf7f3 6;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
96fd87c9 7;;; Copyright © 2015, 2016, 2017 Mark H Weaver <mhw@netris.org>
0efb6452 8;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
fe9451c5 9;;; Copyright © 2015 Raimon Grau <raimonster@gmail.com>
c74c7c13 10;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
e9f62e52 11;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
5eec378b 12;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
19c33040 13;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
47956fa0 14;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
17634f0b 15;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
e436379c 16;;; Copyright © 2016, 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
f9f67fcb 17;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
5bc2d579 18;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
76fed2b3 19;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
3b695802 20;;; Copyright © 2017 Petter <petter@mykolab.ch>
767d24e8 21;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
2cce23bf 22;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
f85c8dd8 23;;; Copyright © 2018 Jack Hill <jackhill@jackhill.us>
d0414883
LC
24;;;
25;;; This file is part of GNU Guix.
26;;;
27;;; GNU Guix is free software; you can redistribute it and/or modify it
28;;; under the terms of the GNU General Public License as published by
29;;; the Free Software Foundation; either version 3 of the License, or (at
30;;; your option) any later version.
31;;;
32;;; GNU Guix is distributed in the hope that it will be useful, but
33;;; WITHOUT ANY WARRANTY; without even the implied warranty of
34;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
35;;; GNU General Public License for more details.
36;;;
37;;; You should have received a copy of the GNU General Public License
38;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
39
1ffa7090 40(define-module (gnu packages xml)
f0444eaf 41 #:use-module (gnu packages)
0899144f 42 #:use-module (gnu packages autotools)
79a0eabd 43 #:use-module (gnu packages check)
322cbda7 44 #:use-module (gnu packages compression)
2cce23bf 45 #:use-module (gnu packages curl)
58cc3b38 46 #:use-module (gnu packages gnupg)
1a17ca26 47 #:use-module (gnu packages java)
aff0cce9 48 #:use-module (gnu packages nss)
f0444eaf 49 #:use-module (gnu packages perl)
5ccde207 50 #:use-module (gnu packages perl-check)
f0444eaf 51 #:use-module (gnu packages python)
a7fd7b68 52 #:use-module (gnu packages tls)
ad871fc6 53 #:use-module (gnu packages web)
b5b73a82 54 #:use-module ((guix licenses) #:prefix license:)
d0414883
LC
55 #:use-module (guix packages)
56 #:use-module (guix download)
3047c7ba 57 #:use-module (guix git-download)
77d7b57c 58 #:use-module (guix build-system ant)
6ce212b8 59 #:use-module (guix build-system cmake)
2a1e82bb 60 #:use-module (guix build-system gnu)
37f9ff63 61 #:use-module (guix build-system perl)
7ce32242 62 #:use-module (guix build-system python)
e4aab734
RW
63 #:use-module (gnu packages linux)
64 #:use-module (gnu packages pkg-config))
d0414883
LC
65
66(define-public expat
67 (package
68 (name "expat")
6cd34029 69 (version "2.2.9")
f85c8dd8
JH
70 (source (let ((dot->underscore (lambda (c) (if (char=? #\. c) #\_ c))))
71 (origin
72 (method url-fetch)
73 (uri (list (string-append "mirror://sourceforge/expat/expat/"
fb9a23a3 74 version "/expat-" version ".tar.xz")
f85c8dd8
JH
75 (string-append
76 "https://github.com/libexpat/libexpat/releases/download/R_"
77 (string-map dot->underscore version)
fb9a23a3 78 "/expat-" version ".tar.xz")))
f85c8dd8
JH
79 (sha256
80 (base32
6cd34029 81 "1960mmgbb4cm64n1p0nz3hrs1pw03hkrfcw8prmnn4622mdrd9hy")))))
d0414883 82 (build-system gnu-build-system)
767abd37
MB
83 (arguments
84 '(#:configure-flags '("--disable-static")))
e5e33f90 85 (home-page "https://libexpat.github.io/")
9e771e3b 86 (synopsis "Stream-oriented XML parser library written in C")
d0414883
LC
87 (description
88 "Expat is an XML parser library written in C. It is a
89stream-oriented parser in which an application registers handlers for
90things the parser might find in the XML document (like start tags).")
91 (license license:expat)))
f0444eaf 92
5bc2d579
GG
93(define-public libebml
94 (package
95 (name "libebml")
bc48088b 96 (version "1.3.9")
5bc2d579
GG
97 (source
98 (origin
99 (method url-fetch)
079321fa
TGR
100 (uri (string-append "https://dl.matroska.org/downloads/libebml/"
101 "libebml-" version ".tar.xz"))
5bc2d579 102 (sha256
bc48088b 103 (base32 "0j65r6i7s2k67c8f9wa653mqpxmfhdl67kjxrc1n5910ig6wddn6"))))
f3d89181
TGR
104 (build-system cmake-build-system)
105 (arguments
106 `(#:configure-flags
107 (list "-DBUILD_SHARED_LIBS=YES")
108 #:tests? #f)) ; no test suite
a040db6d 109 (home-page "https://matroska-org.github.io/libebml/")
cb778117
TGR
110 (synopsis "C++ library to parse EBML files")
111 (description "libebml is a C++ library to read and write @dfn{EBML}
112(Extensible Binary Meta Language) files. EBML was designed to be a simplified
113binary extension of XML for the purpose of storing and manipulating data in a
5bc2d579
GG
114hierarchical form with variable field lengths.")
115 (license license:lgpl2.1)))
116
f0444eaf
AE
117(define-public libxml2
118 (package
119 (name "libxml2")
723c356d 120 (version "2.9.9")
f0444eaf
AE
121 (source (origin
122 (method url-fetch)
123 (uri (string-append "ftp://xmlsoft.org/libxml2/libxml2-"
124 version ".tar.gz"))
125 (sha256
126 (base32
723c356d 127 "0wd881jzvqayx0ihzba29jl80k06xj9ywp16kxacdqs3064p1ywl"))))
f0444eaf 128 (build-system gnu-build-system)
5f8642ea
MB
129 (outputs '("out" "static"))
130 (arguments
131 `(#:phases (modify-phases %standard-phases
132 (add-after 'install 'move-static-libs
133 (lambda* (#:key outputs #:allow-other-keys)
134 (let ((src (string-append (assoc-ref outputs "out") "/lib"))
135 (dst (string-append (assoc-ref outputs "static")
136 "/lib")))
137 (mkdir-p dst)
138 (for-each (lambda (ar)
139 (rename-file ar (string-append dst "/"
140 (basename ar))))
141 (find-files src "\\.a$"))
d52680ee
MB
142
143 ;; Remove reference to the static library from the .la
144 ;; file such that Libtool does the right thing when both
145 ;; the shared and static variants are available.
146 (substitute* (string-append src "/libxml2.la")
147 (("^old_library='libxml2.a'") "old_library=''"))
5f8642ea 148 #t))))))
f0444eaf 149 (home-page "http://www.xmlsoft.org/")
35b9e423 150 (synopsis "C parser for XML")
7ba79d5d 151 (inputs `(("xz" ,xz)))
c1944c92 152 (propagated-inputs `(("zlib" ,zlib))) ; libxml2.la says '-lz'.
7ce32242 153 (native-inputs `(("perl" ,perl)))
2a8d4401
LC
154 ;; $XML_CATALOG_FILES lists 'catalog.xml' files found in under the 'xml'
155 ;; sub-directory of any given package.
74528069
LC
156 (native-search-paths (list (search-path-specification
157 (variable "XML_CATALOG_FILES")
158 (separator " ")
159 (files '("xml"))
160 (file-pattern "^catalog\\.xml$")
161 (file-type 'regular))))
2a8d4401 162 (search-paths native-search-paths)
f0444eaf 163 (description
7c125ce0
AK
164 "Libxml2 is the XML C parser and toolkit developed for the Gnome
165project (but it is usable outside of the Gnome platform).")
f0444eaf 166 (license license:x11)))
58cc3b38 167
7ce32242 168(define-public python-libxml2
3a2efbc8 169 ;; TODO: Merge with 'python-libxml2/fixed' on the next rebuild cycle.
e428b2c0 170 (package/inherit libxml2
7ce32242
SB
171 (name "python-libxml2")
172 (build-system python-build-system)
d3028f5b 173 (outputs '("out"))
7ce32242
SB
174 (arguments
175 `(;; XXX: Tests are specified in 'Makefile.am', but not in 'setup.py'.
176 #:tests? #f
177 #:phases
178 (modify-phases %standard-phases
179 (add-before
180 'build 'configure
181 (lambda* (#:key inputs #:allow-other-keys)
182 (chdir "python")
183 (let ((glibc (assoc-ref inputs ,(if (%current-target-system)
184 "cross-libc" "libc")))
185 (libxml2 (assoc-ref inputs "libxml2")))
186 (substitute* "setup.py"
187 ;; For 'libxml2/libxml/tree.h'.
188 (("ROOT = r'/usr'")
189 (format #f "ROOT = r'~a'" libxml2))
190 ;; For 'iconv.h'.
191 (("/opt/include")
aa6f87a2
MW
192 (string-append glibc "/include"))))
193 #t)))))
7ce32242
SB
194 (inputs `(("libxml2" ,libxml2)))
195 (synopsis "Python bindings for the libxml2 library")))
196
3a2efbc8
LC
197(define-public python-libxml2/fixed
198 ;; This variant fixes a crash when processing UTF-8 sequences:
199 ;; <https://bugs.gnu.org/37468>
200 ;; TODO: Merge with 'python-libxml2' on the next rebuild cycle.
201 (package/inherit
202 python-libxml2
203 (version (string-append (package-version python-libxml2) "-1"))
204 (source (origin
205 (inherit (package-source libxml2))
206 (patches (cons (search-patch "python-libxml2-utf8.patch")
207 (origin-patches (package-source libxml2))))))))
208
7ce32242
SB
209(define-public python2-libxml2
210 (package-with-python2 python-libxml2))
211
58cc3b38
AE
212(define-public libxslt
213 (package
214 (name "libxslt")
df2bf40e 215 (version "1.1.33")
58cc3b38
AE
216 (source (origin
217 (method url-fetch)
218 (uri (string-append "ftp://xmlsoft.org/libxslt/libxslt-"
219 version ".tar.gz"))
220 (sha256
221 (base32
df2bf40e 222 "1j1q1swnsy8jgi9x7mclvkrqhfgn09886gdlr9wzk7a08i8n0dlf"))
28b33172 223 (patches (search-patches "libxslt-generated-ids.patch"))))
58cc3b38
AE
224 (build-system gnu-build-system)
225 (home-page "http://xmlsoft.org/XSLT/index.html")
35b9e423 226 (synopsis "C library for applying XSLT stylesheets to XML documents")
58cc3b38
AE
227 (inputs `(("libgcrypt" ,libgcrypt)
228 ("libxml2" ,libxml2)
95288fcc 229 ("python" ,python-minimal-wrapper)
11e3f107 230 ("zlib" ,zlib)))
da66bd38
MO
231 (native-inputs
232 `(("pkg-config" ,pkg-config)))
58cc3b38 233 (description
35b9e423 234 "Libxslt is an XSLT C library developed for the GNOME project. It is
58cc3b38
AE
235based on libxml for XML parsing, tree manipulation and XPath support.")
236 (license license:x11)))
2a1e82bb 237
5eec378b
BW
238(define-public perl-graph-readwrite
239 (package
240 (name "perl-graph-readwrite")
ffbc7d65 241 (version "2.09")
5eec378b
BW
242 (source
243 (origin
244 (method url-fetch)
245 (uri (string-append
246 "mirror://cpan/authors/id/N/NE/NEILB/Graph-ReadWrite-"
247 version
248 ".tar.gz"))
249 (sha256
250 (base32
ffbc7d65 251 "0jlsg64pmy6ka5q5gy851nnyfgjzvhyxc576bhns3vi2x5ng07mh"))))
5eec378b
BW
252 (build-system perl-build-system)
253 (propagated-inputs
254 `(("perl-graph" ,perl-graph)
255 ("perl-parse-yapp" ,perl-parse-yapp)
256 ("perl-xml-parser" ,perl-xml-parser)
257 ("perl-xml-writer" ,perl-xml-writer)))
9aba9b12 258 (home-page "https://metacpan.org/release/Graph-ReadWrite")
5eec378b
BW
259 (synopsis "Modules for reading and writing directed graphs")
260 (description "This is a collection of perl classes for reading and writing
261directed graphs in a variety of file formats. The graphs are represented in
262Perl using Jarkko Hietaniemi's @code{Graph} classes.
263
264There are two base classes. @code{Graph::Reader} is the base class for classes
265which read a graph file and create an instance of the Graph class.
266@code{Graph::Writer} is the base class for classes which take an instance of
267the @code{Graph} class and write it out in a specific file format.")
2f3108ad 268 (license license:perl-license)))
5eec378b 269
b2696a58 270(define-public perl-xml-atom
271 (package
272 (name "perl-xml-atom")
522f1995 273 (version "0.42")
b2696a58 274 (source (origin
275 (method url-fetch)
276 (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
277 "XML-Atom-" version ".tar.gz"))
278 (sha256
279 (base32
522f1995 280 "1wa8kfy1w4mg7kzxim4whyprkn48a2il6fap0b947zywknw4c6y6"))))
b2696a58 281 (build-system perl-build-system)
522f1995
MB
282 (arguments
283 `(#:phases
284 (modify-phases %standard-phases
285 (add-before 'check 'set-perl-search-path
286 (lambda _
287 (setenv "PERL5LIB"
288 (string-append (getcwd) ":"
289 (getenv "PERL5LIB")))
290 #t)))))
b2696a58 291 (native-inputs
50632f0a
TGR
292 ;; TODO package: perl-datetime-format-atom
293 `(("perl-html-tagset" ,perl-html-tagset)
522f1995 294 ("perl-module-build-tiny" ,perl-module-build-tiny)
50632f0a
TGR
295 ("perl-module-install" ,perl-module-install)))
296 (propagated-inputs
b2696a58 297 `(("perl-class-data-inheritable" ,perl-class-data-inheritable)
298 ("perl-datetime" ,perl-datetime)
299 ("perl-datetime-timezone" ,perl-datetime-timezone)
300 ("perl-digest-sha1" ,perl-digest-sha1)
301 ("perl-libwww" ,perl-libwww)
302 ("perl-uri" ,perl-uri)
303 ("perl-xml-libxml" ,perl-xml-libxml)
304 ("perl-xml-xpath" ,perl-xml-xpath)))
9aba9b12 305 (home-page "https://metacpan.org/release/XML-Atom")
b2696a58 306 (synopsis "Atom feed and API implementation")
307 (description
308 "Atom is a syndication, API, and archiving format for weblogs and other data.
309@code{XML::Atom} implements the feed format as well as a client for the API.")
2f3108ad 310 (license license:perl-license)))
b2696a58 311
d66fa696
MB
312(define-public perl-xml-descent
313 (package
314 (name "perl-xml-descent")
315 (version "1.04")
316 (source (origin
317 (method url-fetch)
318 (uri (string-append "mirror://cpan/authors/id/A/AN/ANDYA/"
319 "XML-Descent-" version ".tar.gz"))
320 (sha256
321 (base32
322 "0l5xmw2hd95ypppz3lyvp4sn02ccsikzjwacli3ydxfdz1bbh4d7"))))
323 (build-system perl-build-system)
324 (native-inputs
325 `(("perl-module-build" ,perl-module-build)))
326 (propagated-inputs
327 `(("perl-test-differences" ,perl-test-differences)
328 ("perl-xml-tokeparser" ,perl-xml-tokeparser)))
9aba9b12 329 (home-page "https://metacpan.org/release/XML-Descent")
d66fa696
MB
330 (synopsis "Recursive descent XML parsing")
331 (description
332 "The conventional models for parsing XML are either @dfn{DOM}
333(a data structure representing the entire document tree is created) or
334@dfn{SAX} (callbacks are issued for each element in the XML).
335
336XML grammar is recursive - so it's nice to be able to write recursive
337parsers for it. @code{XML::Descent} allows such parsers to be created.")
2f3108ad 338 (license license:perl-license)))
d66fa696 339
2a1e82bb
LC
340(define-public perl-xml-parser
341 (package
342 (name "perl-xml-parser")
d495634b 343 (version "2.44")
2a1e82bb
LC
344 (source (origin
345 (method url-fetch)
346 (uri (string-append
2b8c5f54 347 "mirror://cpan/authors/id/T/TO/TODDR/XML-Parser-"
2a1e82bb
LC
348 version ".tar.gz"))
349 (sha256
350 (base32
d495634b 351 "05ij0g6bfn27iaggxf8nl5rhlwx6f6p6xmdav6rjcly3x5zd1s8s"))))
2a1e82bb
LC
352 (build-system perl-build-system)
353 (arguments `(#:make-maker-flags
354 (let ((expat (assoc-ref %build-inputs "expat")))
355 (list (string-append "EXPATLIBPATH=" expat "/lib")
356 (string-append "EXPATINCPATH=" expat "/include")))))
357 (inputs `(("expat" ,expat)))
2f3108ad 358 (license license:perl-license)
2a1e82bb
LC
359 (synopsis "Perl bindings to the Expat XML parsing library")
360 (description
361 "This module provides ways to parse XML documents. It is built on top of
362XML::Parser::Expat, which is a lower level interface to James Clark's expat
363library. Each call to one of the parsing methods creates a new instance of
364XML::Parser::Expat which is then used to parse the document. Expat options
365may be provided when the XML::Parser object is created. These options are
366then passed on to the Expat object on each parse call. They can also be given
367as extra arguments to the parse methods, in which case they override options
368given at XML::Parser creation time.")
9aba9b12 369 (home-page "https://metacpan.org/release/XML-Parser")))
37f9ff63 370
62b28f19
MB
371(define-public perl-xml-tokeparser
372 (package
373 (name "perl-xml-tokeparser")
374 (version "0.05")
375 (source (origin
376 (method url-fetch)
377 (uri (string-append "mirror://cpan/authors/id/P/PO/PODMASTER/"
378 "XML-TokeParser-" version ".tar.gz"))
379 (sha256
380 (base32
381 "1hnpwb3lh6cbgwvjjgqzcp6jm4mp612qn6ili38adc9nhkwv8fc5"))))
382 (build-system perl-build-system)
383 (propagated-inputs `(("perl-xml-parser" ,perl-xml-parser)))
9aba9b12 384 (home-page "https://metacpan.org/release/XML-TokeParser")
62b28f19
MB
385 (synopsis "Simplified interface to XML::Parser")
386 (description
387 "@code{XML::TokeParser} provides a procedural (\"pull mode\") interface
388to @code{XML::Parser} in much the same way that Gisle Aas'
389@code{HTML::TokeParser} provides a procedural interface to @code{HTML::Parser}.
390@code{XML::TokeParser} splits its XML input up into \"tokens\", each
391corresponding to an @code{XML::Parser} event.")
2f3108ad 392 (license license:perl-license)))
62b28f19 393
7339fbe2 394(define-public perl-libxml
1385ba4f 395 (package
7339fbe2 396 (name "perl-libxml")
1385ba4f
AE
397 (version "0.08")
398 (source (origin
399 (method url-fetch)
400 (uri (string-append
401 "mirror://cpan/authors/id/K/KM/KMACLEOD/libxml-perl-"
402 version ".tar.gz"))
403 (sha256
404 (base32
405 "1jy9af0ljyzj7wakqli0437zb2vrbplqj4xhab7bfj2xgfdhawa5"))))
406 (build-system perl-build-system)
7b81406a 407 (propagated-inputs
1385ba4f 408 `(("perl-xml-parser" ,perl-xml-parser)))
2f3108ad 409 (license license:perl-license)
2db5f9b6 410 (synopsis "Perl modules for working with XML")
1385ba4f 411 (description
2db5f9b6
TGR
412 "libxml-perl is a collection of smaller Perl modules, scripts, and
413documents for working with XML in Perl. libxml-perl software works in
414combination with @code{XML::Parser}, PerlSAX, @code{XML::DOM},
415@code{XML::Grove}, and others.")
9aba9b12 416 (home-page "https://metacpan.org/release/libxml-perl")))
1385ba4f 417
3dd6bee1
EB
418(define-public perl-xml-libxml
419 (package
420 (name "perl-xml-libxml")
d71184f8 421 (version "2.0134")
3dd6bee1
EB
422 (source
423 (origin
424 (method url-fetch)
425 (uri (string-append "mirror://cpan/authors/id/S/SH/SHLOMIF/"
426 "XML-LibXML-" version ".tar.gz"))
427 (sha256
428 (base32
d71184f8 429 "1ks69xymv6zkj7hvaymjvb78ch81abri7kg4zrwxhdfsqb8a9g7h"))))
3dd6bee1
EB
430 (build-system perl-build-system)
431 (propagated-inputs
432 `(("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
433 ("perl-xml-sax" ,perl-xml-sax)))
434 (inputs
435 `(("libxml2" ,libxml2)))
9aba9b12 436 (home-page "https://metacpan.org/release/XML-LibXML")
3dd6bee1
EB
437 (synopsis "Perl interface to libxml2")
438 (description "This module implements a Perl interface to the libxml2
54c3c140 439library which provides interfaces for parsing and manipulating XML files. This
3dd6bee1
EB
440module allows Perl programmers to make use of the highly capable validating
441XML parser and the high performance DOM implementation.")
2f3108ad 442 (license license:perl-license)))
3dd6bee1 443
f7c4dc2f
RW
444(define-public perl-xml-libxml-simple
445 (package
446 (name "perl-xml-libxml-simple")
d21fb90a 447 (version "0.99")
f7c4dc2f
RW
448 (source (origin
449 (method url-fetch)
450 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
451 "XML-LibXML-Simple-" version ".tar.gz"))
452 (sha256
453 (base32
d21fb90a 454 "0i4ybiqdnvnbfxqslw2y392kvy7i752dl8n99bqiqv5kzk4lbzhl"))))
f7c4dc2f
RW
455 (build-system perl-build-system)
456 (propagated-inputs
457 `(("perl-file-slurp-tiny" ,perl-file-slurp-tiny)
458 ("perl-xml-libxml" ,perl-xml-libxml)))
9aba9b12 459 (home-page "https://metacpan.org/release/XML-LibXML-Simple")
f7c4dc2f
RW
460 (synopsis "XML::LibXML based XML::Simple clone")
461 (description
462 "This package provides the same API as @code{XML::Simple} but is based on
463@code{XML::LibXML}.")
2f3108ad 464 (license license:perl-license)))
f7c4dc2f 465
93863a5e
RW
466(define-public perl-xml-libxslt
467 (package
468 (name "perl-xml-libxslt")
73a3e98f 469 (version "1.96")
93863a5e
RW
470 (source
471 (origin
472 (method url-fetch)
473 (uri (string-append "mirror://cpan/authors/id/S/SH/SHLOMIF/"
474 "XML-LibXSLT-" version ".tar.gz"))
475 (sha256
476 (base32
73a3e98f 477 "0wyl8klgr65j8y8fzgwz9jlvfjwvxazna8j3dg9gksd2v973fpia"))))
93863a5e
RW
478 (build-system perl-build-system)
479 (inputs
480 `(("libxslt" ,libxslt)))
481 (propagated-inputs
482 `(("perl-xml-libxml" ,perl-xml-libxml)))
9aba9b12 483 (home-page "https://metacpan.org/release/XML-LibXSLT")
93863a5e
RW
484 (synopsis "Perl bindings to GNOME libxslt library")
485 (description "This Perl module is an interface to the GNOME project's
486libxslt library.")
2f3108ad 487 (license license:perl-license)))
93863a5e 488
b715dbac
EB
489(define-public perl-xml-namespacesupport
490 (package
491 (name "perl-xml-namespacesupport")
88958ee0 492 (version "1.12")
b715dbac
EB
493 (source
494 (origin
495 (method url-fetch)
496 (uri (string-append "mirror://cpan/authors/id/P/PE/PERIGRIN/"
497 "XML-NamespaceSupport-" version ".tar.gz"))
498 (sha256
499 (base32
88958ee0 500 "1vz5pbi4lm5fhq2slrs2hlp6bnk29863abgjlcx43l4dky2rbsa7"))))
b715dbac 501 (build-system perl-build-system)
9aba9b12 502 (home-page "https://metacpan.org/release/XML-NamespaceSupport")
b715dbac
EB
503 (synopsis "XML namespace support class")
504 (description "This module offers a simple to process namespaced XML
505names (unames) from within any application that may need them. It also helps
506maintain a prefix to namespace URI map, and provides a number of basic
507checks.")
2f3108ad 508 (license license:perl-license)))
b715dbac 509
a022b23f 510(define-public perl-xml-rss
511 (package
512 (name "perl-xml-rss")
73662141 513 (version "1.61")
a022b23f 514 (source (origin
515 (method url-fetch)
516 (uri (string-append "mirror://cpan/authors/id/S/SH/SHLOMIF/"
517 "XML-RSS-" version ".tar.gz"))
518 (sha256
519 (base32
73662141 520 "03f983l2dnkvcw6iyg1s0xmv5wn793d3kvqlshmhm01ibp7ffvzs"))))
a022b23f 521 (build-system perl-build-system)
522 (native-inputs
523 `(("perl-module-build" ,perl-module-build)
524 ("perl-test-manifest" ,perl-test-manifest)
525 ("perl-test-differences" ,perl-test-differences)
526 ("perl-test-pod" ,perl-test-pod)
527 ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
528 ;; XXX: The test which uses this modules does not run, even when it is included
529 ;; it is ignored. ("perl-test-trailingspace" ,perl-test-trailingspace)
530 (inputs
531 `(("perl-datetime" ,perl-datetime)
532 ("perl-datetime-format-mail" ,perl-datetime-format-mail)
533 ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
534 ("perl-html-parser" ,perl-html-parser)
535 ("perl-xml-parser" ,perl-xml-parser)))
9aba9b12 536 (home-page "https://metacpan.org/release/XML-RSS")
a022b23f 537 (synopsis "Creates and updates RSS files")
538 (description
539 "This module provides a basic framework for creating and maintaining
540RDF Site Summary (RSS) files. This distribution also contains many examples
541that allow you to generate HTML from an RSS, convert between 0.9, 0.91, and
5421.0 version, and more.")
2f3108ad 543 (license license:perl-license)))
a022b23f 544
18b8bbb3
EB
545(define-public perl-xml-sax
546 (package
547 (name "perl-xml-sax")
2dcde3c7 548 (version "1.02")
18b8bbb3
EB
549 (source
550 (origin
551 (method url-fetch)
552 (uri (string-append "mirror://cpan/authors/id/G/GR/GRANTM/"
553 "XML-SAX-" version ".tar.gz"))
554 (sha256
2dcde3c7 555 (base32 "0am13vnv8qsjafr5ljakwnkhlwpk15sga02z8mxsg9is0j3w61j5"))))
18b8bbb3
EB
556 (build-system perl-build-system)
557 (propagated-inputs
558 `(("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
559 ("perl-xml-sax-base" ,perl-xml-sax-base)))
560 (arguments
561 `(#:phases (modify-phases %standard-phases
562 (add-before
40b084a3 563 'install 'augment-path
18b8bbb3
EB
564 ;; The install target tries to load the newly-installed
565 ;; XML::SAX module, but can't find it, so we need to tell
566 ;; perl where to look.
567 (lambda* (#:key outputs #:allow-other-keys)
568 (setenv "PERL5LIB"
569 (string-append (getenv "PERL5LIB") ":"
570 (assoc-ref outputs "out")
aa6f87a2
MW
571 "/lib/perl5/site_perl"))
572 #t)))))
9aba9b12 573 (home-page "https://metacpan.org/release/XML-SAX")
18b8bbb3
EB
574 (synopsis "Perl API for XML")
575 (description "XML::SAX consists of several framework classes for using and
576building Perl SAX2 XML parsers, filters, and drivers.")
2f3108ad 577 (license license:perl-license)))
18b8bbb3 578
1ed6d5bc
EB
579(define-public perl-xml-sax-base
580 (package
581 (name "perl-xml-sax-base")
fa964e96 582 (version "1.09")
1ed6d5bc
EB
583 (source
584 (origin
585 (method url-fetch)
586 (uri (string-append "mirror://cpan/authors/id/G/GR/GRANTM/"
587 "XML-SAX-Base-" version ".tar.gz"))
588 (sha256
589 (base32
fa964e96 590 "1l1ai9g1z11ja7mvnfl5mj346r13jyckbg9qlw6c2izglidkbjv6"))))
1ed6d5bc 591 (build-system perl-build-system)
9aba9b12 592 (home-page "https://metacpan.org/release/XML-SAX-Base")
1ed6d5bc
EB
593 (synopsis "Base class for SAX Drivers and Filters")
594 (description "This module has a very simple task - to be a base class for
595PerlSAX drivers and filters. It's default behaviour is to pass the input
596directly to the output unchanged. It can be useful to use this module as a
597base class so you don't have to, for example, implement the characters()
598callback.")
2f3108ad 599 (license license:perl-license)))
1ed6d5bc 600
535dc6cf
AE
601(define-public perl-xml-simple
602 (package
603 (name "perl-xml-simple")
fa3fff43 604 (version "2.25")
535dc6cf
AE
605 (source (origin
606 (method url-fetch)
607 (uri (string-append
608 "mirror://cpan/authors/id/G/GR/GRANTM/XML-Simple-"
609 version ".tar.gz"))
610 (sha256
611 (base32
fa3fff43 612 "1y6vh328zrh085d40852v4ij2l4g0amxykswxd1nfhd2pspds7sk"))))
535dc6cf 613 (build-system perl-build-system)
27ef7f45 614 (propagated-inputs
e831256f
EF
615 `(("perl-xml-parser" ,perl-xml-parser)
616 ("perl-xml-sax" ,perl-xml-sax)))
2f3108ad 617 (license license:perl-license)
535dc6cf
AE
618 (synopsis "Perl module for easy reading/writing of XML files")
619 (description
620 "The XML::Simple module provides a simple API layer on top of an
621underlying XML parsing module (either XML::Parser or one of the SAX2
622parser modules).")
9aba9b12 623 (home-page "https://metacpan.org/release/XML-Simple")))
535dc6cf 624
a2e520af
AE
625(define-public perl-xml-regexp
626 (package
627 (name "perl-xml-regexp")
628 (version "0.04")
629 (source (origin
630 (method url-fetch)
631 (uri (string-append
632 "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-RegExp-"
633 version ".tar.gz"))
634 (sha256
635 (base32
636 "0m7wj00a2kik7wj0azhs1zagwazqh3hlz4255n75q21nc04r06fz"))))
637 (build-system perl-build-system)
638 (inputs
639 `(("perl-xml-parser" ,perl-xml-parser)))
2f3108ad 640 (license license:perl-license)
a2e520af
AE
641 (synopsis "Perl regular expressions for XML tokens")
642 (description
643 "XML::RegExp contains regular expressions for the following XML tokens:
644BaseChar, Ideographic, Letter, Digit, Extender, CombiningChar, NameChar,
645EntityRef, CharRef, Reference, Name, NmToken, and AttValue.")
9aba9b12 646 (home-page "https://metacpan.org/release/XML-RegExp")))
a2e520af 647
ad871fc6
AE
648(define-public perl-xml-dom
649 (package
650 (name "perl-xml-dom")
4e5465f2 651 (version "1.46")
ad871fc6
AE
652 (source (origin
653 (method url-fetch)
654 (uri (string-append
655 "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-DOM-"
656 version ".tar.gz"))
657 (sha256
658 (base32
4e5465f2 659 "0phpkc4li43m2g44hdcvyxzy9pymqwlqhh5hwp2xc0cv8l5lp8lb"))))
ad871fc6 660 (build-system perl-build-system)
f7faff88
AE
661 (propagated-inputs
662 `(("perl-libwww" ,perl-libwww)
ad871fc6 663 ("perl-libxml" ,perl-libxml)
4e5465f2 664 ("perl-xml-parser" ,perl-xml-parser)
ad871fc6 665 ("perl-xml-regexp" ,perl-xml-regexp)))
2f3108ad 666 (license license:perl-license)
ad871fc6
AE
667 (synopsis
668 "Perl module for building DOM Level 1 compliant document structures")
669 (description
670 "This module extends the XML::Parser module by Clark Cooper. The
671XML::Parser module is built on top of XML::Parser::Expat, which is a lower
672level interface to James Clark's expat library. XML::DOM::Parser is derived
673from XML::Parser. It parses XML strings or files and builds a data structure
674that conforms to the API of the Document Object Model.")
9aba9b12 675 (home-page "https://metacpan.org/release/XML-DOM")))
ad871fc6 676
649e1676
RW
677(define-public perl-xml-compile-tester
678 (package
679 (name "perl-xml-compile-tester")
9af5a513 680 (version "0.91")
649e1676
RW
681 (source (origin
682 (method url-fetch)
683 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
684 "XML-Compile-Tester-" version ".tar.gz"))
685 (sha256
686 (base32
9af5a513 687 "1drzwziwi96rfkh48qpw4l225mcbk8ppl2157nj92cslcpwwdk75"))))
649e1676
RW
688 (build-system perl-build-system)
689 (propagated-inputs
690 `(("perl-log-report" ,perl-log-report)
691 ("perl-test-deep" ,perl-test-deep)))
9aba9b12 692 (home-page "https://metacpan.org/release/XML-Compile-Tester")
649e1676
RW
693 (synopsis "XML::Compile related regression testing")
694 (description
695 "The @code{XML::Compile} module suite has extensive regression testing.
696This module provide functions which simplify writing tests for
697@code{XML::Compile} related distributions.")
2f3108ad 698 (license license:perl-license)))
649e1676 699
b494a5f1
RW
700(define-public perl-xml-compile
701 (package
702 (name "perl-xml-compile")
78ca483a 703 (version "1.63")
b494a5f1
RW
704 (source (origin
705 (method url-fetch)
706 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
707 "XML-Compile-" version ".tar.gz"))
708 (sha256
709 (base32
78ca483a 710 "0psr5pwsk2biz2bfkigmx04v2rfhs6ybwcfmcrrg7gvh9bpp222b"))))
b494a5f1
RW
711 (build-system perl-build-system)
712 (propagated-inputs
174988fa
TGR
713 `(("perl-carp" ,perl-carp)
714 ("perl-log-report" ,perl-log-report)
b494a5f1
RW
715 ("perl-xml-compile-tester" ,perl-xml-compile-tester)
716 ("perl-xml-libxml" ,perl-xml-libxml)
174988fa
TGR
717 ("perl-scalar-list-utils" ,perl-scalar-list-utils)
718 ("perl-test-deep" ,perl-test-deep)
719 ("perl-types-serialiser" ,perl-types-serialiser)))
9aba9b12 720 (home-page "https://metacpan.org/release/XML-Compile")
b494a5f1
RW
721 (synopsis "Compilation-based XML processing")
722 (description
723 "@code{XML::Compile} can be used to translate a Perl data-structure into
724XML or XML into a Perl data-structure, both directions under rigid control by
725a schema.")
2f3108ad 726 (license license:perl-license)))
b494a5f1 727
c1d41b5d
RW
728(define-public perl-xml-compile-cache
729 (package
730 (name "perl-xml-compile-cache")
503a0059 731 (version "1.06")
c1d41b5d
RW
732 (source (origin
733 (method url-fetch)
734 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
735 "XML-Compile-Cache-" version ".tar.gz"))
736 (sha256
737 (base32
503a0059 738 "181qf1s7ymgi7saph3cf9p6dbxkxyh1ja23na4dchhi8v5mi66sr"))))
c1d41b5d
RW
739 (build-system perl-build-system)
740 (propagated-inputs
741 `(("perl-log-report" ,perl-log-report)
742 ("perl-xml-compile" ,perl-xml-compile)
743 ("perl-xml-compile-tester" ,perl-xml-compile-tester)
744 ("perl-xml-libxml-simple" ,perl-xml-libxml-simple)))
9aba9b12 745 (home-page "https://metacpan.org/release/XML-Compile-Cache")
c1d41b5d
RW
746 (synopsis "Cache compiled XML translators")
747 (description
748 "This package provides methods to cache compiled XML translators.")
2f3108ad 749 (license license:perl-license)))
c1d41b5d 750
baeab9b8
RW
751(define-public perl-xml-compile-soap
752 (package
753 (name "perl-xml-compile-soap")
1d9b041c 754 (version "3.24")
baeab9b8
RW
755 (source (origin
756 (method url-fetch)
757 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
758 "XML-Compile-SOAP-" version ".tar.gz"))
759 (sha256
760 (base32
1d9b041c 761 "0pkcph562l2ij7rlwlvm58v6y062qsbydfpaz2qnph2ixqy0xfd1"))))
baeab9b8
RW
762 (build-system perl-build-system)
763 (propagated-inputs
764 `(("perl-file-slurp-tiny" ,perl-file-slurp-tiny)
765 ("perl-libwww" ,perl-libwww)
766 ("perl-log-report" ,perl-log-report)
767 ("perl-xml-compile" ,perl-xml-compile)
768 ("perl-xml-compile-cache" ,perl-xml-compile-cache)
769 ("perl-xml-compile-tester" ,perl-xml-compile-tester)))
9aba9b12 770 (home-page "https://metacpan.org/release/XML-Compile-SOAP")
baeab9b8
RW
771 (synopsis "Base-class for SOAP implementations")
772 (description
773 "This module provides a class to handle the SOAP protocol. The first
774implementation is @url{SOAP1.1,
775http://www.w3.org/TR/2000/NOTE-SOAP-20000508/}, which is still most often
776used.")
2f3108ad 777 (license license:perl-license)))
baeab9b8 778
6a914948
RW
779(define-public perl-xml-compile-wsdl11
780 (package
781 (name "perl-xml-compile-wsdl11")
4b4a4f5c 782 (version "3.07")
6a914948
RW
783 (source (origin
784 (method url-fetch)
785 (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
786 "XML-Compile-WSDL11-" version ".tar.gz"))
787 (sha256
788 (base32
4b4a4f5c 789 "09ayl442hzvn97q4ghn5rz4r82dm9w3l69hixhb29h9xq9ysi7ba"))))
6a914948
RW
790 (build-system perl-build-system)
791 (propagated-inputs
792 `(("perl-log-report" ,perl-log-report)
793 ("perl-xml-compile" ,perl-xml-compile)
794 ("perl-xml-compile-cache" ,perl-xml-compile-cache)
795 ("perl-xml-compile-soap" ,perl-xml-compile-soap)))
9aba9b12 796 (home-page "https://metacpan.org/release/XML-Compile-WSDL11")
6a914948
RW
797 (synopsis "Create SOAP messages defined by WSDL 1.1")
798 (description
799 "This module understands WSDL version 1.1. A WSDL file defines a set of
800messages to be send and received over SOAP connections. This involves
801encoding of the message to be send into XML, sending the message to the
802server, collect the answer, and finally decoding the XML to Perl.")
2f3108ad 803 (license license:perl-license)))
6a914948 804
246455c2 805(define-public perl-xml-feed
806 (package
807 (name "perl-xml-feed")
8dfdd746 808 (version "0.59")
246455c2 809 (source (origin
810 (method url-fetch)
811 (uri (string-append "mirror://cpan/authors/id/D/DA/DAVECROSS/"
812 "XML-Feed-" version ".tar.gz"))
813 (sha256
814 (base32
8dfdd746 815 "1z1a88bpy64j42bbyl8acbfl3dn9iaz47gx6clkgy5sbn4kr0kgk"))))
246455c2 816 (build-system perl-build-system)
817 (arguments
ddf72f50 818 `(#:tests? #f)) ; tests require internet connection
246455c2 819 (native-inputs
820 `(("perl-module-build" ,perl-module-build)
821 ("perl-uri" ,perl-uri)
822 ("perl-class-data-inheritable" ,perl-class-data-inheritable)))
823 (inputs
824 `(("perl-class-errorhandler" ,perl-class-errorhandler)
825 ("perl-datetime" ,perl-datetime)
826 ("perl-datetime-format-mail" ,perl-datetime-format-mail)
827 ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
828 ("perl-feed-find" ,perl-feed-find)
829 ("perl-html-parser" ,perl-html-parser)
830 ("perl-libwww-perl" ,perl-libwww)
831 ("perl-module-pluggable" ,perl-module-pluggable)
832 ("perl-uri-fetch" ,perl-uri-fetch)
833 ("perl-xml-atom" ,perl-xml-atom)
834 ("perl-xml-libxml" ,perl-xml-libxml)
835 ("perl-xml-rss" ,perl-xml-rss)))
9aba9b12 836 (home-page "https://metacpan.org/release/XML-Feed")
246455c2 837 (synopsis "XML Syndication Feed Support")
838 (description "@code{XML::Feed} is a syndication feed parser for both RSS and
839Atom feeds. It also implements feed auto-discovery for finding feeds, given a URI.
840@code{XML::Feed} supports the following syndication feed formats:
841RSS 0.91, RSS 1.0, RSS 2.0, Atom")
2f3108ad 842 (license license:perl-license)))
246455c2 843
0c1bab36 844(define-public perl-xml-xpath
845 (package
846 (name "perl-xml-xpath")
fc82538c 847 (version "1.44")
0c1bab36 848 (source (origin
849 (method url-fetch)
850 (uri (string-append "mirror://cpan/authors/id/M/MA/MANWAR/"
851 "XML-XPath-" version ".tar.gz"))
852 (sha256
853 (base32
fc82538c 854 "03yxj7w5a43ibbpiqsvb3lswj2b71dydsx4rs2fw0p8n0l3i3j8w"))))
0c1bab36 855 (build-system perl-build-system)
856 (native-inputs
857 `(("perl-path-tiny" ,perl-path-tiny)))
9332d706 858 (propagated-inputs
0c1bab36 859 `(("perl-xml-parser" ,perl-xml-parser)))
9aba9b12 860 (home-page "https://metacpan.org/release/XML-XPath")
0c1bab36 861 (synopsis "Parse and evaluate XPath statements")
862 (description
863 "This module aims to comply exactly to the @url{XPath specification,
864https://www.w3.org/TR/xpath} and yet allow extensions to be added in
865the form of functions.")
2f3108ad 866 (license license:perl-license)))
0c1bab36 867
6ce212b8
RW
868(define-public pugixml
869 (package
870 (name "pugixml")
bc134c77 871 (version "1.10")
6ce212b8
RW
872 (source
873 (origin
874 (method url-fetch)
0562a81e
EF
875 (uri (string-append "https://github.com/zeux/pugixml/releases/download/v"
876 version "/pugixml-" version ".tar.gz"))
6ce212b8 877 (sha256
bc134c77 878 (base32 "02l7nllhydggf7s64d2x84kckbmwag4lsn28sc82953hnkxrkwsm"))))
6ce212b8
RW
879 (build-system cmake-build-system)
880 (arguments
7fda7b8f 881 `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")
bc134c77 882 #:tests? #f)) ; no tests
7fda7b8f
MB
883 (native-inputs
884 `(("pkg-config" ,pkg-config)))
28655227 885 (home-page "https://pugixml.org")
6ce212b8
RW
886 (synopsis "Light-weight, simple and fast XML parser for C++ with XPath support")
887 (description
888 "pugixml is a C++ XML processing library, which consists of a DOM-like
889interface with rich traversal/modification capabilities, a fast XML parser
890which constructs the DOM tree from an XML file/buffer, and an XPath 1.0
891implementation for complex data-driven tree queries. Full Unicode support is
892also available, with Unicode interface variants and conversions between
893different Unicode encodings which happen automatically during
894parsing/saving.")
895 (license license:expat)))
896
c2efe1ae
MB
897(define-public python-pyxb
898 (package
899 (name "python-pyxb")
4ef6cfef 900 (version "1.2.6")
c2efe1ae
MB
901 (source (origin
902 (method url-fetch)
903 (uri (pypi-uri "PyXB" version))
904 (sha256
905 (base32
4ef6cfef 906 "1d17pyixbfvjyi2lb0cfp0ch8wwdf44mmg3r5pwqhyyqs66z601a"))))
c2efe1ae
MB
907 (build-system python-build-system)
908 (home-page "http://pyxb.sourceforge.net/")
909 (synopsis "Python XML Schema Bindings")
910 (description
911 "PyXB (\"pixbee\") is a pure Python package that generates Python source
912code for classes that correspond to data structures defined by XMLSchema.")
913 (license (list license:asl2.0 ; Most files.
914 license:expat ; pyxb/utils/six.py
915 license:gpl2 ; bundled jquery in doc is dual MIT/GPL2
916 license:psfl)))) ; pyxb/utils/activestate.py
917
918(define-public python2-pyxb
919 (package-with-python2 python-pyxb))
920
37f9ff63
AE
921(define-public xmlto
922 (package
923 (name "xmlto")
877a6466 924 (version "0.0.28")
37f9ff63
AE
925 (source
926 (origin
927 (method url-fetch)
7bc19c92
LF
928 ;; The old source on fedorahosted.org is offline permanently:
929 ;; <https://bugs.gnu.org/25989>
930 (uri (string-append "mirror://debian/pool/main/x/xmlto/"
931 "xmlto_" version ".orig.tar.bz2"))
932 (file-name (string-append name "-" version ".tar.bz2"))
37f9ff63
AE
933 (sha256
934 (base32
877a6466 935 "0xhj8b2pwp4vhl9y16v3dpxpsakkflfamr191mprzsspg4xdyc0i"))))
37f9ff63 936 (build-system gnu-build-system)
ae0c1202
LC
937 (arguments
938 ;; Make sure the reference to util-linux's 'getopt' is kept in 'xmlto'.
939 '(#:configure-flags (list (string-append "GETOPT="
940 (assoc-ref %build-inputs
941 "util-linux")
942 "/bin/getopt"))))
14755541
MO
943 (native-inputs
944 `(("util-linux" ,util-linux)))
37f9ff63 945 (inputs
ae0c1202
LC
946 `(("util-linux" ,util-linux) ; for 'getopt'
947 ("libxml2" ,libxml2) ; for 'xmllint'
948 ("libxslt" ,libxslt))) ; for 'xsltproc'
37f9ff63
AE
949 (home-page "http://cyberelk.net/tim/software/xmlto/")
950 (synopsis "Front-end to an XSL toolchain")
951 (description
952 "Xmlto is a front-end to an XSL toolchain. It chooses an appropriate
953stylesheet for the conversion you want and applies it using an external
954XSL-T processor. It also performs any necessary post-processing.")
955 (license license:gpl2+)))
0899144f
AE
956
957(define-public xmlsec
958 (package
959 (name "xmlsec")
92e0fce8 960 (version "1.2.29")
0899144f 961 (source (origin
50f5aa4b
TGR
962 (method url-fetch)
963 (uri (string-append "https://www.aleksey.com/xmlsec/download/"
964 "xmlsec1-" version ".tar.gz"))
965 (sha256
966 (base32
92e0fce8 967 "1arr50fvma01q2ix7g4k2c7lb8qcqjajn7wdc07r66b0jsxdxldi"))))
0899144f 968 (build-system gnu-build-system)
50f5aa4b 969 (propagated-inputs ; according to xmlsec1.pc
0899144f
AE
970 `(("libxml2" ,libxml2)
971 ("libxslt" ,libxslt)))
972 (inputs
973 `(("gnutls" ,gnutls)
974 ("libgcrypt" ,libgcrypt)
975 ("libltdl" ,libltdl)))
e4aab734
RW
976 (native-inputs
977 `(("pkg-config" ,pkg-config)))
a5b570b4 978 (home-page "https://www.aleksey.com/xmlsec/")
0899144f
AE
979 (synopsis "XML Security Library")
980 (description
981 "The XML Security Library is a C library based on Libxml2. It
982supports XML security standards such as XML Signature, XML Encryption,
983Canonical XML (part of Libxml2) and Exclusive Canonical XML (part of
984Libxml2).")
985 (license (license:x11-style "file://COPYING"
986 "See 'COPYING' in the distribution."))))
96f8d991 987
b4c9a317
MB
988(define-public xmlsec-nss
989 (package
990 (inherit xmlsec)
991 (name "xmlsec-nss")
3825b444
TGR
992 (native-inputs
993 ;; For tests.
994 `(("nss:bin" ,nss "bin") ; for certutil
995 ,@(package-native-inputs xmlsec)))
b4c9a317
MB
996 (inputs
997 `(("nss" ,nss)
998 ("libltdl" ,libltdl)))
999 (synopsis "XML Security Library (using NSS instead of GnuTLS)")))
1000
96f8d991
RW
1001(define-public minixml
1002 (package
1003 (name "minixml")
5b59c775 1004 (version "2.12")
96f8d991 1005 (source (origin
ee4e439a 1006 (method url-fetch)
eba9ecd4 1007 (uri (string-append "https://github.com/michaelrsweet/mxml/"
b7cbcee5 1008 "releases/download/v" version
eba9ecd4 1009 "/mxml-" version ".tar.gz"))
96f8d991
RW
1010 (sha256
1011 (base32
ee4e439a 1012 "0kq3wiycb40dcyswvajrqb1n5ffm5xcnsfxxaml92vhpl6x57yvb"))))
96f8d991
RW
1013 (build-system gnu-build-system)
1014 (arguments
5b59c775
TGR
1015 `(#:configure-flags
1016 (list (string-append "LDFLAGS=-Wl,-rpath="
1017 (assoc-ref %outputs "out") "/lib"))
b7cbcee5 1018 #:tests? #f)) ; tests are run during build
eba9ecd4 1019 (home-page "https://michaelrsweet.github.io/mxml")
96f8d991
RW
1020 (synopsis "Small XML parsing library")
1021 (description
1022 "Mini-XML is a small C library to read and write XML files and strings in
1023UTF-8 and UTF-16 encoding.")
1024 ;; LGPL 2.0+ with additional exceptions for static linking
1025 (license license:lgpl2.0+)))
33ae9107
DT
1026
1027;; TinyXML is an unmaintained piece of software, so the patches and build
1028;; system massaging have no upstream potential.
1029(define-public tinyxml
1030 (package
1031 (name "tinyxml")
1032 (version "2.6.2")
1033 (source (origin
1034 (method url-fetch)
de67e922
LF
1035 (uri (string-append "mirror://sourceforge/tinyxml/tinyxml/"
1036 version "/tinyxml_"
33ae9107
DT
1037 (string-join (string-split version #\.) "_")
1038 ".tar.gz"))
671249b9 1039 (file-name (string-append name "-" version ".tar.gz"))
33ae9107
DT
1040 (sha256
1041 (base32
1042 "14smciid19lvkxqznfig77jxn5s4iq3jpb47vh5a6zcaqp7gvg8m"))
fc1adab1 1043 (patches (search-patches "tinyxml-use-stl.patch"))))
33ae9107
DT
1044 (build-system gnu-build-system)
1045 ;; This library is missing *a lot* of the steps to make it usable, so we
1046 ;; have to add them here, like every other distro must do.
1047 (arguments
1048 `(#:phases
1049 (modify-phases %standard-phases
1050 (delete 'configure)
1051 (add-after 'build 'build-shared-library
1052 (lambda _
0efb6452
EF
1053 (invoke "g++" "-Wall" "-O2" "-shared" "-fpic"
1054 "tinyxml.cpp" "tinyxmlerror.cpp"
1055 "tinyxmlparser.cpp" "tinystr.cpp"
1056 "-o" "libtinyxml.so")))
33ae9107 1057 (replace 'check
0efb6452 1058 (lambda _ (invoke "./xmltest")))
33ae9107
DT
1059 (replace 'install
1060 (lambda* (#:key outputs #:allow-other-keys)
1061 (let* ((out (assoc-ref outputs "out"))
1062 (include (string-append out "/include"))
1063 (lib (string-append out "/lib"))
1064 (pkgconfig (string-append out "/lib/pkgconfig"))
1065 (doc (string-append out "/share/doc")))
1066 ;; Install libs and headers.
1067 (install-file "libtinyxml.so" lib)
1068 (install-file "tinystr.h" include)
1069 (install-file "tinyxml.h" include)
1070 ;; Generate and install pkg-config file.
1071 (mkdir-p pkgconfig)
1072 ;; Software such as Kodi expect this file to be present, but
1073 ;; it's not provided in the source code.
1074 (call-with-output-file (string-append pkgconfig "/tinyxml.pc")
1075 (lambda (port)
1076 (format port "prefix=~a
1077exec_prefix=${prefix}
1078libdir=${exec_prefix}/lib
1079includedir=${prefix}/include
1080
1081Name: TinyXML
1082Description: A simple, small, C++ XML parser
1083Version: ~a
1084Libs: -L${libdir} -ltinyxml
1085Cflags: -I${includedir}
1086"
1087 out ,version)))
1088 ;; Install docs.
1089 (mkdir-p doc)
1090 (copy-recursively "docs" (string-append doc "tinyxml"))
1091 #t))))))
1092 (synopsis "Small XML parser for C++")
1093 (description "TinyXML is a small and simple XML parsing library for the
05077200 1094C++ programming language.")
33ae9107
DT
1095 (home-page "http://www.grinninglizard.com/tinyxml/index.html")
1096 (license license:zlib)))
fe9451c5 1097
931bd7f6
TGR
1098(define-public tinyxml2
1099 (package
1100 (name "tinyxml2")
c83aa292 1101 (version "7.0.1")
931bd7f6
TGR
1102 (source
1103 (origin
4bad4fbd
TGR
1104 (method git-fetch)
1105 (uri (git-reference
1106 (url "https://github.com/leethomason/tinyxml2.git")
1107 (commit version)))
1108 (file-name (git-file-name name version))
931bd7f6 1109 (sha256
c83aa292 1110 (base32 "1sf6sch1kawrna2f9dc8f4xl836acqcddkghzdib0s7dl48m9r7m"))))
931bd7f6 1111 (build-system cmake-build-system)
931bd7f6
TGR
1112 (synopsis "Small XML parser for C++")
1113 (description "TinyXML2 is a small and simple XML parsing library for the
1114C++ programming language.")
1115 (home-page "http://www.grinninglizard.com/tinyxml2/")
1116 (license license:zlib)))
1117
fe9451c5
RG
1118(define-public xmlstarlet
1119 (package
1120 (name "xmlstarlet")
1121 (version "1.6.1")
1122 (source
1123 (origin
1124 (method url-fetch)
1125 (uri (string-append "mirror://sourceforge/xmlstar/xmlstarlet/"
1126 version "/xmlstarlet-" version ".tar.gz"))
1127 (sha256
1128 (base32
1129 "1jp737nvfcf6wyb54fla868yrr39kcbijijmjpyk4lrpyg23in0m"))))
1130 (build-system gnu-build-system)
22ea0235
MB
1131 (arguments
1132 '(#:phases
1133 (modify-phases %standard-phases
1134 (add-before 'check 'drop-failing-tests
1135 (lambda _
1136 ;; FIXME: Why are these tests failing.
1137 (substitute* "Makefile"
1138 (("^examples/schema1\\\\") "\\")
1139 (("^examples/valid1\\\\") "\\"))
1140 #t)))))
fe9451c5
RG
1141 (inputs
1142 `(("libxslt" ,libxslt)
1143 ("libxml2" ,libxml2)))
1144 (home-page "http://xmlstar.sourceforge.net/")
1145 (synopsis "Command line XML toolkit")
1146 (description "XMLStarlet is a set of command line utilities which can be
1147used to transform, query, validate, and edit XML documents. XPath is used to
1148match and extract data, and elements can be added, deleted or modified using
1149XSLT and EXSLT.")
1150 (license license:x11)))
19c33040 1151
767d24e8
SR
1152(define-public html-xml-utils
1153 (package
1154 (name "html-xml-utils")
4fab0da0 1155 (version "7.7")
767d24e8
SR
1156 (source
1157 (origin
1158 (method url-fetch)
1159 (uri (string-append
1160 "https://www.w3.org/Tools/HTML-XML-utils/html-xml-utils-"
1161 version ".tar.gz"))
1162 (sha256
1163 (base32
4fab0da0 1164 "1vwqp5q276j8di9zql3kygf31z2frp2c59yjqlrvvwcvccvkcdwr"))))
767d24e8
SR
1165 (build-system gnu-build-system)
1166 (home-page "https://www.w3.org/Tools/HTML-XML-utils/")
1167 (synopsis "Command line utilities to manipulate HTML and XML files")
1168 (description "HTML-XML-utils provides a number of simple utilities for
1169manipulating and converting HTML and XML files in various ways. The suite
1170consists of the following tools:
1171
1172@itemize
1173 @item @command{asc2xml} convert from @code{UTF-8} to @code{&#nnn;} entities
1174 @item @command{xml2asc} convert from @code{&#nnn;} entities to @code{UTF-8}
1175 @item @command{hxaddid} add IDs to selected elements
1176 @item @command{hxcite} replace bibliographic references by hyperlinks
1177 @item @command{hxcite} mkbib - expand references and create bibliography
1178 @item @command{hxclean} apply heuristics to correct an HTML file
1179 @item @command{hxcopy} copy an HTML file while preserving relative links
1180 @item @command{hxcount} count elements and attributes in HTML or XML files
1181 @item @command{hxextract} extract selected elements
1182 @item @command{hxincl} expand included HTML or XML files
1183 @item @command{hxindex} create an alphabetically sorted index
1184 @item @command{hxmkbib} create bibliography from a template
1185 @item @command{hxmultitoc} create a table of contents for a set of HTML files
1186 @item @command{hxname2id} move some @code{ID=} or @code{NAME=} from A
1187elements to their parents
1188 @item @command{hxnormalize} pretty-print an HTML file
1189 @item @command{hxnsxml} convert output of hxxmlns back to normal XML
1190 @item @command{hxnum} number section headings in an HTML file
1191 @item @command{hxpipe} convert XML to a format easier to parse with Perl or AWK
1192 @item @command{hxprintlinks} number links and add table of URLs at end of an HTML file
1193 @item @command{hxprune} remove marked elements from an HTML file
1194 @item @command{hxref} generate cross-references
1195 @item @command{hxselect} extract elements that match a (CSS) selector
1196 @item @command{hxtoc} insert a table of contents in an HTML file
1197 @item @command{hxuncdata} replace CDATA sections by character entities
1198 @item @command{hxunent} replace HTML predefined character entities to @code{UTF-8}
1199 @item @command{hxunpipe} convert output of pipe back to XML format
1200 @item @command{hxunxmlns} replace \"global names\" by XML Namespace prefixes
1201 @item @command{hxwls} list links in an HTML file
1202 @item @command{hxxmlns} replace XML Namespace prefixes by \"global names\"
1203@end itemize
1204")
1205 (license license:expat)))
1206
19c33040
JN
1207(define-public xlsx2csv
1208 (package
1209 (name "xlsx2csv")
3255fc3b 1210 (version "0.7.4")
3047c7ba
TGR
1211 (source
1212 (origin
1213 (method git-fetch)
1214 (uri (git-reference
1215 (url "https://github.com/dilshod/xlsx2csv.git")
1216 (commit version)))
1217 (file-name (git-file-name name version))
1218 (sha256
1219 (base32 "168dm6p7w6pvgd87yb9hcxv9y0liv6mxgril202nfva68cp8y939"))))
19c33040
JN
1220 (build-system python-build-system)
1221 (arguments
3255fc3b 1222 `(#:python ,python-2 ; use python-2 for the test script
19c33040
JN
1223 #:phases
1224 (modify-phases %standard-phases
1225 (replace 'check
1226 (lambda _
1227 (substitute* "test/run"
3255fc3b 1228 ;; Run tests with `python' only.
19c33040 1229 (("^(PYTHON_VERSIONS = ).*" all m) (string-append m "['']")))
aa6f87a2 1230 (invoke "test/run"))))))
19c33040
JN
1231 (home-page "https://github.com/dilshod/xlsx2csv")
1232 (synopsis "XLSX to CSV converter")
1233 (description
1234 "Xlsx2csv is a program to convert Microsoft Excel 2007 XML (XLSX and
1235XLSM) format spreadsheets into plaintext @dfn{comma separated values} (CSV)
1236files. It is designed to be fast and to handle large input files.")
1237 (license license:gpl2+)))
d2b51c08 1238
1239(define-public python-defusedxml
1240 (package
1241 (name "python-defusedxml")
4ee948e3 1242 (version "0.6.0")
d2b51c08 1243 (source
1244 (origin
1245 (method url-fetch)
1246 (uri (pypi-uri "defusedxml" version))
1247 (sha256
1248 (base32
4ee948e3 1249 "1xbp8fivl3wlbyg2jrvs4lalaqv1xp9a9f29p75wdx2s2d6h717n"))))
d2b51c08 1250 (build-system python-build-system)
1251 (home-page "https://bitbucket.org/tiran/defusedxml")
1252 (synopsis "XML bomb protection for Python stdlib modules")
1253 (description
1254 "Defusedxml provides XML bomb protection for Python stdlib modules.")
1255 (license license:psfl)))
1256
1257(define-public python2-defusedxml
1258 (package-with-python2 python-defusedxml))
ca8f3f9a 1259
623fb4d1
AP
1260(define-public freexl
1261 (package
1262 (name "freexl")
5275f69e 1263 (version "1.0.5")
623fb4d1
AP
1264 (source (origin
1265 (method url-fetch)
1266 (uri (string-append "http://www.gaia-gis.it/gaia-sins/"
1267 name "-" version ".tar.gz"))
1268 (sha256
1269 (base32
5275f69e 1270 "03bmwq6hngmzwpqpb7c2amqlspz4q69iv96nlf0f5c0qs98b3j9x"))))
623fb4d1
AP
1271 (build-system gnu-build-system)
1272 (home-page "https://www.gaia-gis.it/fossil/freexl/index")
1273 (synopsis "Read Excel files")
1274 (description
1275 "FreeXL is a C library to extract valid data from within an Excel (.xls)
1276spreadsheet.")
1277 ;; Any of these licenses may be picked.
1278 (license (list license:gpl2+
1279 license:lgpl2.1+
1280 license:mpl1.1))))
d00d6cea
RW
1281
1282(define-public xerces-c
1283 (package
1284 (name "xerces-c")
1285 (version "3.1.4")
1286 (source (origin
1287 (method url-fetch)
1288 (uri (string-append "mirror://apache/xerces/c/3/sources/"
1289 "xerces-c-" version ".tar.xz"))
1290 (sha256
1291 (base32
1292 "0hb29c0smqlpxj0zdm09s983z5jx37szlliccnvgh0qq91wwqwwr"))))
1293 (build-system gnu-build-system)
1294 (arguments
1295 (let ((system (or (%current-target-system)
1296 (%current-system))))
1297 (if (string-prefix? "x86_64" system)
1298 '()
1299 '(#:configure-flags '("--disable-sse2")))))
1300 (native-inputs
1301 `(("perl" ,perl)))
1302 (home-page "http://xerces.apache.org/xerces-c/")
1303 (synopsis "Validating XML parser library for C++")
1304 (description "Xerces-C++ is a validating XML parser written in a portable
1305subset of C++. Xerces-C++ makes it easy to give your application the ability
1306to read and write XML data. A shared library is provided for parsing,
1307generating, manipulating, and validating XML documents using the DOM, SAX, and
1308SAX2 APIs.")
1309 (license license:asl2.0)))
77d7b57c
RW
1310
1311(define-public java-simple-xml
1312 (package
1313 (name "java-simple-xml")
1314 (version "2.7.1")
1315 (source (origin
1316 (method url-fetch)
1317 (uri (string-append "mirror://sourceforge/simple/simple-xml-"
1318 version ".zip"))
1319 (sha256
1320 (base32
3c274149
GB
1321 "0w19k1awslmihpwsxwjbg89hv0vjhk4k3i0vrfchy3mqknd988y5"))
1322 (patches (search-patches "java-simple-xml-fix-tests.patch"))))
77d7b57c
RW
1323 (build-system ant-build-system)
1324 (arguments
1325 `(#:build-target "build"
1326 #:test-target "test"
1327 #:phases
1328 (modify-phases %standard-phases
1329 (replace 'install (install-jars "jar")))))
1330 (native-inputs
1331 `(("unzip" ,unzip)))
1332 (home-page "http://simple.sourceforge.net/")
1333 (synopsis "XML serialization framework for Java")
1334 (description "Simple is a high performance XML serialization and
1335configuration framework for Java. Its goal is to provide an XML framework
1336that enables rapid development of XML configuration and communication systems.
1337This framework aids the development of XML systems with minimal effort and
1338reduced errors. It offers full object serialization and deserialization,
1339maintaining each reference encountered.")
1340 (license license:asl2.0)))
3b695802
P
1341
1342(define-public perl-xml-xpathengine
1343 (package
1344 (name "perl-xml-xpathengine")
1345 (version "0.14")
1346 (source (origin
1347 (method url-fetch)
1348 (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/"
1349 "XML-XPathEngine-" version ".tar.gz"))
1350 (sha256
1351 (base32
1352 "0r72na14bmsxfd16s9nlza155amqww0k8wsa9x2a3sqbpp5ppznj"))))
1353 (build-system perl-build-system)
9aba9b12 1354 (home-page "https://metacpan.org/release/XML-XPathEngine")
3b695802
P
1355 (synopsis "Re-usable XPath engine for DOM-like trees")
1356 (description
1357 "This module provides an XPath engine, that can be re-used by other
1358modules/classes that implement trees.
1359
2847df6b 1360In order to use the XPath engine, nodes in the user module need to mimic DOM
3b695802
P
1361nodes. The degree of similitude between the user tree and a DOM dictates how
1362much of the XPath features can be used. A module implementing all of the DOM
1363should be able to use this module very easily (you might need to add the
1364@code{cmp} method on nodes in order to get ordered result sets).")
1365 (license license:perl-license)))
9e1c3581
P
1366
1367(define-public perl-tree-xpathengine
1368 (package
1369 (name "perl-tree-xpathengine")
1370 (version "0.05")
1371 (source (origin
1372 (method url-fetch)
1373 (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/"
1374 "Tree-XPathEngine-" version ".tar.gz"))
1375 (sha256
1376 (base32
1377 "1vbbw8wxm79r3xbra8narw1dqvm34510q67wbmg2zmj6zd1k06r9"))))
1378 (build-system perl-build-system)
9aba9b12 1379 (home-page "https://metacpan.org/release/Tree-XPathEngine")
9e1c3581
P
1380 (synopsis "Re-usable XPath engine")
1381 (description
1382 "This module provides an XPath engine, that can be re-used by other
1383module/classes that implement trees. It is designed to be compatible with
1384@code{Class::XPath}, ie it passes its tests if you replace @code{Class::XPath}
1385by @code{Tree::XPathEngine}.")
1386 (license license:perl-license)))
b7c59195
P
1387
1388(define-public perl-xml-filter-buffertext
1389 (package
1390 (name "perl-xml-filter-buffertext")
1391 (version "1.01")
1392 (source
1393 (origin
1394 (method url-fetch)
1395 (uri (string-append "mirror://cpan/authors/id/R/RB/RBERJON/"
1396 "XML-Filter-BufferText-" version ".tar.gz"))
1397 (sha256
1398 (base32
1399 "0p5785c1dsk6kdp505vapb5h54k8krrz8699hpgm9igf7dni5llg"))))
1400 (build-system perl-build-system)
1401 (propagated-inputs
1402 `(("perl-xml-sax-base" ,perl-xml-sax-base)))
9aba9b12 1403 (home-page "https://metacpan.org/release/XML-Filter-BufferText")
b7c59195
P
1404 (synopsis "Filter to put all characters() in one event")
1405 (description "This is a very simple filter. One common cause of
1406grief (and programmer error) is that XML parsers aren't required to provide
1407character events in one chunk. They can, but are not forced to, and most
1408don't. This filter does the trivial but oft-repeated task of putting all
1409characters into a single event.")
1410 (license license:perl-license)))
33b592ee
P
1411
1412(define-public perl-xml-sax-writer
1413 (package
1414 (name "perl-xml-sax-writer")
1415 (version "0.57")
1416 (source (origin
1417 (method url-fetch)
1418 (uri (string-append
1419 "mirror://cpan/authors/id/P/PE/PERIGRIN/"
1420 "XML-SAX-Writer-" version ".tar.gz"))
1421 (sha256
1422 (base32
1423 "1w1cd1ybxdvhmnxdlkywi3x5ka3g4md42kyynksjc09vyizd0q9x"))))
1424 (build-system perl-build-system)
1425 (propagated-inputs
1426 `(("perl-libxml" ,perl-libxml)
1427 ("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext)
c695fb76 1428 ("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
33b592ee 1429 ("perl-xml-sax-base" ,perl-xml-sax-base)))
9aba9b12 1430 (home-page "https://metacpan.org/release/XML-SAX-Writer")
33b592ee
P
1431 (synopsis "SAX2 XML Writer")
1432 (description
1433 "This is an XML writer that understands SAX2. It is based on
1434@code{XML::Handler::YAWriter}.")
1435 (license license:perl-license)))
9e88b210
P
1436
1437(define-public perl-xml-handler-yawriter
1438 (package
1439 (name "perl-xml-handler-yawriter")
1440 (version "0.23")
1441 (source
1442 (origin
1443 (method url-fetch)
1444 (uri (string-append "mirror://cpan/authors/id/K/KR/KRAEHE/"
1445 "XML-Handler-YAWriter-" version ".tar.gz"))
1446 (sha256
1447 (base32
1448 "11d45a1sz862va9rry3p2m77pwvq3kpsvgwhc5ramh9mbszbnk77"))))
1449 (build-system perl-build-system)
1450 (propagated-inputs
1451 `(("perl-libxml" ,perl-libxml)))
9aba9b12 1452 (home-page "https://metacpan.org/release/XML-Handler-YAWriter")
9e88b210
P
1453 (synopsis "Yet another Perl SAX XML Writer")
1454 (description "YAWriter implements Yet Another @code{XML::Handler::Writer}.
1455It provides a flexible escaping technique and pretty printing.")
1456 (license license:perl-license)))
85f225fb
P
1457
1458(define-public perl-xml-twig
1459 (package
1460 (name "perl-xml-twig")
1461 (version "3.52")
1462 (source (origin
1463 (method url-fetch)
1464 (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/"
1465 "XML-Twig-" version ".tar.gz"))
1466 (sha256
1467 (base32
1468 "1bc0hrz4jp6199hi29sdxmb9gyy45whla9hd19yqfasgq8k5ixzy"))))
1469 (build-system perl-build-system)
1470 (inputs
1471 `(("expat" ,expat)))
1472 (propagated-inputs
1473 `(("perl-html-tidy" ,perl-html-tidy)
1474 ("perl-html-tree" ,perl-html-tree)
1475 ("perl-io-captureoutput" ,perl-io-captureoutput)
1476 ("perl-io-string" ,perl-io-string)
1477 ("perl-io-stringy" ,perl-io-stringy)
1478 ("perl-libxml" ,perl-libxml)
1479 ("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext)
1480 ("perl-xml-handler-yawriter" ,perl-xml-handler-yawriter)
1481 ("perl-xml-parser" ,perl-xml-parser)
1482 ("perl-xml-sax-writer" ,perl-xml-sax-writer)
1483 ("perl-xml-simple" ,perl-xml-simple)
1484 ("perl-xml-xpathengine" ,perl-xml-xpathengine)
c695fb76 1485 ("perl-test-pod" ,perl-test-pod)
85f225fb 1486 ("perl-tree-xpathengine" ,perl-tree-xpathengine)))
9aba9b12 1487 (home-page "https://metacpan.org/release/XML-Twig")
85f225fb
P
1488 (synopsis "Perl module for processing huge XML documents in tree mode")
1489 (description "@code{XML::Twig} is an XML transformation module. Its
1490strong points: can be used to process huge documents while still being in tree
1491mode; not bound by DOM or SAX, so it is very perlish and offers a very
1492comprehensive set of methods; simple to use; DWIMs as much as possible.
1493
1494What it doesn't offer: full SAX support (it can export SAX, but only reads
1495XML), full XPath support (unless you use @code{XML::Twig::XPath}), nor DOM
1496support.")
1497 (license license:perl-license)))
1a17ca26
JL
1498
1499;; TODO: Debian builds several jars out of this: jaxp-1.4.jar,
1500;; xml-apis.jar and xml-apis-1.4.01.jar.
1501(define-public java-jaxp
1502 (package
1503 (name "java-jaxp")
1504 (version "1.4.01")
1505 (source
1506 (origin
1507 (method url-fetch)
1508 (uri (string-append "mirror://apache/xerces/xml-commons/source/"
1509 "xml-commons-external-" version "-src.tar.gz"))
1510 (sha256
1511 (base32 "0rhq32a7dl9yik7zx9h0naz2iz068qgcdiayak91wp4wr26xhjyk"))))
1512 (build-system ant-build-system)
1513 (arguments
1514 `(#:jar-name "jaxp.jar"
1515 #:jdk ,icedtea-8
1516 #:source-dir ".."
1517 #:tests? #f)); no tests
1518 (home-page "http://xerces.apache.org/xml-commons/")
1519 (synopsis "Java XML parser and transformer APIs (DOM, SAX, JAXP, TrAX)")
1520 (description "Jaxp from the Apache XML Commons project is used by
1521the Xerces-J XML parser and Xalan-J XSLT processor and specifies these APIs:
1522
1523@itemize
1524@item Document Object Model (DOM)
1525@item Simple API for XML (SAX)
1526@item Java APIs for XML Processing (JAXP)
1527@item Transformation API for XML (TrAX)
1528@item Document Object Model (DOM) Load and Save
1529@item JSR 206 Java API for XML Processing
1530@end itemize")
1531 (license (list license:asl2.0
1532 license:w3c ;; Files under org.w3c
1533 license:public-domain)))) ;; org.xml.sax
9a86ee78
JL
1534
1535(define-public java-apache-xml-commons-resolver
1536 (package
1537 (name "java-apache-xml-commons-resolver")
1538 (version "1.2")
1539 (source
1540 (origin
1541 (method url-fetch)
1542 (uri (string-append "mirror://apache/xerces/xml-commons/"
1543 "xml-commons-resolver-" version ".tar.gz"))
1544 (sha256
1545 (base32 "1zhy4anc3fg9f8y348bj88vmab15aavrg6nf419ifb25asyygnsm"))
1546 (modules '((guix build utils)))
1547 (snippet
1548 '(begin
1549 (for-each delete-file (find-files "." ".*\\.(jar|zip)"))
1550 #t))))
1551 (build-system ant-build-system)
1552 (arguments
1553 `(#:jar-name (string-append "xml-resolver.jar")
1554 #:tests? #f)); no tests
1555 (inputs
1556 `(("java-junit" ,java-junit)))
1557 (home-page "http://xerces.apache.org/xml-commons/")
1558 (synopsis "Catalog-based entity and URI resolution")
1559 (description "The resolver class implements the full semantics of OASIS Technical
1560Resolution 9401:1997 (Amendment 2 to TR 9401) catalogs and the 06 Aug
15612001 Committee Specification of OASIS XML Catalogs.
1562
1563It also includes a framework of classes designed to read catalog files
1564in a number of formats:
1565
1566@itemize
1567@item The plain-text flavor described by TR9401.
1568@item The XCatalog XML format defined by John Cowan
1569@item The XML Catalog format defined by the OASIS Entity Resolution
1570 Technical Committee.
1571@end itemize")
1572 (license license:asl2.0)))
7eae94d8
JL
1573
1574;; Jaxen requires java-dom4j and java-xom that in turn require jaxen.
1575;; This package is a bootstrap version without dependencies on dom4j and xom.
1576(define java-jaxen-bootstrap
1577 (package
1578 (name "java-jaxen-bootstrap")
1579 (version "1.1.6")
1580 (source (origin
1581 (method url-fetch)
1582 ;; No release on github
1583 (uri (string-append "https://repo1.maven.org/maven2/jaxen/jaxen/"
1584 version "/jaxen-" version "-sources.jar"))
1585 (sha256
1586 (base32
1587 "18pa8mks3gfhazmkyil8wsp6j1g1x7rggqxfv4k2mnixkrj5x1kx"))))
1588 (build-system ant-build-system)
1589 (arguments
1590 `(#:jar-name "jaxen.jar"
1591 #:source-dir "src"
1592 #:tests? #f; no tests
1593 #:phases
1594 (modify-phases %standard-phases
1595 (add-before 'build 'remove-dom4j
1596 (lambda _
1597 (delete-file-recursively "src/org/jaxen/dom4j")
1598 (delete-file-recursively "src/org/jaxen/xom")
1599 #t)))))
1600 (inputs
1601 `(("java-jdom" ,java-jdom)))
1602 (home-page "https://github.com/jaxen-xpath/jaxen")
1603 (synopsis "XPath library")
1604 (description "Jaxen is an XPath library written in Java. It is adaptable
1605to many different object models, including DOM, XOM, dom4j, and JDOM. It is
1606also possible to write adapters that treat non-XML trees such as compiled
1607Java byte code or Java beans as XML, thus enabling you to query these trees
1608with XPath too.")
1609 (license license:bsd-3)))
5552080d 1610
be0524f4
JL
1611(define-public java-jaxen
1612 (package
1613 (inherit java-jaxen-bootstrap)
1614 (name "java-jaxen")
1615 (inputs
1616 `(("java-jdom" ,java-jdom)
1617 ("java-xom" ,java-xom)
1618 ("java-dom4j" ,java-dom4j)))))
1619
5552080d
JL
1620(define-public java-xom
1621 (package
1622 (name "java-xom")
1623 (version "127")
1624 (source (origin
eed5e162
TGR
1625 (method git-fetch)
1626 (uri (git-reference
1627 (url "https://github.com/elharo/xom.git")
1628 (commit (string-append "XOM_" version))))
1629 (file-name (git-file-name name version))
5552080d
JL
1630 (sha256
1631 (base32
eed5e162 1632 "1jh6y03g5zzdhsb5jm6ms1xnamr460qmn96y3w6aw0ikfwqlg0bq"))
5552080d
JL
1633 (modules '((guix build utils)))
1634 (snippet
1635 '(begin
1636 (for-each delete-file
1637 (find-files "." "\\.jar$"))
1638 #t))))
1639 (build-system ant-build-system)
1640 (arguments
1641 `(#:jar-name "xom.jar"
1642 #:jdk ,icedtea-8
eed5e162 1643 #:tests? #f ; no tests
5552080d
JL
1644 #:phases
1645 (modify-phases %standard-phases
eed5e162
TGR
1646 (add-after 'unpack 'make-git-checkout-writable
1647 (lambda _
1648 (for-each make-file-writable (find-files "."))
1649 #t))
5552080d
JL
1650 (add-before 'configure 'fix-tagsoup-dep
1651 (lambda _
1652 ;; FIXME: Where is tagsoup source?
1653 (delete-file "src/nu/xom/tools/XHTMLJavaDoc.java")
1654 #t)))))
1655 (inputs
1656 `(("java-jdom" ,java-jdom)
1657 ("java-junit" ,java-junit)
1658 ("java-classpathx-servletapi" ,java-classpathx-servletapi)
1659 ("java-jaxen-bootstrap" ,java-jaxen-bootstrap)
1660 ("java-xerces" ,java-xerces)))
1661 (home-page "https://xom.nu/")
1662 (synopsis "XML Object Model")
1663 (description "XOM is a new XML Object Model for processing XML with Java
1664that strives for correctness and simplicity.")
1665 ;; 2.1 only
1666 (license license:lgpl2.1)))
96f31935
JL
1667
1668(define-public java-xsdlib
1669 (package
1670 (name "java-xsdlib")
1671 (version "2013.2")
1672 (source (origin
1673 (method url-fetch)
1674 (uri (string-append "http://central.maven.org/maven2/com/sun/msv/"
1675 "datatype/xsd/xsdlib/" version "/xsdlib-"
1676 version "-sources.jar"))
1677 (sha256
1678 (base32
1679 "185i48p1xp09wbq03i9zgfl701qa262rq46yf4cajzmk3336kqim"))))
1680 (build-system ant-build-system)
1681 (arguments
1682 `(#:tests? #f; no tests
1683 #:jar-name "xsdlib.jar"
1684 #:jdk ,icedtea-8))
1685 (inputs
1686 `(("java-xerces" ,java-xerces)))
1687 (home-page "http://central.maven.org/maven2/com/sun/msv/datatype/xsd/xsdlib/")
1688 (synopsis "Sun Multi-Schema Validator")
1689 (description "Xsdlib contains an implementation of sun.com.msv, an XML
1690validator.")
1691 (license license:bsd-2)))
82d7d4e1
JL
1692
1693(define-public java-xpp3
1694 (package
1695 (name "java-xpp3")
1696 (version "1.1.4")
1697 (source (origin
1698 (method url-fetch)
1699 (uri (string-append "http://www.extreme.indiana.edu/dist/"
1700 "java-repository/xpp3/distributions/xpp3-"
1701 version "_src.tgz"))
1702 (sha256
1703 (base32
1704 "1b99zrhyij5qwyhilyjdl1ykxvhk902vsvflh6gx4fir8hfvdl5p"))
1705 (modules '((guix build utils)))
1706 (snippet
1707 '(begin ;; Delete bundled jar archives.
1708 (for-each delete-file (find-files "." ".*\\.jar"))
1709 #t))))
1710 (build-system ant-build-system)
1711 (arguments
1712 `(#:tests? #f; no tests
1713 #:build-target "jar"
1714 #:phases
1715 (modify-phases %standard-phases
1716 (replace 'install (install-jars "build")))))
1717 (home-page "http://www.extreme.indiana.edu/xgws/xsoap/xpp/")
1718 (synopsis "Streaming pull XML parser")
1719 (description "Xml Pull Parser (in short XPP) is a streaming pull XML
1720parser and should be used when there is a need to process quickly and
1721efficiently all input elements (for example in SOAP processors). This
1722package is a stable XmlPull parsing engine that is based on ideas from XPP
1723and in particular XPP2 but completely revised and rewritten to take the best
1724advantage of JIT JVMs.")
1725 (license (license:non-copyleft "file://LICENSE.txt"))))
9421f682
JL
1726
1727(define-public java-xmlpull2
1728 (package
1729 (name "java-xmlpull2")
1730 (version "2.1.10")
1731 (source (origin
1732 (method url-fetch)
1733 (uri (string-append "http://www.extreme.indiana.edu/xgws/xsoap/"
1734 "PullParser/PullParser" version ".tgz"))
1735 (sha256
1736 (base32
1737 "1kw9nhyqb7bzhn2zjbwlpi5vp5rzj89amzi3hadw2acyh2dmd0md"))
1738 (modules '((guix build utils)))
1739 (snippet
1740 '(begin ;; Delete bundled jar archives.
1741 (for-each delete-file (find-files "." ".*\\.jar"))
1742 #t))))
1743 (build-system ant-build-system)
1744 (arguments
1745 `(#:tests? #f; no tests
1746 #:build-target "impl"
1747 #:phases
1748 (modify-phases %standard-phases
1749 (replace 'install (install-jars "build/lib")))))
1750 (home-page "http://www.extreme.indiana.edu/xgws/xsoap/xpp/")
1751 (synopsis "Streaming pull XML parser")
1752 (description "Xml Pull Parser (in short XPP) is a streaming pull XML
1753parser and should be used when there is a need to process quickly and
1754efficiently all input elements (for example in SOAP processors). This
1755package is in maintenance mode.")
1756 (license (license:non-copyleft "file:///LICENSE.txt"))))
605c23df
JL
1757
1758(define-public java-dom4j
1759 (package
1760 (name "java-dom4j")
f1afdaf4 1761 (version "2.1.1")
605c23df 1762 (source (origin
9d670526
TGR
1763 (method git-fetch)
1764 (uri (git-reference
1765 (url "https://github.com/dom4j/dom4j.git")
1766 (commit (string-append "version-" version))))
1767 (file-name (git-file-name name version))
605c23df
JL
1768 (sha256
1769 (base32
f1afdaf4 1770 "0q907srj9v4hwicpcrn4slyld5npf2jv7hzchsgrg29q2xmbwkdl"))
605c23df
JL
1771 (modules '((guix build utils)))
1772 (snippet
1773 '(begin ;; Delete bundled jar archives.
1774 (for-each delete-file (find-files "." ".*\\.jar"))
1775 #t))))
1776 (build-system ant-build-system)
1777 (arguments
1778 `(#:jar-name "dom4j.jar"
1779 #:jdk ,icedtea-8
1780 #:source-dir "src/main/java"
1781 ;; FIXME: Requires xalan, but xalan depends on java-cup which has a
1782 ;; dependency on itself through jflex.
1783 #:tests? #f
1784 #:phases
1785 (modify-phases %standard-phases
1786 (add-before 'build 'copy-jaxen-sources
1787 ;; java-jaxen-bootstrap is not enough. These files have a circular
1788 ;; dependency and there is no subset of dom4j that would allow
1789 ;; breaking the circle.
1790 (lambda* (#:key inputs #:allow-other-keys)
1791 (mkdir-p "jaxen-sources")
1792 (with-directory-excursion "jaxen-sources"
1793 (system* "jar" "xf" (assoc-ref inputs "java-jaxen-sources")))
1794 (mkdir-p "src/main/java/org/jaxen/dom4j")
1795 (copy-file "jaxen-sources/org/jaxen/dom4j/DocumentNavigator.java"
1796 "src/main/java/org/jaxen/dom4j/DocumentNavigator.java")
1797 (copy-file "jaxen-sources/org/jaxen/dom4j/Dom4jXPath.java"
1798 "src/main/java/org/jaxen/dom4j/Dom4jXPath.java")
1799 #t))
1800 (add-before 'build 'fix-old-xpp2
1801 (lambda _
1802 ;; This package normally depends on xpp2 2.0, but version 2.1.10
1803 ;; is the only version whose source code is published.
1804 (substitute* "src/main/java/org/dom4j/xpp/ProxyXmlStartTag.java"
1805 (("public void resetStartTag")
1806 "public boolean removeAttributeByRawName(String name) {\n
1807 return false;\n
1808}\n
1809public boolean removeAttributeByName(String name, String name2) {\n
1810 return false;\n
1811}\n\npublic void resetStartTag")
1812 (("Atttribute") "Attribute"))
1813 #t)))))
1814 (inputs
1815 `(("java-jaxen-bootstrap" ,java-jaxen-bootstrap)
1816 ("java-jaxen-sources" ,(package-source java-jaxen-bootstrap))
1817 ("java-xmlpull2" ,java-xmlpull2)
1818 ("java-xpp3" ,java-xpp3)
1819 ("java-xsdlib" ,java-xsdlib)))
1820 (native-inputs
1821 `(("java-testng" ,java-testng)
1822 ("java-xerces" ,java-xerces)))
1823 (home-page "https://dom4j.github.io/")
1824 (synopsis "Flexible XML framework for Java")
1825 (description "Dom4j is a flexible XML framework for Java. DOM4J works
1826with DOM, SAX, XPath, and XSLT. It can parse large XML documents with very
1827low memory footprint.")
1828 ;; some BSD-like 5-clause license
1829 (license (license:non-copyleft "file://LICENSE"))))
3058d8ec
JL
1830
1831(define-public java-kxml2
1832 (package
1833 (name "java-kxml2")
1834 (version "2.4.2")
1835 (source (origin
00fc9389
TGR
1836 (method git-fetch)
1837 (uri (git-reference
1838 (url "https://github.com/stefanhaustein/kxml2.git")
1839 (commit (string-append "v" version))))
1840 (file-name (git-file-name name version))
3058d8ec
JL
1841 (sha256
1842 (base32
00fc9389 1843 "0g6d8c9r9sh3x04sf4wdpgwvhkqvk11k3kq9skx91i60h4vn01hg"))))
3058d8ec
JL
1844 (build-system ant-build-system)
1845 (arguments
1846 `(#:jar-name "kxml2.jar"
1847 #:source-dir "src/main/java"
1848 #:test-include (list "TestWb.java")
1849 ;; Test failure: it was expected to get an XML entity but got the
1850 ;; equivalent Unicode character instead.
1851 #:tests? #f
1852 #:phases
1853 (modify-phases %standard-phases
00fc9389
TGR
1854 (add-after 'unpack 'make-git-checkout-writable
1855 (lambda _
1856 (for-each make-file-writable (find-files "."))
1857 #t))
3058d8ec
JL
1858 (add-before 'build 'copy-resources
1859 (lambda _
aa6f87a2
MW
1860 (copy-recursively "src/main/resources" "build/classes")
1861 #t)))))
3058d8ec
JL
1862 (inputs
1863 `(("java-xpp3" ,java-xpp3)))
1864 (native-inputs
1865 `(("java-junit" ,java-junit)))
1866 (home-page "http://kxml.org")
1867 (synopsis "XML pull parser")
1868 (description "kXML is a small XML pull parser, specially designed for
1869constrained environments such as Applets, Personal Java or devices compliant
1870with the Mobile Information Device Profile (MIDP).")
1871 (license license:expat)))
4c7759f0
JL
1872
1873(define-public java-stax
1874 (package
1875 (name "java-stax")
1876 (version "1.2.0")
1877 (source (origin
1878 (method url-fetch)
1879 (uri (string-append "https://repo1.maven.org/maven2/stax/stax/"
1880 version "/stax-" version "-sources.jar"))
1881 (sha256
1882 (base32
1883 "04ba4qvbrps45j8bldbakxq31k7gjlsay9pppa9yn13fr00q586z"))))
1884 (build-system ant-build-system)
1885 (arguments
1886 `(#:jar-name "stax.jar"
1887 #:tests? #f; no tests
1888 #:phases
1889 (modify-phases %standard-phases
1890 (add-before 'configure 'fix-utf8
1891 (lambda _
1892 ;; This file is ISO-8859-1 but java expects UTF-8.
1893 ;; Remove special characters in comments.
1894 (with-fluids ((%default-port-encoding "ISO-8859-1"))
1895 (substitute* "src/com/wutka/dtd/Scanner.java"
1896 (("//.*") "\n")))
1897 #t)))))
1898 (home-page "https://repo1.maven.org/maven2/stax/stax/")
1899 (synopsis "Streaming API for XML")
1900 (description "This package provides the reference implementation of the
1901@dfn{Streaming API for XML} (StAX). It is used for streaming XML data to
1902and from a Java application. It provides a standard pull parser interface.")
1903 (license license:asl2.0)))
b8798817
JL
1904
1905(define-public java-jettison
1906 (package
1907 (name "java-jettison")
1908 (version "1.3.7")
1909 (source (origin
a4b96726
TGR
1910 (method git-fetch)
1911 (uri (git-reference
1912 (url "https://github.com/codehaus/jettison.git")
1913 (commit (string-append "jettison-" version))))
1914 (file-name (git-file-name name version))
b8798817
JL
1915 (sha256
1916 (base32
a4b96726 1917 "15sydmi5chdh4126qc7v8bsrp7fp4ldaya8a05iby4pq2324q0qw"))))
b8798817
JL
1918 (build-system ant-build-system)
1919 (arguments
1920 `(#:jar-name "jettison.jar"
1921 #:source-dir "src/main/java"
1922 #:test-exclude (list "**/Abstract*.java"
1923 ;; Abstract classes
1924 "**/DOMTest.java"
1925 "**/BadgerFishDOMTest.java"
1926 "**/MappedDOMTest.java")))
1927 (native-inputs
1928 `(("java-junit" ,java-junit)))
1929 (home-page "https://github.com/codehaus/jettison")
1930 (synopsis "StAX implementation for JSON")
1931 (description "Jettison is a Java library for converting XML to JSON and
1932vice-versa with the help of the @dfn{Streaming API for XML} (StAX). It
1933implements @code{XMLStreamWriter} and @code{XMLStreamReader} and supports
1934@code{Mapped} and @code{BadgerFish} conventions.")
1935 (license license:asl2.0)))
a5ec8a5c
JL
1936
1937(define-public java-jdom2
1938 (package
1939 (name "java-jdom")
1940 (version "2.0.6")
1941 (source (origin
951bdf5a
TGR
1942 (method git-fetch)
1943 (uri (git-reference
1944 (url "https://github.com/hunterhacker/jdom.git")
1945 (commit (string-append "JDOM-" version))))
1946 (file-name (git-file-name name version))
a5ec8a5c
JL
1947 (sha256
1948 (base32
951bdf5a 1949 "14vv1kxrsdvwi4cz3rx6r48w5y6fvk9cymil8qhvxwp56xxrgxiq"))))
a5ec8a5c
JL
1950 (build-system ant-build-system)
1951 (arguments
1952 `(#:build-target "package"
951bdf5a 1953 #:tests? #f ; tests are run as part of the build process
a5ec8a5c
JL
1954 #:phases
1955 (modify-phases %standard-phases
1956 (replace 'install
1957 (install-jars "build")))))
1958 (home-page "http://jdom.org/")
1959 (synopsis "Access, manipulate, and output XML data")
1960 (description "Jdom is a Java-based solution for accessing, manipulating, and
1961outputting XML data from Java code.")
1962 (license license:bsd-4)))
5ee7b02f
JL
1963
1964(define-public java-xstream
1965 (package
1966 (name "java-xstream")
1967 (version "1.4.10")
b05bc3c4
TGR
1968 (source
1969 (origin
1970 (method git-fetch)
1971 (uri (git-reference
1972 (url "https://github.com/x-stream/xstream.git")
1973 (commit (string-append
1974 "XSTREAM_"
1975 (string-map (lambda (x) (if (eq? x #\.) #\_ x))
1976 version)))))
1977 (file-name (git-file-name name version))
1978 (sha256
1979 (base32 "12m2bw8bapdc1w0pni9wl5hh2y8jfdgcvxd464jl9917dsp3ai2n"))))
5ee7b02f
JL
1980 (build-system ant-build-system)
1981 (arguments
1982 `(#:jar-name "xstream.jar"
b05bc3c4 1983 ;; FIXME: Tests are not in a java subdirectory as assumed by ant-build-system.
5ee7b02f
JL
1984 #:tests? #f
1985 #:jdk ,icedtea-8
1986 #:source-dir "xstream/src/java"))
1987 (inputs
1988 `(("java-jdom" ,java-jdom)
1989 ("java-jdom2" ,java-jdom2)
1990 ("java-cglib" ,java-cglib)
1991 ("java-joda-time" ,java-joda-time)
1992 ("java-jettison" ,java-jettison)
1993 ("java-xom" ,java-xom)
1994 ("java-xpp3" ,java-xpp3)
1995 ("java-dom4j" ,java-dom4j)
1996 ("java-stax2-api" ,java-stax2-api)
1997 ("java-woodstox-core" ,java-woodstox-core)
1998 ("java-kxml2" ,java-kxml2)
1999 ("java-stax" ,java-stax)))
2000 (home-page "https://x-stream.github.io")
2001 (synopsis "XML serialization library")
2002 (description "XStream is a simple library to serialize Java objects to XML
2003and back again.")
2004 (license license:bsd-3)))
5c1cf7f3 2005
2cce23bf
PN
2006(define-public xmlrpc-c
2007 (package
2008 (name "xmlrpc-c")
2009 (version "1.43.08")
2010 (source (origin
2011 (method url-fetch)
2012 (uri (string-append "mirror://sourceforge/xmlrpc-c/Xmlrpc-c%20Super%20Stable/"
2013 version "/xmlrpc-c-" version ".tgz"))
2014 (sha256
2015 (base32
2016 "18zwbj6i2hpcn5riiyp8i6rml0sfv60dd7phw1x8g4r4lj2bbxf9"))))
2017 (build-system gnu-build-system)
2018 (inputs
2019 `(("curl" ,curl)))
2020 (native-inputs
2021 `(;; For tools, if ever needed.
2022 ("perl" ,perl)))
2023 (arguments
2024 `(#:make-flags ; Add $libdir to the RUNPATH of all the executables.
2025 (list (string-append "LDFLAGS_PERSONAL=-Wl,-rpath=" %output "/lib"))
2026 #:phases
2027 (modify-phases %standard-phases
2028 (add-after 'unpack 'fix-/bin/sh-in-tests
2029 (lambda _
2030 (substitute* "GNUmakefile"
2031 (("#! /bin/sh") (which "sh")))
2032 #t)))))
2033 (home-page "http://xmlrpc-c.sourceforge.net/")
2034 (synopsis "Lightweight RPC library based on XML and HTTP")
2035 (description
2036 "XML-RPC is a quick-and-easy way to make procedure calls over the Internet.
2037It converts the procedure call into an XML document, sends it to a remote
2038server using HTTP, and gets back the response as XML. This library provides a
2039modular implementation of XML-RPC for C and C++.")
2040 (license (list license:psfl license:expat))))
79a0eabd
OP
2041
2042(define-public python-xmltodict
2043 (package
2044 (name "python-xmltodict")
2045 (version "0.11.0")
2046 (source
2047 (origin
2048 (method url-fetch)
2049 (uri (pypi-uri "xmltodict" version))
2050 (sha256
2051 (base32
2052 "1pxh4yjhvmxi1h6f92skv41g4kbsws3ams57150kzn18m907v3cg"))))
2053 (build-system python-build-system)
2054 (native-inputs
2055 `(("python-coverage" ,python-coverage)
2056 ("python-nose" ,python-nose)))
2057 (home-page "https://github.com/martinblech/xmltodict")
2058 (synopsis "Work with XML like you are working with JSON")
2059 (description "This package provides a Python library to convert XML to
2060@code{OrderedDict}.")
2061 (license license:expat)))