summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2018-07-14 20:55:36 +0300
committerEfraim Flashner <efraim@flashner.co.il>2018-07-14 20:56:03 +0300
commit0a34402b19b0563e3723f26fadb3681537e08faf (patch)
tree5ef4a8dd48b913971fbf42369448ed01712daa9d /gnu/packages
parent8911d85b9c361c53df9a9b70ae7f8b03fbdb5b49 (diff)
parent5908818e309280b124b64f5320e4b98210093061 (diff)
downloadguix-0a34402b19b0563e3723f26fadb3681537e08faf.tar.gz
Merge remote-tracking branch 'origin/master' into qt-updates
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/base.scm28
-rw-r--r--gnu/packages/bootloaders.scm9
-rw-r--r--gnu/packages/build-tools.scm4
-rw-r--r--gnu/packages/certs.scm4
-rw-r--r--gnu/packages/chemistry.scm81
-rw-r--r--gnu/packages/compression.scm6
-rw-r--r--gnu/packages/curl.scm8
-rw-r--r--gnu/packages/databases.scm8
-rw-r--r--gnu/packages/dns.scm101
-rw-r--r--gnu/packages/documentation.scm4
-rw-r--r--gnu/packages/emacs.scm55
-rw-r--r--gnu/packages/freedesktop.scm8
-rw-r--r--gnu/packages/game-development.scm6
-rw-r--r--gnu/packages/gcc.scm2
-rw-r--r--gnu/packages/gl.scm29
-rw-r--r--gnu/packages/glib.scm4
-rw-r--r--gnu/packages/gnome.scm38
-rw-r--r--gnu/packages/gnupg.scm4
-rw-r--r--gnu/packages/gnuzilla.scm4
-rw-r--r--gnu/packages/golang.scm135
-rw-r--r--gnu/packages/gtk.scm21
-rw-r--r--gnu/packages/haskell.scm44
-rw-r--r--gnu/packages/iso-codes.scm2
-rw-r--r--gnu/packages/java.scm454
-rw-r--r--gnu/packages/libreoffice.scm4
-rw-r--r--gnu/packages/linux.scm57
-rw-r--r--gnu/packages/lsof.scm10
-rw-r--r--gnu/packages/mail.scm8
-rw-r--r--gnu/packages/maths.scm19
-rw-r--r--gnu/packages/mes.scm10
-rw-r--r--gnu/packages/messaging.scm75
-rw-r--r--gnu/packages/networking.scm30
-rw-r--r--gnu/packages/patches/alsa-lib-add-environment-variable.patch110
-rw-r--r--gnu/packages/patches/bind-CVE-2018-5738.patch100
-rw-r--r--gnu/packages/patches/jamvm-arm.patch1313
-rw-r--r--gnu/packages/patches/mesa-wayland-egl-symbols-check-mips.patch15
-rw-r--r--gnu/packages/patches/meson-for-build-rpath.patch7
-rw-r--r--gnu/packages/patches/openblas-fix-tests-i686.patch35
-rw-r--r--gnu/packages/patches/syncthing-fix-crash.patch72
-rw-r--r--gnu/packages/patches/xapian-revert-5489fb2f8.patch23
-rw-r--r--gnu/packages/patches/xf86-video-savage-xorg-compat.patch33
-rw-r--r--gnu/packages/patches/xf86-video-sis-xorg-compat.patch18
-rw-r--r--gnu/packages/patches/zathura-pdf-mupdf-link-to-jpeg-libraries.patch55
-rw-r--r--gnu/packages/patches/zathura-plugindir-environment-variable.patch11
-rw-r--r--gnu/packages/pdf.scm145
-rw-r--r--gnu/packages/php.scm2
-rw-r--r--gnu/packages/python.scm12
-rw-r--r--gnu/packages/samba.scm22
-rw-r--r--gnu/packages/search.scm7
-rw-r--r--gnu/packages/syncthing.scm2
-rw-r--r--gnu/packages/textutils.scm18
-rw-r--r--gnu/packages/upnp.scm46
-rw-r--r--gnu/packages/video.scm7
-rw-r--r--gnu/packages/xdisorg.scm5
-rw-r--r--gnu/packages/xorg.scm86
55 files changed, 2727 insertions, 689 deletions
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index fef6002b3c..de0aa92adb 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -10,7 +10,7 @@
 ;;; Copyright © 2016, 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
-;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
@@ -1131,7 +1131,7 @@ command.")
 (define-public tzdata
   (package
     (name "tzdata")
-    (version "2018d")
+    (version "2018e")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -1139,7 +1139,7 @@ command.")
                    version ".tar.gz"))
              (sha256
               (base32
-               "0m6020dnk9r40z7k36jp13fa06xip3hn0fdx3nly66jzxgffs1ji"))))
+               "0bk97fv2i5ns42prpmlaadsswdjwv0ifi7whj2s4q6l44rcqwa3b"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f
@@ -1189,7 +1189,7 @@ command.")
                                 version ".tar.gz"))
                           (sha256
                            (base32
-                            "1nd882yhsazmcfqmcqyfig3axycryl30gmizgqhqsx5dpa2lxr3x"))))))
+                            "1kpb02631s58i068mwq63xlamcv1ffj4p6y4wpb9kdl01vr0qd6a"))))))
     (home-page "https://www.iana.org/time-zones")
     (synopsis "Database of current and historical time zones")
     (description "The Time Zone Database (often called tz or zoneinfo)
@@ -1205,7 +1205,25 @@ and daylight-saving rules.")
 ;;; will typically be obsolete and should never be referred to by a built
 ;;; package.
 (define-public tzdata-for-tests
-  (hidden-package tzdata))
+  (hidden-package
+   (package
+     (inherit tzdata)
+     (version "2018d")
+     (source (origin
+               (method url-fetch)
+               (uri (string-append "https://www.iana.org/time-zones/repository"
+                                   "/releases/tzdata" version ".tar.gz"))
+               (sha256
+                (base32
+                 "0m6020dnk9r40z7k36jp13fa06xip3hn0fdx3nly66jzxgffs1ji"))))
+     (inputs `(("tzcode" ,(origin
+                            (method url-fetch)
+                            (uri (string-append
+                                  "http://www.iana.org/time-zones/repository/releases/tzcode"
+                                  version ".tar.gz"))
+                            (sha256
+                             (base32
+                              "1nd882yhsazmcfqmcqyfig3axycryl30gmizgqhqsx5dpa2lxr3x")))))))))
 
 (define-public libiconv
   (package
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 73130b7312..7599f4ac25 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -425,8 +425,7 @@ def test_ctrl_c"))
              (apply invoke "make" "tools_defconfig" make-flags)))
          (replace 'build
            (lambda* (#:key inputs make-flags #:allow-other-keys)
-             (apply invoke "make" "tools-only" make-flags)
-             (apply invoke "make" "envtools" make-flags)))
+             (apply invoke "make" "tools-all" make-flags)))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -443,7 +442,8 @@ def test_ctrl_c"))
                            "tools/mkimage"
                            "tools/proftool"
                            "tools/fdtgrep"
-                           "tools/env/fw_printenv"))
+                           "tools/env/fw_printenv"
+                           "tools/sunxi-spl-image-builder"))
                #t)))
            (delete 'check)
            (add-after 'install 'check
@@ -519,7 +519,8 @@ board-independent tools.")))
                     (let ((target-file (string-append libexec "/" file)))
                       (mkdir-p (dirname target-file))
                       (copy-file file target-file)))
-                  uboot-files))))))))))
+                  uboot-files)
+                 #t)))))))))
 
 (define-public u-boot-vexpress
   (make-u-boot-package "vexpress_ca9x4" "arm-linux-gnueabihf"))
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index a6d9fa8cfc..e693aec4ac 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -100,7 +100,7 @@ generate such a compilation database.")
 (define-public meson
   (package
     (name "meson")
-    (version "0.45.1")
+    (version "0.46.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/mesonbuild/meson/"
@@ -108,7 +108,7 @@ generate such a compilation database.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1yqa4337nb8w92bvr91rsxmn0xkf7pmdybq9ljvnqmdvn7dv02sd"))))
+                "0y7f5hhy16q99l7x06x8sid9p9dbg6d7i60zs7c07cz5ww1plj8r"))))
     (build-system python-build-system)
     (arguments
      `(;; FIXME: Tests require many additional inputs, a fix for the RUNPATH
diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm
index 3f592cf17b..cb05fb83fc 100644
--- a/gnu/packages/certs.scm
+++ b/gnu/packages/certs.scm
@@ -76,7 +76,7 @@
 (define-public nss-certs
   (package
     (name "nss-certs")
-    (version "3.36.1")
+    (version "3.38")
     (source (origin
               (method url-fetch)
               (uri (let ((version-with-underscores
@@ -87,7 +87,7 @@
                       "nss-" version ".tar.gz")))
               (sha256
                (base32
-                "1zrb49mp7cy3snnday1zv8d76h1mgppbcwxnlkqsgxlga8fl89b0"))))
+                "0qigcy3d169cf67jzv3rbai0m6dn34vp8h2z696mz4yn10y3sr1c"))))
     (build-system gnu-build-system)
     (outputs '("out"))
     (native-inputs
diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm
index f1359b2cf6..1a5086d622 100644
--- a/gnu/packages/chemistry.scm
+++ b/gnu/packages/chemistry.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
+;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,9 +21,11 @@
   #:use-module (guix packages)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix download)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages gv)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages python)
+  #:use-module (guix build-system gnu)
   #:use-module (guix build-system python))
 
 (define-public domainfinder
@@ -54,6 +57,84 @@ single structure.  The software is currently not actively maintained and works
 only with Python 2 and NumPy < 1.9.")
     (license license:cecill-c)))
 
+(define-public inchi
+  (package
+    (name "inchi")
+    (version "1.05")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.inchi-trust.org/download/"
+                                  (string-join (string-split version #\.) "")
+                                  "/INCHI-1-SRC.zip"))
+              (sha256
+               (base32
+                "081pcjx1z5jm23fs1pl2r3bccia0ww8wfkzcjpb7byhn7b513hsa"))
+              (file-name (string-append name "-" version ".zip"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f ; no check target
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure) ; no configure script
+         (add-before 'build 'chdir-to-build-directory
+           (lambda _ (chdir "INCHI_EXE/inchi-1/gcc") #t))
+         (add-after 'build 'build-library
+           (lambda _
+             (chdir "../../../INCHI_API/libinchi/gcc")
+             (invoke "make")))
+         (replace 'install
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (doc (string-append out "/share/doc/inchi"))
+                    (include-dir (string-append out "/include/inchi"))
+                    (lib (string-append out "/lib/inchi"))
+                    (inchi-doc (assoc-ref inputs "inchi-doc"))
+                    (unzip (string-append (assoc-ref inputs "unzip")
+                                          "/bin/unzip")))
+               (chdir "../../..")
+               ;; Install binary.
+               (with-directory-excursion "INCHI_EXE/bin/Linux"
+                 (rename-file "inchi-1" "inchi")
+                 (install-file "inchi" bin))
+               ;; Install libraries.
+               (with-directory-excursion "INCHI_API/bin/Linux"
+                 (for-each (lambda (file)
+                             (install-file file lib))
+                           (find-files "." "libinchi\\.so\\.1\\.*")))
+               ;; Install header files.
+               (with-directory-excursion "INCHI_BASE/src"
+                 (for-each (lambda (file)
+                             (install-file file include-dir))
+                           (find-files "." "\\.h$")))
+               ;; Install documentation.
+               (mkdir-p doc)
+               (invoke unzip "-j" "-d" doc inchi-doc)
+               #t))))))
+    (native-inputs
+     `(("unzip" ,unzip)
+       ("inchi-doc"
+        ,(origin
+           (method url-fetch)
+           (uri (string-append "http://www.inchi-trust.org/download/"
+                                  (string-join (string-split version #\.) "")
+                                  "/INCHI-1-DOC.zip"))
+           (sha256
+            (base32
+             "1id1qb2y4lwsiw91qr2yqpn6kxbwjwhjk0hb2rwk4fxhdqib6da6"))
+           (file-name (string-append name "-" version ".zip"))))))
+    (home-page "https://www.inchi-trust.org")
+    (synopsis "Utility for manipulating machine-readable chemical structures")
+    (description
+     "The @dfn{InChI} (IUPAC International Chemical Identifier) algorithm turns
+chemical structures into machine-readable strings of information.  InChIs are
+unique to the compound they describe and can encode absolute stereochemistry
+making chemicals and chemistry machine-readable and discoverable.  A simple
+analogy is that InChI is the bar-code for chemistry and chemical structures.")
+    (license (license:non-copyleft
+              "file://LICENCE"
+              "See LICENCE in the distribution."))))
+
 (define with-numpy-1.8
   (package-input-rewriting `((,python2-numpy . ,python2-numpy-1.8))))
 
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 2ca431b2c1..0d73886109 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -1889,19 +1889,19 @@ create, manipulate, read, and write Zip archive files.")
 (define-public libzip
   (package
     (name "libzip")
-    (version "1.3.2")
+    (version "1.5.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://libzip.org/download/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "11g1hvm2bxa2v5plakfzcwyk5hb5fz4kgrkp38l0xhnv21888xv2"))))
+                "0wnkkvkq90wyawj9221i77sf3nix1vj3ygzdy59k8yvcjnv3bsh4"))))
     (native-inputs
      `(("perl" ,perl)))
     (inputs
      `(("zlib" ,zlib)))
-    (build-system gnu-build-system)
+    (build-system cmake-build-system)
     (home-page "https://libzip.org")
     (synopsis "C library for reading, creating, and modifying zip archives")
     (description "Libzip is a C library for reading, creating, and modifying
diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm
index 65bc698389..e724fd147b 100644
--- a/gnu/packages/curl.scm
+++ b/gnu/packages/curl.scm
@@ -51,7 +51,7 @@
   (package
    (name "curl")
    (version "7.59.0")
-   (replacement curl-7.60.0)
+   (replacement curl-7.61.0)
    (source (origin
             (method url-fetch)
             (uri (string-append "https://curl.haxx.se/download/curl-"
@@ -141,10 +141,10 @@ tunneling, and so on.")
                                   "See COPYING in the distribution."))
    (home-page "https://curl.haxx.se/")))
 
-(define-public curl-7.60.0
+(define-public curl-7.61.0
   (package
     (inherit curl)
-    (version "7.60.0")
+    (version "7.61.0")
     (source
       (origin
         (method url-fetch)
@@ -152,7 +152,7 @@ tunneling, and so on.")
                             version ".tar.xz"))
         (sha256
          (base32
-          "1876ck0smbqz3xakm7s6q6gh4zarh9pv3izf4vlzgpc9xn6zydl7"))))))
+          "080p9r2kln8cbfj0rqfn6wqp5kdn9k5wp720nirkcw845lcmavpg"))))))
 
 (define-public kurly
   (package
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 0f1e47f485..55979834c9 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -705,14 +705,14 @@ as a drop-in replacement of MySQL.")
 (define-public postgresql
   (package
     (name "postgresql")
-    (version "10.3")
+    (version "10.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://ftp.postgresql.org/pub/source/v"
                                   version "/postgresql-" version ".tar.bz2"))
               (sha256
                (base32
-                "06lkcwsf851z49zqcws5yc77s2yrbaazf2nvbk38hpp31rw6i8kf"))))
+                "0j000bcs9w8wrllg8m7j1lxsd3n2x0yzkack5p35cmxx20iq2q0v"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--with-uuid=e2fs")
@@ -1070,14 +1070,14 @@ is in the public domain.")
 (define-public tdb
   (package
     (name "tdb")
-    (version "1.3.15")
+    (version "1.3.16")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.samba.org/ftp/tdb/tdb-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0a37jhpij8wr4f4pjqdlwnffy2l6a2vkqdpz1bqxj6v06cwbz8dl"))))
+                "1ibcz466xwk1x6xvzlgzd5va4lyrjzm3rnjak29kkwk7cmhw4gva"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 78479b2d32..ffa442f4d6 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
 ;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
+;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -29,7 +30,9 @@
   #:use-module (gnu packages admin)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages databases)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages datastructures)
   #:use-module (gnu packages flex)
@@ -55,7 +58,8 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix utils)
-  #:use-module (guix build-system gnu))
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build-system trivial))
 
 (define-public dnsmasq
   (package
@@ -99,16 +103,15 @@ and BOOTP/TFTP for network booting of diskless machines.")
 (define-public isc-bind
   (package
     (name "bind")
-    (version "9.12.1-P2")
+    (version "9.12.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "ftp://ftp.isc.org/isc/bind9/" version "/" name "-"
                     version ".tar.gz"))
-              (patches (search-patches "bind-CVE-2018-5738.patch"))
               (sha256
                (base32
-                "0a9dvyg1dk7vpqn9gz7p5jas3bz7z22bjd66b98g1qk16i2w7rqd"))))
+                "0ll46igs9xfq2qclc5wzqsnj3zv7ssga0544gm24s1m7765lqslz"))))
     (build-system gnu-build-system)
     (outputs `("out" "utils"))
     (inputs
@@ -288,7 +291,7 @@ asynchronous fashion.")
 (define-public unbound
   (package
     (name "unbound")
-    (version "1.6.8")
+    (version "1.7.3")
     (source
      (origin
        (method url-fetch)
@@ -296,7 +299,7 @@ asynchronous fashion.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "0jfxhh4gc5amhndikskz1s7da27ycn442j3l20bm992n7zijid73"))))
+         "0bb0p8nbda77ghx20yfl7hqxm9x709223q35465v99i8v4ay27f1"))))
     (build-system gnu-build-system)
     (outputs '("out" "python"))
     (native-inputs
@@ -576,3 +579,89 @@ synthesis, and on-the-fly re-configuration.")
       license:lgpl2.0+              ; parts of scr/contrib/ucw
       license:public-domain         ; src/contrib/fnv and possibly murmurhash3
       license:gpl3+))))             ; everything else
+
+(define-public ddclient
+  (package
+    (name "ddclient")
+    (version "3.8.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/ddclient/ddclient/ddclient-"
+                                  version "/ddclient-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1j8zdn7fy7i0bjk3jf0hxnbnshc2yf054vxq64imxdpfd7n5zgfy"))))
+    (build-system trivial-build-system) ; no Makefile.PL
+    (native-inputs
+     `(("bash" ,bash)
+       ("gzip" ,gzip)
+       ("perl" ,perl)
+       ("tar" ,tar)))
+    (inputs
+     `(("net-tools" ,net-tools)
+       ("inetutils" ,inetutils) ;logger
+       ("perl-io-socket-ssl" ,perl-io-socket-ssl)
+       ("perl-digest-sha1" ,perl-digest-sha1)))
+    (arguments
+     `(#:modules ((guix build utils)
+                  (ice-9 match)
+                  (srfi srfi-26))
+       #:builder
+       (begin
+         (use-modules (guix build utils)
+                      (ice-9 match)
+                      (srfi srfi-26))
+         ;; bootstrap
+         (setenv "PATH" (string-append
+                         (assoc-ref %build-inputs "bash") "/bin" ":"
+                         (assoc-ref %build-inputs "tar") "/bin" ":"
+                         (assoc-ref %build-inputs "gzip") "/bin" ":"
+                         (assoc-ref %build-inputs "perl") "/bin"))
+         ;; extract source
+         (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
+         ;; package
+         (with-directory-excursion (string-append ,name "-" ,version)
+           (let* ((out (assoc-ref %outputs "out"))
+                  (bin (string-append out "/bin")))
+             (let ((file "ddclient"))
+               (substitute* file
+                 (("/usr/bin/perl") (which "perl"))
+                 ;; Strictly use ‘/etc/ddclient/ddclient.conf’.
+                 (("\\$\\{program\\}\\.conf") "/etc/ddclient/ddclient.conf")
+                 (("\\$etc\\$program.conf") "/etc/ddclient/ddclient.conf")
+                 ;; Strictly use ‘/var/cache/ddclient/ddclient.cache’
+                 (("\\$cachedir\\$program\\.cache")
+                  "/var/cache/ddclient/ddclient.cache"))
+               (install-file file bin)
+               (wrap-program (string-append bin "/" file)
+                 `("PATH" ":" =
+                   ("$PATH"
+                    ,@(map (lambda (input)
+                             (match input
+                               ((name . store)
+                                (string-append store "/bin"))))
+                           %build-inputs)))
+                 `("PERL5LIB" ":" =
+                   ,(delete
+                     ""
+                     (map (match-lambda
+                            (((? (cut string-prefix? "perl-" <>) name) . dir)
+                             (string-append dir "/lib/perl5/site_perl"))
+                            (_ ""))
+                          %build-inputs)))))
+             (for-each (cut install-file <> (string-append out
+                                                           "/share/ddclient"))
+                       (find-files "." "sample.*$")))))))
+    (home-page "https://sourceforge.net/projects/ddclient/")
+    (synopsis "Address updating utility for dynamic DNS services")
+    (description "This package provides a client to update dynamic IP
+addresses with several dynamic DNS service providers, such as
+@uref{https://www.dyndns.com/account/login.html,DynDNS.com}.
+
+This makes it possible to use a fixed hostname (such as myhost.dyndns.org) to
+access a machine with a dynamic IP address.
+
+The client supports both dynamic and (near) static services, as well as MX
+record and alternative name management.  It caches the address, and only
+attempts the update when it has changed.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm
index 2ffe541294..f533535f03 100644
--- a/gnu/packages/documentation.scm
+++ b/gnu/packages/documentation.scm
@@ -123,14 +123,14 @@ markup) can be customized and extended by the user.")
 (define-public doxygen
   (package
     (name "doxygen")
-    (version "1.8.13")
+    (version "1.8.14")
     (source (origin
              (method url-fetch)
              (uri (string-append "http://ftp.stack.nl/pub/users/dimitri/"
                                  name "-" version ".src.tar.gz"))
              (sha256
               (base32
-               "0srzawqn3apzrg8hwycwrawdylmmjrndij4spw6xr1vspn3phrmg"))
+               "0kcxymbam9jwiyjwyvwdjj0h74lbb6c467szsipzbxjyfl17wxfi"))
              (patches (search-patches "doxygen-test.patch"))))
     (build-system cmake-build-system)
     (native-inputs
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index c6c7a1df4b..11cd244deb 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -35,6 +35,7 @@
 ;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com>
 ;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org>
 ;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
+;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -8516,6 +8517,10 @@ outline-mode), so there is no such thing like an outshine mode, only
         (base32
          "109fvivsb4r0rbqljngqrmxqvbnbkqlivczx6brrvlr7ci625lhf"))))
     (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-seq" ,emacs-seq)
+       ("emacs-dash" ,emacs-dash)
+       ("emacs-let-alist" ,emacs-let-alist)))
     (home-page "https://github.com/cpitclaudel/biblio.el")
     (synopsis "Browse and import bibliographic references")
     (description "This package provides an extensible Emacs package for
@@ -8550,7 +8555,8 @@ automatically fetched from well-curated sources, and formatted as BibTeX.")
          ("emacs-s" ,emacs-s)
          ("emacs-dash" ,emacs-dash)
          ("emacs-f" ,emacs-f)
-         ("emacs-biblio" ,emacs-biblio)))
+         ("emacs-biblio" ,emacs-biblio)
+         ("emacs-ivy" ,emacs-ivy)))
       (home-page "https://github.com/tmalsburg/helm-bibtex")
       (synopsis "Bibliography manager based on Helm")
       (description "This package provides bibliography manager for Emacs,
@@ -11410,3 +11416,50 @@ siblings and friends.  This visual overview can also be used to browse your
 entries.  You can think of entries as nodes in a mind map, or pages in a
 wiki.")
     (license license:expat)))
