;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2016, 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2018 Jack Hill <jackhill@jackhill.us>
+;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
;;;
;;; This file is part of GNU Guix.
;;;
(define-public expat
(package
(name "expat")
- (version "2.2.7")
- (replacement expat-2.2.9)
+ (version "2.2.9")
(source (let ((dot->underscore (lambda (c) (if (char=? #\. c) #\_ c))))
(origin
(method url-fetch)
"/expat-" version ".tar.xz")))
(sha256
(base32
- "1y5yax6bq8p9xk49zqkd62pxk8bq266wrgbrqgaxp3wsrw5g9qrh")))))
+ "1960mmgbb4cm64n1p0nz3hrs1pw03hkrfcw8prmnn4622mdrd9hy")))))
(build-system gnu-build-system)
+ (arguments
+ '(#:configure-flags '("--disable-static")))
(home-page "https://libexpat.github.io/")
(synopsis "Stream-oriented XML parser library written in C")
(description
things the parser might find in the XML document (like start tags).")
(license license:expat)))
-(define expat-2.2.9
- (package
- (inherit expat)
- (version "2.2.9")
- (source (let ((dot->underscore (lambda (c) (if (char=? #\. c) #\_ c))))
- (origin
- (method url-fetch)
- (uri (list (string-append "mirror://sourceforge/expat/expat/"
- version "/expat-" version ".tar.xz")
- (string-append
- "https://github.com/libexpat/libexpat/releases/download/R_"
- (string-map dot->underscore version)
- "/expat-" version ".tar.xz")))
- (sha256
- (base32
- "1960mmgbb4cm64n1p0nz3hrs1pw03hkrfcw8prmnn4622mdrd9hy")))))))
-
(define-public libebml
(package
(name "libebml")
(define-public libxml2
(package
(name "libxml2")
- (version "2.9.9")
+ (version "2.9.10")
(source (origin
(method url-fetch)
(uri (string-append "ftp://xmlsoft.org/libxml2/libxml2-"
version ".tar.gz"))
(sha256
(base32
- "0wd881jzvqayx0ihzba29jl80k06xj9ywp16kxacdqs3064p1ywl"))))
+ "07xynh8hcxb2yb1fs051xrgszjvj37wnxvxgsj10rzmqzy9y3zma"))))
(build-system gnu-build-system)
(outputs '("out" "static"))
(arguments
(license license:x11)))
(define-public python-libxml2
- ;; TODO: Merge with 'python-libxml2/fixed' on the next rebuild cycle.
(package/inherit libxml2
(name "python-libxml2")
+ (source (origin
+ (inherit (package-source libxml2))
+ (patches (cons (search-patch "python-libxml2-utf8.patch")
+ (origin-patches (package-source libxml2))))))
(build-system python-build-system)
(outputs '("out"))
(arguments
(inputs `(("libxml2" ,libxml2)))
(synopsis "Python bindings for the libxml2 library")))
-(define-public python-libxml2/fixed
- ;; This variant fixes a crash when processing UTF-8 sequences:
- ;; <https://bugs.gnu.org/37468>
- ;; TODO: Merge with 'python-libxml2' on the next rebuild cycle.
- (package/inherit
- python-libxml2
- (version (string-append (package-version python-libxml2) "-1"))
- (source (origin
- (inherit (package-source libxml2))
- (patches (cons (search-patch "python-libxml2-utf8.patch")
- (origin-patches (package-source libxml2))))))))
-
(define-public python2-libxml2
(package-with-python2 python-libxml2))
(define-public libxslt
(package
(name "libxslt")
- (version "1.1.33")
+ (version "1.1.34")
(source (origin
(method url-fetch)
(uri (string-append "ftp://xmlsoft.org/libxslt/libxslt-"
version ".tar.gz"))
(sha256
(base32
- "1j1q1swnsy8jgi9x7mclvkrqhfgn09886gdlr9wzk7a08i8n0dlf"))
+ "0zrzz6kjdyavspzik6fbkpvfpbd25r2qg6py5nnjaabrsr3bvccq"))
(patches (search-patches "libxslt-generated-ids.patch"))))
(build-system gnu-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (add-before 'check 'disable-fuzz-tests
+ (lambda _
+ ;; Disable libFuzzer tests, because they require
+ ;; instrumentation builds of libxml2 and libxslt.
+ (substitute* "tests/Makefile"
+ (("exslt plugins fuzz")
+ "exslt plugins"))
+ #t)))))
(home-page "http://xmlsoft.org/XSLT/index.html")
(synopsis "C library for applying XSLT stylesheets to XML documents")
(inputs `(("libgcrypt" ,libgcrypt)
("libxml2" ,libxml2)
("python" ,python-minimal-wrapper)
- ("zlib" ,zlib)))
+ ("zlib" ,zlib)
+ ("xz" ,xz)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
(description
"Libxslt is an XSLT C library developed for the GNOME project. It is
based on libxml for XML parsing, tree manipulation and XPath support.")
(assoc-ref %build-inputs
"util-linux")
"/bin/getopt"))))
+ (native-inputs
+ `(("util-linux" ,util-linux)))
(inputs
`(("util-linux" ,util-linux) ; for 'getopt'
("libxml2" ,libxml2) ; for 'xmllint'
modular implementation of XML-RPC for C and C++.")
(license (list license:psfl license:expat))))
+(define-public python-elementpath
+ (package
+ (name "python-elementpath")
+ (version "1.3.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "elementpath" version))
+ (sha256
+ (base32
+ "1rb8892zli74wk1c4hyg77ja9wglq9hplgxwak1rmj3s9p6xnf0p"))))
+ (build-system python-build-system)
+ (home-page
+ "https://github.com/sissaschool/elementpath")
+ (synopsis
+ "XPath 1.0/2.0 parsers and selectors for ElementTree and lxml")
+ (description
+ "The proposal of this package is to provide XPath 1.0 and 2.0 selectors
+for Python's ElementTree XML data structures, both for the standard
+ElementTree library and for the @uref{http://lxml.de, lxml.etree} library.
+
+For lxml.etree this package can be useful for providing XPath 2.0 selectors,
+because lxml.etree already has it's own implementation of XPath 1.0.")
+ (license license:expat)))
+
+(define-public python-lxml
+ (package
+ (name "python-lxml")
+ (version "4.4.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "lxml" version))
+ (sha256
+ (base32 "01nvb5j8vs9nk4z5s3250b1m22b4d08kffa36if3g1mdygdrvxpg"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (invoke "make" "test"))))))
+ (inputs
+ `(("libxml2" ,libxml2)
+ ("libxslt" ,libxslt)))
+ (home-page "https://lxml.de/")
+ (synopsis "Python XML processing library")
+ (description
+ "The lxml XML toolkit is a Pythonic binding for the C libraries
+libxml2 and libxslt.")
+ (license license:bsd-3))) ; and a few more, see LICENSES.txt
+
+(define-public python2-lxml
+ (package-with-python2 python-lxml))
+
+(define-public python-xmlschema
+ (package
+ (name "python-xmlschema")
+ (version "1.0.18")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "xmlschema" version))
+ (sha256
+ (base32
+ "1inwqwr7d3qah9xf9rfzkpva433jpr4n7n43zybf2gdpz4q1g0ry"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key (tests? #t) #:allow-other-keys)
+ (if tests?
+ (begin
+ (setenv "PYTHONPATH"
+ (string-append "./build/lib:"
+ (getenv "PYTHONPATH")))
+ (invoke "python" "xmlschema/tests/test_all.py"))
+ (format #t "test suite not run~%"))
+ #t)))))
+ (native-inputs
+ `(("python-lxml" ,python-lxml))) ;for tests
+ (propagated-inputs
+ `(("python-elementpath" ,python-elementpath)))
+ (home-page "https://github.com/sissaschool/xmlschema")
+ (synopsis "XML Schema validator and data conversion library")
+ (description
+ "The @code{xmlschema} library is an implementation of
+@url{https://www.w3.org/2001/XMLSchema, XML Schema} for Python. It has
+full support for the XSD 1.0 and 1.1 standards, an XPath-based API for
+finding schema's elements and attributes; and can encode and decode
+XML data to JSON and other formats.")
+ (license license:expat)))
+
(define-public python-xmltodict
(package
(name "python-xmltodict")