aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/xml.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/xml.scm')
-rw-r--r--gnu/packages/xml.scm81
1 files changed, 76 insertions, 5 deletions
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index d9c92d6d93..4e76cbc3c8 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -5,6 +5,7 @@
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -63,14 +64,14 @@ things the parser might find in the XML document (like start tags).")
(define-public libxml2
(package
(name "libxml2")
- (version "2.9.2")
+ (version "2.9.3")
(source (origin
(method url-fetch)
(uri (string-append "ftp://xmlsoft.org/libxml2/libxml2-"
version ".tar.gz"))
(sha256
(base32
- "1g6mf03xcabmk5ing1lwqmasr803616gb2xhn7pll10x2l5w6y2i"))))
+ "0bd17g6znn2r98gzpjppsqjg33iraky4px923j3k8kdl8qgy7sad"))))
(build-system gnu-build-system)
(home-page "http://www.xmlsoft.org/")
(synopsis "C parser for XML")
@@ -129,7 +130,8 @@ project (but it is usable outside of the Gnome platform).")
version ".tar.gz"))
(sha256
(base32
- "13029baw9kkyjgr7q3jccw2mz38amq7mmpr5p3bh775qawd1bisz"))))
+ "13029baw9kkyjgr7q3jccw2mz38amq7mmpr5p3bh775qawd1bisz"))
+ (patches (list (search-patch "libxslt-CVE-2015-7995.patch")))))
(build-system gnu-build-system)
(home-page "http://xmlsoft.org/XSLT/index.html")
(synopsis "C library for applying XSLT stylesheets to XML documents")
@@ -410,7 +412,7 @@ parsing/saving.")
(define-public xmlto
(package
(name "xmlto")
- (version "0.0.25")
+ (version "0.0.28")
(source
(origin
(method url-fetch)
@@ -419,7 +421,7 @@ parsing/saving.")
version ".tar.bz2"))
(sha256
(base32
- "0dp5nxq491gymq806za0dk4hngfmq65ysrqbn0ypajqbbl6vf71n"))))
+ "0xhj8b2pwp4vhl9y16v3dpxpsakkflfamr191mprzsspg4xdyc0i"))))
(build-system gnu-build-system)
(arguments
;; Make sure the reference to util-linux's 'getopt' is kept in 'xmlto'.
@@ -489,3 +491,72 @@ Libxml2).")
UTF-8 and UTF-16 encoding.")
;; LGPL 2.0+ with additional exceptions for static linking
(license license:lgpl2.0+)))
+
+;; TinyXML is an unmaintained piece of software, so the patches and build
+;; system massaging have no upstream potential.
+(define-public tinyxml
+ (package
+ (name "tinyxml")
+ (version "2.6.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/tinyxml/tinyxml_"
+ (string-join (string-split version #\.) "_")
+ ".tar.gz"))
+ (sha256
+ (base32
+ "14smciid19lvkxqznfig77jxn5s4iq3jpb47vh5a6zcaqp7gvg8m"))
+ (patches (list (search-patch "tinyxml-use-stl.patch")))))
+ (build-system gnu-build-system)
+ ;; This library is missing *a lot* of the steps to make it usable, so we
+ ;; have to add them here, like every other distro must do.
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'build 'build-shared-library
+ (lambda _
+ (zero? (system* "g++" "-Wall" "-O2" "-shared" "-fpic"
+ "tinyxml.cpp" "tinyxmlerror.cpp"
+ "tinyxmlparser.cpp" "tinystr.cpp"
+ "-o" "libtinyxml.so"))))
+ (replace 'check
+ (lambda _ (zero? (system "./xmltest"))))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (include (string-append out "/include"))
+ (lib (string-append out "/lib"))
+ (pkgconfig (string-append out "/lib/pkgconfig"))
+ (doc (string-append out "/share/doc")))
+ ;; Install libs and headers.
+ (install-file "libtinyxml.so" lib)
+ (install-file "tinystr.h" include)
+ (install-file "tinyxml.h" include)
+ ;; Generate and install pkg-config file.
+ (mkdir-p pkgconfig)
+ ;; Software such as Kodi expect this file to be present, but
+ ;; it's not provided in the source code.
+ (call-with-output-file (string-append pkgconfig "/tinyxml.pc")
+ (lambda (port)
+ (format port "prefix=~a
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: TinyXML
+Description: A simple, small, C++ XML parser
+Version: ~a
+Libs: -L${libdir} -ltinyxml
+Cflags: -I${includedir}
+"
+ out ,version)))
+ ;; Install docs.
+ (mkdir-p doc)
+ (copy-recursively "docs" (string-append doc "tinyxml"))
+ #t))))))
+ (synopsis "Small XML parser for C++")
+ (description "TinyXML is a small and simple XML parsing library for the
+C++ programming langauge.")
+ (home-page "http://www.grinninglizard.com/tinyxml/index.html")
+ (license license:zlib)))