+
+(define-public emacs-recent-addresses
+  (let ((commit "d9da58db542089a1ceb5ef29e420dbfbc4a36373")
+        (revision "0"))
+    (package
+      (name "emacs-recent-addresses")
+      (home-page "http://nschum.de/src/emacs/recent-addresses/")
+      (version (git-version "0.1" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/nschum/recent-addresses.el")
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "175rvcwmkb5z7ss7q2y5178mvdvp5bhn39irz80qinlvaz8fm4nk"))
+                (file-name (git-file-name name version))))
+      (build-system emacs-build-system)
+      (synopsis "Record recently-used email addressed and auto-complete them")
+      (description
+       "@code{recent-addresses} is an Emacs allows you to quickly look up
+previously used email addresses.  It can be used alongside the Gnus email
+client.")
+      (license license:gpl2+))))
+
+(define-public emacs-fold-dwim
+  (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
+        (revision "0"))
+    (package
+      (name "emacs-fold-dwim")
+      (version (git-version "1.2" revision commit))
+      (home-page "https://github.com/emacsattic/fold-dwim")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference (url home-page) (commit commit)))
+                (sha256
+                 (base32
+                  "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
+                (file-name (git-file-name name version))))
+      (build-system emacs-build-system)
+      (synopsis "Unified user interface for Emacs folding modes")
+      (description
+       "DWIM stands for \"do what I mean\", as in the idea that one keystroke
+can do different things depending on the context.  In this package, it means
+that, if the cursor is in a currently hidden folded construction, we want to
+show it; if it's not, we want to hide whatever fold the cursor is in.")
+      (license license:gpl2+))))
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 7775e85714..b42a27b8c8 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -147,14 +147,14 @@ freedesktop.org project.")
 (define-public libinput
   (package
     (name "libinput")
-    (version "1.10.3")
+    (version "1.11.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://freedesktop.org/software/libinput/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0002xk9cqzpqrlhgav1wp8nimsbp9d2w8rd8mgygczq2hjar0lhd"))))
+                "1z7i8vk0i61npkdqwsk85wp9v4yjlvylqnyydikjqnbsrjp9abk4"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags '("-Ddocumentation=false")))
@@ -474,7 +474,7 @@ applications, X servers (rootless or fullscreen) or other display servers.")
 (define-public wayland-protocols
   (package
     (name "wayland-protocols")
-    (version "1.13")
+    (version "1.14")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -482,7 +482,7 @@ applications, X servers (rootless or fullscreen) or other display servers.")
                     "wayland-protocols-" version ".tar.xz"))
               (sha256
                (base32
-                "0f4gqvmz53q9d8h0ilhf4z773nb4vskzx11a3d1jycym120bqn07"))))
+                "1xknjcfhqvdi1s4iq4kk1q61fg2rar3g8q4vlqarpd324imqjj4n"))))
     (build-system gnu-build-system)
     (inputs
      `(("wayland" ,wayland)))
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 4131c130ff..afabeb0c62 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -7,7 +7,7 @@
 ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2016, 2017 Julian Graham <joolean@gmail.com>
+;;; Copyright © 2016, 2017, 2018 Julian Graham <joolean@gmail.com>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
 ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
@@ -225,14 +225,14 @@ PCM data.")
 (define-public gzochi
   (package
     (name "gzochi")
-    (version "0.11.1")
+    (version "0.12")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://savannah/gzochi/gzochi-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "13j1m92zhxwkaaja3lg5x0h0b28mrrawdzk9d3hd19031akfxwb3"))))
+                "0h8yvk7154kd8zdfa9nqy73blrjq2x19kv305jcnwlmm09vvss59"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index f6e277e33d..fdca3d2ffc 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -627,7 +627,7 @@ as the 'native-search-paths' field."
              (lambda* (#:key outputs #:allow-other-keys)
                (for-each delete-file
                          (find-files (string-append (assoc-ref outputs "out") "/bin")
-                                     ".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc.*)"))
+                                     ".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc|gcc-.*)"))
                #t))))))))
 
 (define %generic-search-paths
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 503308ac16..bde6e55607 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -224,7 +224,7 @@ also known as DXTn or DXTC) for Mesa.")
 (define-public mesa
   (package
     (name "mesa")
-    (version "17.3.8")
+    (version "18.1.2")
     (source
       (origin
         (method url-fetch)
@@ -236,10 +236,9 @@ also known as DXTn or DXTC) for Mesa.")
                                   version "/mesa-" version ".tar.xz")))
         (sha256
          (base32
-          "1cd6a4ll5arla3kncxnw9196ak1v4rvnb098aa7lm3n4h7r9p7cg"))
+          "1ydivzm4c2k53b65lvm11d62z140xlmd7viw63bl5cm5idjg02q7"))
         (patches
-         (search-patches "mesa-wayland-egl-symbols-check-mips.patch"
-                         "mesa-skip-disk-cache-test.patch"))))
+         (search-patches "mesa-skip-disk-cache-test.patch"))))
     (build-system gnu-build-system)
     (propagated-inputs
       `(;; The following are in the Requires.private field of gl.pc.
@@ -260,7 +259,7 @@ also known as DXTn or DXTC) for Mesa.")
         ("libxvmc" ,libxvmc)
         ,@(match (%current-system)
             ((or "x86_64-linux" "i686-linux")
-             `(("llvm" ,llvm-3.9.1))) ; exactly 3.9.0 or 3.9.1 for swrast
+             `(("llvm" ,llvm)))
             (_
              `()))
         ("makedepend" ,makedepend)
@@ -276,15 +275,15 @@ also known as DXTn or DXTC) for Mesa.")
        '(,@(match (%current-system)
              ("armhf-linux"
               ;; TODO: Add etnaviv,imx when libdrm supports etnaviv.
-              '("--with-gallium-drivers=freedreno,nouveau,r300,r600,swrast,vc4,virgl"))
+              '("--with-gallium-drivers=freedreno,nouveau,r300,r600,swrast,tegra,vc4,virgl"))
              ("aarch64-linux"
               ;; TODO: Fix svga driver for aarch64 and armhf.
-              '("--with-gallium-drivers=freedreno,nouveau,pl111,r300,r600,swrast,vc4,virgl"))
+              '("--with-gallium-drivers=freedreno,nouveau,pl111,r300,r600,swrast,tegra,vc4,virgl"))
              (_
               '("--with-gallium-drivers=i915,nouveau,r300,r600,radeonsi,svga,swrast,virgl")))
          ;; Enable various optional features.  TODO: opencl requires libclc,
          ;; omx requires libomxil-bellagio
-         "--with-platforms=x11,drm,wayland,surfaceless"
+         "--with-platforms=x11,drm,surfaceless,wayland"
          "--enable-glx-tls"        ;Thread Local Storage, improves performance
          ;; "--enable-opencl"
          ;; "--enable-omx"
@@ -328,23 +327,15 @@ also known as DXTn or DXTC) for Mesa.")
          (add-after
            'unpack 'patch-create_test_cases
            (lambda _
-             (substitute* "src/compiler/glsl/tests/lower_jumps/create_test_cases.py"
-               (("/usr/bin/env bash") (which "bash")))
              (substitute* "src/intel/genxml/gen_pack_header.py"
                (("/usr/bin/env python2") (which "python")))
              #t))
          (add-before
            'build 'fix-dlopen-libnames
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((s2tc (assoc-ref inputs "s2tc"))
-                   (out (assoc-ref outputs "out")))
+             (let ((out (assoc-ref outputs "out")))
                ;; Remain agnostic to .so.X.Y.Z versions while doing
                ;; the substitutions so we're future-safe.
-               (substitute*
-                   '("src/gallium/auxiliary/util/u_format_s3tc.c"
-                     "src/mesa/main/texcompress_s3tc.c")
-                 (("\"libtxc_dxtn\\.so")
-                  (string-append "\"" s2tc "/lib/libtxc_dxtn.so")))
                (substitute* "src/glx/dri_common.c"
                  (("dlopen\\(\"libGL\\.so")
                   (string-append "dlopen(\"" out "/lib/libGL.so")))
@@ -559,7 +550,7 @@ OpenGL graphics API.")
 (define-public libepoxy
   (package
     (name "libepoxy")
-    (version "1.5.0")
+    (version "1.5.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -567,7 +558,7 @@ OpenGL graphics API.")
                     version "/libepoxy-" version ".tar.xz"))
               (sha256
                (base32
-                "1md58amxyp34yjnw4xa185hw5jm0hnb2xnhdc28zdsx6k19rk52c"))))
+                "1n57xj5i6giw4mp5s59w1m9bm33sd6gjg7r00dzzvcwya6326mm9"))))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 7ea22fe88f..95d7976bf8 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -787,7 +787,7 @@ programming langauage.  It also contains the utility
 (define-public appstream-glib
   (package
     (name "appstream-glib")
-    (version "0.7.5")
+    (version "0.7.10")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://people.freedesktop.org/~hughsient/"
@@ -795,7 +795,7 @@ programming langauage.  It also contains the utility
                                   "appstream-glib-" version ".tar.xz"))
               (sha256
                (base32
-                "0ps80cbqnf3q86rvz3ajqjssdgkjc9kmynqf0wxqfir7ayc9y9ag"))))
+                "08bs0hnkvdzqv9pakv1y4c4ph77rmzjq22g760w20sv7vs63nia3"))))
     (build-system meson-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 19a216aa2a..a571d922cb 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -30,6 +30,7 @@
 ;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley@openmailbox.org>
 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
+;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -6321,7 +6322,16 @@ fit the GNOME desktop.")
                (base32
                 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
     (build-system meson-build-system)
-    (arguments '(#:glib-or-gtk? #t))
+    (arguments '(#:glib-or-gtk? #t
+                 #:phases (modify-phases %standard-phases
+                            (add-after 'unpack 'patch-install-script
+                              (lambda _
+                                ;; This script attempts to compile glib schemas
+                                ;; and create an empty MIME database.  We do
+                                ;; that elsewhere, so prevent it from running.
+                                (substitute* "build-aux/post-install.sh"
+                                  (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
+                                #t)))))
     (native-inputs
      `(("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
@@ -6467,7 +6477,7 @@ like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
 (define-public faba-icon-theme
   (package
     (name "faba-icon-theme")
-    (version "4.1.2")
+    (version "4.3")
     (source
      (origin
        (method url-fetch)
@@ -6476,23 +6486,15 @@ like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0hi2dl627ayfnihn3v6x9xzid668m4hp098hb7hrkxvahh4h9by7"))))
-    (build-system gnu-build-system)
+         "18ln06xl60qzvzz61zq9q72hdbfgjsza3flph8i2asyzx3dffz68"))))
+    (build-system meson-build-system)
     (arguments
-     '(#:phases
+     `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'patch-makefile.am
+         (add-before 'configure 'disable-post-install
            (lambda _
-             (substitute* '("Makefile.am")
-               (("\\$\\(DESTDIR\\)/usr/share")
-                "$(datadir)"))
-             #t))
-         (add-after 'unpack 'disable-configure-during-bootstrap
-           (lambda _
-             ;; Do not run configure as part of autogen.sh because references
-             ;; to /bin are not fixed yet.
-             (setenv "NOCONFIGURE" "y")
-             #t)))))
+             (substitute* "meson.build"
+               (("meson.add_install_script.*") "")))))))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)))
@@ -6508,7 +6510,7 @@ Moka")
   (package
     (inherit faba-icon-theme)
     (name "moka-icon-theme")
-    (version "5.3.6")
+    (version "5.4.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/moka-project"
@@ -6517,7 +6519,7 @@ Moka")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "04axinv79qnngsxkwqzi5j9lc3hn24rjqps5ai8d42pdnfaf0x37"))))
+                "1nbwdjj268hxv9lfagd9aylily9f0hhallp841v0i3imljp84bmk"))))
     (propagated-inputs
      ;; Moka is based on Faba by using it as a fallback icon set instead of
      ;; bundling it, so we need to add it as a propagated input.
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index da0c33565a..c095a966c2 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -245,14 +245,14 @@ compatible to GNU Pth.")
 (define-public gnupg
   (package
     (name "gnupg")
-    (version "2.2.8")
+    (version "2.2.9")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
                                   ".tar.bz2"))
               (sha256
                (base32
-                "1k8dnnfs9888yp713l7kg2jg110lw47s4krx0njna6fjrsw4qyvp"))))
+                "0r11mx8nkh7ysrnshs560amha5csx8zcaggb5kxcksx1zymyly32"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 9e6061eb64..ba60d1372a 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -291,7 +291,7 @@ in the Mozilla clients.")
 (define-public nss
   (package
     (name "nss")
-    (version "3.36.1")
+    (version "3.38")
     (source (origin
               (method url-fetch)
               (uri (let ((version-with-underscores
@@ -302,7 +302,7 @@ in the Mozilla clients.")
                       "nss-" version ".tar.gz")))
               (sha256
                (base32
-                "1zrb49mp7cy3snnday1zv8d76h1mgppbcwxnlkqsgxlga8fl89b0"))
+                "0qigcy3d169cf67jzv3rbai0m6dn34vp8h2z696mz4yn10y3sr1c"))
               ;; Create nss.pc and nss-config.
               (patches (search-patches "nss-pkgconfig.patch"
                                        "nss-increase-test-timeout.patch"))))
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 21783f2ee6..92ce504c52 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -1840,3 +1840,138 @@ deliver content")
 store, and deliver content.  It's containe Docker Registry 2.0 and libraries
 to interacting with distribution components.")
       (license license:asl2.0))))
+
+(define-public go-github-com-docker-go-connections
+  (let ((commit "3ede32e2033de7505e6500d6c868c2b9ed9f169d")
+        (revision "0"))
+    (package
+      (name "go-github-com-docker-go-connections")
+      (version (git-version "0.0.0" revision commit))
+      (source
+        (origin
+          (method git-fetch)
+          (uri (git-reference
+                 (url "https://github.com/docker/go-connections.git")
+                 (commit commit)))
+          (file-name (git-file-name name version))
+          (sha256
+            (base32
+              "0v1pkr8apwmhyzbjfriwdrs1ihlk6pw7izm57r24mf9jdmg3fyb0"))))
+      (build-system go-build-system)
+      (arguments
+        '(#:import-path "github.com/docker/go-connections"))
+      (home-page "https://github.com/docker/go-connections")
+      (synopsis "Networking library for Go")
+      (description
+       "This packages provides a library to work with network connections in
+the Go language.  In particular it provides tools to deal with network address
+translation (NAT), proxies, sockets, and transport layer security (TLS).")
+      (license license:asl2.0))))
+
+(define-public go-github-com-docker-machine
+  (let ((commit "7b7a141da84480342357c51838be142bf183b095")
+        (revision "0"))
+    (package
+      (name "go-github-com-docker-machine")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/docker/machine.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0bavk0lvs462yh0lnmnxi9psi5qv1x3nvzmd2b0drsahlp1gxi8s"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "github.com/docker/machine"))
+      (home-page "https://github.com/docker/machine")
+      (synopsis "Machine management for a container-centric world")
+      (description
+       "@dfn{Machine} lets you create Docker hosts on your computer, on
+hosting providers, and inside your data center.  It creates servers, installs
+Docker on them, then configures the Docker client to talk to them.")
+      (license license:asl2.0))))
+
+(define-public go-github-com-gorhill-cronexpr
+  (let ((commit "f0984319b44273e83de132089ae42b1810f4933b")
+        (revision "0"))
+    (package
+      (name "go-github-com-gorhill-cronexpr")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/gorhill/cronexpr.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0dphhhqy3i7265znv3m8n57l80dmaq6z4hsj5kgd87qd19z8x0l2"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "github.com/gorhill/cronexpr"))
+      (home-page "https://github.com/gorhill/cronexpr")
+      (synopsis "Cron expression parser in the Go language")
+      (description
+       "This package provides a cron expression parser in the Go language.
+Given a cron expression and a time stamp, you can get the next time stamp
+which satisfies the cron expression.")
+      (license (list license:gpl3+
+                     license:asl2.0)))))
+
+(define-public go-gopkg-in-check-v1
+  (let ((commit "20d25e2804050c1cd24a7eea1e7a6447dd0e74ec")
+        (revision "0"))
+    (package
+      (name "go-gopkg-in-check-v1")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/go-check/check")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "gopkg.in/check.v1"))
+      (home-page "https://gopkg.in/check.v1")
+      (synopsis "Test framework for the Go language")
+      (description
+       "This package provides a test library for the Go language.")
+      (license license:asl2.0))))
+
+(define-public go-gopkg-in-yaml-v2
+  (let ((commit "14227de293ca979cf205cd88769fe71ed96a97e2")
+        (revision "0"))
+    (package
+      (name "go-gopkg-in-yaml-v2")
+      (version (git-version "0.0.0" revision commit))
+      (source
+        (origin
+          (method git-fetch)
+          (uri (git-reference
+                 (url "https://gopkg.in/yaml.v2.git")
+                 (commit commit)))
+          (file-name (git-file-name name version))
+          (sha256
+            (base32
+              "038hnrjcnjygyi3qidfrkpkakis82qg381sr495d2s40g2dwlzah"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "gopkg.in/yaml.v2"))
+      (native-inputs
+       `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
+      (home-page "https://gopkg.in/yaml.v2")
+      (synopsis "YAML reader and writer for the Go language")
+      (description
+       "This package provides a Go library for encode and decode YAML
+values.")
+      (license license:asl2.0))))
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 83db8f6b30..3718e939d1 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -42,6 +42,7 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #: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 (guix build-system waf)
@@ -670,7 +671,7 @@ application suites.")
    (name "gtk+")
    ;; NOTE: When updating the version of 'gtk+', the hash of 'mate-themes' in
    ;;       mate.scm will also need to be updated.
-   (version "3.22.29")
+   (version "3.22.30")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/" name "/"
@@ -678,7 +679,7 @@ application suites.")
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "1y5vzdbgww9l7xcrg13azff2rs94kggkywmpcsh39h7w76wn8zd0"))
+              "0rv5k8fyi2i19k4zncai6vf429s6zy3kncr8vb6f3m034z0sb951"))
             (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"
                                      "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
    (outputs '("out" "bin" "doc"))
@@ -1362,15 +1363,15 @@ and routines to assist in editing internationalized text.")
 (define-public girara
   (package
     (name "girara")
-    (version "0.2.8")
+    (version "0.2.9")
     (source (origin
               (method url-fetch)
               (uri
                (string-append "https://pwmt.org/projects/girara/download/girara-"
-                              version ".tar.gz"))
+                              version ".tar.xz"))
               (sha256
                (base32
-                "18wss3sak3djip090v2vdbvq1mvkwcspfswc87zbvv3magihan98"))))
+                "0lkxrfna818wkkr2f6mdzf15y5z8xl1b9592ylmzjbqsqya3w7x8"))))
     (native-inputs `(("pkg-config" ,pkg-config)
                      ("check" ,check)
                      ("gettext" ,gettext-minimal)
@@ -1379,13 +1380,7 @@ and routines to assist in editing internationalized text.")
     ;; Listed in 'Requires.private' of 'girara.pc'.
     (propagated-inputs `(("gtk+" ,gtk+)))
     (arguments
-     `(#:make-flags
-       `(,(string-append "PREFIX=" (assoc-ref %outputs "out"))
-         "COLOR=0" "CC=gcc")
-       #:test-target "test"
-       #:disallowed-references (,xorg-server-1.19.3)
-       #:phases (modify-phases %standard-phases
-                  (delete 'configure)
+     `(#:phases (modify-phases %standard-phases
                   (add-before 'check 'start-xserver
                     ;; Tests require a running X server.
                     (lambda* (#:key inputs #:allow-other-keys)
@@ -1401,7 +1396,7 @@ and routines to assist in editing internationalized text.")
                         (setenv "DBUS_FATAL_WARNINGS" "0")
                         (zero? (system (string-append xorg-server "/bin/Xvfb "
                                                       display " &")))))))))
-    (build-system gnu-build-system)
+    (build-system meson-build-system)
     (home-page "https://pwmt.org/projects/girara/")
     (synopsis "Library for minimalistic gtk+3 user interfaces")
     (description "Girara is a library that implements a user interface that
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 2176f07cc4..8d2dcba208 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -2487,6 +2487,31 @@ Haskell library @code{regex-base}.")
 @code{libtre} (fork by Roman Cheplyaka).")
     (license license:bsd-3)))
 
+(define-public ghc-regex-tdfa-text
+  (package
+    (name "ghc-regex-tdfa-text")
+    (version "1.0.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/regex-tdfa-text/"
+             "regex-tdfa-text-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0090g6lgbdm9lywpqm2d3724nnnh24nx3vnlqr96qc2w486pmmrq"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-text" ,ghc-text)
+       ("ghc-regex-base" ,ghc-regex-base)
+       ("ghc-regex-tdfa" ,ghc-regex-tdfa)))
+    (home-page
+     "http://hackage.haskell.org/package/regex-tdfa-text")
+    (synopsis "Text interface for regex-tdfa")
+    (description
+     "This provides an extra text interface for regex-tdfa.")
+    (license license:bsd-3)))
+
 (define-public ghc-parsers
   (package
     (name "ghc-parsers")
@@ -9678,4 +9703,23 @@ serialization code.")
 disk space usage.")
     (license license:bsd-3)))
 
+(define-public ghc-xdg-basedir
+  (package
+    (name "ghc-xdg-basedir")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/xdg-basedir/"
+             "xdg-basedir-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0azlzaxp2dn4l1nr7shsxah2magk1szf6fx0mv75az00qsjw6qg4"))))
+    (build-system haskell-build-system)
+    (home-page "http://github.com/willdonnelly/xdg-basedir")
+    (synopsis "XDG Base Directory library for Haskell")
+    (description "This package provides a library implementing the XDG Base Directory spec.")
+    (license license:bsd-3)))
+
 ;;; haskell.scm ends here
diff --git a/gnu/packages/iso-codes.scm b/gnu/packages/iso-codes.scm
index 9f67cf2868..67c6dc73e5 100644
--- a/gnu/packages/iso-codes.scm
+++ b/gnu/packages/iso-codes.scm
@@ -45,7 +45,7 @@
      `(("gettext" ,gettext-minimal)
        ("perl" ,perl)
        ("python" ,python-wrapper)))
-    (home-page "https://pkg-isocodes.alioth.debian.org/")
+    (home-page "https://salsa.debian.org/iso-codes-team/iso-codes")
     (synopsis "Various ISO standards")
     (description
      "This package provides lists of various ISO standards (e.g. country,
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 2b72c98319..a7d5c9f445 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
+;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -150,7 +151,7 @@ and binary format defined in The Java Virtual Machine Specification.")
        #:phases
        (modify-phases %standard-phases
          (add-after 'install 'install-data
-           (lambda _ (zero? (system* "make" "install-data")))))))
+           (lambda _ (invoke "make" "install-data"))))))
     (native-inputs
      `(("jikes" ,jikes)
        ("fastjar" ,fastjar)
@@ -175,6 +176,7 @@ language.")
               (uri (string-append "mirror://sourceforge/jamvm/jamvm/"
                                   "JamVM%20" version "/jamvm-"
                                   version ".tar.gz"))
+              (patches (search-patches "jamvm-arm.patch"))
               (sha256
                (base32
                 "06lhi03l3b0h48pc7x58bk9my2nrcf1flpmglvys3wyad6yraf36"))))
@@ -212,7 +214,13 @@ JNI.")
                 "1cg0lga887qz5iizh6mlkxp01lciymrhmp7wzxpl6zpnldxmzrjx"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; no "check" target
+     `(#:imported-modules ((guix build syscalls)
+                           ,@%gnu-build-system-modules)
+       #:modules ((srfi srfi-1)
+                  (guix build gnu-build-system)
+                  (guix build utils)
+                  (guix build syscalls))
+       #:tests? #f ; no "check" target
        #:phases
        (modify-phases %standard-phases
          (delete 'bootstrap)
@@ -245,19 +253,54 @@ JNI.")
              ;; Without these JamVM options the build may freeze.
              (substitute* "bootstrap.sh"
                (("^\"\\$\\{JAVACMD\\}\" " m)
-                (string-append m "-Xnocompact -Xnoinlining ")))
+                ,@(if (string-prefix? "armhf" (or (%current-system)
+                                                  (%current-target-system)))
+                      `((string-append m "-Xnocompact "))
+                      `((string-append m "-Xnocompact -Xnoinlining ")))))
 
              ;; Disable tests because we are bootstrapping and thus don't have
              ;; any of the dependencies required to build and run the tests.
              (substitute* "build.xml"
                (("depends=\"jars,test-jar\"") "depends=\"jars\""))
