summary refs log tree commit diff
path: root/gnu/packages/xml.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/xml.scm')
-rw-r--r--gnu/packages/xml.scm167
1 files changed, 160 insertions, 7 deletions
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 6a212f79bb..4fb3dc6985 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
-;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015, 2016, 2017 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2015 Raimon Grau <raimonster@gmail.com>
@@ -23,6 +23,7 @@
 ;;; Copyright © 2018 Jack Hill <jackhill@jackhill.us>
 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
+;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -41,11 +42,18 @@
 
 (define-module (gnu packages xml)
   #:use-module (gnu packages)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
+  #:use-module (gnu packages docbook)
+  #:use-module (gnu packages documentation)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages graphviz)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages java)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages perl)
@@ -60,11 +68,45 @@
   #:use-module (guix build-system ant)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pkg-config))
 
+(define-public libxmlb
+  (package
+    (name "libxmlb")
+    (version "0.1.15")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/hughsie/libxmlb.git")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1mb73pnfwqc4mm0lm16yfn0lj495h8hcciprb2v6wgy3ifnnjxib"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t))
+    (native-inputs
+     `(("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("appstream-glib" ,appstream-glib)
+       ("glib" ,glib)))
+    (synopsis "Library to help create and query binary XML blobs")
+    (description "Libxmlb library takes XML source, and converts it to a
+structured binary representation with a deduplicated string table; where the
+strings have the NULs included.  This allows an application to mmap the binary
+XML file, do an XPath query and return some strings without actually parsing
+the entire document.")
+    (home-page "https://github.com/hughsie/libxmlb")
+    (license license:lgpl2.1+)))
+
 (define-public expat
   (package
     (name "expat")
@@ -167,6 +209,81 @@ hierarchical form with variable field lengths.")
 project (but it is usable outside of the Gnome platform).")
     (license license:x11)))
 
+;; This is the latest stable release.
+(define-public libxmlplusplus
+  (package
+    (name "libxmlplusplus")
+    (version "3.2.0")
+    (source (origin
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/libxmlplusplus/libxmlplusplus.git")
+                   (commit version)))
+             (file-name (git-file-name name version))
+             (sha256
+              (base32
+               "0wjz591rjlgbah7dcq8i0yn0zw9d62b7g6r0pppx81ic0cx8n8ga"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-documentation
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
+                                          "/xml/dtd/docbook"))
+                   (xsldoc (string-append (assoc-ref inputs "docbook-xsl")
+                                          "/xml/xsl/docbook-xsl-"
+                                          ,(package-version docbook-xsl))))
+               (substitute* '("examples/dom_xpath/example.xml"
+                              "docs/manual/libxml++_without_code.xml")
+                 (("http://.*/docbookx\\.dtd")
+                  (string-append xmldoc "/docbookx.dtd")))
+               (setenv "SGML_CATALOG_FILES"
+                       (string-append xmldoc "/catalog.xml"))
+               (substitute* "docs/manual/docbook-customisation.xsl"
+                 (("http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl")
+                  (string-append xsldoc "/html/chunk.xsl"))))
+             #t)))))
+    (propagated-inputs
+     `(("libxml2" ,libxml2)))
+    (inputs
+     `(("glibmm" ,glibmm)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("doxygen" ,doxygen)
+       ("docbook-xml" ,docbook-xml)
+       ("docbook-xsl" ,docbook-xsl)
+       ("graphviz" ,graphviz) ; for dot
+       ("libtool" ,libtool)
+       ("libxslt" ,libxslt)
+       ("mm-common" ,mm-common)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://github.com/libxmlplusplus/libxmlplusplus/")
+    (synopsis "C++ bindings for libxml2")
+    (description
+     "libxml++ (a.k.a. libxmlplusplus) provides a C++ interface to XML files.
+It uses libxml2 to access the XML files.")
+    (license license:lgpl2.1+)))
+
+;; This is the last release providing the 2.6 API, hence the name.
+;; This is needed by tascam-gtk
+(define-public libxmlplusplus-2.6
+  (package
+    (inherit libxmlplusplus)
+    (name "libxmlplusplus")
+    (version "2.40.1")
+    (source (origin
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/libxmlplusplus/libxmlplusplus.git")
+                   (commit version)))
+             (file-name (git-file-name name version))
+             (sha256
+              (base32
+               "0gbfi4l88w828gmyc9br11l003ylyi4vigp5d1kfgsn0k4cig3y9"))))))
+
 (define-public python-libxml2
   (package/inherit libxml2
     (name "python-libxml2")
@@ -1157,7 +1274,7 @@ XSLT and EXSLT.")
 (define-public html-xml-utils
  (package
    (name "html-xml-utils")
-   (version "7.8")
+   (version "7.9")
    (source
     (origin
       (method url-fetch)
@@ -1165,7 +1282,7 @@ XSLT and EXSLT.")
             "https://www.w3.org/Tools/HTML-XML-utils/html-xml-utils-"
             version ".tar.gz"))
       (sha256
-       (base32 "0p8df3c6mw879vdi8l63kbdqylkf1is10b067mh9kipgfy91rd4s"))))
+       (base32 "0gs3xvdbzhk5k12i95p5d4fgkkaldnlv45sch7pnncb0lrpcjsnq"))))
    (build-system gnu-build-system)
    (home-page "https://www.w3.org/Tools/HTML-XML-utils/")
    (synopsis "Command line utilities to manipulate HTML and XML files")
@@ -1264,14 +1381,14 @@ files.  It is designed to be fast and to handle large input files.")
 (define-public freexl
   (package
     (name "freexl")
-    (version "1.0.5")
+    (version "1.0.6")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://www.gaia-gis.it/gaia-sins/"
-                                  name  "-" version ".tar.gz"))
+              (uri (string-append "https://www.gaia-gis.it/gaia-sins/"
+                                  "freexl-" version ".tar.gz"))
               (sha256
                (base32
-                "03bmwq6hngmzwpqpb7c2amqlspz4q69iv96nlf0f5c0qs98b3j9x"))))
+                "08pwj17l0lgp6zms9nmpawdxpvhzrslklbd53s4b430k7mxbbs1x"))))
     (build-system gnu-build-system)
     (home-page "https://www.gaia-gis.it/fossil/freexl/index")
     (synopsis "Read Excel files")
@@ -1312,6 +1429,42 @@ generating, manipulating, and validating XML documents using the DOM, SAX, and
 SAX2 APIs.")
     (license license:asl2.0)))
 
+(define-public xlsxio
+  (package
+    (name "xlsxio")
+    (version "0.2.26")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/brechtsanders/xlsxio")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0j8jral3yc2aib2ykp527lyb62a1d9p7qmfbszy7iy3s65pkma9b"))))
+    (native-inputs
+     `(("expat" ,expat)
+       ("make" ,gnu-make)
+       ("minizip" ,minizip)
+       ("which" ,which)))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (delete 'check)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (invoke "make" "install"
+                     (string-append
+                      "PREFIX=" (assoc-ref outputs "out"))))))))
+    (synopsis "C library for reading and writing .xlsx files")
+    (description "XLSX I/O aims to provide a C library for reading and writing
+.xlsx files.  The .xlsx file format is the native format used by Microsoft(R)
+Excel(TM) since version 2007.")
+    (home-page "https://github.com/brechtsanders/xlsxio")
+    (license license:expat)))
+
 (define-public java-simple-xml
   (package
     (name "java-simple-xml")