-             (zero? (system* "bash" "bootstrap.sh"
-                             (string-append "-Ddist.dir="
-                                            (assoc-ref %outputs "out"))))))
+             (invoke "bash" "bootstrap.sh"
+                     (string-append "-Ddist.dir="
+                                    (assoc-ref %outputs "out")))))
+         (add-after 'build 'strip-jar-timestamps ;based on ant-build-system
+           (lambda* (#:key outputs #:allow-other-keys)
+             (define (repack-archive jar)
+               (let* ((dir (mkdtemp! "jar-contents.XXXXXX"))
+                      (manifest (string-append dir "/META-INF/MANIFESTS.MF")))
+                 (with-directory-excursion dir
+                   (invoke "unzip" jar))
+                 (delete-file jar)
+                 ;; XXX: copied from (gnu build install)
+                 (for-each (lambda (file)
+                             (let ((s (lstat file)))
+                               (unless (eq? (stat:type s) 'symlink)
+                                 (utime file  0 0 0 0))))
+                           (find-files dir #:directories? #t))
+                 ;; It is important that the manifest appears first.
+                 (with-directory-excursion dir
+                   (let* ((files (find-files "." ".*" #:directories? #t))
+                          ;; To ensure that the reference scanner can
+                          ;; detect all store references in the jars
+                          ;; we disable compression with the "-0" option.
+                          (command (if (file-exists? manifest)
+                                       `("zip" "-0" "-X" ,jar ,manifest
+                                         ,@files)
+                                       `("zip" "-0" "-X" ,jar ,@files))))
+                     (apply invoke command)))))
+             (for-each repack-archive
+                    (find-files
+                     (string-append (assoc-ref %outputs "out") "/lib")
+                     "\\.jar$"))
+             #t))
          (delete 'install))))
     (native-inputs
      `(("jikes" ,jikes)
-       ("jamvm" ,jamvm-1-bootstrap)))
+       ("jamvm" ,jamvm-1-bootstrap)
+       ("unzip" ,unzip)
+       ("zip", zip)))
     (home-page "http://ant.apache.org")
     (synopsis "Build tool for Java")
     (description
@@ -316,10 +359,10 @@ build process and its dependencies, whereas Make uses Makefile format.")
 Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n")))
 
              ;; Compile it all!
-             (and (zero? (apply system* "jikes"
-                                (find-files "." "\\.java$")))
-                  (zero? (system* "fastjar" "cvfm"
-                                  "ecj-bootstrap.jar" "manifest" ".")))))
+             (and (apply invoke "jikes"
+                         (find-files "." "\\.java$"))
+                  (invoke "fastjar" "cvfm"
+                          "ecj-bootstrap.jar" "manifest" "."))))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((share (string-append (assoc-ref outputs "out")
@@ -394,7 +437,6 @@ requirement for all GNU Classpath releases after version 0.93.")
                                                args defaults))
                             (apply system* ,java
                                    (append
-                                    (list "-Xnocompact" "-Xnoinlining")
                                     ;; Remove "-J" prefix
                                     (map (cut string-drop <> 2) vm-args)
                                     '("org.eclipse.jdt.internal.compiler.batch.Main")
@@ -453,7 +495,7 @@ the standard javac executable.")))
        #:phases
        (modify-phases %standard-phases
          (add-after 'install 'install-data
-           (lambda _ (zero? (system* "make" "install-data")))))))
+           (lambda _ (invoke "make" "install-data"))))))
     (native-inputs
      `(("ecj-bootstrap" ,ecj-bootstrap)
        ("ecj-javac-wrapper" ,ecj-javac-wrapper)
@@ -484,12 +526,20 @@ the standard javac executable.")))
            (for-each (lambda (tool)
                        (with-output-to-file (string-append bin tool)
                          (lambda _
-                           (format #t "#!~a/bin/sh
+                           ,@(if (string-prefix? "armhf" (or (%current-system)
+                                                             (%current-target-system)))
+                                 `((format #t "#!~a/bin/sh
+~a/bin/jamvm -Xnocompact -classpath ~a/share/classpath/tools.zip \
+gnu.classpath.tools.~a.~a $@"
+                                   bash jamvm classpath tool
+                                   (if (string=? "native2ascii" tool)
+                                       "Native2ASCII" "Main")))
+                                 `((format #t "#!~a/bin/sh
 ~a/bin/jamvm -Xnocompact -Xnoinlining -classpath ~a/share/classpath/tools.zip \
 gnu.classpath.tools.~a.~a $@"
                                    bash jamvm classpath tool
                                    (if (string=? "native2ascii" tool)
-                                       "Native2ASCII" "Main"))))
+                                       "Native2ASCII" "Main"))))))
                        (chmod (string-append bin tool) #o755))
                      (list "javah"
                            "rmic"
@@ -562,7 +612,7 @@ machine.")))
                  (("@Override") ""))
                #t))
            (add-after 'install 'install-data
-             (lambda _ (zero? (system* "make" "install-data")))))))
+             (lambda _ (invoke "make" "install-data"))))))
       (native-inputs
        `(("autoconf" ,autoconf)
          ("automake" ,automake)
@@ -668,37 +718,35 @@ machine.")))
        (modify-phases %standard-phases
          (replace 'unpack
            (lambda* (#:key source inputs #:allow-other-keys)
-             (and (zero? (system* "tar" "xvf" source))
-                  (begin
-                    (chdir (string-append "icedtea6-" ,version))
-                    (mkdir "openjdk")
-                    (copy-recursively (assoc-ref inputs "openjdk-src") "openjdk")
-                    ;; The convenient OpenJDK source bundle is no longer
-                    ;; available for download, so we have to take the sources
-                    ;; from the Mercurial repositories and change the Makefile
-                    ;; to avoid tests for the OpenJDK zip archive.
-                    (with-directory-excursion "openjdk"
-                      (for-each (lambda (part)
-                                  (mkdir part)
-                                  (copy-recursively
-                                   (assoc-ref inputs
-                                              (string-append part "-src"))
-                                   part))
-                                '("jdk" "corba"
-                                  "langtools" "jaxp" "jaxws")))
-                    (with-directory-excursion "openjdk"
-                      (invoke "tar" "xvf" (assoc-ref inputs "hotspot-src"))
-                      (rename-file "hg-checkout" "hotspot"))
-                    (substitute* "Makefile.in"
-                      (("echo \"ERROR: No up-to-date OpenJDK zip available\"; exit -1;")
-                       "echo \"trust me\";")
-                      ;; The contents of the bootstrap directory must be
-                      ;; writeable but when copying from the store they are
-                      ;; not.
-                      (("mkdir -p lib/rt" line)
-                       (string-append line "; chmod -R u+w $(BOOT_DIR)")))
-                    (zero? (system* "chmod" "-R" "u+w" "openjdk"))
-                    #t))))
+             (invoke "tar" "xvf" source)
+             (chdir (string-append "icedtea6-" ,version))
+             (mkdir "openjdk")
+             (copy-recursively (assoc-ref inputs "openjdk-src") "openjdk")
+             ;; The convenient OpenJDK source bundle is no longer
+             ;; available for download, so we have to take the sources
+             ;; from the Mercurial repositories and change the Makefile
+             ;; to avoid tests for the OpenJDK zip archive.
+             (with-directory-excursion "openjdk"
+               (for-each (lambda (part)
+                           (mkdir part)
+                           (copy-recursively
+                            (assoc-ref inputs
+                                       (string-append part "-src"))
+                            part))
+                         '("jdk" "corba"
+                           "langtools" "jaxp" "jaxws")))
+             (with-directory-excursion "openjdk"
+               (invoke "tar" "xvf" (assoc-ref inputs "hotspot-src"))
+               (rename-file "hg-checkout" "hotspot"))
+             (substitute* "Makefile.in"
+               (("echo \"ERROR: No up-to-date OpenJDK zip available\"; exit -1;")
+                "echo \"trust me\";")
+               ;; The contents of the bootstrap directory must be
+               ;; writeable but when copying from the store they are
+               ;; not.
+               (("mkdir -p lib/rt" line)
+                (string-append line "; chmod -R u+w $(BOOT_DIR)")))
+             (invoke "chmod" "-R" "u+w" "openjdk")))
          (add-after 'unpack 'use-classpath
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((jvmlib (assoc-ref inputs "classpath"))
@@ -1036,23 +1084,22 @@ bootstrapping purposes.")
                                (let ((dir (or dir
                                               (string-drop-right name 5))))
                                  (mkdir dir)
-                                 (zero? (system* "tar" "xvf"
-                                                 (assoc-ref inputs name)
-                                                 "-C" dir
-                                                 "--strip-components=1"))))))
+                                 (invoke "tar" "xvf"
+                                         (assoc-ref inputs name)
+                                         "-C" dir
+                                         "--strip-components=1")))))
                  (mkdir target)
-                 (and
-                  (zero? (system* "tar" "xvf" source
-                                  "-C" target "--strip-components=1"))
-                  (chdir target)
-                  (unpack "openjdk-src" "openjdk.src")
-                  (with-directory-excursion "openjdk.src"
-                    (for-each unpack
-                              (filter (cut string-suffix? "-drop" <>)
-                                      (map (match-lambda
-                                             ((name . _) name))
-                                           inputs))))
-                  #t))))
+                 (invoke "tar" "xvf" source
+                         "-C" target "--strip-components=1")
+                 (chdir target)
+                 (unpack "openjdk-src" "openjdk.src")
+                 (with-directory-excursion "openjdk.src"
+                   (for-each unpack
+                             (filter (cut string-suffix? "-drop" <>)
+                                     (map (match-lambda
+                                            ((name . _) name))
+                                          inputs))))
+                 #t)))
            (add-after 'unpack 'fix-x11-extension-include-path
              (lambda* (#:key inputs #:allow-other-keys)
                (substitute* "openjdk.src/jdk/make/sun/awt/mawt.gmk"
@@ -1277,17 +1324,19 @@ bootstrapping purposes.")
                                    (let ((line (read-line port)))
                                      (cond
                                       ((eof-object? line) #t)
-                                      ((regexp-exec error-pattern line) #f)
+                                      ((regexp-exec error-pattern line)
+                                       (error "test failed"))
                                       (else (loop)))))))
                       (run-test (lambda (test)
-                                  (system* "make" test)
+                                  (invoke "make" test)
                                   (call-with-input-file
                                       (string-append "test/" test ".log")
                                     checker))))
-                 (or #t                 ; skip tests
-                     (and (run-test "check-hotspot")
-                          (run-test "check-langtools")
-                          (run-test "check-jdk"))))))
+                 (when #f                 ; skip tests
+                   (run-test "check-hotspot")
+                   (run-test "check-langtools")
+                   (run-test "check-jdk"))
+                 #t)))
            (replace 'install
              (lambda* (#:key outputs #:allow-other-keys)
                (let ((doc (string-append (assoc-ref outputs "doc")
@@ -1665,11 +1714,13 @@ new Date();"))
                ;; result in the tests to be run.
                (substitute* "build.xml"
                  (("depends=\"jars,test-jar\"") "depends=\"jars\""))
-               (zero? (system* "bash" "bootstrap.sh"
-                               (string-append "-Ddist.dir="
-                                              (assoc-ref outputs "out"))))))))))
+               (invoke "bash" "bootstrap.sh"
+                       (string-append "-Ddist.dir="
+                                      (assoc-ref outputs "out")))))))))
     (native-inputs
-     `(("jdk" ,icedtea-8 "jdk")))))
+     `(("jdk" ,icedtea-8 "jdk")
+       ("zip" ,zip)
+       ("unzip" ,unzip)))))
 
 ;; The 1.9.x series is the last that can be built with GCJ.  The 1.10.x series
 ;; requires Java 8.
@@ -1684,7 +1735,9 @@ new Date();"))
                (base32
                 "1k28mka0m3isy9yr8gz84kz1f3f879rwaxrd44vdn9xbfwvwk86n"))))
     (native-inputs
-     `(("jdk" ,icedtea-7 "jdk")))))
+     `(("jdk" ,icedtea-7 "jdk")
+       ("zip" ,zip)
+       ("unzip" ,unzip)))))
 
 (define-public ant-apache-bcel
   (package
@@ -1793,14 +1846,13 @@ new Date();"))
                 (lambda (name)
                   (mkdir-p name)
                   (with-directory-excursion name
-                    (or (zero? (system* "tar"
-                                        ;; Use xz for repacked tarball.
-                                        "--xz"
-                                        "--extract"
-                                        "--verbose"
-                                        "--file" (assoc-ref inputs name)
-                                        "--strip-components=1"))
-                        (error "failed to unpack tarball" name)))
+                    (invoke "tar"
+                            ;; Use xz for repacked tarball.
+                            "--xz"
+                            "--extract"
+                            "--verbose"
+                            "--file" (assoc-ref inputs name)
+                            "--strip-components=1"))
                   (copy-recursively (string-append name "/src/main/clojure/")
                                     "src/clj/"))
                 '("core-specs-alpha-src"
@@ -1813,7 +1865,7 @@ new Date();"))
            ;; The javadoc target is not built by default.
            (add-after 'build 'build-doc
              (lambda _
-               (zero? (system* "ant" "javadoc"))))
+               (invoke "ant" "javadoc")))
            ;; Needed since no install target is provided.
            (replace 'install
              (lambda* (#:key outputs #:allow-other-keys)
@@ -1975,7 +2027,8 @@ debugging, etc.")
                (lambda (in out)
                  (display "Manifest-Version: 1.0
 Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n"
-                          out)))))
+                          out)))
+             #t))
          (replace 'install (install-jars ".")))))
     (home-page "https://eclipse.org")
     (synopsis "Eclipse Java development tools core batch compiler")
@@ -2008,7 +2061,8 @@ Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n"
                (lambda (in out)
                  (dump-port in out)
                  (display "Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n"
-                          out)))))
+                          out)))
+             #t))
          (replace 'install (install-jars ".")))))
     (native-inputs
      `(("unzip" ,unzip)))))
@@ -2475,7 +2529,7 @@ HDF5 files, building on the libraries provided by the HDF Group.")
        (modify-phases %standard-phases
          (replace 'install
            (lambda* (#:key make-flags #:allow-other-keys)
-             (zero? (apply system* `("ant" "dist" ,@make-flags))))))))
+             (apply invoke `("ant" "dist" ,@make-flags)))))))
     (home-page "https://www.gnu.org/software/classpathx/")
     (synopsis "Java servlet API implementation")
     (description "This is the GNU servlet API distribution, part of the
@@ -2517,11 +2571,11 @@ API and version 2.1 of the Java ServerPages API.")
        (modify-phases %standard-phases
          (replace 'unpack
            (lambda* (#:key source #:allow-other-keys)
-             (and (mkdir "swt")
-                  (zero? (system* "unzip" source "-d" "swt"))
-                  (chdir "swt")
-                  (mkdir "src")
-                  (zero? (system* "unzip" "src.zip" "-d" "src")))))
+             (mkdir "swt")
+             (invoke "unzip" source "-d" "swt")
+             (chdir "swt")
+             (mkdir "src")
+             (invoke "unzip" "src.zip" "-d" "src")))
          ;; The classpath contains invalid icecat jars.  Since we don't need
          ;; anything other than the JDK on the classpath, we can simply unset
          ;; it.
@@ -2536,7 +2590,7 @@ API and version 2.1 of the Java ServerPages API.")
                (mkdir-p lib)
                (setenv "OUTPUT_DIR" lib)
                (with-directory-excursion "src"
-                 (zero? (system* "bash" "build.sh"))))))
+                 (invoke "bash" "build.sh")))))
          (add-after 'install 'install-native
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((lib (string-append (assoc-ref outputs "out") "/lib")))
@@ -2622,7 +2676,7 @@ decompression and random access decompression have been fully implemented.")
            (lambda* (#:key source #:allow-other-keys)
              (mkdir "src")
              (with-directory-excursion "src"
-               (zero? (system* "jar" "-xf" source)))))
+               (invoke "jar" "-xf" source))))
          ;; At this point we don't have junit, so we must remove the API
          ;; tests.
          (add-after 'unpack 'delete-tests
@@ -2764,7 +2818,8 @@ private Method[] getSortedMethods() {
   return _allMethods;
 }
 
-private Method[] allMethods = getSortedMethods();")))))
+private Method[] allMethods = getSortedMethods();")))
+             #t))
          (add-before 'build 'do-not-use-bundled-qdox
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "build.xml"
@@ -3055,7 +3110,8 @@ reusing it in maven.")
            (lambda _
              ;; Requires an older version of plexus container
              (delete-file
-               "src/test/java/org/codehaus/plexus/archiver/DuplicateFilesTest.java")))
+              "src/test/java/org/codehaus/plexus/archiver/DuplicateFilesTest.java")
+             #t))
          (add-before 'build 'copy-resources
            (lambda _
              (mkdir-p "build/classes/META-INF/plexus")
@@ -3248,15 +3304,15 @@ Compiler component.")))
          (add-before 'build 'generate-models
            (lambda* (#:key inputs #:allow-other-keys)
              (define (modello-single-mode file version mode)
-               (zero? (system* "java"
-                               "org.codehaus.modello.ModelloCli"
-                               file mode "src/main/java" version
-                               "false" "true")))
+               (invoke "java"
+                       "org.codehaus.modello.ModelloCli"
+                       file mode "src/main/java" version
+                       "false" "true"))
              (let ((file "src/main/mdo/settings-security.mdo"))
-               (and
                (modello-single-mode file "1.0.0" "java")
                (modello-single-mode file "1.0.0" "xpp3-reader")
-               (modello-single-mode file "1.0.0" "xpp3-writer")))))
+               (modello-single-mode file "1.0.0" "xpp3-writer"))
+             #t))
          (add-before 'build 'generate-components.xml
            (lambda _
              (mkdir-p "build/classes/META-INF/plexus")
@@ -3285,10 +3341,12 @@ Compiler component.")))
       </configuration>\n
     </component>\n
   </components>\n
-</component-set>\n")))))
+</component-set>\n")))
+             #t))
          (add-before 'check 'fix-paths
            (lambda _
-             (copy-recursively "src/test/resources" "target"))))))
+             (copy-recursively "src/test/resources" "target")
+             #t)))))
     (inputs
      `(("java-plexus-cipher" ,java-plexus-cipher)))
     (native-inputs
@@ -3511,7 +3569,8 @@ XSD and documentation.")
              (with-directory-excursion "modello-plugins/modello-plugin-xml/src/test"
                (substitute*
                  "java/org/codehaus/modello/plugins/xml/XmlModelloPluginTest.java"
-                 (("src/test") "modello-plugins/modello-plugin-xml/src/test"))))))))
+                 (("src/test") "modello-plugins/modello-plugin-xml/src/test")))
+             #t)))))
     (inputs
      `(("java-modello-core" ,java-modello-core)
        ("java-modello-plugins-java" ,java-modello-plugins-java)
@@ -3606,9 +3665,9 @@ on the XPP3 API (XML Pull Parser).")))
              ;; We cannot use the "jar" target because it depends on a couple
              ;; of unpackaged, complicated tools.
              (mkdir "dist")
-             (zero? (system* "jar"
-                             "-cf" (string-append "dist/asm-" ,version ".jar")
-                             "-C" "output/build/tmp" "."))))
+             (invoke "jar"
+                     "-cf" (string-append "dist/asm-" ,version ".jar")
+                     "-C" "output/build/tmp" ".")))
          (replace 'install
            (install-jars "dist")))))
     (native-inputs
@@ -4105,7 +4164,8 @@ are many features, including:
                 (mkdir-p "build/conf")
                 (call-with-output-file "build/conf/MANIFEST.MF"
                   (lambda (file)
-                    (format file "Manifest-Version: 1.0\n")))))
+                    (format file "Manifest-Version: 1.0\n")))
+                #t))
             (replace 'install
               (install-jars "build"))))))))
 
@@ -4351,7 +4411,8 @@ in the @code{java.lang} package.  The following classes are included:
                      (property (@ (name "tests.dir") (value "src/org/apache/bsf/test")))
                      (property (@ (name "build.tests") (value "build/test-classes")))
                      (property (@ (name "build.dest") (value "build/classes"))))
-                  port)))))
+                  port)))
+             #t))
          (replace 'install (install-jars "build")))))
     (native-inputs
      `(("java-junit" ,java-junit)))
@@ -5798,8 +5859,8 @@ more efficient storage-wise than an uncompressed bitmap (as implemented in the
              ;; pom.xml ignores these files in the jar creation process. If we don't,
              ;; we get the error "This code should have never made it into slf4j-api.jar"
              (delete-file-recursively "build/classes/org/slf4j/impl")
-             (zero? (system* "jar" "-cf" "build/jar/slf4j-api.jar" "-C"
-                             "build/classes" "."))))
+             (invoke "jar" "-cf" "build/jar/slf4j-api.jar" "-C"
+                     "build/classes" ".")))
          (add-before 'check 'dont-test-abstract-classes
            (lambda _
              ;; abstract classes are not meant to be run with junit
@@ -5807,7 +5868,8 @@ more efficient storage-wise than an uncompressed bitmap (as implemented in the
                (("<include name=\"\\*\\*/\\*Test.java\" />")
                 (string-append "<include name=\"**/*Test.java\" />"
                                "<exclude name=\"**/MultithreadedInitializationTest"
-                               ".java\" />"))))))))
+                               ".java\" />")))
+             #t)))))
     (inputs
      `(("java-junit" ,java-junit)
        ("java-hamcrest-core" ,java-hamcrest-core)))
@@ -5848,10 +5910,9 @@ time.")
              (setenv "CLASSPATH"
                      (string-append (getcwd) ":" (getenv "CLASSPATH")))
              ;; ... and build test helper classes here:
-             (zero?
-              (apply system*
-                     `("javac" "-d" "."
-                       ,@(find-files "slf4j-api/src/test" ".*\\.java")))))))))
+             (apply invoke
+                    `("javac" "-d" "."
+                      ,@(find-files "slf4j-api/src/test" ".*\\.java"))))))))
     (inputs
      `(("java-junit" ,java-junit)
        ("java-hamcrest-core" ,java-hamcrest-core)
@@ -5950,11 +6011,12 @@ tree walking, and translation.")
          (add-before 'build 'generate-grammar
            (lambda _
              (with-directory-excursion "src/org/antlr/stringtemplate/language/"
-               (every (lambda (file)
-                        (format #t "~a\n" file)
-                        (zero? (system* "antlr" file)))
-                      '("template.g" "angle.bracket.template.g" "action.g"
-                        "eval.g" "group.g" "interface.g"))))))))
+               (for-each (lambda (file)
+                           (format #t "~a\n" file)
+                           (invoke "antlr" file))
+                         '("template.g" "angle.bracket.template.g" "action.g"
+                           "eval.g" "group.g" "interface.g")))
+             #t)))))
     (native-inputs
      `(("antlr" ,antlr2)
        ("java-junit" ,java-junit)))
@@ -6012,10 +6074,11 @@ StringTemplate also powers ANTLR.")
          (add-before 'build 'generate-grammar
            (lambda _
              (with-directory-excursion "src/org/stringtemplate/v4/compiler/"
-               (every (lambda (file)
-                        (format #t "~a\n" file)
-                        (zero? (system* "antlr3" file)))
-                      '("STParser.g" "Group.g" "CodeGenerator.g"))))))))
+               (for-each (lambda (file)
+                           (format #t "~a\n" file)
+                           (invoke "antlr3" file))
+                         '("STParser.g" "Group.g" "CodeGenerator.g")))
+             #t)))))
     (inputs
      `(("antlr3" ,antlr3-bootstrap)
        ("antlr2" ,antlr2)
@@ -6082,14 +6145,15 @@ StringTemplate also powers ANTLR.")
                                                     "/lib")
                                                   ".*\\.jar"))
                                     " org.antlr.Tool $*"))))
-               (chmod (string-append bin "/antlr3") #o755))))
+               (chmod (string-append bin "/antlr3") #o755))
+             #t))
          (add-before 'build 'generate-grammar
            (lambda _
              (chdir "tool/src/main/antlr3/org/antlr/grammar/v3/")
              (for-each (lambda (file)
                          (display file)
                          (newline)
-                         (system* "antlr3" file))
+                         (invoke "antlr3" file))
                        '("ANTLR.g" "ANTLRTreePrinter.g" "ActionAnalysis.g"
                          "AssignTokenTypesWalker.g"
                          "ActionTranslator.g" "TreeToNFAConverter.g"
@@ -6100,14 +6164,13 @@ StringTemplate also powers ANTLR.")
              (substitute* "ANTLRv3Parser.java"
                (("public Object getTree") "public CommonTree getTree"))
              (chdir "../../../../../java")
-             (system* "antlr" "-o" "org/antlr/tool"
-                      "org/antlr/tool/serialize.g")
              (substitute* "org/antlr/tool/LeftRecursiveRuleAnalyzer.java"
                (("import org.antlr.grammar.v3.\\*;") "import org.antlr.grammar.v3.*;
 import org.antlr.grammar.v3.ANTLRTreePrinter;"))
              (substitute* "org/antlr/tool/ErrorManager.java"
                (("case NO_SUCH_ATTRIBUTE_PASS_THROUGH:") ""))
-             (chdir "../../../..")))
+             (chdir "../../../..")
+             #t))
          (add-before 'build 'fix-build-xml
            (lambda _
              (substitute* "build.xml"
@@ -6118,7 +6181,8 @@ import org.antlr.grammar.v3.ANTLRTreePrinter;"))
 <include name=\"**/*.sti\"/>
 <include name=\"**/STLexer.tokens\"/>
 </fileset>
-</copy><exec")))))))
+</copy><exec"))
+             #t)))))
     (native-inputs
      `(("antlr" ,antlr2)
        ("antlr3" ,antlr3-bootstrap)))
@@ -6207,19 +6271,19 @@ tree walking, and translation.")
 import org.antlr.grammar.v2.TreeToNFAConverter;\n
 import org.antlr.grammar.v2.DefineGrammarItemsWalker;\n
 import org.antlr.grammar.v2.ANTLRTreePrinter;"))
-             (and
-              (with-directory-excursion "tool/src/main/antlr2/org/antlr/grammar/v2/"
-                (every (lambda (file)
-                         (format #t "~a\n" file)
-                         (zero? (system* "antlr" file)))
-                       '("antlr.g" "antlr.print.g" "assign.types.g"
-                         "buildnfa.g" "codegen.g" "define.g")))
-              (with-directory-excursion "tool/src/main/antlr3/org/antlr/grammar/v3/"
-                (every (lambda (file)
-                         (format #t "~a\n" file)
-                         (zero? (system* "antlr3" file)))
-                       '("ActionAnalysis.g" "ActionTranslator.g" "ANTLRv3.g"
-                         "ANTLRv3Tree.g"))))))
+             (with-directory-excursion "tool/src/main/antlr2/org/antlr/grammar/v2/"
+               (for-each (lambda (file)
+                           (format #t "~a\n" file)
+                           (invoke "antlr" file))
+                         '("antlr.g" "antlr.print.g" "assign.types.g"
+                           "buildnfa.g" "codegen.g" "define.g")))
+             (with-directory-excursion "tool/src/main/antlr3/org/antlr/grammar/v3/"
+               (for-each (lambda (file)
+                           (format #t "~a\n" file)
+                           (invoke "antlr3" file))
+                         '("ActionAnalysis.g" "ActionTranslator.g" "ANTLRv3.g"
+                           "ANTLRv3Tree.g")))
+             #t))
          (add-before 'build 'fix-build-xml
            (lambda _
              (substitute* "build.xml"
@@ -6282,7 +6346,8 @@ import org.antlr.grammar.v2.ANTLRTreePrinter;"))
                                                     "/lib")
                                                   ".*\\.jar"))
                                     " org.antlr.Tool $*"))))
-               (chmod (string-append bin "/antlr3") #o755))))
+               (chmod (string-append bin "/antlr3") #o755))
+             #t))
          (add-before 'build 'generate-grammar
            (lambda _
              (let ((dir "src/org/antlr/tool/"))
@@ -6306,7 +6371,8 @@ import org.antlr.grammar.v2.ANTLRTreePrinter;"))
 <include name=\"**/*.sti\"/>
 <include name=\"**/STLexer.tokens\"/>
 </fileset>
-</copy><exec")))))))
+</copy><exec"))
+             #t)))))
     (native-inputs
      `(("antlr" ,antlr2)))
     (inputs
@@ -6931,7 +6997,8 @@ the packageadmin service.")
                    (string-append
                      "version=" ,version "\n"
                      "groupId=org.ops4j.base"
-                     "artifactId=ops4j-base-lang\n")))))))))
+                     "artifactId=ops4j-base-lang\n"))))
+             #t)))))
     (home-page "https://ops4j1.jira.com/wiki/spaces/base/overview")
     (synopsis "Utility classes and extensions to be used in OPS4J projects")
     (description "OPS4J stands for Open Participation Software for Java.  This
@@ -7170,7 +7237,8 @@ it manages project dependencies, gives diffs jars, and much more.")
              ;; it with our own version.
              (substitute* "src/test/java/org/ops4j/pax/tinybundles/bnd/BndTest.java"
                (("[0-9][0-9]*\\.[0-9][0-9]*\\.[0-9][0-9]*\\.[0-9][0-9]*")
-                ,(package-version java-aqute-bndlib))))))))
+                ,(package-version java-aqute-bndlib)))
+             #t)))))
     (inputs
      `(("lang" ,java-ops4j-base-lang)
        ("io" ,java-ops4j-base-io)
@@ -7245,7 +7313,8 @@ the system under test at the same time.")
          (add-before 'configure 'chdir
            (lambda _
              ;; Tests assume we are in this directory
-             (chdir "core/pax-exam-spi")))
+             (chdir "core/pax-exam-spi")
+             #t))
          (add-before 'check 'fix-tests
            (lambda _
              ;; One test checks that this file is present.
@@ -7264,7 +7333,8 @@ the system under test at the same time.")
                (("target") "build"))
              ;; One test is expected to fail, but it doesn't throw the expected exception
              (substitute* "src/test/java/org/ops4j/pax/exam/spi/reactors/BaseStagedReactorTest.java"
-               (("AssertionError") "IllegalArgumentException")))))))
+               (("AssertionError") "IllegalArgumentException"))
+             #t)))))
     (inputs
      `(("java-ops4j-pax-exam-core" ,java-ops4j-pax-exam-core)
        ("lang" ,java-ops4j-base-lang)
@@ -7364,15 +7434,18 @@ not included are ones that require dependency to the Databind package.")
                  (("@package@") "com.fasterxml.jackson.core.json")
                  (("@projectversion@") ,version)
                  (("@projectgroupid@") "com.fasterxml.jackson.core")
-                 (("@projectartifactid@") "jackson-core")))))
+                 (("@projectartifactid@") "jackson-core")))
+             #t))
          (add-before 'build 'copy-resources
            (lambda _
              (copy-recursively "src/main/resources"
-                               "build/classes")))
+                               "build/classes")
+             #t))
          (add-before 'check 'copy-test-resources
            (lambda _
              (copy-recursively "src/test/resources"
-                               "build/test-classes"))))))
+                               "build/test-classes")
+             #t)))))
     (native-inputs
      `(("junit" ,java-junit)
        ("hamcrest" ,java-hamcrest-core)))
@@ -7409,10 +7482,12 @@ not included are ones that require dependency to the Databind package.")
                  (("@package@") "com.fasterxml.jackson.databind.cfg")
                  (("@projectversion@") ,version)
                  (("@projectgroupid@") "com.fasterxml.jackson.databind")
-                 (("@projectartifactid@") "jackson-databind")))))
+                 (("@projectartifactid@") "jackson-databind")))
+             #t))
          (add-before 'build 'copy-resources
            (lambda _
-             (copy-recursively "src/main/resources" "build/classes"))))))
+             (copy-recursively "src/main/resources" "build/classes")
+             #t)))))
     (inputs
      `(("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations)
        ("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core)))
@@ -7456,10 +7531,12 @@ configuration.")
                  (("@package@") "com.fasterxml.jackson.module.jaxb")
                  (("@projectversion@") ,version)
                  (("@projectgroupid@") "com.fasterxml.jackson.module.jaxb")
-                 (("@projectartifactid@") "jackson-module-jaxb")))))
+                 (("@projectartifactid@") "jackson-module-jaxb")))
+             #t))
          (add-before 'build 'copy-resources
            (lambda _
-             (copy-recursively "jaxb/src/main/resources" "build/classes"))))))
+             (copy-recursively "jaxb/src/main/resources" "build/classes")
+             #t)))))
     (inputs
      `(("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations)
        ("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core)
@@ -7524,7 +7601,8 @@ configuration.")
                  (("@package@") "com.fasterxml.jackson.dataformat.yaml")
                  (("@projectversion@") ,version)
                  (("@projectgroupid@") "com.fasterxml.jackson.dataformat.yaml")
-                 (("@projectartifactid@") "jackson-dataformat-yaml"))))))))
+                 (("@projectartifactid@") "jackson-dataformat-yaml")))
+             #t)))))
     (inputs
      `(("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations)
        ("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core)
@@ -7591,10 +7669,12 @@ interface and high-performance Typed Access API.")
              ;; msv's latest release is from 2011 and we don't need it
              (delete-file-recursively "src/main/java/com/ctc/wstx/msv")
              (delete-file-recursively "src/test/java/wstxtest/osgi")
-             (delete-file-recursively "src/test/java/wstxtest/msv")))
+             (delete-file-recursively "src/test/java/wstxtest/msv")
+             #t))
          (add-before 'build 'copy-resources
            (lambda _
-             (copy-recursively "src/main/resources" "build/classes"))))))
+             (copy-recursively "src/main/resources" "build/classes")
+             #t)))))
     (inputs
      `(("stax2" ,java-stax2-api)))
     (native-inputs
@@ -7634,10 +7714,12 @@ interface and high-performance Typed Access API.")
                  (("@package@") "com.fasterxml.jackson.dataformat.xml")
                  (("@projectversion@") ,version)
                  (("@projectgroupid@") "com.fasterxml.jackson.dataformat.xml")
-                 (("@projectartifactid@") "jackson-dataformat-xml")))))
+                 (("@projectartifactid@") "jackson-dataformat-xml")))
+             #t))
          (add-before 'build 'copy-resources
            (lambda _
-             (copy-recursively "src/main/resources" "build/classes"))))))
+             (copy-recursively "src/main/resources" "build/classes")
+             #t)))))
     (inputs
      `(("jackson-annotations" ,java-fasterxml-jackson-annotations)
        ("jackson-core" ,java-fasterxml-jackson-core)
@@ -8112,15 +8194,15 @@ those in Perl and JavaScript.")
              #t))
          (replace 'check
            (lambda _
-             (system* "ant" "compile-tests")
+             (invoke "ant" "compile-tests")
              ;; we don't have groovy
              (substitute* "src/test/resources/testng.xml"
                (("<class name=\"test.groovy.GroovyTest\" />") ""))
-             (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH")
-                                                         ":build/classes"
-                                                         ":build/test-classes")
-                             "-Dtest.resources.dir=src/test/resources"
-                             "org.testng.TestNG" "src/test/resources/testng.xml")))))))
+             (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
+                                                 ":build/classes"
+                                                 ":build/test-classes")
+                     "-Dtest.resources.dir=src/test/resources"
+                     "org.testng.TestNG" "src/test/resources/testng.xml"))))))
     (propagated-inputs
      `(("junit" ,java-junit)
        ("java-jsr305" ,java-jsr305)
@@ -8184,8 +8266,7 @@ to use.")
                                                    ":build/classes"
                                                    ":build/test-classes")
                        "org.testng.TestNG" "-testclass"
-                       "build/test-classes/com/neilalexander/jnacl/NaClTest.class")
-               #t)))))
+                       "build/test-classes/com/neilalexander/jnacl/NaClTest.class"))))))
       (native-inputs
        `(("java-testng" ,java-testng)
          ("java-fest-util" ,java-fest-util)
@@ -8368,8 +8449,7 @@ algorithms and xxHash hashing algorithm.")
          (replace 'build
            (lambda _
              (invoke "ant" "-f" "ant/jdk15+.xml" "build-provider")
-             (invoke "ant" "-f" "ant/jdk15+.xml" "build")
-             #t))
+             (invoke "ant" "-f" "ant/jdk15+.xml" "build")))
          ;; FIXME: the tests freeze.
          ;; (replace 'check
          ;;   (lambda _
@@ -8547,7 +8627,8 @@ done to the IDE or continuous integration servers which simplifies adoption.")
          (add-before 'build 'copy-resources
            (lambda _
              (copy-recursively "powermock-core/src/main/resources"
-                               "build/classes"))))))
+                               "build/classes")
+             #t)))))
     (inputs
      `(("reflect" ,java-powermock-reflect)
        ("javassist" ,java-jboss-javassist)))
@@ -8604,7 +8685,8 @@ done to the IDE or continuous integration servers which simplifies adoption.")
              ;; Our junit version is 4.12-SNAPSHOT
              (substitute* (find-files "powermock-modules/powermock-module-junit4"
                                       "PowerMockJUnit4MethodValidator.java")
-               (("4.12") "4.12-SNAPSHOT")))))))
+               (("4.12") "4.12-SNAPSHOT"))
+             #t)))))
     (inputs
      `(("core" ,java-powermock-core)
        ("reflect" ,java-powermock-reflect)
@@ -9069,8 +9151,7 @@ that is part of the SWT Tools project.")
                        (string-append "-I" (assoc-ref inputs "jdk")
                                       "/include/linux")
                        "-fPIC" "-O2")
-               (invoke "gcc" "-o" "libjansi.so" "-shared" "jansi_ttyname.o")
-               #t)))
+               (invoke "gcc" "-o" "libjansi.so" "-shared" "jansi_ttyname.o"))))
          (add-before 'build 'install-native
            (lambda _
              (let ((dir (string-append "build/classes/META-INF/native/"
@@ -9115,7 +9196,7 @@ console output.")
        (modify-phases %standard-phases
          (add-after 'check 'clear-term
            (lambda _
-             (zero? (system* "echo" "-e" "\\e[0m")))))))
+             (invoke "echo" "-e" "\\e[0m"))))))
     (inputs
      `(("java-jansi-native" ,java-jansi-native)))
     (native-inputs
@@ -9579,7 +9660,8 @@ graphs, and pie charts.")
                '("src/java/org/apache/commons/httpclient/HttpContentTooLargeException.java"
                  "src/examples/TrivialApp.java" "src/examples/ClientApp.java"
                  "src/test/org/apache/commons/httpclient/TestHttps.java"
-                 "src/test/org/apache/commons/httpclient/TestURIUtil2.java"))))
+                 "src/test/org/apache/commons/httpclient/TestURIUtil2.java"))
+             #t))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (invoke "ant" "dist"
@@ -9629,7 +9711,8 @@ authentication, HTTP state management, and HTTP connection management.")
            (lambda _
              (for-each delete-file-recursively
                '("commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav"
-                 "commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs")))))))
+                 "commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs"))
+             #t)))))
     (inputs
      `(("java-commons-collections4" ,java-commons-collections4)
        ("java-commons-compress" ,java-commons-compress)
@@ -9940,7 +10023,8 @@ jsch-agent-proxy with JSch.")))
                    (find-files "." ".*.properties")
                    (find-files "." ".*.xsd")
                    (find-files "." ".*.xsl")
-                   (find-files "." ".*.xml"))))))
+                   (find-files "." ".*.xml"))))
+             #t))
          (add-before 'build 'fix-vfs
            (lambda _
              (substitute*
@@ -9955,8 +10039,7 @@ jsch-agent-proxy with JSch.")))
          (add-before 'install 'repack
            (lambda _
              (invoke "jar" "-cmf" "build/classes/META-INF/MANIFEST.MF" "build/jar/ivy.jar"
-                     "-C" "build/classes" ".")
-             #t))
+                     "-C" "build/classes" ".")))
          (add-after 'install 'install-bin
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((bin (string-append (assoc-ref outputs "out") "/bin"))
@@ -10169,7 +10252,8 @@ and @code{ISimpleCompiler} interfaces.")
        (modify-phases %standard-phases
          (add-before 'configure 'chdir
            (lambda _
-             (chdir "janino"))))))
+             (chdir "janino")
+             #t)))))
     (inputs
      `(("java-commons-compiler" ,java-commons-compiler)))
     (native-inputs
@@ -10194,7 +10278,9 @@ static code analysis or code manipulation.")))
                 "1x6ga74yfgm94cfx98gybakbrlilx8i2gn6dx13l40kasmys06mi"))
               (modules '((guix build utils)))
               (snippet
-               '(delete-file-recursively "logback-access/lib"))))
+               '(begin
+                  (delete-file-recursively "logback-access/lib")
+                  #t))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "logback.jar"
diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index 33ecdc47f0..dc13be19d2 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -754,7 +754,7 @@ word compounding or character encoding.")
     (name (match variant
             ("classique" "hunspell-dict-fr")
             (_ (string-append "hunspell-dict-fr-" variant))))
-    (version "6.1")
+    (version "6.2")
     (source (origin
               (uri (string-append
                     "http://www.dicollecte.org/download/fr/hunspell-french-dictionaries-v"
@@ -762,7 +762,7 @@ word compounding or character encoding.")
               (method url-fetch)
               (sha256
                (base32
-                "0w2hzh36wj3lsj2yd4mh7z7547dg452sywj79vnzx27csclwqshc"))))
+                "139hfrn5p87sl8hqmgkf6sgvnxrk2mm8vd8xsm8sm98qjnwlg0f9"))))
     (build-system trivial-build-system)
     (native-inputs `(("unzip" ,unzip)))
     (arguments
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index cd3924ccee..2ce0f56b84 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -402,8 +402,8 @@ It has been modified to remove all non-free binary blobs.")
 ;; supports qemu "virt" machine and possibly a large number of ARM boards.
 ;; See : https://wiki.debian.org/DebianKernel/ARMMP.
 
-(define %linux-libre-version "4.17.5")
-(define %linux-libre-hash "0pldqw7f4nhziw3r73l339d79aijxhy6anf1ryiy3makip6gkib1")
+(define %linux-libre-version "4.17.6")
+(define %linux-libre-hash "0d48r5jpj71ikdalz5z756snwq54cpnwnba8bbhg8r2ri3770wcm")
 
 (define-public linux-libre
   (make-linux-libre %linux-libre-version
@@ -411,8 +411,8 @@ It has been modified to remove all non-free binary blobs.")
                     %linux-compatible-systems
                     #:configuration-file kernel-config))
 
-(define %linux-libre-4.14-version "4.14.54")
-(define %linux-libre-4.14-hash "027138z7p5ld1zyrxq1xjc7x3b7wbgikh7gn2xfvwm9gn8qpazki")
+(define %linux-libre-4.14-version "4.14.55")
+(define %linux-libre-4.14-hash "1rlapfwkjfmyk4ahvqwqap4w9flbw2zag0r04fwrmyqz1y5ijayf")
 
 (define-public linux-libre-4.14
   (make-linux-libre %linux-libre-4.14-version
@@ -421,14 +421,14 @@ It has been modified to remove all non-free binary blobs.")
                     #:configuration-file kernel-config))
 
 (define-public linux-libre-4.9
-  (make-linux-libre "4.9.111"
-                    "0ld57627k6mjp14x5bvndakj6lc4l31zp2yq74h7ski2g3k7ppk2"
+  (make-linux-libre "4.9.112"
+                    "1zrnbvzr7z5ky79r6hpjvn15bxmwcyi8lr7yq2nx1r8ladl8lnb0"
                     %intel-compatible-systems
                     #:configuration-file kernel-config))
 
 (define-public linux-libre-4.4
-  (make-linux-libre "4.4.139"
-                    "0x58ykgx7vbv23q763ydifi548mz39nal7wbvrrl4i9ndk7pzfzz"
+  (make-linux-libre "4.4.140"
+                    "10h4k2c2ncnc1h61kikqb618dh9lp8fmzagz2ydykrdbb5jjiy82"
                     %intel-compatible-systems
                     #:configuration-file kernel-config))
 
@@ -537,15 +537,15 @@ at login.  Local and dynamic reconfiguration are its key features.")
 (define-public psmisc
   (package
     (name "psmisc")
-    (version "22.21")
+    (version "23.1")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://sourceforge/psmisc/psmisc/psmisc-"
-                          version ".tar.gz"))
+                          version ".tar.xz"))
       (sha256
        (base32
-        "0nhlm1vrrwn4a845p6y4nnnb4liq70n74zbdd5dq844jc6nkqclp"))))
+        "0c5s94hqpwfmyswx2f96gifa6wdbpxxpkyxcrlzbxpvmrxsd911f"))))
     (build-system gnu-build-system)
     (inputs `(("ncurses" ,ncurses)))
     (home-page "https://gitlab.com/psmisc/psmisc")
@@ -975,15 +975,8 @@ intercept and print the system calls executed by the program.")
                    version ".tar.bz2"))
              (sha256
               (base32
-               "096pwrnhj36yndldvs2pj4r871zhcgisks0is78f1jkjn9sd4b2z"))
-             (patches (search-patches "alsa-lib-add-environment-variable.patch"))))
+               "096pwrnhj36yndldvs2pj4r871zhcgisks0is78f1jkjn9sd4b2z"))))
     (build-system gnu-build-system)
-    (native-search-paths
-     (list (search-path-specification
-             (variable "ALSA_PLUGIN_DIR")
-             (file-type 'regular)
-             (separator #f)                         ;single entry
-             (files '("lib/alsa-lib")))))
     (home-page "https://www.alsa-project.org/")
     (synopsis "The Advanced Linux Sound Architecture libraries")
     (description
@@ -3049,15 +3042,15 @@ Linux Device Mapper multipathing driver:
 (define-public libaio
   (package
     (name "libaio")
-    (version "0.3.110")
+    (version "0.3.111")
     (source (origin
               (method url-fetch)
-             (uri (list
-                   (string-append "mirror://debian/pool/main/liba/libaio/"
-                                  name "_" version ".orig.tar.gz")))
-             (sha256
-              (base32
-               "0zjzfkwd1kdvq6zpawhzisv7qbq1ffs343i5fs9p498pcf7046g0"))))
+              (uri (list
+                    (string-append "https://releases.pagure.org/libaio/"
+                                   name "-" version ".tar.gz")))
+              (sha256
+               (base32
+                "0ajhzbqjwsmz51gwccfyw6w9k4j4gmxcl2ph30sfn2gxv0d8gkv2"))))
     (build-system gnu-build-system)
     (arguments
      '(#:make-flags
@@ -3065,7 +3058,7 @@ Linux Device Mapper multipathing driver:
        #:test-target "partcheck" ; need root for a full 'check'
        #:phases
        (modify-phases %standard-phases (delete 'configure)))) ; no configure script
-    (home-page "http://lse.sourceforge.net/io/aio.html")
+    (home-page "https://pagure.io/libaio")
     (synopsis "Linux-native asynchronous I/O access library")
     (description
      "This library enables userspace to use Linux kernel asynchronous I/O
@@ -3099,7 +3092,7 @@ Bluetooth audio output devices like headphones or loudspeakers.")
 (define-public bluez
   (package
     (name "bluez")
-    (version "5.49")
+    (version "5.50")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3107,7 +3100,7 @@ Bluetooth audio output devices like headphones or loudspeakers.")
                     version ".tar.xz"))
               (sha256
                (base32
-                "15ffsaz7l3fgdg03l7g1xx9jw7xgs6pc548zxqsxawsca5x1sc1k"))))
+                "048r91vx9gs5nwwbah2s0xig04nwk14c5s0vb7qmaqdvighsmz2z"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -3290,7 +3283,7 @@ and copy/paste text in the console and in xterm.")
                      ("which" ,which)
                      ;; The tests need 'grep' with perl regexp support.
                      ("grep" ,grep)))
-    (home-page "https://btrfs.wiki.kernel.org/")
+    (home-page "https://btrfs.wiki.kernel.org/index.php/Main_Page")
     (synopsis "Create and manage btrfs copy-on-write file systems")
     (description "Btrfs is a @dfn{copy-on-write} (CoW) file system for Linux
 aimed at implementing advanced features while focusing on fault tolerance,
@@ -3595,7 +3588,7 @@ The following service daemons are also provided:
 (define-public rng-tools
   (package
     (name "rng-tools")
-    (version "6.2")
+    (version "6.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/nhorman/rng-tools/"
@@ -3603,7 +3596,7 @@ The following service daemons are also provided:
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0xy4qmfhvkr5z4jr9j55dn5gnajr2jccdp6n0xsxkipjcgag342j"))))
+                "1lc2kqw3idwmjyjnf16sqz0f4r1w7c638n4la1j1n5c3188q26bv"))))
     (build-system gnu-build-system)
     (arguments
      `(;; Avoid using OpenSSL, curl, and libxml2, reducing the closure by 166 MiB.
diff --git a/gnu/packages/lsof.scm b/gnu/packages/lsof.scm
index 098242dc7a..8b3ebe2945 100644
--- a/gnu/packages/lsof.scm
+++ b/gnu/packages/lsof.scm
@@ -28,7 +28,7 @@
 (define-public lsof
   (package
    (name "lsof")
-   (version "4.89")
+   (version "4.91")
    (source
     (origin
       (method url-fetch)
@@ -53,7 +53,7 @@
                 (string-append "ftp://ftp.mirrorservice.org/sites/"
                                "lsof.itap.purdue.edu/pub/tools/unix/lsof")))))
       (sha256
-       (base32 "061p18v0mhzq517791xkjs8a5dfynq1418a1mwxpji69zp2jzb41"))))
+       (base32 "18sh4hbl9jw2szkf0gvgan8g13f3g4c6s2q9h3zq5gsza9m99nn9"))))
    (build-system gnu-build-system)
    (native-inputs `(("perl" ,perl)))
    (arguments
@@ -73,14 +73,16 @@
         (add-after 'configure 'patch-timestamps
           (lambda _
             (substitute* "Makefile"
-              (("`date`") "`date --date=@1`"))))
+              (("`date`") "`date --date=@1`"))
+            #t))
         (add-before 'check 'disable-failing-tests
           (lambda _
             (substitute* "tests/Makefile"
               ;; Fails with ‘ERROR!!! client gethostbyaddr() failure’.
               (("(STDTST=.*) LTsock" _ prefix) prefix)
               ;; Fails without access to a remote NFS server.
-              (("(OPTTST=.*) LTnfs"  _ prefix) prefix))))
+              (("(OPTTST=.*) LTnfs"  _ prefix) prefix))
+            #t))
         (replace 'check
           (lambda _
             (with-directory-excursion "tests"
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index bf77b0a7fe..f127e27e3c 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -1071,15 +1071,15 @@ which can add many functionalities to the base client.")
 (define-public msmtp
   (package
     (name "msmtp")
-    (version "1.6.6")
+    (version "1.6.8")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://sourceforge/msmtp/msmtp/" version
+       (uri (string-append "https://marlam.de/msmtp/releases/"
                            "/msmtp-" version ".tar.xz"))
        (sha256
         (base32
-         "0ppvww0sb09bnsrpqnvlrn8vx231r24xn2iiwpy020mxc8gxn5fs"))))
+         "1ysrnshvwhzwmvb2walw5i9jdzlvmckj7inr0xnvb26q0jirbzsm"))))
     (build-system gnu-build-system)
     (inputs
      `(("libidn" ,libidn)
@@ -1089,7 +1089,7 @@ which can add many functionalities to the base client.")
        ("gsasl" ,gsasl)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://msmtp.sourceforge.net/")
+    (home-page "https://marlam.de/msmtp/")
     (arguments
      `(#:configure-flags (list "--with-libgsasl"
                                "--with-libidn"
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 39e2c38eb4..1e0e1998db 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -2798,7 +2798,7 @@ parts of it.")
 (define-public openblas
   (package
     (name "openblas")
-    (version "0.2.20")
+    (version "0.3.0")
     (source
      (origin
        (method url-fetch)
@@ -2807,7 +2807,7 @@ parts of it.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1bd03c5xni0bla0wg1wba841b36b0sg13sjja955kn5xzvy4i61a"))))
+         "14a9vyvp2k5zpd0axbnqk0d3khc1v3cck10nb5fj7d2sgn8490ky"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -2846,6 +2846,16 @@ parts of it.")
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)
+         ;; Conditionally apply a patch on i686 to avoid rebuilding
+         ;; all architectures.  FIXME: This should be moved to the
+         ;; (source (patches ...)) field in the next rebuild cycle.
+         ,@(if (string-prefix? "i686" (or (%current-target-system)
+                                          (%current-system)))
+               `((add-after 'unpack 'fix-tests
+                   (lambda* (#:key inputs #:allow-other-keys)
+                     (invoke "patch" "-p1"
+                             "--input" (assoc-ref inputs "i686-fix-tests.patch")))))
+               '())
          (add-before 'build 'set-extralib
            (lambda* (#:key inputs #:allow-other-keys)
              ;; Get libgfortran found when building in utest.
@@ -2857,6 +2867,11 @@ parts of it.")
      `(("fortran-lib" ,gfortran "lib")))
     (native-inputs
      `(("cunit" ,cunit)
+       ,@(if (string-prefix? "i686" (or (%current-target-system)
+                                        (%current-system)))
+             `(("i686-fix-tests.patch"
+                ,(search-patch "openblas-fix-tests-i686.patch")))
+             '())
        ("fortran" ,gfortran)
        ("perl" ,perl)))
     (home-page "http://www.openblas.net/")
diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm
index 52464e28d4..8bde7b1525 100644
--- a/gnu/packages/mes.scm
+++ b/gnu/packages/mes.scm
@@ -25,8 +25,10 @@
   #:use-module (gnu packages cross-base)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages guile)
+  #:use-module (gnu packages man)
   #:use-module (gnu packages package-management)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages texinfo)
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -73,7 +75,7 @@ extensive examples, including parsers for the Javascript and C99 languages.")
   (let ((triplet "i686-unknown-linux-gnu"))
     (package
       (name "mes")
-      (version "0.16")
+      (version "0.16.1")
       (source (origin
                 (method url-fetch)
                 (uri (string-append "https://gitlab.com/janneke/mes"
@@ -81,7 +83,7 @@ extensive examples, including parsers for the Javascript and C99 languages.")
                                     "/mes-" version ".tar.gz"))
                 (sha256
                  (base32
-                  "0c4vz1qw767af5h615055hh8zjwwmwf5mwkb64l0l921zaa9hg2n"))))
+                  "0qghlbx2qn674q8vckxpzsd0p845kclg457bw6r25jpmslgm0bz2"))))
       (build-system gnu-build-system)
       (supported-systems '("i686-linux" "x86_64-linux"))
       (propagated-inputs
@@ -96,7 +98,9 @@ extensive examples, including parsers for the Javascript and C99 languages.")
                `(("i686-linux-binutils" ,(cross-binutils triplet))
                  ("i686-linux-gcc" ,(cross-gcc triplet)))
                '())
-         ("perl" ,perl)))               ;build-aux/gitlog-to-changelog
+         ("help2man" ,help2man)
+         ("perl" ,perl)                 ;build-aux/gitlog-to-changelog
+         ("texinfo" ,texinfo)))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index cdcd1225f2..1212a06eeb 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
 ;;; Copyright © 2016, 2017, 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
-;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
 ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
@@ -1644,4 +1644,77 @@ c-toxcore and ncurses.  It provides audio calls, sound and desktop
 notifications, and Python scripting support.")
     (license license:gpl3+)))
 
+(define-public libqmatrixclient
+  (package
+    (name "libqmatrixclient")
+    (version "0.3.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/QMatrixClient/libqmatrixclient/archive/v"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0yl7lw0s2z98xkxbklkb3i8xcd9af9qayl1zxl070d8ykl6ayqy3"))))
+    (build-system cmake-build-system)
+    (inputs
+     `(("qt" ,qt)))
+    (arguments
+     `(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON")
+       #:tests? #f)) ; No tests
+    (home-page "https://matrix.org/docs/projects/sdk/libqmatrixclient.html")
+    (synopsis "Qt5 client library for the Matrix instant messaging protocol")
+    (description "libqmatrixclient is a Qt5 library to write clients for the
+Matrix instant messaging protocol.  Quaternion is the reference client
+implementation.  Quaternion and libqmatrixclient together form the
+QMatrixClient project.")
+    (license license:lgpl2.1+)))
+
+(define-public quaternion
+  (package
+    (name "quaternion")
+    (version "0.0.9.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/QMatrixClient/Quaternion/archive/v"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0s2mpw11s2n21ds1spf94j1p2lj2px2bv5zxldlcx81ch0rb4ng8"))))
+    (build-system cmake-build-system)
+    (inputs
+     `(("libqmatrixclient" ,libqmatrixclient)
+       ("qt" ,qt)))
+    (arguments
+     `(#:tests? #f ; No tests
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-libqmatrixclient-dynamic-linking
+           ;; Upstream recommends statically linking with
+           ;; libqmatrixclient. Patch the source so that we can dynamically
+           ;; link instead. In a future release, when upstream moves to
+           ;; dynamic linking, remove this phase.
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("^add_subdirectory\\(lib\\)" all)
+                (string-append "#" all)))
+             (for-each
+              (lambda (file)
+                (substitute* file
+                  (("#include \"lib/([^\"]*)\"" all header)
+                   (string-append "#include <" header ">"))))
+              (find-files "client" "\\.(cpp|h)$"))
+             #t)))))
+    (home-page "https://matrix.org/docs/projects/client/quaternion.html")
+    (synopsis "Graphical client for the Matrix instant messaging protocol")
+    (description "Quaternion is a Qt5 desktop client for the Matrix instant
+messaging protocol.  It uses libqmatrixclient and is its reference client
+implementation.  Quaternion and libqmatriclient together form the
+QMatrixClient project.")
+    (license (list license:gpl3+ ; all source code
+                   license:lgpl3+)))) ; icons/breeze
+
 ;;; messaging.scm ends here
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index b72a4734d7..ebf0e86f12 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -22,6 +22,7 @@
 ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
 ;;; Copyright © 2018 Tonton <tonton@riseup.net>
 ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2018 Theodoros Foradis <theodoros@foradis.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -315,6 +316,35 @@ more.")
 between different versions of ØMQ.")
     (license license:mpl2.0)))
 
+(define-public cppzmq
+  (let ((revision "0")
+        (commit "d9f0f016c07046742738c65e1eb84722ae32d7d4"))
+    (package
+      (name "cppzmq")
+      (version (string-append "4.2.2-" revision "."
+                              (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/zeromq/cppzmq")
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "1gmqlm00y6xpa5m6d4ajq3ww63n2w7h4sy997wj81vcqmqx45b1f"))
+                (file-name (string-append name "-" version "-checkout"))))
+      (build-system cmake-build-system)
+      (arguments '(#:tests? #f)) ; No tests.
+      (native-inputs
+       `(("pkg-config" ,pkg-config)))
+      (inputs
+       `(("zeromq" ,zeromq)))
+      (home-page "http://zeromq.org")
+      (synopsis "C++ bindings for the ØMQ messaging library")
+      (description
+       "This package provides header-only C++ bindings for ØMQ.  The header
+files contain direct mappings of the abstractions provided by the ØMQ C API.")
+      (license license:expat))))
+
 (define-public librdkafka
   (package
     (name "librdkafka")
diff --git a/gnu/packages/patches/alsa-lib-add-environment-variable.patch b/gnu/packages/patches/alsa-lib-add-environment-variable.patch
deleted file mode 100644
index a468a7fc4f..0000000000
--- a/gnu/packages/patches/alsa-lib-add-environment-variable.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From 1822fb453128a1b5de93b4c590cd272d6488a077 Mon Sep 17 00:00:00 2001
-From: Julien Lepiller <julien@lepiller.eu>
-Date: Fri, 25 May 2018 19:26:58 +0200
-Subject: [PATCH] Add support for a ALSA_PLUGIN_DIR environment variable.
-
-If it is not set, default to previous behavior.
----
- src/control/control.c |  6 +++++-
- src/dlmisc.c          |  9 +++++++--
- src/pcm/pcm.c         |  9 +++++++--
- src/pcm/pcm_rate.c    | 13 +++++++++----
- 4 files changed, 28 insertions(+), 9 deletions(-)
-
-diff --git a/src/control/control.c b/src/control/control.c
-index 11f7815..9dba7dd 100644
---- a/src/control/control.c
-+++ b/src/control/control.c
-@@ -1331,7 +1331,11 @@ static int snd_ctl_open_conf(snd_ctl_t **ctlp, const char *name,
- 			build_in++;
- 		}
- 		if (*build_in == NULL) {
--			buf1 = malloc(strlen(str) + sizeof(ALSA_PLUGIN_DIR) + 32);
-+			char* plugdir = ALSA_PLUGIN_DIR;
-+			char* envplugdir = getenv("ALSA_PLUGIN_DIR");
-+			if(envplugdir != NULL)
-+				plugdir = envplugdir;
-+			buf1 = malloc(strlen(str) + strlen(plugdir) + 32);
- 			if (buf1 == NULL) {
- 				err = -ENOMEM;
- 				goto _err;
-diff --git a/src/dlmisc.c b/src/dlmisc.c
-index 3757d33..92aa864 100644
---- a/src/dlmisc.c
-+++ b/src/dlmisc.c
-@@ -82,9 +82,14 @@ void *snd_dlopen(const char *name, int mode, char *errbuf, size_t errbuflen)
- 	char *filename = NULL;
- 
- 	if (name && name[0] != '/') {
--		filename = alloca(sizeof(ALSA_PLUGIN_DIR) + 1 + strlen(name) + 1);
-+		char* plugdir = ALSA_PLUGIN_DIR;
-+		char* envplugdir = getenv("ALSA_PLUGIN_DIR");
-+		if(envplugdir != NULL)
-+			plugdir = envplugdir;
-+
-+		filename = malloc(strlen(plugdir) + 1 + strlen(name) + 1);
- 		if (filename) {
--			strcpy(filename, ALSA_PLUGIN_DIR);
-+			strcpy(filename, plugdir);
- 			strcat(filename, "/");
- 			strcat(filename, name);
- 			handle = dlopen(filename, mode);
-diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c
-index 11aec80..590e8b6 100644
---- a/src/pcm/pcm.c
-+++ b/src/pcm/pcm.c
-@@ -2496,13 +2496,18 @@ static int snd_pcm_open_conf(snd_pcm_t **pcmp, const char *name,
- 			build_in++;
- 		}
- 		if (*build_in == NULL) {
--			buf1 = malloc(strlen(str) + sizeof(ALSA_PLUGIN_DIR) + 32);
-+			char* plugdir = ALSA_PLUGIN_DIR;
-+			char* envplugdir = getenv("ALSA_PLUGIN_DIR");
-+			if(envplugdir != NULL)
-+				plugdir = envplugdir;
-+			buf1 = malloc(strlen(str) + strlen(plugdir) + 32);
-+
- 			if (buf1 == NULL) {
- 				err = -ENOMEM;
- 				goto _err;
- 			}
- 			lib = buf1;
--			sprintf(buf1, "%s/libasound_module_pcm_%s.so", ALSA_PLUGIN_DIR, str);
-+			sprintf(buf1, "%s/libasound_module_pcm_%s.so", plugdir, str);
- 		}
- 	}
- #ifndef PIC
-diff --git a/src/pcm/pcm_rate.c b/src/pcm/pcm_rate.c
-index 4e0c7ca..8694a38 100644
---- a/src/pcm/pcm_rate.c
-+++ b/src/pcm/pcm_rate.c
-@@ -1260,7 +1260,8 @@ static const char *const default_rate_plugins[] = {
- 
- static int rate_open_func(snd_pcm_rate_t *rate, const char *type, const snd_config_t *converter_conf, int verbose)
- {
--	char open_name[64], open_conf_name[64], lib_name[128], *lib = NULL;
-+	char open_name[64], open_conf_name[64], *lib = NULL;
-+	char *buf1;
- 	snd_pcm_rate_open_func_t open_func;
- 	snd_pcm_rate_open_conf_func_t open_conf_func;
- 	int err;
-@@ -1268,9 +1269,13 @@ static int rate_open_func(snd_pcm_rate_t *rate, const char *type, const snd_conf
- 	snprintf(open_name, sizeof(open_name), "_snd_pcm_rate_%s_open", type);
- 	snprintf(open_conf_name, sizeof(open_conf_name), "_snd_pcm_rate_%s_open_conf", type);
- 	if (!is_builtin_plugin(type)) {
--		snprintf(lib_name, sizeof(lib_name),
--				 "%s/libasound_module_rate_%s.so", ALSA_PLUGIN_DIR, type);
--		lib = lib_name;
-+		char* plugdir = ALSA_PLUGIN_DIR;
-+		char* envplugdir = getenv("ALSA_PLUGIN_DIR");
-+		if(envplugdir != NULL)
-+			plugdir = envplugdir;
-+		buf1 = malloc(strlen(type) + strlen(plugdir) + 32);
-+		sprintf(buf1, "%s/libasound_module_rate_%s.so", plugdir, type);
-+		lib = buf1;
- 	}
- 
- 	rate->rate_min = SND_PCM_PLUGIN_RATE_MIN;
--- 
-2.17.0
-
diff --git a/gnu/packages/patches/bind-CVE-2018-5738.patch b/gnu/packages/patches/bind-CVE-2018-5738.patch
deleted file mode 100644
index ddef014651..0000000000
--- a/gnu/packages/patches/bind-CVE-2018-5738.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-Fix CVE-2018-5738:
-
-https://kb.isc.org/article/AA-01616/0/CVE-2018-5738
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5738
-
-diff --git a/bin/named/server.c b/bin/named/server.c
-index f63554e..847c4ff 100644
---- a/bin/named/server.c
-+++ b/bin/named/server.c
-@@ -3725,10 +3725,6 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
- 	CHECKM(named_config_getport(config, &port), "port");
- 	dns_view_setdstport(view, port);
- 
--	CHECK(configure_view_acl(vconfig, config, named_g_config,
--				 "allow-query", NULL, actx,
--				 named_g_mctx, &view->queryacl));
--
- 	/*
- 	 * Make the list of response policy zone names for a view that
- 	 * is used for real lookups and so cares about hints.
-@@ -4692,21 +4688,35 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
- 				 "allow-query-cache-on", NULL, actx,
- 				 named_g_mctx, &view->cacheonacl));
- 	/*
--	 * Set "allow-query-cache", "allow-recursion", and
--	 * "allow-recursion-on" acls if configured in named.conf.
--	 * (Ignore the global defaults for now, because these ACLs
--	 * can inherit from each other when only some of them set at
--	 * the options/view level.)
-+	 * Set the "allow-query", "allow-query-cache", "allow-recursion",
-+	 * and "allow-recursion-on" ACLs if configured in named.conf, but
-+	 * NOT from the global defaults. This is done by leaving the third
-+	 * argument to configure_view_acl() NULL.
-+	 *
-+	 * We ignore the global defaults here because these ACLs
-+	 * can inherit from each other.  If any are still unset after
-+	 * applying the inheritance rules, we'll look up the defaults at
-+	 * that time.
- 	 */
--	CHECK(configure_view_acl(vconfig, config, NULL, "allow-query-cache",
--				 NULL, actx, named_g_mctx, &view->cacheacl));
-+
-+	/* named.conf only */
-+	CHECK(configure_view_acl(vconfig, config, NULL,
-+				 "allow-query", NULL, actx,
-+				 named_g_mctx, &view->queryacl));
-+
-+	/* named.conf only */
-+	CHECK(configure_view_acl(vconfig, config, NULL,
-+				 "allow-query-cache", NULL, actx,
-+				 named_g_mctx, &view->cacheacl));
- 
- 	if (strcmp(view->name, "_bind") != 0 &&
- 	    view->rdclass != dns_rdataclass_chaos)
- 	{
-+		/* named.conf only */
- 		CHECK(configure_view_acl(vconfig, config, NULL,
- 					 "allow-recursion", NULL, actx,
- 					 named_g_mctx, &view->recursionacl));
-+		/* named.conf only */
- 		CHECK(configure_view_acl(vconfig, config, NULL,
- 					 "allow-recursion-on", NULL, actx,
- 					 named_g_mctx, &view->recursiononacl));
-@@ -4744,18 +4754,21 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
- 		 * the global config.
- 		 */
- 		if (view->recursionacl == NULL) {
-+			/* global default only */
- 			CHECK(configure_view_acl(NULL, NULL, named_g_config,
- 						 "allow-recursion", NULL,
- 						 actx, named_g_mctx,
- 						 &view->recursionacl));
- 		}
- 		if (view->recursiononacl == NULL) {
-+			/* global default only */
- 			CHECK(configure_view_acl(NULL, NULL, named_g_config,
- 						 "allow-recursion-on", NULL,
- 						 actx, named_g_mctx,
- 						 &view->recursiononacl));
- 		}
- 		if (view->cacheacl == NULL) {
-+			/* global default only */
- 			CHECK(configure_view_acl(NULL, NULL, named_g_config,
- 						 "allow-query-cache", NULL,
- 						 actx, named_g_mctx,
-@@ -4769,6 +4782,14 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
- 		CHECK(dns_acl_none(mctx, &view->cacheacl));
- 	}
- 
-+	if (view->queryacl == NULL) {
-+		/* global default only */
-+		CHECK(configure_view_acl(NULL, NULL, named_g_config,
-+					 "allow-query", NULL,
-+					 actx, named_g_mctx,
-+					 &view->queryacl));
-+	}
-+
- 	/*
- 	 * Ignore case when compressing responses to the specified
- 	 * clients. This causes case not always to be preserved,
diff --git a/gnu/packages/patches/jamvm-arm.patch b/gnu/packages/patches/jamvm-arm.patch
new file mode 100644
index 0000000000..9e998e18db
--- /dev/null
+++ b/gnu/packages/patches/jamvm-arm.patch
@@ -0,0 +1,1313 @@
+From 67faeb7d58e0d25a50d36788ed49ed383b92e090 Mon Sep 17 00:00:00 2001
+From: Efraim Flashner <efraim@flashner.co.il>
+Date: Mon, 26 Mar 2018 11:08:17 +0300
+Subject: [PATCH] add ARMv7 support
+
+---
+ src/arch/arm.h                           |  75 +++++-
+ src/os/linux/arm/Makefile.am             |   9 +-
+ src/os/linux/arm/Makefile.in             | 166 ++++++++----
+ src/os/linux/arm/callNative.S            |  12 +-
+ src/os/linux/arm/callNativeEABI.S        |   8 +-
+ src/os/linux/arm/callNativeEABIHard.S    | 315 +++++++++++++++++++++++
+ src/os/linux/arm/callNativeEABIHardARM.S | 266 +++++++++++++++++++
+ src/os/linux/arm/dll_md.c                |  61 ++++-
+ 8 files changed, 843 insertions(+), 69 deletions(-)
+ create mode 100644 src/os/linux/arm/callNativeEABIHard.S
+ create mode 100644 src/os/linux/arm/callNativeEABIHardARM.S
+
+diff --git a/src/arch/arm.h b/src/arch/arm.h
+index ccf68c4..d2c0318 100644
+--- a/src/arch/arm.h
++++ b/src/arch/arm.h
+@@ -1,6 +1,6 @@
+ /*
+- * Copyright (C) 2003, 2004, 2005, 2006, 2007
+- * Robert Lougher <rob@lougher.org.uk>.
++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012,
++ * 2014 Robert Lougher <rob@jamvm.org.uk>.
+  *
+  * This file is part of JamVM.
+  *
+@@ -21,10 +21,16 @@
+ 
+ #define OS_ARCH "arm"
+ 
+-/* Override default min and max heap sizes.  ARM machines are
+-   usually embedded, and the standard defaults are too large. */
+-#define DEFAULT_MAX_HEAP 16*MB
++/* Override minimum min heap size.  The initial heap size is a ratio
++   of the physical memory, but it must be at least the minimum min
++   size.  The normal setting is too large for ARM machines as they
++   are usually embedded. */
++#define MIN_MIN_HEAP 1*MB
++
++/* Likewise, override the default min/max heap sizes used when the
++   size of physical memory is not available */
+ #define DEFAULT_MIN_HEAP 1*MB
++#define DEFAULT_MAX_HEAP 64*MB
+ 
+ #ifdef DIRECT
+ #define HANDLER_TABLE_T static const void
+@@ -51,6 +57,36 @@
+ /* Needed for i386 -- empty here */
+ #define FPU_HACK
+ 
++#if defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_7A__)
++#define COMPARE_AND_SWAP_32(addr, old_val, new_val)       \
++({                                                        \
++    int result, read_val;                                 \
++    __asm__ __volatile__ ("                               \
++        1:      mov %0, #0;                               \
++                ldrex %1, [%2];                           \
++                cmp %3, %1;                               \
++                bne 2f;                                   \
++                strex %0, %4, [%2];                       \
++                cmp %0, #1;                               \
++                beq 1b;                                   \
++                mov %0, #1;                               \
++        2:"                                               \
++    : "=&r" (result), "=&r" (read_val)                    \
++    : "r" (addr), "r" (old_val), "r" (new_val)            \
++    : "cc", "memory");                                    \
++    result;                                               \
++})
++
++#define COMPARE_AND_SWAP(addr, old_val, new_val)          \
++        COMPARE_AND_SWAP_32(addr, old_val, new_val)
++
++#define LOCKWORD_READ(addr) *addr
++#define LOCKWORD_WRITE(addr, value) *addr = value
++#define LOCKWORD_COMPARE_AND_SWAP(addr, old_val, new_val) \
++        COMPARE_AND_SWAP(addr, old_val, new_val)
++
++#else
++
+ #define LOCKWORD_COMPARE_AND_SWAP(addr, old_val, new_val) \
+ ({                                                        \
+     int result, read_val;                                 \
+@@ -94,7 +130,7 @@ do {                                                      \
+     : "r" (addr), "r" (new_val)                           \
+     : "cc", "memory");                                    \
+ } while(0)
+-
++#endif
+ 
+ #ifdef __ARM_EABI__
+ #define FLUSH_CACHE(addr, length)                         \
+@@ -124,8 +160,33 @@ do {                                                      \
+ }
+ #endif
+ 
++#define GEN_REL_JMP(target_addr, patch_addr, patch_size)  \
++({                                                        \
++    int patched = FALSE;                                  \
++                                                          \
++    if(patch_size >= 4) {                                 \
++        /* Guard against the pointer difference being     \
++           larger than the signed range */                \
++        long long offset = (uintptr_t)(target_addr) -     \
++                           (uintptr_t)(patch_addr) - 8;   \
++                                                          \
++        if(offset >= -1<<25 && offset < 1<<25) {          \
++            *(int*)(patch_addr) = offset>>2 & 0x00ffffff  \
++                                            | 0xea000000; \
++            patched = TRUE;                               \
++        }                                                 \
++    }                                                     \
++    patched;                                              \
++})
++
++#ifdef __ARM_ARCH_7A__
++#define MBARRIER() __asm__ __volatile__ ("dmb" ::: "memory")
++#define UNLOCK_MBARRIER() __asm__ __volatile__ ("dmb" ::: "memory")
++#define JMM_LOCK_MBARRIER() __asm__ __volatile__ ("dmb" ::: "memory")
++#define JMM_UNLOCK_MBARRIER() __asm__ __volatile__ ("dmb" ::: "memory")
++#else
+ #define MBARRIER() __asm__ __volatile__ ("" ::: "memory")
+ #define UNLOCK_MBARRIER() __asm__ __volatile__ ("" ::: "memory")
+ #define JMM_LOCK_MBARRIER() __asm__ __volatile__ ("" ::: "memory")
+ #define JMM_UNLOCK_MBARRIER() __asm__ __volatile__ ("" ::: "memory")
+-
++#endif
+diff --git a/src/os/linux/arm/Makefile.am b/src/os/linux/arm/Makefile.am
+index d18ea5a..74e7786 100644
+--- a/src/os/linux/arm/Makefile.am
++++ b/src/os/linux/arm/Makefile.am
+@@ -1,6 +1,6 @@
+ ##
+-## Copyright (C) 2003, 2004, 2005, 2006, 2007
+-## Robert Lougher <rob@lougher.org.uk>.
++## Copyright (C) 2003, 2004, 2005, 2006, 2007, 2010, 2011, 2012
++## Robert Lougher <rob@jamvm.org.uk>.
+ ##
+ ## This file is part of JamVM.
+ ##
+@@ -19,10 +19,11 @@
+ ## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ ##
+ 
+-EXTRA_DIST = callNativeOABI.S callNativeEABI.S
++EXTRA_DIST = callNativeOABI.S callNativeEABI.S callNativeEABIHard.S \
++             callNativeEABIHardARM.S
+ 
+ noinst_LTLIBRARIES = libnative.la
+ libnative_la_SOURCES = init.c dll_md.c callNative.S
+ 
+-AM_CPPFLAGS = -I$(top_builddir)/src
++AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_srcdir)/src
+ AM_CCASFLAGS = -I$(top_builddir)/src
+diff --git a/src/os/linux/arm/Makefile.in b/src/os/linux/arm/Makefile.in
+index 63b21ad..6d44ea9 100644
+--- a/src/os/linux/arm/Makefile.in
++++ b/src/os/linux/arm/Makefile.in
+@@ -1,8 +1,9 @@
+-# Makefile.in generated by automake 1.10 from Makefile.am.
++# Makefile.in generated by automake 1.11.6 from Makefile.am.
+ # @configure_input@
+ 
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+-# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
++# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
++# Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+@@ -15,9 +16,27 @@
+ @SET_MAKE@
+ 
+ VPATH = @srcdir@
++am__make_dryrun = \
++  { \
++    am__dry=no; \
++    case $$MAKEFLAGS in \
++      *\\[\ \	]*) \
++        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
++          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
++      *) \
++        for am__flg in $$MAKEFLAGS; do \
++          case $$am__flg in \
++            *=*|--*) ;; \
++            *n*) am__dry=yes; break;; \
++          esac; \
++        done;; \
++    esac; \
++    test $$am__dry = yes; \
++  }
+ pkgdatadir = $(datadir)/@PACKAGE@
+-pkglibdir = $(libdir)/@PACKAGE@
+ pkgincludedir = $(includedir)/@PACKAGE@
++pkglibdir = $(libdir)/@PACKAGE@
++pkglibexecdir = $(libexecdir)/@PACKAGE@
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ install_sh_DATA = $(install_sh) -c -m 644
+ install_sh_PROGRAM = $(install_sh) -c
+@@ -42,13 +61,15 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+ CONFIG_HEADER = $(top_builddir)/src/config.h
+ CONFIG_CLEAN_FILES =
++CONFIG_CLEAN_VPATH_FILES =
+ LTLIBRARIES = $(noinst_LTLIBRARIES)
+ libnative_la_LIBADD =
+ am_libnative_la_OBJECTS = init.lo dll_md.lo callNative.lo
+ libnative_la_OBJECTS = $(am_libnative_la_OBJECTS)
+-DEFAULT_INCLUDES = -I. -I$(top_builddir)/src@am__isrc@
++DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src
+ depcomp = $(SHELL) $(top_srcdir)/depcomp
+ am__depfiles_maybe = depfiles
++am__mv = mv -f
+ CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS)
+ LTCPPASCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+@@ -65,6 +86,11 @@ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ 	$(LDFLAGS) -o $@
+ SOURCES = $(libnative_la_SOURCES)
+ DIST_SOURCES = $(libnative_la_SOURCES)
++am__can_run_installinfo = \
++  case $$AM_UPDATE_INFO_DIR in \
++    n|no|NO) false;; \
++    *) (install-info --version) >/dev/null 2>&1;; \
++  esac
+ ETAGS = etags
+ CTAGS = ctags
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+@@ -84,21 +110,18 @@ CCDEPMODE = @CCDEPMODE@
+ CFLAGS = @CFLAGS@
+ CPP = @CPP@
+ CPPFLAGS = @CPPFLAGS@
+-CXX = @CXX@
+-CXXCPP = @CXXCPP@
+-CXXDEPMODE = @CXXDEPMODE@
+-CXXFLAGS = @CXXFLAGS@
+ CYGPATH_W = @CYGPATH_W@
+ DEFS = @DEFS@
+ DEPDIR = @DEPDIR@
+-ECHO = @ECHO@
++DLLTOOL = @DLLTOOL@
++DSYMUTIL = @DSYMUTIL@
++DUMPBIN = @DUMPBIN@
+ ECHO_C = @ECHO_C@
+ ECHO_N = @ECHO_N@
+ ECHO_T = @ECHO_T@
+ EGREP = @EGREP@
+ EXEEXT = @EXEEXT@
+-F77 = @F77@
+-FFLAGS = @FFLAGS@
++FGREP = @FGREP@
+ GREP = @GREP@
+ INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+@@ -106,21 +129,30 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ JAVAC = @JAVAC@
++LD = @LD@
+ LDFLAGS = @LDFLAGS@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LIBTOOL = @LIBTOOL@
++LIPO = @LIPO@
+ LN_S = @LN_S@
+ LTLIBOBJS = @LTLIBOBJS@
+ MAINT = @MAINT@
+ MAKEINFO = @MAKEINFO@
++MANIFEST_TOOL = @MANIFEST_TOOL@
+ MKDIR_P = @MKDIR_P@
++NM = @NM@
++NMEDIT = @NMEDIT@
++OBJDUMP = @OBJDUMP@
+ OBJEXT = @OBJEXT@
++OTOOL = @OTOOL@
++OTOOL64 = @OTOOL64@
+ PACKAGE = @PACKAGE@
+ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+ PACKAGE_NAME = @PACKAGE_NAME@
+ PACKAGE_STRING = @PACKAGE_STRING@
+ PACKAGE_TARNAME = @PACKAGE_TARNAME@
++PACKAGE_URL = @PACKAGE_URL@
+ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ RANLIB = @RANLIB@
+@@ -133,9 +165,9 @@ abs_builddir = @abs_builddir@
+ abs_srcdir = @abs_srcdir@
+ abs_top_builddir = @abs_top_builddir@
+ abs_top_srcdir = @abs_top_srcdir@
++ac_ct_AR = @ac_ct_AR@
+ ac_ct_CC = @ac_ct_CC@
+-ac_ct_CXX = @ac_ct_CXX@
+-ac_ct_F77 = @ac_ct_F77@
++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+ am__include = @am__include@
+ am__leading_dot = @am__leading_dot@
+ am__quote = @am__quote@
+@@ -149,6 +181,7 @@ build_cpu = @build_cpu@
+ build_os = @build_os@
+ build_vendor = @build_vendor@
+ builddir = @builddir@
++classlib = @classlib@
+ datadir = @datadir@
+ datarootdir = @datarootdir@
+ docdir = @docdir@
+@@ -181,15 +214,18 @@ sharedstatedir = @sharedstatedir@
+ srcdir = @srcdir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
++top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ use_zip_no = @use_zip_no@
+ use_zip_yes = @use_zip_yes@
+ with_classpath_install_dir = @with_classpath_install_dir@
+-EXTRA_DIST = callNativeOABI.S callNativeEABI.S
++EXTRA_DIST = callNativeOABI.S callNativeEABI.S callNativeEABIHard.S \
++             callNativeEABIHardARM.S
++
+ noinst_LTLIBRARIES = libnative.la
+ libnative_la_SOURCES = init.c dll_md.c callNative.S
+-AM_CPPFLAGS = -I$(top_builddir)/src
++AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_srcdir)/src
+ AM_CCASFLAGS = -I$(top_builddir)/src
+ all: all-am
+ 
+@@ -199,14 +235,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
+ 	@for dep in $?; do \
+ 	  case '$(am__configure_deps)' in \
+ 	    *$$dep*) \
+-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+-		&& exit 0; \
++	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
++	        && { if test -f $@; then exit 0; else break; fi; }; \
+ 	      exit 1;; \
+ 	  esac; \
+ 	done; \
+-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/os/linux/arm/Makefile'; \
+-	cd $(top_srcdir) && \
+-	  $(AUTOMAKE) --gnu  src/os/linux/arm/Makefile
++	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/os/linux/arm/Makefile'; \
++	$(am__cd) $(top_srcdir) && \
++	  $(AUTOMAKE) --gnu src/os/linux/arm/Makefile
+ .PRECIOUS: Makefile
+ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ 	@case '$?' in \
+@@ -224,6 +260,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
++$(am__aclocal_m4_deps):
+ 
+ clean-noinstLTLIBRARIES:
+ 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+@@ -233,7 +270,7 @@ clean-noinstLTLIBRARIES:
+ 	  echo "rm -f \"$${dir}/so_locations\""; \
+ 	  rm -f "$${dir}/so_locations"; \
+ 	done
+-libnative.la: $(libnative_la_OBJECTS) $(libnative_la_DEPENDENCIES) 
++libnative.la: $(libnative_la_OBJECTS) $(libnative_la_DEPENDENCIES) $(EXTRA_libnative_la_DEPENDENCIES) 
+ 	$(LINK)  $(libnative_la_OBJECTS) $(libnative_la_LIBADD) $(LIBS)
+ 
+ mostlyclean-compile:
+@@ -248,42 +285,42 @@ distclean-compile:
+ 
+ .S.o:
+ @am__fastdepCCAS_TRUE@	$(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+-@am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
++@am__fastdepCCAS_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCCAS_FALSE@	$(CPPASCOMPILE) -c -o $@ $<
+ 
+ .S.obj:
+ @am__fastdepCCAS_TRUE@	$(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+-@am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
++@am__fastdepCCAS_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCCAS_FALSE@	$(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+ 
+ .S.lo:
+ @am__fastdepCCAS_TRUE@	$(LTCPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+-@am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
++@am__fastdepCCAS_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCCAS_FALSE@	$(LTCPPASCOMPILE) -c -o $@ $<
+ 
+ .c.o:
+ @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+-@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
++@am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ 
+ .c.obj:
+ @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+-@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
++@am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ 
+ .c.lo:
+ @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+-@am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
++@am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+@@ -299,45 +336,49 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ 	unique=`for i in $$list; do \
+ 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ 	  done | \
+-	  $(AWK) '    { files[$$0] = 1; } \
+-	       END { for (i in files) print i; }'`; \
++	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
++	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 	mkid -fID $$unique
+ tags: TAGS
+ 
+ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+ 		$(TAGS_FILES) $(LISP)
+-	tags=; \
++	set x; \
+ 	here=`pwd`; \
+ 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+ 	unique=`for i in $$list; do \
+ 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ 	  done | \
+-	  $(AWK) '    { files[$$0] = 1; } \
+-	       END { for (i in files) print i; }'`; \
+-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
++	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
++	      END { if (nonempty) { for (i in files) print i; }; }'`; \
++	shift; \
++	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ 	  test -n "$$unique" || unique=$$empty_fix; \
+-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+-	    $$tags $$unique; \
++	  if test $$# -gt 0; then \
++	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
++	      "$$@" $$unique; \
++	  else \
++	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
++	      $$unique; \
++	  fi; \
+ 	fi
+ ctags: CTAGS
+ CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+ 		$(TAGS_FILES) $(LISP)
+-	tags=; \
+-	here=`pwd`; \
+ 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+ 	unique=`for i in $$list; do \
+ 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ 	  done | \
+-	  $(AWK) '    { files[$$0] = 1; } \
+-	       END { for (i in files) print i; }'`; \
+-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
++	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
++	      END { if (nonempty) { for (i in files) print i; }; }'`; \
++	test -z "$(CTAGS_ARGS)$$unique" \
+ 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+-	     $$tags $$unique
++	     $$unique
+ 
+ GTAGS:
+ 	here=`$(am__cd) $(top_builddir) && pwd` \
+-	  && cd $(top_srcdir) \
+-	  && gtags -i $(GTAGS_ARGS) $$here
++	  && $(am__cd) $(top_srcdir) \
++	  && gtags -i $(GTAGS_ARGS) "$$here"
+ 
+ distclean-tags:
+ 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+@@ -358,13 +399,17 @@ distdir: $(DISTFILES)
+ 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ 	  if test -d $$d/$$file; then \
+ 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
++	    if test -d "$(distdir)/$$file"; then \
++	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
++	    fi; \
+ 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
++	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
++	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ 	    fi; \
+-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
++	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ 	  else \
+-	    test -f $(distdir)/$$file \
+-	    || cp -p $$d/$$file $(distdir)/$$file \
++	    test -f "$(distdir)/$$file" \
++	    || cp -p $$d/$$file "$(distdir)/$$file" \
+ 	    || exit 1; \
+ 	  fi; \
+ 	done
+@@ -382,16 +427,22 @@ install-am: all-am
+ 
+ installcheck: installcheck-am
+ install-strip:
+-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+-	  `test -z '$(STRIP)' || \
+-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
++	if test -z '$(STRIP)'; then \
++	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
++	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
++	      install; \
++	else \
++	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
++	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
++	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
++	fi
+ mostlyclean-generic:
+ 
+ clean-generic:
+ 
+ distclean-generic:
+ 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
++	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ 
+ maintainer-clean-generic:
+ 	@echo "This command is intended for maintainers to use"
+@@ -413,6 +464,8 @@ dvi-am:
+ 
+ html: html-am
+ 
++html-am:
++
+ info: info-am
+ 
+ info-am:
+@@ -421,18 +474,28 @@ install-data-am:
+ 
+ install-dvi: install-dvi-am
+ 
++install-dvi-am:
++
+ install-exec-am:
+ 
+ install-html: install-html-am
+ 
++install-html-am:
++
+ install-info: install-info-am
+ 
++install-info-am:
++
+ install-man:
+ 
+ install-pdf: install-pdf-am
+ 
++install-pdf-am:
++
+ install-ps: install-ps-am
+ 
++install-ps-am:
++
+ installcheck-am:
+ 
+ maintainer-clean: maintainer-clean-am
+@@ -470,6 +533,7 @@ uninstall-am:
+ 	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ 	pdf pdf-am ps ps-am tags uninstall uninstall-am
+ 
++
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
+diff --git a/src/os/linux/arm/callNative.S b/src/os/linux/arm/callNative.S
+index 39ab6d3..245afd1 100644
+--- a/src/os/linux/arm/callNative.S
++++ b/src/os/linux/arm/callNative.S
+@@ -1,6 +1,6 @@
+ /*
+- * Copyright (C) 2003, 2004, 2005, 2006, 2007
+- * Robert Lougher <rob@lougher.org.uk>.
++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2011, 2012
++ * Robert Lougher <rob@jamvm.org.uk>.
+  *
+  * This file is part of JamVM.
+  *
+@@ -23,7 +23,15 @@
+ 
+ #ifndef USE_FFI
+ #ifdef __ARM_EABI__
++#ifdef __ARM_PCS_VFP
++#ifdef __ARM_ARCH_7A__
++#include "callNativeEABIHard.S"
++#else
++#include "callNativeEABIHardARM.S"
++#endif
++#else
+ #include "callNativeEABI.S"
++#endif
+ #else
+ #include "callNativeOABI.S"
+ #endif
+diff --git a/src/os/linux/arm/callNativeEABI.S b/src/os/linux/arm/callNativeEABI.S
+index 5effa57..3a7539e 100644
+--- a/src/os/linux/arm/callNativeEABI.S
++++ b/src/os/linux/arm/callNativeEABI.S
+@@ -1,6 +1,6 @@
+ /*
+- * Copyright (C) 2003, 2004, 2005, 2006, 2007
+- * Robert Lougher <rob@lougher.org.uk>.
++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2011
++ * Robert Lougher <rob@jamvm.org.uk>.
+  *
+  * This file is part of JamVM.
+  *
+@@ -95,8 +95,12 @@ done:
+         ldmfd   sp!, {r2, r3}
+ 
+         /* Call the function */
++#if defined(__ARM_ARCH_4__) || defined(__ARM_ARCH_4T__)
+         mov     lr, pc
+         bx      ip
++#else
++        blx     ip
++#endif
+ 
+         subs    r4, r4, #8              /* Pop argument area */
+                                         /* (minus 8 for r2/r3) */
+diff --git a/src/os/linux/arm/callNativeEABIHard.S b/src/os/linux/arm/callNativeEABIHard.S
+new file mode 100644
+index 0000000..5d5785b
+--- /dev/null
++++ b/src/os/linux/arm/callNativeEABIHard.S
+@@ -0,0 +1,315 @@
++/*
++ * Copyright (C) 2011, 2012 Robert Lougher <rob@jamvm.org.uk>.
++ *
++ * This file is part of JamVM.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2,
++ * or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++ */
++
++        .text
++        .syntax unified
++        .arch armv7-a
++        .thumb
++        .align  2
++        .global callJNIMethod
++        .type   callJNIMethod,function
++
++/*
++ * Arguments passed in:
++ *
++ * r0 JNIEnv
++ * r1 class or NULL
++ * r2 sig
++ * r3 extra arg
++ * sp + 0 ostack
++ * sp + 4 function pntr
++ * sp + 8 args count
++ */
++
++/* Register usage :
++ *
++ * r11 function pntr
++ * lr ostack pntr
++ * ip args pntr
++ * r8 sig pntr
++ * r10 extra stack
++ * r6 fp backfill 
++ * r4 fp reg
++ * r7 int reg
++ * r5 scratch
++ * r3, r2 outgoing int args
++ * r1 outgoing class or this pntr
++ * r0 outgoing JNIEnv (as passed in)
++ *
++ * s0 - s16 (d0 - d7) outgoing float args
++ */
++
++callJNIMethod:
++        stmfd   sp!, {r4, r5, r6, r7, r8, r10, r11, lr}
++        ldr     lr, [sp, #32]           /* get ostack pntr */
++        ldr     r11, [sp, #36]          /* get function pntr */
++
++        cmp     r1, #0                  /* is method non-static? */
++        it      eq
++        ldreq   r1, [lr], #4            /* yes, load r1 with "this" */
++
++        mov     r10, r3
++        subs    sp, sp, r3              /* allocate room for stacked */
++        add     r8, r2, #1              /* init sig pntr -- skipping '(' */
++
++        mov     ip, sp                  /* init loop pntr */
++
++        mov     r7, #2
++        mov     r4, #16
++        mov     r6, #0
++
++scan_sig:
++        ldrb    r5, [r8], #1
++
++        cmp     r5, #41                 /* ')' */
++        beq     done
++
++        cmp     r5, #70                 /* 'F' */
++        beq     float
++
++        cmp     r5, #68                 /* 'D' */
++        beq     double
++
++        cmp     r5, #74                 /* 'J' */
++        beq     long
++
++skip_brackets:
++        cmp     r5, #91                 /* '[' */
++        itt     eq
++        ldrbeq  r5, [r8], #1
++        beq     skip_brackets
++
++        cmp     r5, #76                 /* 'L' */
++        bne     int
++
++skip_ref:
++        ldrb    r5, [r8], #1
++        cmp     r5, #59                 /* ';' */
++        bne     skip_ref
++
++int:
++        cbz     r7, stack_int
++
++        subs    r7, r7, #1
++        ite     ne
++        ldrne   r2, [lr], #4
++        ldreq   r3, [lr], #4
++
++        b       scan_sig
++
++float:
++        cbz     r6, no_backfill
++
++        sub     r5, r6, #1
++        mov     r6, #0
++        b       load_float
++
++no_backfill:
++        cbz     r4, stack_int
++        
++        sub     r4, r4, #1
++        mov     r5, r4
++
++load_float:
++        add     lr, lr, #4
++        tbb     [pc, r5]
++
++float_table:
++        .byte (s15-float_table)/2
++        .byte (s14-float_table)/2
++        .byte (s13-float_table)/2
++        .byte (s12-float_table)/2
++        .byte (s11-float_table)/2
++        .byte (s10-float_table)/2
++        .byte (s9-float_table)/2
++        .byte (s8-float_table)/2
++        .byte (s7-float_table)/2
++        .byte (s6-float_table)/2
++        .byte (s5-float_table)/2
++        .byte (s4-float_table)/2
++        .byte (s3-float_table)/2
++        .byte (s2-float_table)/2
++        .byte (s1-float_table)/2
++        .byte (s0-float_table)/2
++
++stack_int:
++        ldr     r5, [lr], #4
++        str     r5, [ip], #4
++        b       scan_sig
++
++s0:
++        vldr    s0, [lr, #-4]
++        b       scan_sig
++s1:
++        vldr    s1, [lr, #-4]
++        b       scan_sig
++s2:
++        vldr    s2, [lr, #-4]
++        b       scan_sig
++s3:
++        vldr    s3, [lr, #-4]
++        b       scan_sig
++s4:
++        vldr    s4, [lr, #-4]
++        b       scan_sig
++s5:
++        vldr    s5, [lr, #-4]
++        b       scan_sig
++s6:
++        vldr    s6, [lr, #-4]
++        b       scan_sig
++s7:
++        vldr    s7, [lr, #-4]
++        b       scan_sig
++s8:
++        vldr    s8, [lr, #-4]
++        b       scan_sig
++s9:
++        vldr    s9, [lr, #-4]
++        b       scan_sig
++s10:
++        vldr    s10, [lr, #-4]
++        b       scan_sig
++s11:
++        vldr    s11, [lr, #-4]
++        b       scan_sig
++s12:
++        vldr    s12, [lr, #-4]
++        b       scan_sig
++s13:
++        vldr    s13, [lr, #-4]
++        b       scan_sig
++s14:
++        vldr    s14, [lr, #-4]
++        b       scan_sig
++s15:
++        vldr    s15, [lr, #-4]
++        b       scan_sig
++
++long:
++        cmp     r7, #2
++        mov     r7, #0
++        bne     stack_long
++
++        ldmia   lr!, {r2, r3}
++        b       scan_sig
++
++double:
++        lsrs    r5, r4, #1
++        it      cs
++        movcs   r6, r4
++
++        lsls    r4, r5, #1
++        beq     stack_double
++
++        sub     r4, r4, #2
++        add     lr, lr, #8
++        tbb     [pc, r5]
++
++double_table:
++        .byte 0
++        .byte (d7-double_table)/2
++        .byte (d6-double_table)/2
++        .byte (d5-double_table)/2
++        .byte (d4-double_table)/2
++        .byte (d3-double_table)/2
++        .byte (d2-double_table)/2
++        .byte (d1-double_table)/2
++        .byte (d0-double_table)/2
++        .align 2
++d0:
++        vldr    d0, [lr, #-8]
++        b       scan_sig
++d1:
++        vldr    d1, [lr, #-8]
++        b       scan_sig
++d2:
++        vldr    d2, [lr, #-8]
++        b       scan_sig
++d3:
++        vldr    d3, [lr, #-8]
++        b       scan_sig
++d4:
++        vldr    d4, [lr, #-8]
++        b       scan_sig
++d5:
++        vldr    d5, [lr, #-8]
++        b       scan_sig
++d6:
++        vldr    d6, [lr, #-8]
++        b       scan_sig
++d7:
++        vldr    d7, [lr, #-8]
++        b       scan_sig
++
++stack_double:
++        mov     r6, #0
++
++stack_long:
++        /* Ensure address is 8 byte aligned */
++        add     ip, ip, #7
++        bic     ip, ip, #7
++        
++        ldr     r5, [lr], #4
++        str     r5, [ip], #4
++        ldr     r5, [lr], #4
++        str     r5, [ip], #4
++        b       scan_sig
++
++done:
++        /* Call the function */
++        blx     r11
++
++        add     sp, sp, r10             /* Pop argument area */
++
++        ldr     r4, [sp, #32]           /* Reload ostack for */
++                                        /* address of return value */
++
++        ldrb    r5, [r8]                /* Return type */
++
++        cmp     r5, #86                 /* 'V' */
++        beq     return
++
++        cmp     r5, #68                 /* 'D' */
++        beq     return_double
++
++        cmp     r5, #70                 /* 'F' */
++        beq     return_float
++
++        str     r0, [r4], #4            /* Low word */
++
++        cmp     r5, #74                 /* 'J' */
++        it      eq
++        streq   r1, [r4], #4            /* High word */
++
++return:
++        mov     r0, r4                  /* return ostack */
++        ldmfd   sp!, {r4, r5, r6, r7, r8, r10, r11, lr}
++        bx      lr
++
++return_float:
++        vstr    s0, [r4]
++        add     r4, r4, #4
++        b       return
++
++return_double:
++        vstr    d0, [r4]
++        add     r4, r4, #8
++        b       return
+diff --git a/src/os/linux/arm/callNativeEABIHardARM.S b/src/os/linux/arm/callNativeEABIHardARM.S
+new file mode 100644
+index 0000000..3a31acd
+--- /dev/null
++++ b/src/os/linux/arm/callNativeEABIHardARM.S
+@@ -0,0 +1,266 @@
++/*
++ * Copyright (C) 2011, 2012 Robert Lougher <rob@jamvm.org.uk>.
++ *
++ * This file is part of JamVM.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version 2,
++ * or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++ */
++
++        .text
++        .align  2
++        .global callJNIMethod
++        .type   callJNIMethod,function
++
++/*
++ * Arguments passed in:
++ *
++ * r0 JNIEnv
++ * r1 class or NULL
++ * r2 sig
++ * r3 extra arg
++ * sp + 0 ostack
++ * sp + 4 function pntr
++ * sp + 8 args count
++ */
++
++/* Register usage :
++ *
++ * lr ostack pntr
++ * ip scratch
++ * r11 function pntr
++ * r10 fp backfill 
++ * r8 fp reg
++ * r7 int reg
++ * r6 args pntr
++ * r5 sig pntr
++ * r4 extra stack
++ * r3, r2 outgoing int args
++ * r1 outgoing class or this pntr
++ * r0 outgoing JNIEnv (as passed in)
++ *
++ * s0 - s16 (d0 - d7) outgoing float args
++ */
++
++callJNIMethod:
++        stmfd   sp!, {r4, r5, r6, r7, r8, r10, r11, lr}
++        ldr     lr, [sp, #32]           /* get ostack pntr */
++        ldr     r11, [sp, #36]          /* get function pntr */
++
++        cmp     r1, #0                  /* is method non-static? */
++        ldreq   r1, [lr], #4            /* yes, load r1 with "this" */
++
++        mov     r4, r3
++        sub     sp, sp, r4              /* allocate room for stacked */
++        add     r5, r2, #1              /* init sig pntr -- skipping '(' */
++
++        mov     r6, sp                  /* init loop pntr */
++
++        mov     r7, #2
++        mov     r8, #16
++        mov     r10, #0
++
++scan_sig:
++        ldrb    ip, [r5], #1
++
++        cmp     ip, #41                 /* ')' */
++        beq     done
++
++        cmp     ip, #70                 /* 'F' */
++        beq     float
++
++        cmp     ip, #68                 /* 'D' */
++        beq     double
++
++        cmp     ip, #74                 /* 'J' */
++        beq     long
++
++skip_brackets:
++        cmp     ip, #91                 /* '[' */
++        ldreqb  ip, [r5], #1
++        beq     skip_brackets
++
++        cmp     ip, #76                 /* 'L' */
++        bne     int
++
++skip_ref:
++        ldrb    ip, [r5], #1
++        cmp     ip, #59                 /* ';' */
++        bne     skip_ref
++
++int:
++        cmp     r7, #0
++        beq     stack_int
++
++        subs    r7, r7, #1
++
++        ldrne   r2, [lr], #4
++        ldreq   r3, [lr], #4
++
++        b       scan_sig
++
++stack_int:
++        ldr     ip, [lr], #4
++        str     ip, [r6], #4
++        b       scan_sig
++
++float:
++        cmp     r10, #0
++        beq     no_backfill
++
++        sub     ip, r10, #1
++        mov     r10, #0
++        b       load_float
++
++no_backfill:
++        cmp     r8, #0
++        beq     stack_int
++        
++        sub     r8, r8, #1
++        mov     ip, r8
++
++load_float:
++        add     lr, lr, #4
++        add     pc, pc, ip, lsl #3
++        nop
++
++        flds    s15, [lr, #-4]
++        b       scan_sig
++        flds    s14, [lr, #-4]
++        b       scan_sig
++        flds    s13, [lr, #-4]
++        b       scan_sig
++        flds    s12, [lr, #-4]
++        b       scan_sig
++        flds    s11, [lr, #-4]
++        b       scan_sig
++        flds    s10, [lr, #-4]
++        b       scan_sig
++        flds    s9, [lr, #-4]
++        b       scan_sig
++        flds    s8, [lr, #-4]
++        b       scan_sig
++        flds    s7, [lr, #-4]
++        b       scan_sig
++        flds    s6, [lr, #-4]
++        b       scan_sig
++        flds    s5, [lr, #-4]
++        b       scan_sig
++        flds    s4, [lr, #-4]
++        b       scan_sig
++        flds    s3, [lr, #-4]
++        b       scan_sig
++        flds    s2, [lr, #-4]
++        b       scan_sig
++        flds    s1, [lr, #-4]
++        b       scan_sig
++        flds    s0, [lr, #-4]
++        b       scan_sig
++
++long:
++        cmp     r7, #2
++        mov     r7, #0
++        bne     stack_long
++
++        ldr     r2, [lr], #4
++        ldr     r3, [lr], #4
++        b       scan_sig
++
++double:
++        lsrs    ip, r8, #1
++        movcs   r10, r8
++
++        lsls    r8, ip, #1
++        beq     stack_double
++
++        sub     r8, r8, #2
++        add     lr, lr, #8
++        add     pc, pc, ip, lsl #3
++        nop
++        nop
++        nop
++
++        fldd    d7, [lr, #-8]
++        b       scan_sig
++        fldd    d6, [lr, #-8]
++        b       scan_sig
++        fldd    d5, [lr, #-8]
++        b       scan_sig
++        fldd    d4, [lr, #-8]
++        b       scan_sig
++        fldd    d3, [lr, #-8]
++        b       scan_sig
++        fldd    d2, [lr, #-8]
++        b       scan_sig
++        fldd    d1, [lr, #-8]
++        b       scan_sig
++        fldd    d0, [lr, #-8]
++        b       scan_sig
++
++stack_double:
++        mov     r10, #0
++
++stack_long:
++        /* Ensure address is 8 byte aligned */
++        add     r6, r6, #7
++        bic     r6, r6, #7
++        
++        ldr     ip, [lr], #4
++        str     ip, [r6], #4
++        ldr     ip, [lr], #4
++        str     ip, [r6], #4
++        b       scan_sig
++
++done:
++        /* Call the function */
++#if defined(__ARM_ARCH_4__) || defined(__ARM_ARCH_4T__)
++        mov     lr, pc
++        bx      r11
++#else
++        blx     r11
++#endif
++
++        add     sp, sp, r4              /* Pop argument area */
++        ldr     r4, [sp, #32]           /* Reload ostack for */
++                                        /* address of return value */
++        ldrb    ip, [r5]                /* Return type */
++
++        cmp     ip, #86                 /* 'V' */
++        beq     return
++
++        cmp     ip, #68                 /* 'D' */
++        beq     return_double
++
++        cmp     ip, #70                 /* 'F' */
++        beq     return_float
++
++        str     r0, [r4], #4            /* Low word */
++
++        cmp     ip, #74                 /* 'J' */
++        streq   r1, [r4], #4            /* High word */
++
++return:
++        mov     r0, r4                  /* return ostack */
++        ldmfd   sp!, {r4, r5, r6, r7, r8, r10, r11, lr}
++        bx      lr
++
++return_float:
++        add     r4, r4, #4
++        fsts    s0, [r4, #-4]
++        b       return
++
++return_double:
++        add     r4, r4, #8
++        fstd    d0, [r4, #-8]
++        b       return
+diff --git a/src/os/linux/arm/dll_md.c b/src/os/linux/arm/dll_md.c
+index f5df90e..39bdf7c 100644
+--- a/src/os/linux/arm/dll_md.c
++++ b/src/os/linux/arm/dll_md.c
+@@ -1,6 +1,6 @@
+ /*
+- * Copyright (C) 2003, 2004, 2005, 2006, 2007
+- * Robert Lougher <rob@lougher.org.uk>.
++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2011
++ * Robert Lougher <rob@jamvm.org.uk>.
+  *
+  * This file is part of JamVM.
+  *
+@@ -31,6 +31,61 @@
+  * out stack requirements and then to push arguments.  To
+  * save the first scan at call time, the signature is pre-
+  * scanned and stack requirement stored in the extra argument. */
++
++#ifdef __ARM_PCS_VFP
++int nativeExtraArg(MethodBlock *mb) {
++    char *sig = mb->type;
++    int fp_backfill = 0;
++    int stack_args = 0;
++    int int_args = 2;
++    int fp_args = 16;
++
++    while(*++sig != ')')
++        switch(*sig) {
++            case 'J':
++                if(int_args < 2)
++                    stack_args = (stack_args + 15) & ~7;
++                int_args = 0;
++                break;
++
++            case 'D':
++                fp_backfill |= fp_args & 1;
++                fp_args &= ~1;
++
++                if(fp_args == 0) {
++                    stack_args = (stack_args + 15) & ~7;
++                    fp_backfill = 0;
++                } else
++                    fp_args -= 2;
++                break;
++
++            case 'F':
++                if(fp_backfill)
++                    fp_backfill = 0;
++                else {
++                    if(fp_args == 0) 
++                        stack_args += 4;
++                    else
++                        fp_args--;
++                }
++                break;
++
++            default:
++                if(int_args == 0)
++                    stack_args += 4;
++                else
++                    int_args--;
++
++                if(*sig == '[')
++                    while(*++sig == '[');
++                if(*sig == 'L')
++                    while(*++sig != ';');
++                break;
++        }
++
++    return (stack_args + 7) & ~7;
++}
++#else
+ int nativeExtraArg(MethodBlock *mb) {
+     char *sig = mb->type;
+     int args = 0;
+@@ -57,7 +112,7 @@ int nativeExtraArg(MethodBlock *mb) {
+        native method, so minimum stack requirement is 8 bytes. */
+     return args < 8 ? 8 : args;
+ }
+-
++#endif
+ #else
+ 
+ /* Under OABI, arguments can be copied onto the stack "as is"
+-- 
+2.17.1
+
diff --git a/gnu/packages/patches/mesa-wayland-egl-symbols-check-mips.patch b/gnu/packages/patches/mesa-wayland-egl-symbols-check-mips.patch
deleted file mode 100644
index aa2278697e..0000000000
--- a/gnu/packages/patches/mesa-wayland-egl-symbols-check-mips.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Fix 'wayland-egl-symbols-check' on mips64el-linux, where an additional symbol
-(_ftext) is present in libwayland-egl.so.
-
-Patch by Mark H Weaver <mhw@netris.org>
-
---- mesa-12.0.1/src/egl/wayland/wayland-egl/wayland-egl-symbols-check.orig	2016-01-18 02:39:25.000000000 -0500
-+++ mesa-12.0.1/src/egl/wayland/wayland-egl/wayland-egl-symbols-check	2016-10-24 16:25:07.110721426 -0400
-@@ -7,6 +7,7 @@
- wl_egl_window_destroy
- wl_egl_window_get_attached_size
- _fini
-+_ftext
- _init
- EOF
- done)
diff --git a/gnu/packages/patches/meson-for-build-rpath.patch b/gnu/packages/patches/meson-for-build-rpath.patch
index 4e20c9aed3..2151d53565 100644
--- a/gnu/packages/patches/meson-for-build-rpath.patch
+++ b/gnu/packages/patches/meson-for-build-rpath.patch
@@ -6,14 +6,13 @@ Patch by Peter Mikkelsen <petermikkelsen10@gmail.com>
 
 --- meson-0.42.0/mesonbuild/scripts/meson_install.py.orig	2017-09-09 01:49:39.147374148 +0200
 +++ meson-0.42.0/mesonbuild/scripts/meson_install.py	2017-09-09 01:51:01.209134717 +0200
-@@ -345,15 +345,6 @@
+@@ -391,14 +391,6 @@
                      print("Symlink creation does not work on this platform. "
                            "Skipping all symlinking.")
                      printed_symlink_error = True
--        if is_elf_platform() and os.path.isfile(outname):
+-        if os.path.isfile(outname):
 -            try:
--                e = depfixer.Elf(outname, False)
--                e.fix_rpath(install_rpath)
+-                depfixer.fix_rpath(outname, install_rpath, False)
 -            except SystemExit as e:
 -                if isinstance(e.code, int) and e.code == 0:
 -                    pass
diff --git a/gnu/packages/patches/openblas-fix-tests-i686.patch b/gnu/packages/patches/openblas-fix-tests-i686.patch
new file mode 100644
index 0000000000..3325546ea3
--- /dev/null
+++ b/gnu/packages/patches/openblas-fix-tests-i686.patch
@@ -0,0 +1,35 @@
+Fix a test failure on some i686 systems:
+
+https://github.com/xianyi/OpenBLAS/issues/1575
+
+This patch is a squashed version of these commits:
+
+https://github.com/xianyi/OpenBLAS/pull/1583
+
+diff --git a/kernel/x86/KERNEL.NEHALEM b/kernel/x86/KERNEL.NEHALEM
+index 835520ef..65b03ae5 100644
+--- a/kernel/x86/KERNEL.NEHALEM
++++ b/kernel/x86/KERNEL.NEHALEM
+@@ -1,3 +1 @@
+ include $(KERNELDIR)/KERNEL.PENRYN
+-SSWAPKERNEL  = ../arm/swap.c
+-DSWAPKERNEL  = ../arm/swap.c
+diff --git a/kernel/x86/swap.S b/kernel/x86/swap.S
+index 54b00b33..e30c2789 100644
+--- a/kernel/x86/swap.S
++++ b/kernel/x86/swap.S
+@@ -138,6 +138,14 @@
+ /* INCX != 1 or INCY != 1 */
+ 
+ .L14:
++	cmpl	$0, %ebx
++	jne	.L141
++	cmpl	$0, %ecx
++	jne	.L141
++/* INCX == 0 and INCY == 0 */
++	jmp	.L27
++
++.L141:
+ 	movl	%edx, %eax
+ 	sarl	$2,   %eax
+ 	jle	.L28
diff --git a/gnu/packages/patches/syncthing-fix-crash.patch b/gnu/packages/patches/syncthing-fix-crash.patch
new file mode 100644
index 0000000000..d27e543982
--- /dev/null
+++ b/gnu/packages/patches/syncthing-fix-crash.patch
@@ -0,0 +1,72 @@
+Avoid a crash:
+
+https://github.com/syncthing/syncthing/issues/5002
+
+Patch copied from upstream source repository:
+
+https://github.com/syncthing/syncthing/commit/35a75a95dc6383b2d73ab645f1407f7907ec1a2c
+
+From 35a75a95dc6383b2d73ab645f1407f7907ec1a2c Mon Sep 17 00:00:00 2001
+From: Jakob Borg <jakob@kastelo.net>
+Date: Wed, 13 Jun 2018 19:07:52 +0200
+Subject: [PATCH] lib/model: Don't panic when rechecking file (fixes #5002)
+ (#5003)
+
+---
+ lib/model/model.go      |  2 +-
+ lib/model/model_test.go | 26 ++++++++++++++++++++++++++
+ 2 files changed, 27 insertions(+), 1 deletion(-)
+
+diff --git a/lib/model/model.go b/lib/model/model.go
+index 5a9146e0..302f06c5 100644
+--- a/lib/model/model.go
++++ b/lib/model/model.go
+@@ -1373,7 +1373,7 @@ func (m *Model) recheckFile(deviceID protocol.DeviceID, folderFs fs.Filesystem,
+ 		return
+ 	}
+ 
+-	if blockIndex > len(cf.Blocks) {
++	if blockIndex >= len(cf.Blocks) {
+ 		l.Debugf("%v recheckFile: %s: %q / %q i=%d: block index too far", m, deviceID, folder, name, blockIndex)
+ 		return
+ 	}
+diff --git a/lib/model/model_test.go b/lib/model/model_test.go
+index 295eafc1..456bbc4a 100644
+--- a/lib/model/model_test.go
++++ b/lib/model/model_test.go
+@@ -3608,6 +3608,32 @@ func TestIssue4903(t *testing.T) {
+ 	}
+ }
+ 
++func TestIssue5002(t *testing.T) {
++	// recheckFile should not panic when given an index equal to the number of blocks
++
++	db := db.OpenMemory()
++	m := NewModel(defaultCfgWrapper, protocol.LocalDeviceID, "syncthing", "dev", db, nil)
++	m.AddFolder(defaultFolderConfig)
++	m.StartFolder("default")
++
++	m.ServeBackground()
++	defer m.Stop()
++
++	if err := m.ScanFolder("default"); err != nil {
++		t.Error(err)
++	}
++
++	file, ok := m.CurrentFolderFile("default", "foo")
++	if !ok {
++		t.Fatal("test file should exist")
++	}
++	nBlocks := len(file.Blocks)
++
++	m.recheckFile(protocol.LocalDeviceID, defaultFolderConfig.Filesystem(), "default", "foo", nBlocks-1, []byte{1, 2, 3, 4})
++	m.recheckFile(protocol.LocalDeviceID, defaultFolderConfig.Filesystem(), "default", "foo", nBlocks, []byte{1, 2, 3, 4}) // panic
++	m.recheckFile(protocol.LocalDeviceID, defaultFolderConfig.Filesystem(), "default", "foo", nBlocks+1, []byte{1, 2, 3, 4})
++}
++
+ func addFakeConn(m *Model, dev protocol.DeviceID) *fakeConnection {
+ 	fc := &fakeConnection{id: dev, model: m}
+ 	m.AddConnection(fc, protocol.HelloResult{})
+-- 
+2.18.0
+
diff --git a/gnu/packages/patches/xapian-revert-5489fb2f8.patch b/gnu/packages/patches/xapian-revert-5489fb2f8.patch
new file mode 100644
index 0000000000..7b78e2abb5
--- /dev/null
+++ b/gnu/packages/patches/xapian-revert-5489fb2f8.patch
@@ -0,0 +1,23 @@
+Revert this upstream commit which breaks a test case in "notmuch":
+
+https://git.xapian.org/?p=xapian;a=commitdiff;h=5489fb2f838c0f0b0a593b4c17df282a93a1fe5a
+
+See the notmuch FAQ entry:
+
+https://notmuchmail.org/faq/#index12h2
+
+This should be fixed for later releases.
+
+diff --git a/backends/glass/glass_postlist.cc b/xapian-core/backends/glass/glass_postlist.cc
+index 80e578b85..a47f14a68 100644
+--- a/backends/glass/glass_postlist.cc
++++ b/backends/glass/glass_postlist.cc
+@@ -759,7 +759,7 @@ GlassPostList::open_nearby_postlist(const std::string & term_,
+     (void)need_pos;
+     if (term_.empty())
+ 	RETURN(NULL);
+-    if (!this_db.get() || this_db->postlist_table.is_modified())
++    if (!this_db.get() || this_db->postlist_table.is_writable())
+ 	RETURN(NULL);
+     RETURN(new GlassPostList(this_db, term_, cursor->clone()));
+ }
diff --git a/gnu/packages/patches/xf86-video-savage-xorg-compat.patch b/gnu/packages/patches/xf86-video-savage-xorg-compat.patch
new file mode 100644
index 0000000000..9524032676
--- /dev/null
+++ b/gnu/packages/patches/xf86-video-savage-xorg-compat.patch
@@ -0,0 +1,33 @@
+Fix build against xorg-server >= 1.20.
+
+Patch taken from upstream:
+https://cgit.freedesktop.org/xorg/driver/xf86-video-savage/commit/?id=0ece556daa8a88771b669d8104396abd9166d2d0
+
+diff --git a/src/savage_driver.c b/src/savage_driver.c
+index 58a294d..3cda923 100644
+--- a/src/savage_driver.c
++++ b/src/savage_driver.c
+@@ -2034,8 +2034,6 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
+     xf86DrvMsg(pScrn->scrnIndex, X_PROBED, "Detected current MCLK value of %1.3f MHz\n",
+ 	       mclk / 1000.0);
+ 
+-    pScrn->maxHValue = 2048 << 3;	/* 11 bits of h_total 8-pixel units */
+-    pScrn->maxVValue = 2048;		/* 11 bits of v_total */
+     pScrn->virtualX = pScrn->display->virtualX;
+     pScrn->virtualY = pScrn->display->virtualY;
+ 
+@@ -3637,6 +3635,14 @@ static ModeStatus SavageValidMode(SCRN_ARG_TYPE arg, DisplayModePtr pMode,
+        (pMode->VDisplay > psav->PanelY)))
+ 	    return MODE_PANEL;
+ 
++    /* 11 bits of h_total 8-pixel units */
++    if (pMode->HTotal > (2048 << 3))
++	return MODE_BAD_HVALUE;
++
++    /* 11 bits of v_total */
++    if (pMode->VTotal > 2048)
++	return MODE_BAD_VVALUE;
++
+     if (psav->UseBIOS) {
+ 	refresh = SavageGetRefresh(pMode);
+         return (SavageMatchBiosMode(pScrn,pMode->HDisplay,
diff --git a/gnu/packages/patches/xf86-video-sis-xorg-compat.patch b/gnu/packages/patches/xf86-video-sis-xorg-compat.patch
new file mode 100644
index 0000000000..ebe9715d13
--- /dev/null
+++ b/gnu/packages/patches/xf86-video-sis-xorg-compat.patch
@@ -0,0 +1,18 @@
+Remove use of interface no longer provided by xorg-server.
+
+Patch taken from upstream:
+https://cgit.freedesktop.org/xorg/driver/xf86-video-sis/commit/?id=4b1356a2b7fd06e9a05d134caa4033681c939737
+
+diff --git a/src/sis_driver.c b/src/sis_driver.c
+index 8f06164..513f68b 100644
+--- a/src/sis_driver.c
++++ b/src/sis_driver.c
+@@ -2738,7 +2738,7 @@ SiSPrintModes(ScrnInfoPtr pScrn)
+     float hsync, refresh = 0.0;
+     char *desc, *desc2, *prefix, *uprefix, *output;
+ 
+-    xf86DrvMsg(pScrn->scrnIndex, pScrn->virtualFrom, "Virtual size is %dx%d "
++    xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Virtual size is %dx%d "
+ 	       "(pitch %d)\n", pScrn->virtualX, pScrn->virtualY,
+ 	       pScrn->displayWidth);
+ 
diff --git a/gnu/packages/patches/zathura-pdf-mupdf-link-to-jpeg-libraries.patch b/gnu/packages/patches/zathura-pdf-mupdf-link-to-jpeg-libraries.patch
new file mode 100644
index 0000000000..63e058bbef
--- /dev/null
+++ b/gnu/packages/patches/zathura-pdf-mupdf-link-to-jpeg-libraries.patch
@@ -0,0 +1,55 @@
+From: Tobias Geerinckx-Rice <me@tobias.gr>
+Date: Mon, 18 Jun 2018 02:37:41 +0200
+Subject: zathura-pdf-mupdf: Link to JPEG libraries.
+
+As of version 0.3.3, zathura-pdf-mupdf no longer links to some required
+JPEG libraries, leading to such errors as:
+
+  $ zathura foo.pdf
+  error: Could not load plugin '/gnu/store/...-profile/lib/zathura/libpdf-mupdf.so' (/gnu/store/...-profile/lib/zathura/libpdf-mupdf.so: undefined symbol: jpeg_resync_to_restart).
+
+The patch below, copied verbatim from Arch[0], fixes that.
+Its description happens to match our reality, too.
+
+[0]: https://git.archlinux.org/svntogit/community.git/tree/trunk?h=packages/zathura-pdf-mupdf
+---
+From 3fb0ff750373d45d4f5172ce1d41b74183cd07e8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Johannes=20L=C3=B6thberg?= <johannes@kyriasis.com>
+Date: Sat, 24 Mar 2018 14:31:18 +0100
+Subject: [PATCH] Explicitly link against jbig2dec, openjp2, and jpeg
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Normally these are statically linked into libmupdfthird, but we delete
+those to make mupdf use the system libraries.  Previously
+zathura-pdf-mupdf explicitly linked against them, but this is
+technically incorrect since they are supposed to be in libmupdfthird so
+that was removed.  This commit essentially reverts that in the new build
+system.
+
+Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
+---
+ meson.build | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 3b0d7b7..ae2fc9c 100644
+--- a/meson.build
++++ b/meson.build
+@@ -22,7 +22,11 @@ cairo = dependency('cairo')
+ mupdf = cc.find_library('mupdf')
+ mupdfthird = cc.find_library('mupdfthird')
+ 
+-build_dependencies = [zathura, girara, glib, cairo, mupdf, mupdfthird]
++jbig2dec = cc.find_library('jbig2dec')
++openjp2 = cc.find_library('openjp2')
++jpeg = cc.find_library('jpeg')
++
++build_dependencies = [zathura, girara, glib, cairo, mupdf, mupdfthird, jbig2dec, openjp2, jpeg]
+ 
+ # defines
+ defines = [
+-- 
+2.16.3
+
diff --git a/gnu/packages/patches/zathura-plugindir-environment-variable.patch b/gnu/packages/patches/zathura-plugindir-environment-variable.patch
index 2e3ea527d0..a8ffff965a 100644
--- a/gnu/packages/patches/zathura-plugindir-environment-variable.patch
+++ b/gnu/packages/patches/zathura-plugindir-environment-variable.patch
@@ -8,15 +8,15 @@ different file formats) called ZATHURA_PLUGIN_PATH. Command line option
 -p still takes precedence.
 
 Patch by Paul van der Walt <paul@denknerd.org>
+Adjusted for Zathura 0.3.9 by Tobias Geerinckx-Rice <me@tobias.gr>
 ---
  zathura/zathura.c | 7 +++++++
  1 file changed, 7 insertions(+)
 
 diff --git a/zathura/zathura.c b/zathura/zathura.c
-index 589dd28..375ec54 100644
 --- a/zathura/zathura.c
 +++ b/zathura/zathura.c
-@@ -413,6 +413,13 @@ zathura_set_plugin_dir(zathura_t* zathura, const char* dir)
+@@ -597,6 +597,13 @@ zathura_set_plugin_dir(zathura_t* zathura, const char* dir)
    g_return_if_fail(zathura != NULL);
    g_return_if_fail(zathura->plugins.manager != NULL);
  
@@ -28,8 +28,5 @@ index 589dd28..375ec54 100644
 +    dir = g_getenv("ZATHURA_PLUGIN_PATH");
 +
    if (dir != NULL) {
-     girara_list_t* paths = girara_split_path_array(dir);
-     GIRARA_LIST_FOREACH(paths, char*, iter, path)
--- 
-2.3.1
-
+     set_plugin_dir(zathura, dir);
+ #ifdef ZATHURA_PLUGINDIR
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index e83b2c1960..66fbb20038 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -13,7 +13,7 @@
 ;;; Copyright © 2017, 2018 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
-;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -37,6 +37,7 @@
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
@@ -343,26 +344,32 @@ reading and editing of existing PDF files.")
 (define-public zathura-cb
   (package
     (name "zathura-cb")
-    (version "0.1.7")
+    (version "0.1.8")
     (source (origin
               (method url-fetch)
               (uri
                (string-append "https://pwmt.org/projects/zathura-cb/download/zathura-cb-"
-                              version ".tar.gz"))
+                              version ".tar.xz"))
               (sha256
                (base32
-                "0r4viisycj39kaz4281cmkr7n9w5q96dmlf7nf45n8zq8qy2npw3"))))
+                "1i6cf0vks501cggwvfsl6qb7mdaf3sszdymphimfvnspw810faj5"))))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs `(("libarchive" ,libarchive)
               ("zathura" ,zathura)))
-    (build-system gnu-build-system)
+    (build-system meson-build-system)
     (arguments
-     `(#:make-flags (list (string-append "PREFIX=" %output)
-                          (string-append "PLUGINDIR=" %output "/lib/zathura")
-                          "CC=gcc")
-       #:tests? #f ; Package does not contain tests.
+     `(#:tests? #f                      ; package does not contain tests
        #:phases
-       (modify-phases %standard-phases (delete 'configure))))
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-plugin-directory
+           ;; Something of a regression in 0.1.8: the new Meson build system
+           ;; now hard-codes an incorrect plugin directory.  Fix it.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "meson.build"
+               (("(install_dir:).*" _ key)
+                (string-append key
+                               "'" (assoc-ref outputs "out") "/lib/zathura'\n")))
+             #t)))))
     (home-page "https://pwmt.org/projects/zathura-cb/")
     (synopsis "Comic book support for zathura (libarchive backend)")
     (description "The zathura-cb plugin adds comic book support to zathura
@@ -372,26 +379,32 @@ using libarchive.")
 (define-public zathura-ps
   (package
     (name "zathura-ps")
-    (version "0.2.5")
+    (version "0.2.6")
     (source (origin
               (method url-fetch)
               (uri
                (string-append "https://pwmt.org/projects/zathura-ps/download/zathura-ps-"
-                              version ".tar.gz"))
+                              version ".tar.xz"))
               (sha256
                (base32
-                "1x4knqja8pw2a5cb3y2209nr3iddj1z8nwasy48v5nprj61fdxqj"))))
+                "0wygq89nyjrjnsq7vbpidqdsirjm6iq4w2rijzwpk2f83ys8bc3y"))))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs `(("libspectre" ,libspectre)
               ("zathura" ,zathura)))
-    (build-system gnu-build-system)
+    (build-system meson-build-system)
     (arguments
-     `(#:make-flags (list (string-append "PREFIX=" %output)
-                          (string-append "PLUGINDIR=" %output "/lib/zathura")
-                          "CC=gcc")
-       #:tests? #f ; Package does not contain tests.
+     `(#:tests? #f                      ; package does not contain tests
        #:phases
-       (modify-phases %standard-phases (delete 'configure))))
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-plugin-directory
+           ;; Something of a regression in 0.2.6: the new Meson build system
+           ;; now hard-codes an incorrect plugin directory.  Fix it.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "meson.build"
+               (("(install_dir:).*" _ key)
+                (string-append key
+                               "'" (assoc-ref outputs "out") "/lib/zathura'\n")))
+             #t)))))
     (home-page "https://pwmt.org/projects/zathura-ps/")
     (synopsis "PS support for zathura (libspectre backend)")
     (description "The zathura-ps plugin adds PS support to zathura
@@ -401,27 +414,33 @@ using libspectre.")
 (define-public zathura-djvu
   (package
     (name "zathura-djvu")
-    (version "0.2.7")
+    (version "0.2.8")
     (source (origin
               (method url-fetch)
               (uri
                (string-append "https://pwmt.org/projects/zathura-djvu/download/zathura-djvu-"
-                              version ".tar.gz"))
+                              version ".tar.xz"))
               (sha256
                (base32
-                "1sbfdsyp50qc85xc4458sn4w1rv1qbygdwmcr5kjlfpsmdq98vhd"))))
+                "0axkv1crdxn0z44whaqp2ibkdqcykhjnxk7qzms0dp1b67an9rnh"))))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs
      `(("djvulibre" ,djvulibre)
        ("zathura" ,zathura)))
-    (build-system gnu-build-system)
+    (build-system meson-build-system)
     (arguments
-     `(#:make-flags (list (string-append "PREFIX=" %output)
-                          (string-append "PLUGINDIR=" %output "/lib/zathura")
-                          "CC=gcc")
-       #:tests? #f ; Package does not contain tests.
+     `(#:tests? #f                      ; package does not contain tests
        #:phases
-       (modify-phases %standard-phases (delete 'configure))))
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-plugin-directory
+           ;; Something of a regression in 0.2.8: the new Meson build system
+           ;; now hard-codes an incorrect plugin directory.  Fix it.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "meson.build"
+               (("(install_dir:).*" _ key)
+                (string-append key
+                               "'" (assoc-ref outputs "out") "/lib/zathura'\n")))
+             #t)))))
     (home-page "https://pwmt.org/projects/zathura-djvu/")
     (synopsis "DjVu support for zathura (DjVuLibre backend)")
     (description "The zathura-djvu plugin adds DjVu support to zathura
@@ -431,15 +450,17 @@ using the DjVuLibre library.")
 (define-public zathura-pdf-mupdf
   (package
     (name "zathura-pdf-mupdf")
-    (version "0.3.2")
+    (version "0.3.3")
     (source (origin
               (method url-fetch)
               (uri
                (string-append "https://pwmt.org/projects/zathura-pdf-mupdf"
-                              "/download/zathura-pdf-mupdf-" version ".tar.gz"))
+                              "/download/zathura-pdf-mupdf-" version ".tar.xz"))
+              (patches
+               (search-patches "zathura-pdf-mupdf-link-to-jpeg-libraries.patch"))
               (sha256
                (base32
-                "0xkajc3is7ncmb2fmymbzfgrran2bz12i7zsm1vvxhxds728h7ck"))))
+                "1zbdqimav4wfgimpy3nfzl10qj7vyv23rdy2z5z7z93jwbp2rc2j"))))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs
      `(("jbig2dec" ,jbig2dec)
@@ -448,13 +469,20 @@ using the DjVuLibre library.")
        ("openjpeg" ,openjpeg)
        ("openssl" ,openssl)
        ("zathura" ,zathura)))
-    (build-system gnu-build-system)
+    (build-system meson-build-system)
     (arguments
-     `(#:make-flags (list (string-append "PREFIX=" %output)
-                          (string-append "PLUGINDIR=" %output "/lib/zathura")
-                          "CC=gcc")
-       #:tests? #f ;No tests.
-       #:phases (modify-phases %standard-phases (delete 'configure))))
+     `(#:tests? #f                      ; package does not contain tests
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-plugin-directory
+           ;; Something of a regression in 0.3.3: the new Meson build system
+           ;; now hard-codes an incorrect plugin directory.  Fix it.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "meson.build"
+               (("(install_dir:).*" _ key)
+                (string-append key
+                               "'" (assoc-ref outputs "out") "/lib/zathura'\n")))
+             #t)))))
     (home-page "https://pwmt.org/projects/zathura-pdf-mupdf/")
     (synopsis "PDF support for zathura (mupdf backend)")
     (description "The zathura-pdf-mupdf plugin adds PDF support to zathura
@@ -464,27 +492,33 @@ by using the @code{mupdf} rendering library.")
 (define-public zathura-pdf-poppler
   (package
     (name "zathura-pdf-poppler")
-    (version "0.2.8")
+    (version "0.2.9")
     (source (origin
               (method url-fetch)
               (uri
                (string-append "https://pwmt.org/projects/zathura-pdf-poppler/download/zathura-pdf-poppler-"
-                              version ".tar.gz"))
+                              version ".tar.xz"))
               (sha256
                (base32
-                "1m55m7s7f8ng8a7lmcw9z4n5zv7xk4vp9n6fp9j84z6rk2imf7a2"))))
+                "1p4jcny0jniygns78mcf0nlm298dszh49qpmjmackrm6dq8hc25y"))))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs
      `(("poppler" ,poppler)
        ("zathura" ,zathura)))
-    (build-system gnu-build-system)
+    (build-system meson-build-system)
     (arguments
-     `(#:make-flags (list (string-append "PREFIX=" %output)
-                          (string-append "PLUGINDIR=" %output "/lib/zathura")
-                          "CC=gcc")
-       #:tests? #f ; Package does not include tests.
+     `(#:tests? #f                      ; package does not include tests
        #:phases
-       (modify-phases %standard-phases (delete 'configure))))
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-plugin-directory
+           ;; Something of a regression in 0.2.9: the new Meson build system
+           ;; now hard-codes an incorrect plugin directory.  Fix it.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "meson.build"
+               (("(install_dir:).*" _ key)
+                (string-append key
+                               "'" (assoc-ref outputs "out") "/lib/zathura'\n")))
+             #t)))))
     (home-page "https://pwmt.org/projects/zathura-pdf-poppler/")
     (synopsis "PDF support for zathura (poppler backend)")
     (description "The zathura-pdf-poppler plugin adds PDF support to zathura
@@ -494,21 +528,24 @@ by using the poppler rendering engine.")
 (define-public zathura
   (package
     (name "zathura")
-    (version "0.3.8")
+    (version "0.3.9")
     (source (origin
               (method url-fetch)
               (uri
                (string-append "https://pwmt.org/projects/zathura/download/zathura-"
-                              version ".tar.gz"))
+                              version ".tar.xz"))
               (sha256
                (base32
-                "0dz5pky3vmf3s2cp2rv1c099gb1s49p9xlgm3ghyy4pzyxc8bgs6"))
+                "0z09kz92a2n8qqv3cy8bx5j5k612g2f9mmh4szqlc7yvi39aax1g"))
               (patches (search-patches
                         "zathura-plugindir-environment-variable.patch"))))
     (native-inputs `(("pkg-config" ,pkg-config)
                      ("gettext" ,gettext-minimal)
                      ("glib:bin" ,glib "bin")
 
+                     ;; For building documentation.
+                     ("python-sphinx" ,python-sphinx)
+
                      ;; For tests.
                      ("check" ,check)
                      ("xorg-server" ,xorg-server-1.19.3)))
@@ -520,15 +557,9 @@ by using the poppler rendering engine.")
      (list (search-path-specification
             (variable "ZATHURA_PLUGIN_PATH")
             (files '("lib/zathura")))))
-    (build-system gnu-build-system)
+    (build-system meson-build-system)
     (arguments
-     `(#:make-flags
-       `(,(string-append "PREFIX=" (assoc-ref %outputs "out"))
-         "CC=gcc" "COLOR=0")
-       #:test-target "test"
-       #:disallowed-references (,xorg-server-1.19.3)
-       #:phases (modify-phases %standard-phases
-                  (delete 'configure)
+     `(#:phases (modify-phases %standard-phases
                   (add-before 'check 'start-xserver
                     ;; Tests require a running X server.
                     (lambda* (#:key inputs #:allow-other-keys)
diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm
index 90e6ab1c1c..1acab0de71 100644
--- a/gnu/packages/php.scm
+++ b/gnu/packages/php.scm
@@ -318,7 +318,7 @@
        ("libxpm" ,libxpm)
        ("libxslt" ,libxslt)
        ("libx11" ,libx11)
-       ("oniguruma" ,oniguruma)
+       ("oniguruma" ,oniguruma-5)
        ("openldap" ,openldap)
        ("openssl" ,openssl)
        ("pcre" ,pcre)
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index c9b22e87ee..d350990c67 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -782,14 +782,14 @@ NetCDF files can also be read and modified.  Python-HDF4 is a fork of
 (define-public python-h5py
   (package
     (name "python-h5py")
-    (version "2.7.0")
+    (version "2.8.0")
     (source
      (origin
       (method url-fetch)
       (uri (pypi-uri "h5py" version))
       (sha256
        (base32
-        "0433sdv6xc9p7v1xs1gvbxp7p152ywi3nplgjb258q9fvw9469br"))))
+        "0mdr6wrq02ac93m1aqx9kad0ppfzmm4imlxqgyy1x4l7hmdcc9p6"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f ; no test target
@@ -2218,14 +2218,14 @@ environments and back.")
 (define-public python-pyyaml
   (package
     (name "python-pyyaml")
-    (version "3.12")
+    (version "3.13")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "PyYAML" version))
        (sha256
         (base32
-         "1aqjl8dk9amd4zr99n8v2qxzgmr2hdvqfma4zh7a41rj6336c9sr"))))
+         "1gx603g484z46cb74j9rzr6sjlh2vndxayicvlyhxdz98lhhkwry"))))
     (build-system python-build-system)
     (inputs
      `(("libyaml" ,libyaml)))
@@ -7834,14 +7834,14 @@ python-xdo for newer bindings.)")
 (define-public python-mako
   (package
     (name "python-mako")
-    (version "1.0.6")
+    (version "1.0.7")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "Mako" version))
        (sha256
         (base32
-         "03dyxgjknp4ffsv7vwfd28l5bbpzi0ylp20543wpg3iahyyrwma8"))))
+         "1bi5gnr8r8dva06qpyx4kgjc6spm2k1y908183nbbaylggjzs0jf"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-markupsafe" ,python-markupsafe)))
diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm
index 0ce46056f5..64017224a7 100644
--- a/gnu/packages/samba.scm
+++ b/gnu/packages/samba.scm
@@ -236,14 +236,14 @@ Desktops into Active Directory environments using the winbind daemon.")
 (define-public talloc
   (package
     (name "talloc")
-    (version "2.1.13")
+    (version "2.1.14")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.samba.org/ftp/talloc/talloc-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0iv09iv385x69gfzvassq6m3y0rd8ncylls95dm015xdy3drkww4"))))
+                "1kk76dyav41ip7ddbbf04yfydb4jvywzi2ps0z2vla56aqkn11di"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -306,14 +306,14 @@ destructors.  It is the core memory allocator used in Samba.")
 (define-public tevent
   (package
     (name "tevent")
-    (version "0.9.36")
+    (version "0.9.37")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.samba.org/ftp/tevent/tevent-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0k1v4vnlzpf7h3p4khaw8a7damrc68g136bf2xzys08nzpinnaxx"))))
+                "1q77vbjic2bb79li2a54ffscnrnwwww55fbpry2kgh7acpnlb0qn"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -341,14 +341,14 @@ many event types, including timers, signals, and the classic file descriptor eve
 (define-public ldb
   (package
     (name "ldb")
-    (version "1.4.0")
+    (version "1.3.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.samba.org/ftp/ldb/ldb-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1d591ny4j4s409s2afjv4fn7inqlclr0zlyclw3619rkbaixlzm8"))
+                "14gsrm7dvyjpbpnc60z75j6fz2p187abm2h353lq95kx2bv70c1b"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -361,10 +361,7 @@ many event types, including timers, signals, and the classic file descriptor eve
                   #t))))
     (build-system gnu-build-system)
     (arguments
-     '(;; LMDB is only supported on 64-bit systems, yet the test suite
-       ;; requires it.
-       #:tests? (assoc-ref %build-inputs "lmdb")
-       #:phases
+     '(#:phases
        (modify-phases %standard-phases
          (replace 'configure
            ;; ldb use a custom configuration script that runs waf.
@@ -384,10 +381,7 @@ many event types, including timers, signals, and the classic file descriptor eve
      `(("talloc" ,talloc)
        ("tdb" ,tdb)))
     (inputs
-     `(,@(if (target-64bit?)
-             `(("lmdb" ,lmdb))
-             '())
-       ("popt" ,popt)
+     `(("popt" ,popt)
        ("tevent" ,tevent)))
     (synopsis "LDAP-like embedded database")
     (home-page "https://ldb.samba.org/")
diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm
index e9e74817f2..386092b358 100644
--- a/gnu/packages/search.scm
+++ b/gnu/packages/search.scm
@@ -46,14 +46,15 @@
 (define-public xapian
   (package
     (name "xapian")
-    (version "1.4.5")
+    (version "1.4.6")
     ;; Note: When updating Xapian, remember to update xapian-bindings below.
     (source (origin
               (method url-fetch)
               (uri (string-append "https://oligarchy.co.uk/xapian/" version
                                   "/xapian-core-" version ".tar.xz"))
+              (patches (search-patches "xapian-revert-5489fb2f8.patch"))
               (sha256
-               (base32 "0axhqrj202hbll9mcx1qdm8gsqj19216w3z02gyjbycxvr9gkdc5"))))
+               (base32 "166qpfq7pvyrj2w2x07v31ypvqg6c2xyvds5sms9h4g2sg0z23hy"))))
     (build-system gnu-build-system)
     (inputs `(("zlib" ,zlib)
               ("util-linux" ,util-linux)))
@@ -91,7 +92,7 @@ rich set of boolean query operators.")
                                   "/xapian-bindings-" version ".tar.xz"))
               (sha256
                (base32
-                "0cwx39764w24xd25w271had4w78lnw1dgz36yvlw1g3i19rqcy34"))))
+                "0z5ma66n742241ys037i3k66c6lvsywviqf33vqsf4jb7j03qsbi"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--with-python3")
diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
index 14e83b5861..4c0bceedf6 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -24,6 +24,7 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix licenses)
+  #:use-module (gnu packages)
   #:use-module (gnu packages golang))
 
 (define-public syncthing
@@ -35,6 +36,7 @@
               (uri (string-append "https://github.com/syncthing/syncthing"
                                   "/releases/download/v" version
                                   "/syncthing-source-v" version ".tar.gz"))
+              (patches (search-patches "syncthing-fix-crash.patch"))
               (sha256
                (base32
                 "0bxkm5jlj6l4gai23bg0y31brr80r9qllh1rdg29pahjn0c2b4ml"))
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index 5dec41428b..355683df8a 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -338,7 +338,7 @@ as existing hashing techniques, with provably negligible risk of collisions.")
 (define-public oniguruma
   (package
     (name "oniguruma")
-    (version "5.9.6")
+    (version "6.8.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/kkos/"
@@ -346,7 +346,7 @@ as existing hashing techniques, with provably negligible risk of collisions.")
                                   "/onig-" version ".tar.gz"))
               (sha256
                (base32
-                "19s79vsclqn170mw0ajwv7j37qsbn4f1yjz3yavnhvva6c820r6m"))))
+                "00s9gjgb3srn5sbmx4x9bssn52mi04d868ghizssdhjlddgxmsmd"))))
     (build-system gnu-build-system)
     (home-page "https://github.com/kkos/oniguruma")
     (synopsis "Regular expression library")
@@ -355,6 +355,20 @@ characteristic of this library is that different character encoding for every
 regular expression object can be specified.")
     (license license:bsd-2)))
 
+;; PHP < 7.3.0 requires this old version.  Remove once no longer needed.
+(define-public oniguruma-5
+  (package
+    (inherit oniguruma)
+    (version "5.9.6")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/kkos/"
+                                  "oniguruma/releases/download/v" version
+                                  "/onig-" version ".tar.gz"))
+              (sha256
+               (base32
+                "19s79vsclqn170mw0ajwv7j37qsbn4f1yjz3yavnhvva6c820r6m"))))))
+
 (define-public antiword
   (package
     (name "antiword")
diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm
index 475e1750a8..24b17111e9 100644
--- a/gnu/packages/upnp.scm
+++ b/gnu/packages/upnp.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Theodoros Foradis <theodoros@foradis.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,7 +23,9 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages python)
   #:use-module (guix build-system gnu)
+  #:use-module (guix utils)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix licenses)
   #:use-module (guix packages))
 
@@ -76,6 +79,49 @@ over IRC, instant messaging, network games, and most server software.")
     (license
      (x11-style "file://LICENSE" "See 'LICENSE' file in the distribution"))))
 
+(define-public monero-miniupnpc
+  ;; This package is the bundled version of miniupnpc used with monero.
+  ;; Monero-project has been maintaining its own version of the package since
+  ;; release 0.12.2.0.  It includes security fixes not included in upstream
+  ;; releases.
+  (let ((revision "0")
+        (commit "6a63f9954959119568fbc4af57d7b491b9428d87"))
+    (package
+      (inherit miniupnpc)
+      (name "miniupnpc-monero")
+      (version (string-append "2.1-monero-0.12.3.0-" revision "."
+                              (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/monero-project/miniupnp/")
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "0s67zcz978iapjlq30yy9dl8qda9xhrl3jdi5f99cnbglh5gy16a"))
+                (file-name (string-append name "-" version "-checkout"))
+                (modules '((guix build utils)))
+                (snippet
+                 '(begin
+                    ;; Delete miniupnp subprojects except for miniupnpc.
+                    (for-each
+                     delete-file-recursively
+                     '("minissdpd" "miniupnpc-async" "miniupnpc-libevent"
+                       "miniupnpd" ))
+                    #t))))
+      (arguments
+       (substitute-keyword-arguments (package-arguments miniupnpc)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (add-before 'build 'change-directory
+               (lambda _
+                 (chdir "miniupnpc")
+                 #t))
+             (add-after 'change-directory 'chmod-header-file
+               (lambda _
+                 (chmod "miniupnpc.h" #o644)
+                 #t)))))))))
+
 (define-public libupnp
   (package
     (name "libupnp")
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 737844d8fa..1cc0d5dfde 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -2410,15 +2410,16 @@ of modern, widely supported codecs.")
 (define-public openh264
   (package
     (name "openh264")
-    (version "1.7.0")
+    (version "1.8.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/cisco/"
-                                  name "/archive/v" version ".tar.gz"))
+                                  name "/releases/download/v"
+                                  version "/Source.Code.tar.gz.gz"))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0gv571bqkxk7ic64dmavs1q8nr7p59mcf4ibqp4lc070gn6w61ww"))))
+                "0niha3wnn1jsndvz9vfwy2wyql8mp9j6v75vjsipy0idwan5yzgf"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("nasm" ,nasm)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 2877ff2ac1..2a8958d37f 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -22,6 +22,7 @@
 ;;; Copyright © 2017 Marek Benc <dusxmt@gmx.com>
 ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
 ;;; Copyright © 2018 Thomas Sigurdsen <tonton@riseup.net>
+;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -316,7 +317,7 @@ rasterisation.")
 (define-public libdrm
   (package
     (name "libdrm")
-    (version "2.4.91")
+    (version "2.4.92")
     (source
       (origin
         (method url-fetch)
@@ -326,7 +327,7 @@ rasterisation.")
                ".tar.bz2"))
         (sha256
          (base32
-          "0068dn47c478vm1lyyhy02gilrpsma0xmcblhvs0dzqyrk80wjk3"))
+          "1yirzx8hmlvv6r0l7lb3zxmgy5la2mri9al0k16xqfg19pdqzr79"))
         (patches (search-patches "libdrm-symbol-check.patch"))))
     (build-system gnu-build-system)
     (arguments
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 895db8ea13..3e8f9fe4a7 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -1026,7 +1026,7 @@ of new capabilities and controls for text keyboards.")
 (define-public libdmx
   (package
     (name "libdmx")
-    (version "1.1.3")
+    (version "1.1.4")
     (source
       (origin
         (method url-fetch)
@@ -1036,7 +1036,7 @@ of new capabilities and controls for text keyboards.")
                ".tar.bz2"))
         (sha256
           (base32
-            "00djlxas38kbsrglcmwmxfbmxjdchlbj95pqwjvdg8jn5rns6zf9"))))
+            "0hvjfhrcym770cr0zpqajdy3cda30aiwbjzv16iafkqkbl090gr5"))))
     (build-system gnu-build-system)
     (inputs
       `(("xorgproto" ,xorgproto)
@@ -2447,7 +2447,7 @@ including most mice, keyboards, tablets and touchscreens.")
 (define-public xf86-input-libinput
   (package
     (name "xf86-input-libinput")
-    (version "0.27.1")
+    (version "0.28.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2455,7 +2455,7 @@ including most mice, keyboards, tablets and touchscreens.")
                     name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "1riflw6dc8fp5d74i7zfgsss0zz3z3lsj6zn2lzjm5kgmp2qvbfl"))))
+                "189h8vl0005yizwrs4d0sng6j8lwkd3xi1zwqg8qavn2bw34v691"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
@@ -2961,7 +2961,7 @@ It supports a variety of Intel graphics chipsets.")
 (define-public xf86-video-mach64
   (package
     (name "xf86-video-mach64")
-    (version "6.9.5")
+    (version "6.9.6")
     (source
       (origin
         (method url-fetch)
@@ -2971,7 +2971,7 @@ It supports a variety of Intel graphics chipsets.")
                ".tar.bz2"))
         (sha256
           (base32
-           "07xlf5nsjm0x18ij5gyy4lf8hwpl10i8chi3skpqjh84drdri61y"))
+           "171wg8r6py1l138s58rlapin3rlpwsg9spmvhc7l68mm3g3hf1vs"))
         (patches (search-patches "xf86-video-mach64-glibc-2.20.patch"))))
     (build-system gnu-build-system)
     (inputs `(("mesa" ,mesa)
@@ -3176,33 +3176,47 @@ This driver is intended for the spice qxl virtio device.")
     (home-page "http://www.spice-space.org")
     (license license:x11)))
 
-
 (define-public xf86-video-r128
-  (package
-    (name "xf86-video-r128")
-    (version "6.10.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (string-append
-               "mirror://xorg/individual/driver/xf86-video-r128-"
-               version
-               ".tar.bz2"))
-        (sha256
-          (base32
-           "1pkpka5m4cd6iy0f8iqnmg6xci14nb6887ilvxzn3xrsgx8j3nl4"))))
-    (build-system gnu-build-system)
-    (inputs `(("mesa" ,mesa)
-              ("xorgproto" ,xorgproto)
-              ("xorg-server" ,xorg-server)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "https://www.x.org/wiki/")
-    (synopsis "ATI Rage 128 video driver for X server")
-    (description
-     "xf86-video-r128 is a video driver for the Xorg X server.
+  ;; We need a newer version than 6.10.2 to build against the latest xorg-server.
+  ;; Remove this binding and the bootstrap inputs when >6.10.2 is released.
+  (let ((commit "c4c878d2ccb75fa75afe46e0e50ee9975c5c57fc")
+        (revision "0"))
+    (package
+      (name "xf86-video-r128")
+      (version (git-version "6.10.2" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url (string-append "https://anongit.freedesktop.org/git/xorg"
+                                          "/driver/" name ".git"))
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "01pff30zz4zxjhw28h8bn9x2kq7c6iswgn19b72wnfgl0arxb63j"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:phases (modify-phases %standard-phases
+                    (add-before 'bootstrap 'prevent-configure
+                      (lambda _
+                        ;; Prevent autogen from calling "./configure" as part of
+                        ;; the bootstrap step, which fails due to wrong shebang.
+                        (setenv "NOCONFIGURE" "1")
+                        #t)))))
+      (inputs `(("mesa" ,mesa)
+                ("xorgproto" ,xorgproto)
+                ("xorg-server" ,xorg-server)))
+      (native-inputs
+       `(("pkg-config" ,pkg-config)
+         ("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("libtool" ,libtool)))
+      (home-page "https://www.x.org/wiki/")
+      (synopsis "ATI Rage 128 video driver for X server")
+      (description
+       "xf86-video-r128 is a video driver for the Xorg X server.
 This driver is intended for ATI Rage 128 based cards.")
-    (license license:x11)))
-
+      (license license:x11))))
 
 (define-public xf86-video-savage
   (package
@@ -3215,6 +3229,7 @@ This driver is intended for ATI Rage 128 based cards.")
                "mirror://xorg/individual/driver/xf86-video-savage-"
                version
                ".tar.bz2"))
+        (patches (search-patches "xf86-video-savage-xorg-compat.patch"))
         (sha256
           (base32
            "11pcrsdpdrwk0mrgv83s5nsx8a9i4lhmivnal3fjbrvi3zdw94rc"))))
@@ -3267,6 +3282,7 @@ Xorg X server.")
                "mirror://xorg/individual/driver/xf86-video-sis-"
                version
                ".tar.bz2"))
+        (patches (search-patches "xf86-video-sis-xorg-compat.patch"))
         (sha256
           (base32
            "03f1abjjf68y8y1iz768rn95va9d33wmbwfbsqrgl6k0gi0bf9jj"))))
@@ -3723,7 +3739,7 @@ alternative implementations like XRandR or TwinView.")
 (define xkbcomp-intermediate ; used as input for xkeyboard-config
   (package
     (name "xkbcomp-intermediate")
-    (version "1.4.1")
+    (version "1.4.2")
     (source
       (origin
         (method url-fetch)
@@ -3733,7 +3749,7 @@ alternative implementations like XRandR or TwinView.")
                ".tar.bz2"))
         (sha256
          (base32
-          "0djp7bb0ch2ddwmc1bkg4fddxdvamiiz375x0r0ni5dcb37w93bl"))))
+          "0944rrkkf0dxp07vhh9yr4prslxhqyw63qmbjirbv1bypswvrn3d"))))
     (build-system gnu-build-system)
     (inputs
       `(("xorgproto" ,xorgproto)
@@ -5072,7 +5088,7 @@ over Xlib, including:
 (define-public xorg-server
   (package
     (name "xorg-server")
-    (version "1.19.6")
+    (version "1.20.0")
     (source
       (origin
         (method url-fetch)
@@ -5081,7 +5097,7 @@ over Xlib, including:
               name "-" version ".tar.bz2"))
         (sha256
          (base32
-          "15y13ihgkggmly5s07vzvpn35gzx1w0hrkbnlcvcy05h3lpm0cm7"))
+          "1rnka3sp8yg2bir0bjjhwn33jikj8qd8ckqcxrs94w05bwc7v5lx"))
         (patches
          (list
           ;; See: