summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorLeo Famulari <leo@famulari.name>2016-08-17 23:21:00 -0400
committerLeo Famulari <leo@famulari.name>2016-08-17 23:35:22 -0400
commit015ee84aac888b3900fa0ee54a1b7e55c083e7d3 (patch)
tree2ef7a51321dff53e479bc6d11f3785e1c65c07f0 /gnu/packages
parenta3d6e1f432ad5f9cde8bee670b28646e05c4cb19 (diff)
parent79f9d5d5dc97e492e0583e039a2699aa17f4eb11 (diff)
downloadguix-015ee84aac888b3900fa0ee54a1b7e55c083e7d3.tar.gz
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/admin.scm38
-rw-r--r--gnu/packages/adns.scm4
-rw-r--r--gnu/packages/audio.scm13
-rw-r--r--gnu/packages/avr.scm37
-rw-r--r--gnu/packages/benchmark.scm63
-rw-r--r--gnu/packages/bioinformatics.scm246
-rw-r--r--gnu/packages/databases.scm8
-rw-r--r--gnu/packages/debug.scm60
-rw-r--r--gnu/packages/dico.scm14
-rw-r--r--gnu/packages/emacs.scm19
-rw-r--r--gnu/packages/freeipmi.scm7
-rw-r--r--gnu/packages/games.scm42
-rw-r--r--gnu/packages/gnome.scm19
-rw-r--r--gnu/packages/gnunet.scm48
-rw-r--r--gnu/packages/gnupg.scm44
-rw-r--r--gnu/packages/imagemagick.scm4
-rw-r--r--gnu/packages/irc.scm25
-rw-r--r--gnu/packages/java.scm141
-rw-r--r--gnu/packages/kde-frameworks.scm923
-rw-r--r--gnu/packages/linux.scm12
-rw-r--r--gnu/packages/lirc.scm51
-rw-r--r--gnu/packages/mail.scm85
-rw-r--r--gnu/packages/musl.scm50
-rw-r--r--gnu/packages/networking.scm92
-rw-r--r--gnu/packages/package-management.scm4
-rw-r--r--gnu/packages/password-utils.scm2
-rw-r--r--gnu/packages/patches/cracklib-CVE-2016-6318.patch95
-rw-r--r--gnu/packages/patches/dico-idxgcide-bug.patch21
-rw-r--r--gnu/packages/patches/dico-libtool-deterministic.patch15
-rw-r--r--gnu/packages/patches/jq-CVE-2015-8863.patch45
-rw-r--r--gnu/packages/patches/laby-make-install.patch25
-rw-r--r--gnu/packages/patches/netsurf-about.patch26
-rw-r--r--gnu/packages/pdf.scm34
-rw-r--r--gnu/packages/pulseaudio.scm4
-rw-r--r--gnu/packages/python.scm153
-rw-r--r--gnu/packages/qemu.scm306
-rw-r--r--gnu/packages/rdf.scm10
-rw-r--r--gnu/packages/scsi.scm54
-rw-r--r--gnu/packages/shells.scm42
-rw-r--r--gnu/packages/spice.scm72
-rw-r--r--gnu/packages/ssh.scm66
-rw-r--r--gnu/packages/suckless.scm82
-rw-r--r--gnu/packages/version-control.scm77
-rw-r--r--gnu/packages/video.scm38
-rw-r--r--gnu/packages/web.scm126
-rw-r--r--gnu/packages/xml.scm33
46 files changed, 2955 insertions, 420 deletions
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index eada7962d2..09a883c89c 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Peter Feigl <peter.feigl@nexoid.at>
 ;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
+;;; Coypright © 2016 ng0 <ng0@we.make.ritual.n0.is>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -70,7 +71,9 @@
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages python)
   #:use-module (gnu packages man)
-  #:use-module (gnu packages autotools))
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gtk))
 
 (define-public aide
   (package
@@ -1698,3 +1701,36 @@ a new command using the matched rule, and runs it.")
 display your disk usage in whatever format you prefer.  It is designed to be
 highly portable.  Great for heterogenous networks.")
     (license license:zlib)))
+
+(define-public cbatticon
+  (package
+    (name "cbatticon")
+    (version "1.6.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/valr/"
+                                  name "/archive/" version ".tar.gz"))
+              (sha256
+               (base32
+                "023fvsa4q7rl98rqgwrb1shyzaybdkkbyz5sywd0s5p7ixkksxqx"))
+              (file-name (string-append name "-" version ".tar.gz"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no tests
+       #:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+             "CC=gcc")
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)))) ; no configure script
+    (inputs
+     `(("gtk+" ,gtk+)
+       ("gnu-gettext" ,gnu-gettext)
+       ("libnotify" ,libnotify)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (synopsis "Lightweight battery icon for the system tray")
+    (description "cbatticon is a lightweight battery icon that displays
+the status of your battery in the system tray.")
+    (home-page "https://github.com/valr/cbatticon")
+    (license license:gpl2+)))
diff --git a/gnu/packages/adns.scm b/gnu/packages/adns.scm
index a6fbc1add8..81e51d8eb2 100644
--- a/gnu/packages/adns.scm
+++ b/gnu/packages/adns.scm
@@ -27,7 +27,7 @@
 (define-public adns
   (package
     (name "adns")
-    (version "1.5.0")
+    (version "1.5.1")
     (source (origin
               (method url-fetch)
               (uri (list (string-append "mirror://gnu/adns/adns-"
@@ -37,7 +37,7 @@
                           version ".tar.gz")))
               (sha256
                (base32
-                "0hg89b5n84zjhzvbzrpvhl0hbm4s6d1z2pzllfis64ai656ypibz"))))
+                "1ssfh94ck6kn98nf2yy6743srpgqgd167va5ja3bwx42igqjc42v"))))
     (build-system gnu-build-system)
     (arguments
      ;; Make sure the programs under bin/ fine libadns.so.
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 8ee53fd850..5c42aaa493 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -40,6 +40,7 @@
   #:use-module (gnu packages boost)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
@@ -174,7 +175,7 @@ streams from live audio.")
 (define-public ardour
   (package
     (name "ardour")
-    (version "4.7")
+    (version "5.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -188,10 +189,10 @@ streams from live audio.")
                     "libs/ardour/revision.cc"
                   (lambda (port)
                     (format port "#include \"ardour/revision.h\"
-namespace ARDOUR { const char* revision = \"4.7-219-g0e36f8e\" ; }"))))
+namespace ARDOUR { const char* revision = \"5.0-10-g23d1d1f\" ; }"))))
               (sha256
                (base32
-                "149gswphz77m3pkzsn2nqbm6yvcfa3fva560bcvjzlgb73f64q5l"))
+                "0ihd6zxha1vvp4jy5s49pqyw09qxxjgrdlslrkz6ll59zdh6x7am"))
               (file-name (string-append name "-" version))))
     (build-system waf-build-system)
     (arguments
@@ -233,12 +234,14 @@ namespace ARDOUR { const char* revision = \"4.7-219-g0e36f8e\" ; }"))))
        ("sratom" ,sratom)
        ("suil" ,suil)
        ("lilv" ,lilv)
+       ("readline" ,readline)
        ("redland" ,redland)
        ("rubberband" ,rubberband)
        ("taglib" ,taglib)
        ("python-rdflib" ,python-rdflib)))
     (native-inputs
      `(("perl" ,perl)
+       ("cppunit" ,cppunit)
        ("pkg-config" ,pkg-config)))
     (home-page "http://ardour.org")
     (synopsis "Digital audio workstation")
@@ -1303,7 +1306,7 @@ included are the command line utilities @code{send_osc} and @code{dump_osc}.")
 (define-public lilv
   (package
     (name "lilv")
-    (version "0.20.0")
+    (version "0.22.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "http://download.drobilla.net/lilv-"
@@ -1311,7 +1314,7 @@ included are the command line utilities @code{send_osc} and @code{dump_osc}.")
                                  ".tar.bz2"))
              (sha256
               (base32
-               "0aj2plkx56iar8vzjbq2l7hi7sp0ml99m0h44rgwai2x4vqkk2j2"))))
+               "1d3ss7vv8drf1c5340lyd0gv736n2qy7sxji2nh1rw9y48hr69yd"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f ; no check target
diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm
index 987347713c..fd18ff6a9a 100644
--- a/gnu/packages/avr.scm
+++ b/gnu/packages/avr.scm
@@ -73,7 +73,7 @@
     (version (package-version gcc-5))
     (source (package-source gcc-5))))
 
-(define-public avr-libc
+(define (avr-libc avr-gcc)
   (package
     (name "avr-libc")
     (version "2.0.0")
@@ -99,7 +99,7 @@
              (unsetenv "C_INCLUDE_PATH")
              #t)))))
     (native-inputs `(("avr-binutils" ,avr-binutils)
-                     ("avr-gcc" ,avr-gcc-4.9)))
+                     ("avr-gcc" ,avr-gcc)))
     (home-page "http://www.nongnu.org/avr-libc/")
     (synopsis "The AVR C Library")
     (description
@@ -109,24 +109,27 @@ for use with GCC on Atmel AVR microcontrollers.")
      (license:non-copyleft "http://www.nongnu.org/avr-libc/LICENSE.txt"))))
 
 (define (avr-toolchain avr-gcc)
-  (package
-    (name "avr-toolchain")
-    (version (package-version avr-gcc))
-    (source #f)
-    (build-system trivial-build-system)
-    (arguments '(#:builder (mkdir %output)))
-    (propagated-inputs
-     `(("avrdude" ,avrdude)
-       ("binutils" ,avr-binutils)
-       ("gcc" ,avr-gcc)
-       ("libc" ,avr-libc)))
-    (synopsis "Complete GCC tool chain for AVR microcontroller development")
-    (description "This package provides a complete GCC tool chain for AVR
+  ;; avr-libc checks the compiler version and passes "--enable-device-lib" for avr-gcc > 5.1.0.
+  ;; It wouldn't install the library for atmega32u4 etc if we didn't use the corret avr-gcc.
+  (let ((avr-libc (avr-libc avr-gcc)))
+    (package
+      (name "avr-toolchain")
+      (version (package-version avr-gcc))
+      (source #f)
+      (build-system trivial-build-system)
+      (arguments '(#:builder (mkdir %output)))
+      (propagated-inputs
+       `(("avrdude" ,avrdude)
+         ("binutils" ,avr-binutils)
+         ("gcc" ,avr-gcc)
+         ("libc" ,avr-libc)))
+      (synopsis "Complete GCC tool chain for AVR microcontroller development")
+      (description "This package provides a complete GCC tool chain for AVR
 microcontroller development.  This includes the GCC AVR cross compiler and
 avrdude for firmware flashing.  The supported programming languages are C and
 C++.")
-    (home-page (package-home-page avr-libc))
-    (license (package-license avr-gcc))))
+      (home-page (package-home-page avr-libc))
+      (license (package-license avr-gcc)))))
 
 (define-public avr-toolchain-4.9 (avr-toolchain avr-gcc-4.9))
 (define-public avr-toolchain-5 (avr-toolchain avr-gcc-5))
diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
new file mode 100644
index 0000000000..25813d1ab2
--- /dev/null
+++ b/gnu/packages/benchmark.scm
@@ -0,0 +1,63 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix 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 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix 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 GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages benchmark)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages linux))
+
+(define-public fio
+  (package
+    (name "fio")
+    (version "2.13")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                       "http://brick.kernel.dk/snaps/"
+                       "fio-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "10bn9jzks8mam5vz6falhr9pmd9wx248kh53vqp1bazbfxs3qgz0"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f ; No tests.
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; The configure script doesn't understand some of the
+             ;; GNU options, so we can't use #:configure-flags.
+             (let ((out (assoc-ref outputs "out")))
+               (zero? (system* "./configure"
+                               (string-append "--prefix=" out)))))))))
+    (inputs
+     `(("libaio" ,libaio)
+       ("zlib" ,zlib)))
+    (home-page "https://github.com/axboe/fio")
+    (synopsis "Flexible I/O tester")
+    (description
+     "fio is a tool that will spawn a number of threads or processes doing a
+particular type of I/O action as specified by the user.  The typical use of fio
+is to write a job file matching the I/O load one wants to simulate.")
+    ;; The software is distributed under the GPL2, but a handful of components
+    ;; are covered by other licenses.
+    (license (list license:gpl2 license:gpl2+ license:bsd-2
+                   license:public-domain))))
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 65d7cdc275..233b7a8879 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -40,6 +41,7 @@
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages compression)
@@ -136,6 +138,99 @@ tRNA consensus sequences and RNA structure.  It also outputs the secondary
 structure of the predicted RNA.")
     (license license:gpl2)))
 
+(define-public bamm
+  (package
+    (name "bamm")
+    (version "1.7.2a")
+    (source (origin
+              (method url-fetch)
+              ;; BamM is not available on pypi.
+              (uri (string-append
+                    "https://github.com/Ecogenomics/BamM/archive/v"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0nb20yml39f8fh0cahpjywsl91irh9yskig549c17xkrkl74czsq"))
+              (modules '((guix build utils)))
+              (snippet
+               `(begin
+                  ;; Delete bundled htslib.
+                  (delete-file-recursively "c/htslib-1.3.1")
+                  #t))))
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2 ; BamM is Python 2 only.
+       ;; Do not use bundled libhts.  Do use the bundled libcfu because it has
+       ;; been modified from its original form.
+       #:configure-flags
+       (let ((htslib (assoc-ref %build-inputs "htslib")))
+         (list "--with-libhts-lib" (string-append htslib "/lib")
+               "--with-libhts-inc" (string-append htslib "/include/htslib")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'autogen
+           (lambda _
+             (with-directory-excursion "c"
+               (let ((sh (which "sh")))
+                 ;; Use autogen so that 'configure' works.
+                 (substitute* "autogen.sh" (("/bin/sh") sh))
+                 (setenv "CONFIG_SHELL" sh)
+                 (substitute* "configure" (("/bin/sh") sh))
+                 (zero? (system* "./autogen.sh"))))))
+         (delete 'build)
+         ;; Run tests after installation so compilation only happens once.
+         (delete 'check)
+         (add-after 'install 'wrap-executable
+           (lambda* (#:key outputs #:allow-other-keys)
+            (let* ((out  (assoc-ref outputs "out"))
+                   (path (getenv "PATH")))
+              (wrap-program (string-append out "/bin/bamm")
+                `("PATH" ":" prefix (,path))))
+            #t))
+         (add-after 'wrap-executable 'post-install-check
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (setenv "PATH"
+                     (string-append (assoc-ref outputs "out")
+                                    "/bin:"
+                                    (getenv "PATH")))
+             (setenv "PYTHONPATH"
+                     (string-append
+                      (assoc-ref outputs "out")
+                      "/lib/python"
+                      (string-take (string-take-right
+                                    (assoc-ref inputs "python") 5) 3)
+                      "/site-packages:"
+                      (getenv "PYTHONPATH")))
+             ;; There are 2 errors printed, but they are safe to ignore:
+             ;; 1) [E::hts_open_format] fail to open file ...
+             ;; 2) samtools view: failed to open ...
+             (zero? (system* "nosetests")))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("zlib" ,zlib)
+       ("python-nose" ,python2-nose)
+       ("python-pysam" ,python2-pysam)
+       ("python-setuptools" ,python2-setuptools)))
+    (inputs
+     `(("htslib" ,htslib)
+       ("samtools" ,samtools)
+       ("bwa" ,bwa)
+       ("grep" ,grep)
+       ("sed" ,sed)
+       ("coreutils" ,coreutils)))
+    (propagated-inputs
+     `(("python-numpy" ,python2-numpy)))
+    (home-page "http://ecogenomics.github.io/BamM/")
+    (synopsis "Metagenomics-focused BAM file manipulator")
+    (description
+     "BamM is a C library, wrapped in python, to efficiently generate and
+parse BAM files, specifically for the analysis of metagenomic data.  For
+instance, it implements several methods to assess contig-wise read coverage.")
+    (license license:lgpl3+)))
+
 (define-public bamtools
   (package
     (name "bamtools")
@@ -1327,7 +1422,7 @@ databases.")
 (define-public clipper
   (package
     (name "clipper")
-    (version "0.3.0")
+    (version "1.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1336,12 +1431,18 @@ databases.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1q7jpimsqln7ic44i8v2rx2haj5wvik8hc1s2syd31zcn0xk1iyq"))
+                "0pflmsvhbf8izbgwhbhj1i7349sw1f55qpqj8ljmapp16hb0p0qi"))
               (modules '((guix build utils)))
               (snippet
-               ;; remove unnecessary setup dependency
-               '(substitute* "setup.py"
-                  (("setup_requires = .*") "")))))
+               '(begin
+                  ;; remove unnecessary setup dependency
+                  (substitute* "setup.py"
+                    (("setup_requires = .*") ""))
+                  (for-each delete-file
+                            '("clipper/src/peaks.so"
+                              "clipper/src/readsToWiggle.so"))
+                  (delete-file-recursively "dist/")
+                  #t))))
     (build-system python-build-system)
     (arguments `(#:python ,python-2)) ; only Python 2 is supported
     (inputs
@@ -1350,6 +1451,7 @@ databases.")
        ("python-cython" ,python2-cython)
        ("python-scikit-learn" ,python2-scikit-learn)
        ("python-matplotlib" ,python2-matplotlib)
+       ("python-pandas" ,python2-pandas)
        ("python-pysam" ,python2-pysam)
        ("python-numpy" ,python2-numpy)
        ("python-scipy" ,python2-scipy)))
@@ -1801,7 +1903,7 @@ identify enrichments with functional annotations of the genome.")
 (define-public diamond
   (package
     (name "diamond")
-    (version "0.8.17")
+    (version "0.8.18")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1810,7 +1912,7 @@ identify enrichments with functional annotations of the genome.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1479sz0phddv40kx4xv95g2q7m3wy52smjb4apn0xpn2gqgj4nrx"))))
+                "1r8klhbzn5cfzg9g69dd0sk4c0bd8cg1g5id8blsqi273bymm4jl"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f ; no "check" target
@@ -2861,7 +2963,7 @@ sequencing tag position and orientation.")
 (define-public mafft
   (package
     (name "mafft")
-    (version "7.299")
+    (version "7.305")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2870,7 +2972,7 @@ sequencing tag position and orientation.")
               (file-name (string-append name "-" version ".tgz"))
               (sha256
                (base32
-                "1pwwdy5a17ggx8h9v9y712ilswj27dc3d23r65l56jgjz67y5zc0"))))
+                "0ziim7g58n3z8gppsa713f5fxprl60ldj3xck186z0n9dpp06i8r"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; no automated tests, though there are tests in the read me
@@ -2881,31 +2983,31 @@ sequencing tag position and orientation.")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'enter-dir
-          (lambda _ (chdir "core") #t))
+           (lambda _ (chdir "core") #t))
          (add-after 'enter-dir 'patch-makefile
-          (lambda _
-            ;; on advice from the MAFFT authors, there is no need to
-            ;; distribute mafft-profile, mafft-distance, or
-            ;; mafft-homologs.rb as they are too "specialised".
-            (substitute* "Makefile"
-              ;; remove mafft-homologs.rb from SCRIPTS
-              (("^SCRIPTS = mafft mafft-homologs.rb")
-               "SCRIPTS = mafft")
-              ;; remove mafft-homologs from MANPAGES
-              (("^MANPAGES = mafft.1 mafft-homologs.1")
-               "MANPAGES = mafft.1")
-              ;; remove mafft-distance from PROGS
-              (("^PROGS = dvtditr dndfast7 dndblast sextet5 mafft-distance")
-               "PROGS = dvtditr dndfast7 dndblast sextet5")
-              ;; remove mafft-profile from PROGS
-              (("splittbfast disttbfast tbfast mafft-profile 2cl mccaskillwrap")
-               "splittbfast disttbfast tbfast f2cl mccaskillwrap")
-              (("^rm -f mafft-profile mafft-profile.exe") "#")
-              (("^rm -f mafft-distance mafft-distance.exe") ")#")
-              ;; do not install MAN pages in libexec folder
-              (("^\t\\$\\(INSTALL\\) -m 644 \\$\\(MANPAGES\\) \
+           (lambda _
+             ;; on advice from the MAFFT authors, there is no need to
+             ;; distribute mafft-profile, mafft-distance, or
+             ;; mafft-homologs.rb as they are too "specialised".
+             (substitute* "Makefile"
+               ;; remove mafft-homologs.rb from SCRIPTS
+               (("^SCRIPTS = mafft mafft-homologs.rb")
+                "SCRIPTS = mafft")
+               ;; remove mafft-homologs from MANPAGES
+               (("^MANPAGES = mafft.1 mafft-homologs.1")
+                "MANPAGES = mafft.1")
+               ;; remove mafft-distance from PROGS
+               (("^PROGS = dvtditr dndfast7 dndblast sextet5 mafft-distance")
+                "PROGS = dvtditr dndfast7 dndblast sextet5")
+               ;; remove mafft-profile from PROGS
+               (("splittbfast disttbfast tbfast mafft-profile 2cl mccaskillwrap")
+                "splittbfast disttbfast tbfast f2cl mccaskillwrap")
+               (("^rm -f mafft-profile mafft-profile.exe") "#")
+               (("^rm -f mafft-distance mafft-distance.exe") ")#")
+               ;; do not install MAN pages in libexec folder
+               (("^\t\\$\\(INSTALL\\) -m 644 \\$\\(MANPAGES\\) \
 \\$\\(DESTDIR\\)\\$\\(LIBDIR\\)") "#"))
-            #t))
+             #t))
          (add-after 'enter-dir 'patch-paths
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* '("pairash.c"
@@ -2915,13 +3017,24 @@ sequencing tag position and orientation.")
                 (string-append prefix (which "awk")))
                (("grep") (which "grep")))
              #t))
-         (delete 'configure))))
+         (delete 'configure)
+         (add-after 'install 'wrap-programs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (path (string-append
+                           (assoc-ref %build-inputs "coreutils") "/bin:")))
+               (for-each (lambda (file)
+                           (wrap-program file
+                             `("PATH" ":" prefix (,path))))
+                         (find-files bin)))
+             #t)))))
     (inputs
      `(("perl" ,perl)
+       ("ruby" ,ruby)
        ("gawk" ,gawk)
-       ("grep" ,grep)))
-    (propagated-inputs
-     `(("coreutils" ,coreutils)))
+       ("grep" ,grep)
+       ("coreutils" ,coreutils)))
     (home-page "http://mafft.cbrc.jp/alignment/software/")
     (synopsis "Multiple sequence alignment program")
     (description
@@ -3014,6 +3127,62 @@ probabilistic distances of genome abundance and tetranucleotide frequency.")
    (license (license:non-copyleft "file://license.txt"
                                   "See license.txt in the distribution."))))
 
+(define-public minced
+  (package
+    (name "minced")
+    (version "0.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/ctSkennerton/minced/archive/"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0wxmlsapxfpxfd3ps9636h7i2xy6la8i42mwh0j2lsky63h63jp1"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'check 'fix-test
+           (lambda _
+             ;; Fix test for latest version.
+             (substitute* "t/Aquifex_aeolicus_VF5.expected"
+               (("minced:0.1.6") "minced:0.2.0"))
+             #t))
+         (replace 'install ; No install target.
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (wrapper (string-append bin "/minced")))
+               ;; Minced comes with a wrapper script that tries to figure out where
+               ;; it is located before running the JAR. Since these paths are known
+               ;; to us, we build our own wrapper to avoid coreutils dependency.
+               (install-file "minced.jar" bin)
+               (with-output-to-file wrapper
+                 (lambda _
+                   (display
+                    (string-append
+                     "#!" (assoc-ref inputs "bash") "/bin/sh\n\n"
+                     (assoc-ref inputs "jre") "/bin/java -jar "
+                     bin "/minced.jar \"$@\"\n"))))
+               (chmod wrapper #o555)))))))
+    (native-inputs
+     `(("jdk" ,icedtea "jdk")))
+    (inputs
+     `(("bash" ,bash)
+       ("jre" ,icedtea "out")))
+    (home-page "https://github.com/ctSkennerton/minced")
+    (synopsis "Mining CRISPRs in Environmental Datasets")
+    (description
+     "MinCED is a program to find Clustered Regularly Interspaced Short
+Palindromic Repeats (CRISPRs) in DNA sequences.  It can be used for
+unassembled metagenomic reads, but is mainly designed for full genomes and
+assembled metagenomic sequence.")
+    (license license:gpl3+)))
+
 (define-public miso
   (package
     (name "miso")
@@ -4395,6 +4564,11 @@ is one that takes arguments.")
      "SNAP is a fast and accurate aligner for short DNA reads.  It is
 optimized for modern read lengths of 100 bases or higher, and takes advantage
 of these reads to align data quickly through a hash-based indexing scheme.")
+    ;; 32-bit systems are not supported by the unpatched code.
+    ;; Following the bug reports https://github.com/amplab/snap/issues/68 and
+    ;; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=812378 we see that
+    ;; systems without a lot of memory cannot make good use of this program.
+    (supported-systems '("x86_64-linux"))
     (license license:asl2.0)))
 
 (define-public sortmerna
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 428b7a22b4..0173ffb896 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -345,14 +345,14 @@ as a drop-in replacement of MySQL.")
 (define-public postgresql
   (package
     (name "postgresql")
-    (version "9.5.3")
+    (version "9.5.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://ftp.postgresql.org/pub/source/v"
                                   version "/postgresql-" version ".tar.bz2"))
               (sha256
                (base32
-                "1d500d2qsdzysnis6qi84xchnz5xh8kx8sjfmkbsijwaqlfw11bk"))))
+                "1l3fqxlpxgl6nrcd4h6lpi2hsiv56yg83n3xrn704rmdch8mfpng"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -944,14 +944,14 @@ similar to BerkeleyDB, LevelDB, etc.")
 (define-public redis
   (package
     (name "redis")
-    (version "3.2.0")
+    (version "3.2.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://download.redis.io/releases/redis-"
                                   version".tar.gz"))
               (sha256
                (base32
-                "0ql7zp061xr66a1dzpa6a0ijm8zm133dd364va7q5h8avkrim7wq"))))
+                "05az2g3gna5lkhh6x1a5m6yardbiig1l4ysggldlk5if8ww9qkk7"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f ; tests related to master/slave and replication fail
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index 556a1051f1..9da8885fb3 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -20,10 +20,14 @@
   #:use-module (guix packages)
   #:use-module (guix licenses)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages golang)
   #:use-module (gnu packages indent)
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages perl)
@@ -256,3 +260,59 @@ fuzzed code.  The compact synthesized corpora produced by the tool are also
 useful for seeding other, more labor- or resource-intensive testing regimes
 down the road.")
       (license asl2.0))))
+
+(define-public stress-make
+  (let ((commit "506e6cfd98d165f22bee91c408b7c20117a682c4")
+        (revision "0"))                 ;No official source distribution
+    (package
+      (name "stress-make")
+      (version (string-append "1.0-" revision "." (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/losalamos/stress-make.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "1j330yqhc7plwin04qxbh8afpg5nfnw1xvnmh8rk6mmqg9w6ik70"))))
+      (build-system gnu-build-system)
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("go" ,go)))
+      (inputs
+       `(("make-source" ,(package-source gnu-make))))
+      (arguments
+       ;; stress-make's configure script insists on having a tarball and does
+       ;; not accept a directory name instead.  To let the gnu-build-system's
+       ;; patch-* phases work properly, we unpack the source first, then
+       ;; repack before the configure phase.
+       `(#:configure-flags '("--with-make-tar=./make.tar.xz")
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'unpack-make
+             (lambda* (#:key inputs #:allow-other-keys)
+               (zero? (system* "tar" "xf" (assoc-ref inputs "make-source")))))
+           (add-before 'configure 'repack-make
+             (lambda _
+               (zero? (system* "tar" "cJf" "./make.tar.xz"
+                               (string-append "make-"
+                                              ,(package-version gnu-make))))))
+           (add-before 'configure 'bootstrap
+             (lambda _
+               (zero? (system* "autoreconf" "-vfi")))))))
+      (home-page "https://github.com/losalamos/stress-make")
+      (synopsis "Expose race conditions in Makefiles")
+      (description
+       "Stress Make is a customized GNU Make that explicitely managess the
+order in which concurrent jobs are run in order to provoke erroneous behavior
+into becoming manifest.  It can run jobs in the order they're launched, in
+backwards order, or in random order.  The thought is that if code builds
+correctly with Stress Make then it is likely that the @code{Makefile} contains
+no race conditions.")
+      ;; stress-make wrapper is under BSD-3-modifications-must-be-indicated,
+      ;; and patched GNU Make is under its own license.
+      (license (list (non-copyleft "COPYING.md")
+                     (package-license gnu-make))))))
diff --git a/gnu/packages/dico.scm b/gnu/packages/dico.scm
index 87062f94dc..16ab343cb0 100644
--- a/gnu/packages/dico.scm
+++ b/gnu/packages/dico.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,6 +25,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages m4)
+  #:use-module (gnu packages groff)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages python)
   #:use-module (gnu packages pcre)
@@ -35,17 +37,14 @@
 (define-public dico
   (package
     (name "dico")
-    (version "2.2")
+    (version "2.3")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/dico/dico-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "04pjks075x20d19l623mj50bw64g8i41s63z4kzzqcbg9qg96x64"))
-             (patches (search-patches "cpio-gets-undeclared.patch"
-                                      "dico-libtool-deterministic.patch"
-                                      "dico-idxgcide-bug.patch"))))
+               "13by0zimx90v2j8v7n4k9y3xwmh4q9jdc2f4f8yjs3x7f5bzm2pk"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags (list (string-append "--with-guile-site-dir=" %output
@@ -62,10 +61,11 @@
     (inputs
      `(("m4" ,m4)                                 ;used at run time
        ("pcre" ,pcre)
-       ;; ("python" ,python-2)
+       ("python" ,python-2)
        ("guile" ,guile-2.0)
        ("gsasl" ,gsasl)
-       ("readline" ,readline-6.2)
+       ("groff" ,groff)
+       ("readline" ,readline)
        ("zlib" ,zlib)
        ;; ("wordnet" ,wordnet) ;FIXME: link failure
        ("libltdl" ,libltdl)))
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 825a355d63..9948b911d0 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -2941,3 +2941,22 @@ news items, openrc and runscripts.")
 in English as you type.  It primarily detects \"weasel words\" and abuse of
 passive voice.")
     (license license:gpl3+)))
+
+(define-public emacs-neotree
+  (package
+    (name "emacs-neotree")
+    (version "0.2.1")
+    (home-page "https://github.com/jaypei/emacs-neotree")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/jaypei/" name
+                    "/archive/v" version ".tar.gz"))
+              (sha256
+               (base32
+                "0cr37pdkwjgfijfws5bjskfh1rq9rfngxblcj6v5383vpmn83q7s"))
+              (file-name (string-append name "-" version))))
+    (build-system emacs-build-system)
+    (synopsis "Folder tree view for Emacs")
+    (description "This Emacs package provides a folder tree view.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/freeipmi.scm b/gnu/packages/freeipmi.scm
index ea81b1af8d..01f1389144 100644
--- a/gnu/packages/freeipmi.scm
+++ b/gnu/packages/freeipmi.scm
@@ -28,17 +28,18 @@
 (define-public freeipmi
   (package
     (name "freeipmi")
-    (version "1.5.2")
+    (version "1.5.3")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/freeipmi/freeipmi-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "0xgfwk6lxwwzq8pbyxjl5xxpybs9p4qwgb7q0ykf048xwxha4kvk"))))
+               "0s4q7imc4r3g9lkd92bnvw70679q83b0irrlw895i5nc05dj4djx"))))
     (build-system gnu-build-system)
     (inputs
-     `(("readline" ,readline) ("libgcrypt" ,libgcrypt)))
+     `(("readline" ,readline)
+       ("libgcrypt" ,libgcrypt)))
     (home-page "http://www.gnu.org/software/freeipmi/")
     (synopsis "Platform management, including sensor and power monitoring")
     (description
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index e467dbe04c..96aefbc3e4 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -22,6 +22,7 @@
 ;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il"
+;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -74,6 +75,7 @@
   #:use-module (gnu packages image)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages netpbm)
+  #:use-module (gnu packages ocaml)
   #:use-module (gnu packages python)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages xorg)
@@ -2678,6 +2680,7 @@ with the \"Stamp\" tool within Tux Paint.")
                       "CONFDIR=/etc/tuxpaint" ;don't write to store
                       ,(string-append "PREFIX=" %output)
                       "GNOME_PREFIX=$(PREFIX)")
+       #:parallel-build? #f             ;race conditions
        #:tests? #f                      ;no tests
        #:phases (modify-phases %standard-phases
                   (delete 'configure)   ;no configure phase
@@ -2731,3 +2734,42 @@ in a style similar to the original Super Mario games covered under
 the GNU GPL.")
    (home-page "https://supertuxproject.org/")
    (license license:gpl3+)))
+
+(define-public laby
+  (package
+    (name "laby")
+    (version "0.6.4")
+    (source
+     (origin (method url-fetch)
+             (uri (string-append
+                   "https://github.com/sgimenez/laby/tarball/"
+                   name "-" version))
+             (file-name (string-append name "-" version ".tar.gz"))
+             (sha256
+              (base32
+               "113ip48308ps3lsw427xswgx3wdanils43nyal9n4jr6bcx1bj2j"))
+             (patches (search-patches "laby-make-install.patch"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("lablgtk" ,lablgtk)
+       ("ocaml" ,ocaml)
+       ("ocaml-findlib" ,ocaml-findlib)))
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'build 'setenv
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((lablgtk (assoc-ref inputs "lablgtk")))
+               (setenv "LD_LIBRARY_PATH"
+                       (string-append lablgtk "/lib/ocaml/stublibs"))))))
+       #:tests? #f ; no 'check' target
+       #:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out")) "all")))
+    (home-page "https://sgimenez.github.io/laby/")
+    (synopsis "Programming game")
+    (description "Learn programming, playing with ants and spider webs ;-)
+Your robot ant can be programmed in many languages: OCaml, Python, C, C++,
+Java, Ruby, Lua, JavaScript, Pascal, Perl, Scheme, Vala, Prolog.  Experienced
+programmers may also add their own favorite language.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 4a0be0142a..e133fcca5b 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1588,7 +1588,7 @@ Hints specification (EWMH).")
 (define-public gnumeric
   (package
     (name "gnumeric")
-    (version "1.12.28")
+    (version "1.12.31")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -1596,7 +1596,7 @@ Hints specification (EWMH).")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1fsdp7r6fhc0m3fb4ly4xwh83v3hp2zrv9d0713g4lcy709svm02"))))
+                "1rvadlgikklwb6rccqc3rlhqv3m9qx27rchm7znxr062fn7fgb68"))))
     (build-system gnu-build-system)
     (arguments
      `(;; The gnumeric developers don't worry much about failing tests.
@@ -3428,7 +3428,7 @@ part of udev-extras, then udev, then systemd.  It's now a project on its own.")
 (define-public gvfs
   (package
     (name "gvfs")
-    (version "1.28.1")
+    (version "1.28.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -3436,7 +3436,7 @@ part of udev-extras, then udev, then systemd.  It's now a project on its own.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "16bry61hg681bwb0pih86cjayzvc5f89ip5xd8fydcy16nnfbksf"))))
+                "05xxy0ids310qy24vmkyl3hc6mq05p39aa8mkr5fzxkhhnv4r325"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f)) ; XXX: requiring `pidof'
@@ -3526,7 +3526,7 @@ USB transfers with your high-level application or system daemon.")
 (define-public simple-scan
   (package
     (name "simple-scan")
-    (version "3.19.91")
+    (version "3.21.90")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://launchpad.net/simple-scan/"
@@ -3535,7 +3535,7 @@ USB transfers with your high-level application or system daemon.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "1c5glf5vxgld41w4jxfqcv17q76qnh43fawpv33hncgh8d283xkf"))))
+                "0dmsvq3vviky6851rqiik898r84c7744i7md672ckic3mdv21ap3"))))
     (build-system glib-or-gtk-build-system)
     (inputs
      `(("gtk" ,gtk+)
@@ -3543,10 +3543,9 @@ USB transfers with your high-level application or system daemon.")
        ("cairo" ,cairo)
        ("gdk-pixbuf" ,gdk-pixbuf)
        ("gusb" ,gusb)
-       ("libgudev" ,libgudev)
        ("libsane" ,sane-backends)))
     (native-inputs
-     `(("intltool" ,intltool)
+     `(("gettext" ,gnu-gettext)
        ("itstool" ,itstool)
        ("colord" ,colord)
        ("glib" ,glib "bin")                       ; glib-compile-schemas, etc.
@@ -3812,7 +3811,7 @@ classes for commonly used data structures.")
 (define-public gexiv2
   (package
     (name "gexiv2")
-    (version "0.10.3")
+    (version "0.10.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -3820,7 +3819,7 @@ classes for commonly used data structures.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "121r5lv6l82pjr0ycdf2b01mdwy7sxwca2r068zrzylpc6bgn31r"))))
+                "190www3b61spfgwx42jw8h5hsz2996jcxky48k63468avjpk33dd"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("glib" ,glib "bin")
diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index 4d888bdb2a..788732240c 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -50,6 +50,7 @@
   #:use-module (gnu packages tls)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xiph)
+  #:use-module (gnu packages backup)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -81,17 +82,12 @@
    ;; FIXME:
    ;; The following dependencies are all optional, but should be
    ;; available for maximum coverage:
-   ;; * libarchive
-   ;; * libgif (giflib)
-   ;; * libgtk+ >= 3.0.0 (may probably drop glib then as a propagated input of
-   ;;                     gtk)
-   ;; * libgsf
    ;; * libmagic (file)
-   ;; * libmpeg2
-   ;; * libmp4v2
-   ;; * librpm
-   ;; * libsmf
-   ;; * libtidy
+   ;; * libmp4v2        ; package it
+   ;; * librpm          ; package it
+   ;; * libsmf          ; package it
+   ;; * libtidy         ; package it
+   ;; * libgif (giflib) ; investigate failure
    (inputs
     `(("exiv2" ,exiv2)
       ("flac" ,flac)
@@ -100,14 +96,23 @@
       ("glib" ,glib)
       ("gstreamer" ,gstreamer)
       ("gst-plugins-base" ,gst-plugins-base)
+      ("gtk+" ,gtk+)
+      ("libarchive" ,libarchive)
+      ("libgsf" ,libgsf)
       ("libjpeg" ,libjpeg)
+      ("libltdl" ,libltdl)
+      ("libmpeg2" ,libmpeg2)
       ("libogg" ,libogg)
       ("libtiff" ,libtiff)
-      ("libltdl" ,libltdl)
       ("libvorbis" ,libvorbis)
       ("zlib" ,zlib)))
    (native-inputs
-      `(("pkg-config" ,pkg-config)))
+    `(("pkg-config" ,pkg-config)))
+   (arguments
+    `(#:configure-flags
+      (list (string-append "--with-ltdl="
+                           (assoc-ref %build-inputs "libltdl")))
+      #:parallel-tests? #f))
    (synopsis "Library to extract meta-data from media files")
    (description
     "GNU libextractor is a library for extracting metadata from files.  It
@@ -153,7 +158,7 @@ and support for SSL3 and TLS.")
 (define-public gnurl
   (package
    (name "gnurl")
-   (version "7.48.0")
+   (version "7.50.1")
    (source (origin
             (method url-fetch)
             (uri (let ((version-with-underscores
@@ -162,7 +167,7 @@ and support for SSL3 and TLS.")
                                   name "-" version-with-underscores ".tar.bz2")))
             (sha256
              (base32
-              "14gch4rdibrc8qs4mijsczxvl45dsclf234g17dk6c8nc2s4bm0a"))))
+              "0irb8df3lqd9w1pb627q260hn448vbkh0sn4l6p6jh0q8lqscv84"))))
    (build-system gnu-build-system)
    (inputs `(("gnutls" ,gnutls)
              ("libidn" ,libidn)
@@ -183,22 +188,27 @@ and support for SSL3 and TLS.")
                           "--disable-ldap" "--disable-rtsp" "--disable-dict"
                           "--disable-telnet" "--disable-tftp" "--disable-pop3"
                           "--disable-imap" "--disable-smtp" "--disable-gopher"
-                          "--disable-file" "--disable-ftp")
+                          "--disable-file" "--disable-ftp" "--disable-smb")
      #:test-target "test"
      #:parallel-tests? #f
-     ;; We have to patch runtests.pl in tests/ directory
      #:phases
+     ;; We have to patch runtests.pl in tests/ directory
       (alist-cons-before
        'check 'patch-runtests
        (lambda _
          (substitute* "tests/runtests.pl"
-                      (("/bin/sh") (which "sh"))))
-       %standard-phases)))
+           (("/bin/sh") (which "sh"))))
+       ;; To be discussed with upstream.
+       (alist-cons-before
+        'check 'delete-failing-test1139
+        (lambda _
+          (delete-file "tests/data/test1139"))
+       %standard-phases))))
    (synopsis "Microfork of cURL with support for the HTTP/HTTPS/GnuTLS subset of cURL")
    (description
     "Gnurl is a microfork of cURL, a command line tool for transferring data
 with URL syntax.  While cURL supports many crypto backends, libgnurl only
-supports HTTPS, HTTPS and GnuTLS.")
+supports HTTP, HTTPS and GnuTLS.")
    (license (license:non-copyleft "file://COPYING"
                                   "See COPYING in the distribution."))
    (home-page "https://gnunet.org/gnurl")))
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 9bc7b65108..e195434888 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -74,6 +74,7 @@ Daemon and possibly more in the future.")
 (define-public libgcrypt
   (package
     (name "libgcrypt")
+    (replacement libgcrypt-1.7.3)
     (version "1.7.0")
     (source (origin
              (method url-fetch)
@@ -107,8 +108,22 @@ generation.")
     (properties '((ftp-server . "ftp.gnupg.org")
                   (ftp-directory . "/gcrypt/libgcrypt")))))
 
+(define-public libgcrypt-1.7.3
+  (package
+    (inherit libgcrypt)
+    (source
+     (let ((version "1.7.3"))
+       (origin
+         (method url-fetch)
+         (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-"
+                             version ".tar.bz2"))
+         (sha256
+          (base32
+           "0wbh6fq5zi9wg2xcfvfpwh7dv52jihivx1vm4h91c2kx0w8n3b6x")))))))
+
 (define-public libgcrypt-1.5
   (package (inherit libgcrypt)
+    (replacement libgcrypt-1.5.6)
     (version "1.5.4")
     (source
      (origin
@@ -119,6 +134,19 @@ generation.")
        (base32
         "0czvqxkzd5y872ipy6s010ifwdwv29sqbnqc4pf56sd486gqvy6m"))))))
 
+(define-public libgcrypt-1.5.6
+  (package
+    (inherit libgcrypt-1.5)
+    (source
+     (let ((version "1.5.6"))
+       (origin
+         (method url-fetch)
+         (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-"
+                             version ".tar.bz2"))
+         (sha256
+          (base32
+           "0ydy7bgra5jbq9mxl5x031nif3m6y3balc6ndw2ngj11wnsjc61h")))))))
+
 (define-public libassuan
   (package
     (name "libassuan")
@@ -303,14 +331,14 @@ libskba (working with X.509 certificates and CMS data).")
 
 (define-public gnupg-1
   (package (inherit gnupg)
-    (version "1.4.20")
+    (version "1.4.21")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
                                   ".tar.bz2"))
               (sha256
                (base32
-                "1k7d6zi0zznqsmcjic0yrgfhqklqz3qgd3yac7wxsa7s6088p604"))))
+                "0xi2mshq8f6zbarb5f61c9w2qzwrdbjm4q8fqsrwlzc51h8a6ivb"))))
     (native-inputs '())
     (inputs
      `(("zlib" ,zlib)
@@ -319,12 +347,12 @@ libskba (working with X.509 certificates and CMS data).")
        ("readline" ,readline)
        ("libgpg-error" ,libgpg-error)))
     (arguments
-     `(#:phases (alist-cons-after
-                 'unpack 'patch-check-sh
-                 (lambda _
-                   (substitute* "checks/Makefile.in"
-                     (("/bin/sh") (which "bash"))))
-                 %standard-phases)))))
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-check-sh
+           (lambda _
+             (substitute* "checks/Makefile.in"
+               (("/bin/sh") (which "bash"))))))))))
 
 (define-public gpgme
   (package
diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm
index 549c92b457..c88fd7a60a 100644
--- a/gnu/packages/imagemagick.scm
+++ b/gnu/packages/imagemagick.scm
@@ -41,14 +41,14 @@
 (define-public imagemagick
   (package
     (name "imagemagick")
-    (version "6.9.5-4")
+    (version "6.9.5-7")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://imagemagick/ImageMagick-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1n7fjbjh6s6rblkga8lkdqcd2b3vjgcm5jcx1r8vnww6b2w9ym00"))))
+               "00arcvyhsy9i5gp3b0lhfvs04qwhxpmq0bfsv4ipllinb6mjgxf5"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--with-frozenpaths")
diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
index d75746b4a5..d52edd8373 100644
--- a/gnu/packages/irc.scm
+++ b/gnu/packages/irc.scm
@@ -266,3 +266,28 @@ and extensible with plugins and scripts.")
     (description
      "ii (Irc it) is a minimalist FIFO and filesystem based IRC client.")
     (license license:expat)))
+
+(define-public sic
+  (package
+    (name "sic")
+    (version "1.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://dl.suckless.org/tools/"
+                                  name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "11aiavxp44yayibc58bvimi8mrxvbw1plbci8cnbl4syk42zj1xc"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no tests
+       #:make-flags (list "CC=gcc"
+                          (string-append "PREFIX=" %output))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)))) ; no configure
+    (home-page "http://tools.suckless.org/sic/")
+    (synopsis "Simple IRC client")
+    (description
+     "sic is a simple IRC client, even more minimalistic than ii.")
+    (license license:expat)))
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index e8216072b6..3e0b034950 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -142,6 +142,147 @@ is implemented.")
               license:mpl2.0
               license:lgpl2.1+))))
 
+(define-public clojure
+  (let* ((remove-archives '(begin
+                             (for-each delete-file
+                                       (find-files "." ".*\\.(jar|zip)"))
+                             #t))
+         (submodule (lambda (prefix version hash)
+                      (origin
+                        (method url-fetch)
+                        (uri (string-append "https://github.com/clojure/"
+                                            prefix version ".tar.gz"))
+                        (sha256 (base32 hash))
+                        (modules '((guix build utils)))
+                        (snippet remove-archives)))))
+    (package
+      (name "clojure")
+      (version "1.8.0")
+      (source
+       (origin
+         (method url-fetch)
+         (uri
+          (string-append "http://repo1.maven.org/maven2/org/clojure/clojure/"
+                         version "/clojure-" version ".zip"))
+         (sha256
+          (base32 "1nip095fz5c492sw15skril60i1vd21ibg6szin4jcvyy3xr6cym"))
+         (modules '((guix build utils)))
+         (snippet remove-archives)))
+      (build-system ant-build-system)
+      (arguments
+       `(#:modules ((guix build ant-build-system)
+                    (guix build utils)
+                    (ice-9 ftw)
+                    (ice-9 regex)
+                    (srfi srfi-1)
+                    (srfi srfi-26))
+         #:test-target "test"
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'unpack-submodule-sources
+             (lambda* (#:key inputs #:allow-other-keys)
+               (for-each
+                (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)))
+                  (copy-recursively (string-append name "/src/main/clojure/")
+                                    "src/clj/"))
+                '("data-generators-src"
+                  "java-classpath-src"
+                  "test-check-src"
+                  "test-generative-src"
+                  "tools-namespace-src"
+                  "tools-reader-src"))
+               #t))
+           ;; The javadoc target is not built by default.
+           (add-after 'build 'build-doc
+             (lambda _
+               (zero? (system* "ant" "javadoc"))))
+           ;; Needed since no install target is provided.
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((java-dir (string-append (assoc-ref outputs "out")
+                                              "/share/java/")))
+                 ;; Install versioned to avoid collisions.
+                 (install-file (string-append "clojure-" ,version ".jar")
+                               java-dir)
+                 #t)))
+           ;; Needed since no install-doc target is provided.
+           (add-after 'install 'install-doc
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((doc-dir (string-append (assoc-ref outputs "out")
+                                             "/share/doc/clojure-"
+                                             ,version "/")))
+                 (copy-recursively "doc/clojure" doc-dir)
+                 (copy-recursively "target/javadoc/"
+                                   (string-append doc-dir "javadoc/"))
+                 (for-each (cut install-file <> doc-dir)
+                           (filter (cut string-match
+                                     ".*\\.(html|markdown|md|txt)"
+                                     <>)
+                                   (scandir "./")))
+                 #t))))))
+      ;; The native-inputs below are needed to run the tests.
+      (native-inputs
+       `(("data-generators-src"
+          ,(submodule "data.generators/archive/data.generators-"
+                      "0.1.2"
+                      "0kki093jp4ckwxzfnw8ylflrfqs8b1i1wi9iapmwcsy328dmgzp1"))
+         ("java-classpath-src"
+          ,(submodule "java.classpath/archive/java.classpath-"
+                      "0.2.3"
+                      "0sjymly9xh1lkvwn5ygygpsfwz4dabblnlq0c9bx76rkvq62fyng"))
+         ("test-check-src"
+          ,(submodule "test.check/archive/test.check-"
+                      "0.9.0"
+                      "0p0mnyhr442bzkz0s4k5ra3i6l5lc7kp6ajaqkkyh4c2k5yck1md"))
+         ("test-generative-src"
+          ,(submodule "test.generative/archive/test.generative-"
+                      "0.5.2"
+                      "1pjafy1i7yblc7ixmcpfq1lfbyf3jaljvkgrajn70sws9xs7a9f8"))
+         ("tools-namespace-src"
+          ,(submodule "tools.namespace/archive/tools.namespace-"
+                      "0.2.11"
+                      "10baak8v0hnwz2hr33bavshm7y49mmn9zsyyms1dwjz45p5ymhy0"))
+         ("tools-reader-src"
+          ,(submodule "tools.reader/archive/tools.reader-"
+                      "0.10.0"
+                      "09i3lzbhr608h76mhdjm3932gg9xi8sflscla3c5f0v1nkc28cnr"))))
+      (home-page "https://clojure.org/")
+      (synopsis "Lisp dialect running on the JVM")
+      (description "Clojure is a dynamic, general-purpose programming language,
+combining the approachability and interactive development of a scripting
+language with an efficient and robust infrastructure for multithreaded
+programming.  Clojure is a compiled language, yet remains completely dynamic
+– every feature supported by Clojure is supported at runtime.  Clojure
+provides easy access to the Java frameworks, with optional type hints and type
+inference, to ensure that calls to Java can avoid reflection.
+
+Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy
+and a powerful macro system.  Clojure is predominantly a functional programming
+language, and features a rich set of immutable, persistent data structures.
+When mutable state is needed, Clojure offers a software transactional memory
+system and reactive Agent system that ensure clean, correct, multithreaded
+designs.")
+      ;; Clojure is licensed under EPL1.0
+      ;; ASM bytecode manipulation library is licensed under BSD-3
+      ;; Guava Murmur3 hash implementation is licensed under APL2.0
+      ;; src/clj/repl.clj is licensed under CPL1.0
+      ;;
+      ;; See readme.html or readme.txt for details.
+      (license (list license:epl1.0
+                     license:bsd-3
+                     license:asl2.0
+                     license:cpl1.0)))))
+
 (define-public ant
   (package
     (name "ant")
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 57727accbc..a679c64314 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -1,6 +1,8 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,28 +25,51 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils)
+  #:use-module (gnu packages admin)
+  #:use-module (gnu packages bison)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages xorg))
 
 (define-public extra-cmake-modules
   (package
     (name "extra-cmake-modules")
-    (version "5.21.0")
+    (version "5.24.0")
     (source
       (origin
         (method url-fetch)
-        (uri (string-append "http://download.kde.org/stable/frameworks/"
+        (uri (string-append "mirror://kde/stable/frameworks/"
                             (version-major+minor version) "/"
                             name "-" version ".tar.xz"))
         (sha256
          (base32
-          "1kbc5fkcbz9vkg0jpz10vsfgwajlrsmbl0vrbls5qvrdgbgrwlm3"))))
-    ;; The package looks for Qt5LinguistTools provided by Qt, but apparently
-    ;; compiles without it; it might be needed for building the
-    ;; documentation, which requires the additional Sphinx package.
-    ;; To save space, we do not add these inputs.
+          "01m12ml529pwr2sal951r5z6yb1rwbpid1y4k14nlk3xqgmdakwa"))))
     (build-system cmake-build-system)
+    (native-inputs
+     `(("qtbase" ,qtbase))) ; For tests (needs qmake)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; install and check phase are swapped to prevent install from failing
+         ;; after testsuire has run
+         (add-after 'install 'check-post-install
+           (assoc-ref %standard-phases 'check))
+         (delete 'check))))
+    ;; optional dependencies - to save space, we do not add these inputs.
+    ;; Sphinx > 1.2:
+    ;;   Required to build Extra CMake Modules documentation in Qt Help format.
+    ;; Qt5LinguistTools , Qt5 linguist tools. , <http://www.qt.io/>
+    ;;   Required to run tests for the ECMPoQmTools module.
+    ;; Qt5Core
+    ;;   Required to run tests for the ECMQtDeclareLoggingCategory module,
+    ;;   and for some tests of the KDEInstallDirs module.
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "CMake module files for common software used by KDE")
     (description "The Extra CMake Modules package, or ECM, adds to the
@@ -52,30 +77,735 @@ modules provided by CMake to find common software.  In addition, it provides
 common build settings used in software produced by the KDE community.")
     (license license:bsd-3)))
 
+;; Tier 1
+;;
+;; Tier 1 frameworks depend only on Qt (and possibly a small number of other
+;; third-party libraries), so can easily be used by an Qt-based project.
+
+(define-public attica
+  (package
+    (name "attica")
+    (version "5.24.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/frameworks/"
+                            (version-major+minor version) "/"
+                            name "-" version ".tar.xz"))
+        (sha256
+         (base32
+          "0d368gmds7m7k5pnn625wqsij38cvxk1gkm4zv24phnk9f67v7cw"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("qtbase" ,qtbase)))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "Open Collaboration Service client library")
+    (description "Attica is a Qt library that implements the Open
+Collaboration Services API version 1.6.
+
+It grants easy access to the services such as querying information about
+persons and contents.  The library is used in KNewStuff3 as content provider.
+In order to integrate with KDE's Plasma Desktop, a platform plugin exists in
+kdebase.
+
+The REST API is defined here:
+http://freedesktop.org/wiki/Specifications/open-collaboration-services/")
+    (license (list license:lgpl2.1+ license:lgpl3+))))
+
+(define-public bluez-qt
+  (package
+    (name "bluez-qt")
+    (version "5.24.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/frameworks/"
+                            (version-major+minor version) "/"
+                            name "-" version ".tar.xz"))
+        (sha256
+         (base32
+          "0gy0m7lcwwklf021l5i3v7j0cl7qz7cgvzrwpj87ix3kyw5xs80z"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("dbus" ,dbus)
+       ("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("qtbase" ,qtbase)))
+    (arguments
+     `(#:configure-flags
+        '("-DINSTALL_UDEV_RULE:BOOL=OFF")
+       #:phases
+        (modify-phases %standard-phases
+          (replace 'check
+            (lambda* _
+              (setenv "DBUS_FATAL_WARNINGS" "0")
+              (zero? (system* "dbus-launch" "ctest" ".")))))))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "QML wrapper for BlueZ")
+    (description "bluez-qt is a Qt-style library for accessing the bluez
+Bluetooth stack.  It is used by the KDE Bluetooth stack, BlueDevil.")
+    (license (list license:lgpl2.1+ license:lgpl3+))))
+
+(define-public breeze-icons
+  (package
+    (name "breeze-icons")
+    (version "5.24.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/frameworks/"
+                            (version-major+minor version) "/"
+                            name "-" version ".tar.xz"))
+        (sha256
+         (base32
+          "1dh7bijx99sdb3vn6394wmm5cq0fvvmz8h17sx4hakmbga849cx2"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("qtbase" ,qtbase)))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "Default KDE Plasma 5 icon theme")
+    (description "Breeze provides a freedesktop.org compatible icon theme.
+It is the default icon theme for the KDE Plasma 5 desktop.")
+    ;; The license file mentions lgpl3+. The license files in the source
+    ;; directories are lgpl3, while the top directory contains the lgpl2.1.
+    ;; text.
+    (license license:lgpl3+)))
+
+(define-public kapidox
+  (package
+    (name "kapidox")
+    (version "5.24.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/frameworks/"
+                            (version-major+minor version) "/"
+                            name "-" version ".tar.xz"))
+        (sha256
+         (base32
+          "19a7alvn71nxflsyi7y3hghx1iw04qqc77qy54mcxcpkiyvpsggf"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f)) ; has no test target
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (propagated-inputs
+     ;; kapidox is a python programm
+     ;; TODO: check if doxygen has to be installed, the readme does not
+     ;; mention it. The openSuse .rpm lists doxygen, graphviz, graphviz-gd,
+     ;; and python-xml.
+     `(("python" ,python)
+       ("python-jinja2" ,python-jinja2)
+       ("python-pyyaml" ,python-pyyaml)))
+    (inputs
+     `(("qtbase" ,qtbase)))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "KDE Doxygen Tools")
+
+    (description "This framework contains scripts and data for building API
+documentation (dox) in a standard format and style for KDE.
+
+For the actual documentation extraction and formatting the Doxygen tool is
+used, but this framework provides a wrapper script to make generating the
+documentation more convenient (including reading settings from the target
+framework or other module) and a standard template for the generated
+documentation.")
+    ;; Most parts are bsd-2, but incuded jquery is expat
+    ;; This list is taken from http://packaging.neon.kde.org/cgit/
+    (license (list license:bsd-2 license:expat))))
+
+(define-public karchive
+  (package
+    (name "karchive")
+    (version "5.24.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/frameworks/"
+                            (version-major+minor version) "/"
+                            name "-" version ".tar.xz"))
+        (sha256
+         (base32
+          "1n5nfhrfvqnrdjgjjy7arqik4fya5bp3dvxa16mlhqr19azkavzq"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("bzip2" ,bzip2)
+       ("qtbase" ,qtbase)
+       ("xz" ,xz)
+       ("zlib" ,zlib)))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "Qt 5 addon providing access to numerous types of archives")
+    (description "KArchive provides classes for easy reading, creation and
+manipulation of 'archive' formats like ZIP and TAR.
+
+It also provides transparent compression and decompression of data, like the
+GZip format, via a subclass of QIODevice.")
+    ;; The included licenses is are gpl2 and lgpl2.1, but the sources are
+    ;; under a variety of licenses.
+    ;; This list is taken from http://packaging.neon.kde.org/cgit/
+    (license (list license:lgpl2.1 license:lgpl2.1+
+                   license:lgpl3+ license:bsd-2))))
+
+(define-public kcodecs
+  (package
+    (name "kcodecs")
+    (version "5.24.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/frameworks/"
+                            (version-major+minor version) "/"
+                            name "-" version ".tar.xz"))
+        (sha256
+         (base32
+          "1qpzjh3qc2zz80j2bmlinipbispms14k9bmqw8v61zhi6in9z14c"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("qttools" ,qttools)))
+    (inputs
+     `(("qtbase" ,qtbase)))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "String encoding and manipulating library")
+    (description "KCodecs provide a collection of methods to manipulate
+strings using various encodings.
+
+It can automatically determine the charset of a string, translate XML
+entities, validate email addresses, and find encodings by name in a more
+tolerant way than QTextCodec (useful e.g. for data coming from the
+Internet).")
+    ;; The included licenses is are gpl2 and lgpl2.1, but the sources are
+    ;; under a variety of licenses.
+    ;; This list is taken from http://packaging.neon.kde.org/cgit/
+    (license (list license:gpl2 license:gpl2+ license:bsd-2
+                   license:lgpl2.1 license:lgpl2.1+ license:expat
+                   license:lgpl3+ license:mpl1.1))))
+
+(define-public kconfig
+  (package
+    (name "kconfig")
+    (version "5.24.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/frameworks/"
+                            (version-major+minor version) "/"
+                            name "-" version ".tar.xz"))
+        (sha256
+         (base32
+          "1dc2i6icyigw1j6qxgdza6j2g8afh390qmxsa2a54mwl84fkfmxv"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("inetutils" ,inetutils)
+       ("qttools" ,qttools)
+       ("xorg-server" ,xorg-server)))
+    (inputs
+     `(("qtbase" ,qtbase)))
+    (arguments
+     `(#:phases
+        (modify-phases %standard-phases
+          (add-before 'check 'check-setup
+            (lambda* _
+              (setenv "HOME" (getcwd))
+              (setenv "TMPDIR" (getcwd))
+             #t))
+          (add-before 'check 'start-xorg-server
+            (lambda* (#:key inputs #:allow-other-keys)
+              ;; The test suite requires a running X server.
+              (system (string-append (assoc-ref inputs "xorg-server")
+                                     "/bin/Xvfb :1 &"))
+              (setenv "DISPLAY" ":1")
+             #t)))))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "Kconfiguration settings framework for Qt")
+    (description "KConfig provides an advanced configuration system.
+It is made of two parts: KConfigCore and KConfigGui.
+
+KConfigCore provides access to the configuration files themselves.
+It features:
+
+@itemize
+@item Code generation: describe your configuration in an XML file, and use
+`kconfig_compiler to generate classes that read and write configuration
+entries.
+
+@item Cascading configuration files (global settings overridden by local
+settings).
+
+@item Optional shell expansion support (see docs/options.md).
+
+@item The ability to lock down configuration options (see docs/options.md).
+@end itemize
+
+KConfigGui provides a way to hook widgets to the configuration so that they
+are automatically initialized from the configuration and automatically
+propagate their changes to their respective configuration files.")
+    ;; The included licenses is are gpl2 and lgpl2.1, but the sources are
+    ;; under a variety of licenses.
+    ;; This list is taken from http://packaging.neon.kde.org/cgit/
+    (license (list license:lgpl2.1 license:lgpl2.1+ license:expat
+                   license:lgpl3+ license:gpl1 ; licende:mit-olif
+                   license:bsd-2 license:bsd-3))))
+
+(define-public kcoreaddons
+  (package
+    (name "kcoreaddons")
+    (version "5.24.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/frameworks/"
+                            (version-major+minor version) "/"
+                            name "-" version ".tar.xz"))
+        (sha256
+         (base32
+          "06sx7by3nvaridnavj5p0bxv4nh47n708jlacfw8ydaikmd9i03h"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("qttools" ,qttools)
+       ("xorg-server" ,xorg-server))) ; for the tests
+    (inputs
+     `(("qtbase" ,qtbase)))
+    (arguments
+     `(#:tests? #f ; FIXME: Test failure caused by stout/stderr being interleaved.
+       #:phases
+        (modify-phases %standard-phases
+          (add-before 'check 'check-setup
+            (lambda* _
+              (setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; enable debug output
+              (setenv "HOME" (getcwd))
+              (setenv "TMPDIR" (getcwd)))))))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "Qt addon library with a collection of non-GUI utilities")
+    (description "KCoreAddons provides classes built on top of QtCore to
+perform various tasks such as manipulating mime types, autosaving files,
+creating backup files, generating random sequences, performing text
+manipulations such as macro replacement, accessing user information and
+many more.")
+    (license (list license:lgpl2.0+ license:lgpl2.1+))))
+
+(define-public kdbusaddons
+  (package
+    (name "kdbusaddons")
+    (version "5.24.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/frameworks/"
+                            (version-major+minor version) "/"
+                            name "-" version ".tar.xz"))
+        (sha256
+         (base32
+          "183nxqrhz4qk4qfp1w4an0scp2dvfqcaqbpg4cgbgk0z590q0pkk"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("dbus" ,dbus)
+       ("qttools" ,qttools)))
+    (inputs
+     `(("qtbase" ,qtbase)
+       ("qtx11extras" ,qtx11extras)))
+    (arguments
+     `(#:phases
+        (modify-phases %standard-phases
+          (replace 'check
+            (lambda* _
+              (setenv "DBUS_FATAL_WARNINGS" "0")
+              (zero? (system* "dbus-launch" "ctest" ".")))))))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "Convenience classes for DBus")
+    (description "KDBusAddons provides convenience classes on top of QtDBus,
+as well as an API to create KDED modules.")
+    ;; Some source files mention lgpl2.0+, but the included license is
+    ;; the lgpl2.1. Some source files are under non-copyleft licenses.
+    (license license:lgpl2.1+)))
+
+(define-public kdnssd
+  (package
+    (name "kdnssd")
+    (version "5.24.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/frameworks/"
+                            (version-major+minor version) "/"
+                            name "-" version ".tar.xz"))
+        (sha256
+         (base32
+          "01b650g031apxc3vd2m91g2fxqk9l8ap67z6rafniphfwy8i0d5m"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("qttools" ,qttools)))
+    (inputs
+     `(("qtbase" ,qtbase)))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "Network service discovery using Zeroconf")
+    (description "KDNSSD is a library for handling the DNS-based Service
+Discovery Protocol (DNS-SD), the layer of Zeroconf that allows network services,
+such as printers, to be discovered without any user intervention or centralized
+infrastructure.")
+    (license license:lgpl2.1+)))
+
+(define-public kguiaddons
+  (package
+    (name "kguiaddons")
+    (version "5.24.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/frameworks/"
+                            (version-major+minor version) "/"
+                            name "-" version ".tar.xz"))
+        (sha256
+         (base32
+          "0ig96ah20ybg5rwpswj9va2klvkh2q4amwxmgy3z4niwfsm2g3ic"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("xorg-server" ,xorg-server)))
+    (inputs
+     `(("qtbase" ,qtbase)))
+    (arguments
+     `(#:phases
+        (modify-phases %standard-phases
+          (add-before 'check 'start-xorg-server
+            (lambda* (#:key inputs #:allow-other-keys)
+              ;; The test suite requires a running X server.
+              (system (string-append (assoc-ref inputs "xorg-server")
+                                     "/bin/Xvfb :1 &"))
+              (setenv "DISPLAY" ":1")
+             #t)))))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "Utilities for graphical user interfaces")
+    (description "The KDE GUI addons provide utilities for graphical user
+interfaces in the areas of colors, fonts, text, images, keyboard input.")
+    (license (list license:gpl2+ license:lgpl2.1+))))
+
+(define-public ki18n
+  (package
+    (name "ki18n")
+    (version "5.24.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/frameworks/"
+                            (version-major+minor version) "/"
+                            name "-" version ".tar.xz"))
+        (sha256
+         (base32
+          "0cw24spmwsqa3ppkw03cm6yjd3sfll0dbbk2ya76fd4nw9hb00dv"))))
+    (build-system cmake-build-system)
+    (propagated-inputs
+     `(("gettext" ,gnu-gettext)
+       ("python" ,python)))
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("qtbase" ,qtbase)
+       ("qtdeclarative" ,qtdeclarative)
+       ("qtscript" ,qtscript)))
+    (arguments
+     `(#:phases
+        (modify-phases %standard-phases
+          (add-before 'check 'check-setup
+            (lambda* _
+              (setenv "HOME" (getcwd)))))))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "KDE Gettext-based UI text internationalization")
+    (description "KI18n provides functionality for internationalizing user
+interface text in applications, based on the GNU Gettext translation system.  It
+wraps the standard Gettext functionality, so that the programmers and translators
+can use the familiar Gettext tools and workflows.
+
+KI18n provides additional functionality as well, for both programmers and
+translators, which can help to achieve a higher overall quality of source and
+translated text.  This includes argument capturing, customizable markup, and
+translation scripting.")
+    (license license:lgpl2.1+)))
+
+(define-public kidletime
+  (package
+    (name "kidletime")
+    (version "5.24.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/frameworks/"
+                            (version-major+minor version) "/"
+                            name "-" version ".tar.xz"))
+        (sha256
+         (base32
+          "09jsj0pj27h93nr8v46savs6b93h8frydinfr7wlijkvpsl02jb4"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("qtbase" ,qtbase)
+       ("qtx11extras" ,qtx11extras)))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "Reporting of idle time of user and system")
+    (description "KIdleTime is a singleton reporting information on idle time.
+It is useful not only for finding out about the current idle time of the PC,
+but also for getting notified upon idle time events, such as custom timeouts,
+or user activity.")
+    (license (list license:gpl2+ license:lgpl2.1+))))
+
+(define-public kitemmodels
+  (package
+    (name "kitemmodels")
+    (version "5.24.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/frameworks/"
+                            (version-major+minor version) "/"
+                            name "-" version ".tar.xz"))
+        (sha256
+         (base32
+          "1s1p4nw1pqdzbdwvjnka17p9avf00wadr437p4f96md1lvh3sh69"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("xorg-server" ,xorg-server)))
+    (inputs
+     `(("qtbase" ,qtbase)))
+    (arguments
+     `(#:phases
+        (modify-phases %standard-phases
+          (add-before 'check 'start-xorg-server
+            (lambda* (#:key inputs #:allow-other-keys)
+              ;; The test suite requires a running X server.
+              (system (string-append (assoc-ref inputs "xorg-server")
+                                     "/bin/Xvfb :1 &"))
+              (setenv "DISPLAY" ":1")
+             #t)))))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "Set of item models extending the Qt model-view framework")
+    (description "KItemModels provides the following models:
+
+@itemize
+@item KBreadcrumbSelectionModel - Selects the parents of selected items to
+create breadcrumbs.
+
+@item KCheckableProxyModel - Adds a checkable capability to a source model.
+
+@item KConcatenateRowsProxyModel - Concatenates rows from multiple source models.
+
+@item KDescendantsProxyModel - Proxy Model for restructuring a Tree into a list.
+
+@item KExtraColumnsProxyModel - Adds columns after existing columns.
+
+@item KLinkItemSelectionModel - Share a selection in multiple views which do
+not have the same source model.
+
+@item KModelIndexProxyMapper - Mapping of indexes and selections through proxy
+models.
+
+@item KRearrangeColumnsProxyModel - Can reorder and hide columns from the source
+model.
+
+@item KRecursiveFilterProxyModel - Recursive filtering of models.
+
+@item KSelectionProxyModel - A Proxy Model which presents a subset of its source
+model to observers
+@end itemize")
+    (license license:lgpl2.1+)))
+
+(define-public kitemviews
+  (package
+    (name "kitemviews")
+    (version "5.24.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/frameworks/"
+                            (version-major+minor version) "/"
+                            name "-" version ".tar.xz"))
+        (sha256
+         (base32
+          "0y3fx9hk1x27arrmwfzq783a44cs7p8dpmhxrwzh0di4mwa8jafw"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("qttools" ,qttools)
+       ("xorg-server" ,xorg-server)))
+    (inputs
+     `(("qtbase" ,qtbase)))
+    (arguments
+     `(#:phases
+        (modify-phases %standard-phases
+          (add-before 'check 'check-setup
+            (lambda* _
+              (setenv "DBUS_FATAL_WARNINGS" "0")))
+          (add-before 'check 'start-xorg-server
+            (lambda* (#:key inputs #:allow-other-keys)
+              ;; The test suite requires a running X server.
+              (system (string-append (assoc-ref inputs "xorg-server")
+                                     "/bin/Xvfb :1 &"))
+              (setenv "DISPLAY" ":1")
+             #t)))))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "Set of item views extending the Qt model-view framework")
+    (description "KItemViews includes a set of views, which can be used with
+item models.  It includes views for categorizing lists and to add search filters
+to flat and hierarchical lists.")
+    (license (list license:gpl2+ license:lgpl2.1+))))
+
+(define-public kplotting
+  (package
+    (name "kplotting")
+    (version "5.24.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/frameworks/"
+                            (version-major+minor version) "/"
+                            name "-" version ".tar.xz"))
+        (sha256
+         (base32
+          "0gpypq9kh4b5s6dc7py3m117k3nbxczsfkxgxd9zxvr35kig7ya2"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("xorg-server" ,xorg-server)))
+    (inputs
+     `(("qtbase" ,qtbase)))
+    (arguments
+     `(#:phases
+        (modify-phases %standard-phases
+          (add-before 'check 'start-xorg-server
+            (lambda* (#:key inputs #:allow-other-keys)
+              ;; The test suite requires a running X server.
+              (system (string-append (assoc-ref inputs "xorg-server")
+                                     "/bin/Xvfb :1 &"))
+              (setenv "DISPLAY" ":1")
+             #t)))))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "Data plotting library")
+    (description "KPlotWidget is a QWidget-derived class that provides a virtual
+base class for easy data-plotting.  The idea behind KPlotWidget is that you only
+have to specify information in \"data units\", the natural units of the
+data being plotted.  KPlotWidget automatically converts everything to screen
+pixel units.")
+    (license license:lgpl2.1+)))
+
+(define-public kwayland
+  (package
+    (name "kwayland")
+    (version "5.24.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/frameworks/"
+                            (version-major+minor version) "/"
+                            name "-" version ".tar.xz"))
+        (sha256
+         (base32
+          "1h5anbqrxcl1s8kx1l53vcsfr8ifamcjqd47dk8a7lwr1ga6myq2"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("qtbase" ,qtbase)
+       ("wayland" ,wayland)))
+    (arguments
+     `(#:tests? #f ; FIXME tests require weston to run
+                   ; weston requires wayland flags in mesa
+       #:phases
+         (modify-phases %standard-phases
+           (add-before 'check 'check-setup
+             (lambda* _
+               (setenv "XDG_RUNTIME_DIR" "/tmp"))))))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "Qt-style API to interact with the wayland client and server")
+    (description "As the names suggest they implement a Client respectively a
+Server API for the Wayland protocol.  The API is Qt-styled removing the needs to
+interact with a for a Qt developer uncomfortable low-level C-API.  For example
+the callback mechanism from the Wayland API is replaced by signals, data types
+are adjusted to be what a Qt developer expects - two arguments of int are
+represented by a QPoint or a QSize.")
+    (license license:lgpl2.1+)))
+
+(define-public kwidgetsaddons
+  (package
+    (name "kwidgetsaddons")
+    (version "5.24.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/frameworks/"
+                            (version-major+minor version) "/"
+                            name "-" version ".tar.xz"))
+        (sha256
+         (base32
+          "1kppx0ppfhnb6q6sijs2dffyar86wkkx8miqavsjsgw1l2wiymcx"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("qttools" ,qttools)
+       ("xorg-server" ,xorg-server)))
+    (inputs
+     `(("qtbase" ,qtbase)))
+    (arguments
+     `(#:tests? #f ; FIXME: libGL error: failed to load driver: swrast.
+       #:phases
+        (modify-phases %standard-phases
+          (add-before 'check 'check-setup
+            (lambda* _
+              (setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; enable debug output
+              (setenv "LIBGL_DEBUG" "verbose") ; enable debug output
+              (setenv "DBUS_FATAL_WARNINGS" "0")))
+          (add-before 'check 'start-xorg-server
+            (lambda* (#:key inputs #:allow-other-keys)
+              ;; The test suite requires a running X server.
+              (system (string-append (assoc-ref inputs "xorg-server")
+                                     "/bin/Xvfb :1 &"))
+              (setenv "DISPLAY" ":1")
+             #t)))))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "Large set of desktop widgets")
+    (description "Provided are action classes that can be added to toolbars or
+menus, a wide range of widgets for selecting characters, fonts, colors, actions,
+dates and times, or MIME types, as well as platform-aware dialogs for
+configuration pages, message boxes, and password requests.")
+    (license (list license:gpl2+ license:lgpl2.1+))))
+
 (define-public kwindowsystem
   (package
     (name "kwindowsystem")
-    (version "5.21.0")
+    (version "5.24.0")
     (source
       (origin
         (method url-fetch)
-        (uri (string-append "http://download.kde.org/stable/frameworks/"
+        (uri (string-append "mirror://kde/stable/frameworks/"
                             (version-major+minor version) "/"
                             name "-" version ".tar.xz"))
         (sha256
          (base32
-          "13lfwpw5a4in0mp5y8d15jg6xhhrka2qmw73wrdzcvj22n6ldzzi"))))
+          "0w5ym8msl80v3q65253pdpj9f1fmb658rnndlbkrgpmm1rv1n6dz"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("pkg-config" ,pkg-config)
+       ("qttools" ,qttools)
        ("xorg-server" ,xorg-server))) ; for the tests
     (inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("libxrender" ,libxrender)
-       ("qt" ,qt)
+     `(("libxrender" ,libxrender)
+       ("qtbase" ,qtbase)
+       ("qtx11extras" ,qtx11extras)
        ("xcb-utils-keysyms" ,xcb-util-keysyms)))
     (arguments
-     `(#:tests? #f)) ; FIXME: The first seven tests fail with "Exception".
+     `(#:tests? #f)) ; FIXME: 8/10 tests fail.
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "KDE access to the windowing system")
     (description "KWindowSystem provides information about and allows
@@ -90,26 +820,175 @@ lower level classes for interaction with the X Windowing System.")
     ;; the lgpl2.1. Some source files are under non-copyleft licenses.
     (license license:lgpl2.1+)))
 
+(define-public modemmanager-qt
+  (package
+    (name "modemmanager-qt")
+    (version "5.24.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/frameworks/"
+                            (version-major+minor version) "/"
+                            name "-" version ".tar.xz"))
+        (sha256
+         (base32
+          "0khz5bf84xxa8aqpzwb6x839xx6dbiadwqhyj7cvgha65fh2xinh"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("dbus" ,dbus)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("modem-manager", modem-manager)
+       ("qtbase" ,qtbase)))
+    (arguments
+     `(#:phases
+        (modify-phases %standard-phases
+          (replace 'check
+            (lambda* _
+              (setenv "DBUS_FATAL_WARNINGS" "0")
+              (zero? (system* "dbus-launch" "ctest" ".")))))))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "Qt wrapper for ModemManager DBus API")
+    (description "ModemManagerQt provides access to all ModemManager features
+exposed on DBus.  It allows you to manage modem devices and access to
+information available for your modem devices, like signal, location and
+messages.")
+    (license license:lgpl2.1+)))
+
+(define-public networkmanager-qt
+  (package
+    (name "networkmanager-qt")
+    (version "5.24.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/frameworks/"
+                            (version-major+minor version) "/"
+                            name "-" version ".tar.xz"))
+        (sha256
+         (base32
+          "11wy0ds0hqbba900ggkcxjfqc9n65xlzc3h1zv9433nn5d75v6fy"))))
+     (build-system cmake-build-system)
+     (native-inputs
+      `(("extra-cmake-modules" ,extra-cmake-modules)
+        ("dbus" ,dbus)
+        ("pkg-config" ,pkg-config)))
+     (inputs
+      `(("network-manager", network-manager)
+        ("qtbase" ,qtbase)))
+     (arguments
+      `(#:phases
+         (modify-phases %standard-phases
+           (replace 'check
+             (lambda* _
+               (setenv "DBUS_FATAL_WARNINGS" "0")
+               (zero? (system* "dbus-launch" "ctest" ".")))))))
+     (home-page "https://community.kde.org/Frameworks")
+     (synopsis "Qt wrapper for NetworkManager DBus API")
+     (description "NetworkManagerQt provides access to all NetworkManager
+features exposed on DBus.  It allows you to manage your connections and control
+your network devices and also provides a library for parsing connection settings
+which are used in DBus communication.")
+     (license license:lgpl2.1+)))
+
 (define-public oxygen-icons
   (package
     (name "oxygen-icons")
-    (version "5.21.0")
+    (version "5.24.0")
     (source
       (origin
         (method url-fetch)
-        (uri (string-append "http://download.kde.org/stable/frameworks/"
+        (uri (string-append "mirror://kde/stable/frameworks/"
                             (version-major+minor version) "/"
-                            name "5-"version ".tar.xz"))
+                            name "5" "-" version ".tar.xz"))
         (sha256
          (base32
-          "00qh1h3xx392hh73zdlknc1j9i2sck9ys74a9ffkf6an4rl0hws5"))))
+          "1c7spjbzk04725vv0ly7vmyvwa96mfa5ki2pm146ld4888a896wm"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Oxygen provides the standard icon theme for the KDE desktop")
     (description "Oxygen icon theme for the KDE desktop")
     (license license:lgpl3+)))
+
+(define-public solid
+  (package
+    (name "solid")
+    (version "5.24.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/frameworks/"
+                            (version-major+minor version) "/"
+                            name "-" version ".tar.xz"))
+        (sha256
+         (base32
+          "00wvsxcnvhdx7ijzpcz5wny2ypkxr1drdpr4yvawgpwa678l1107"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("bison" ,bison)
+       ("extra-cmake-modules" ,extra-cmake-modules)
+       ("qttools" ,qttools)))
+    (inputs
+     `(("qtbase" ,qtbase)
+       ("udev" ,eudev)))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "Desktop hardware abstraction")
+    (description "Solid is a device integration framework.  It provides a way of
+querying and interacting with hardware independently of the underlying operating
+system.")
+    (license license:lgpl2.1+)))
+
+(define-public sonnet
+  (package
+    (name "sonnet")
+    (version "5.24.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/frameworks/"
+                            (version-major+minor version) "/"
+                            name "-" version ".tar.xz"))
+        (sha256
+         (base32
+          "152xz7fb1iwhb5w1n4xqvc648iaxi0inrl4kavxcsir61das1xyl"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("qttools" ,qttools)))
+    (inputs
+     `(("qtbase" ,qtbase)))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "Multi-language spell checker")
+    (description "Sonnet is a plugin-based spell checking library for Qt-based
+applications.  It supports several different plugins, including HSpell, Enchant,
+ASpell and HUNSPELL.")
+    (license license:lgpl2.1+)))
+
+(define-public threadweaver
+  (package
+    (name "threadweaver")
+    (version "5.24.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://kde/stable/frameworks/"
+                            (version-major+minor version) "/"
+                            name "-" version ".tar.xz"))
+        (sha256
+         (base32
+          "02g60zr9cc4bg1p90giich4n0qvqaiakz0y94qrnyj9f7fg0yksl"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
+    (inputs
+     `(("qtbase" ,qtbase)))
+    (home-page "https://community.kde.org/Frameworks")
+    (synopsis "Helper for multithreaded programming")
+    (description "ThreadWeaver is a helper for multithreaded programming.  It
+uses a job-based interface to queue tasks and execute them in an efficient way.")
+    (license license:lgpl2.1+)))
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 56bcb3f594..3eb48e6c7e 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -226,7 +226,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
     (search-path %load-path file)))
 
 (define-public linux-libre
-  (let* ((version "4.7")
+  (let* ((version "4.7.1")
          (build-phase
           '(lambda* (#:key system inputs #:allow-other-keys #:rest args)
              ;; Avoid introducing timestamps
@@ -304,7 +304,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
              (uri (linux-libre-urls version))
              (sha256
               (base32
-               "0ah3c70bj7iik5xrmrrixcbcz65pn3nf887x78drv6mdw2ayb0zl"))))
+               "08b8yv5grhzacahmhs3q1031d6a4k7qf1qj7i5vsk33fhgg1nvzx"))))
     (build-system gnu-build-system)
     (supported-systems '("x86_64-linux" "i686-linux"))
     (native-inputs `(("perl" ,perl)
@@ -341,13 +341,13 @@ It has been modified to remove all non-free binary blobs.")
 (define-public linux-libre-4.4
   (package
     (inherit linux-libre)
-    (version "4.4.16")
+    (version "4.4.18")
     (source (origin
               (method url-fetch)
               (uri (linux-libre-urls version))
               (sha256
                (base32
-                "0lgc064r18gxvya5zvv2l4dmcj7161mb34q4frlw9z02ils9d623"))))
+                "0k8k17in7dkjd9d8zg3i8l1ax466dba6bxw28flxizzyq8znljps"))))
     (native-inputs
      (let ((conf (kernel-config (or (%current-target-system)
                                     (%current-system))
@@ -358,13 +358,13 @@ It has been modified to remove all non-free binary blobs.")
 (define-public linux-libre-4.1
   (package
     (inherit linux-libre)
-    (version "4.1.29")
+    (version "4.1.30")
     (source (origin
               (method url-fetch)
               (uri (linux-libre-urls version))
               (sha256
                (base32
-                "1ygd89x5plkpxisafhnrnfbw69a257sza2gw15wj9jkzxs36a1jp"))))
+                "0nwmwbskfni3fnbd7v6jh8yfah915zh80xg4g7n38lb66rk3bxvi"))))
     (native-inputs
      (let ((conf (kernel-config (or (%current-target-system)
                                     (%current-system))
diff --git a/gnu/packages/lirc.scm b/gnu/packages/lirc.scm
index e3f60e33e2..4c45c0ecb0 100644
--- a/gnu/packages/lirc.scm
+++ b/gnu/packages/lirc.scm
@@ -19,7 +19,9 @@
 (define-module (gnu packages lirc)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system python)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages)
   #:use-module (gnu packages pkg-config)
@@ -85,3 +87,52 @@ user space applications allow you to control your computer with a remote
 control: you can send X events to applications, start programs and much more
 on just one button press.")
     (license license:gpl2+)))
+
+(define-public python-lirc
+ (let ((commit "4091fe918f3eed2513dad008828565cace408d2f")
+       (revision "1"))
+  (package
+    (name "python-lirc")
+    (version (string-append "1.2.1-" revision "." (string-take commit 7)))
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/tompreston/python-lirc.git")
+               (commit commit)))
+        (sha256
+          (base32
+            "0cm47s5pvijfs3v2k7hmpxv3mvp4n5la0ihnsczk5ym3iq166jil"))
+        (file-name (string-append name "-" version ".tar.gz"))))
+    (build-system python-build-system)
+    (inputs
+     `(("lirc" ,lirc)))
+    (native-inputs
+     `(("python-cython" ,python-cython)))
+    (arguments
+     `(#:tests? #f ; the only tests that exist are human-interactive
+       #:phases
+        (modify-phases %standard-phases
+          (add-before 'build 'build-from-cython-files
+            (lambda _
+              (zero? (system* "make" "py3")))))))
+    (home-page "https://github.com/tompreston/python-lirc")
+    (synopsis "Python bindings for LIRC")
+    (description "@code{lirc} is a Python module which provides LIRC bindings.")
+    (license license:gpl3)
+    (properties `((python2-variant . ,(delay python2-lirc)))))))
+
+(define-public python2-lirc
+  (let ((base (package-with-python2 (strip-python2-variant python-lirc))))
+    (package
+      (inherit base)
+      (arguments
+       `(#:tests? #f ; the only tests there are are human-interactive
+         #:phases
+          (modify-phases %standard-phases
+            (add-before 'build 'build-from-cython-files
+              (lambda _
+                (zero? (system* "make" "py2")))))))
+      (native-inputs
+       `(("python2-setuptools" ,python2-setuptools)
+         ("python2-cython" ,python2-cython))))))
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 4775e3eb7d..49bf8f74b1 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -296,7 +296,7 @@ and corrections.  It is based on a Bayesian filter.")
 (define-public offlineimap
   (package
     (name "offlineimap")
-    (version "7.0.4")
+    (version "7.0.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/OfflineIMAP/offlineimap/"
@@ -304,7 +304,7 @@ and corrections.  It is based on a Bayesian filter.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1g1ylvz214iydskvanzyac7kgmz61s5bqmpzz5hm11mrllkq111z"))))
+                "05wm7qix4ikx6hi57a1qc3hb5fv1vksbg6dgvmd8871y5l1qqrkn"))))
     (build-system python-build-system)
     (inputs `(("python2-pysqlite" ,python2-pysqlite)
               ("python2-six" ,python2-six)))
@@ -438,18 +438,18 @@ attachments, create new maildirs, and so on.")
 (define-public notmuch
   (package
     (name "notmuch")
-    (version "0.21")
+    (version "0.22.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://notmuchmail.org/releases/notmuch-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1cr53rbpkcy3pvrmhbg2gq7sjpwb0c8xd7a4zhzxbiv8s7z8yvyh"))))
+                "0jwpda3q023dn3sp41n8648951i7iagfv8zzpriv7hpkjivlafg7"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:tests? #f ;; FIXME: 662 tests; 168 fail and 99 are skipped
-                   ;; with perl input: 50 fail and 99 are skipped
+     '(#:tests? #f ; FIXME: 694 tests; 170 fail and 100 are skipped
+                   ; with perl input: 50 fail and 100 are skipped
        #:phases (modify-phases %standard-phases
                   (replace 'configure
                     (lambda* (#:key outputs #:allow-other-keys)
@@ -460,14 +460,14 @@ attachments, create new maildirs, and so on.")
                         (zero? (system* "./configure"
                                         (string-append "--prefix=" out)))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("bash-completion" ,bash-completion)
+       ("emacs" ,emacs-minimal)
+       ("pkg-config" ,pkg-config)
        ("python" ,python-2)
        ("python-docutils" ,python2-docutils)
-       ("python-sphinx" ,python2-sphinx)
-       ("bash-completion" ,bash-completion)))
+       ("python-sphinx" ,python2-sphinx)))
     (inputs
-     `(("emacs" ,emacs)
-       ("glib" ,glib)
+     `(("glib" ,glib)
        ("gmime" ,gmime)
        ("talloc" ,talloc)
        ("xapian" ,xapian)
@@ -520,33 +520,31 @@ ing, and tagging large collections of email messages.")
 useful for email address completion.")
     (license license:expat)))
 
-(define-public python2-notmuch
+(define-public python-notmuch
   (package
-    (name "python2-notmuch")
-    (version "0.15.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://pypi.python.org/packages/source/n/notmuch/notmuch-"
-                    version
-                    ".tar.gz"))
-              (sha256
-               (base32
-                "18g8701ibr153ngsz258kgcd42wqnbf9ifpqig1bijy6b0zx9xn5"))))
+    (name "python-notmuch")
+    (version "0.22.1")
+    ;; Notmuch python bindings are now unavailable on pypi.  The
+    ;; bindings are distributed via the notmuch release tarball.
+    (source (package-source notmuch))
     (build-system python-build-system)
     (inputs `(("notmuch" ,notmuch)))
     (arguments
-     `(#:python ,python-2
-       #:phases (modify-phases %standard-phases
-                  (add-before
-                   'build 'set-libnotmuch-file-name
-                   (lambda* (#:key inputs #:allow-other-keys)
-                     (let ((notmuch (assoc-ref inputs "notmuch")))
-                       (substitute* "notmuch/globals.py"
-                         (("libnotmuch\\.so\\.[0-9]")
-                          (string-append notmuch "/lib/libnotmuch.so.4")))
-                       #t))))
-       #:tests? #f))                              ;no "test" target
+     `(#:tests? #f  ; no "test" target
+       #:phases
+       (modify-phases %standard-phases
+         ;; This python package lives in a subdirectory of the notmuch source
+         ;; tree, so chdir into it before building.
+         (add-after 'unpack 'enter-python-dir
+           (lambda _ (chdir "bindings/python") #t))
+         ;; Make sure the correct notmuch shared library gets loaded.
+         (add-before 'build 'set-libnotmuch-file-name
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((notmuch (assoc-ref inputs "notmuch")))
+               (substitute* "notmuch/globals.py"
+                 (("libnotmuch\\.so\\.")
+                  (string-append notmuch "/lib/libnotmuch.so.")))
+               #t))))))
     (home-page "http://notmuchmail.org/")
     (synopsis "Python bindings of the Notmuch mail indexing library")
     (description
@@ -554,6 +552,9 @@ useful for email address completion.")
 and search library.")
     (license gpl3+)))
 
+(define-public python2-notmuch
+  (package-with-python2 python-notmuch))
+
 (define-public getmail
   (package
     (name "getmail")
@@ -607,12 +608,12 @@ useful features.")
        ("expat" ,expat)
        ("zlib" ,zlib)))
     (arguments
-      '(#:phases (alist-cons-after
-                  'unpack 'autogen
-                  (lambda _
-                    (setenv "NOCONFIGURE" "true")
-                    (zero? (system* "sh" "autogen.sh")))
-                  %standard-phases)
+      '(#:phases
+        (modify-phases %standard-phases
+          (add-after 'unpack 'autogen
+            (lambda _
+              (setenv "NOCONFIGURE" "true")
+              (zero? (system* "sh" "autogen.sh")))))
         #:configure-flags
         '("--disable-static" "--disable-db")))
     (home-page "http://www.etpan.org/libetpan.html")
@@ -627,7 +628,7 @@ MailCore 2.")
 (define-public claws-mail
   (package
     (name "claws-mail")
-    (version "3.13.2")
+    (version "3.14.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -635,7 +636,7 @@ MailCore 2.")
                     ".tar.xz"))
               (sha256
                (base32
-                "1l8ankx0qpq1ix1an8viphcf11ksh53jsrm1xjmq8cjbh5910wva"))))
+                "0nfchgga3ir91s8rky0a0vnz8cgj2f6h716wh3cmb466a01xfss6"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs `(("bogofilter" ,bogofilter)
diff --git a/gnu/packages/musl.scm b/gnu/packages/musl.scm
new file mode 100644
index 0000000000..a96185a561
--- /dev/null
+++ b/gnu/packages/musl.scm
@@ -0,0 +1,50 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix 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 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix 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 GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages musl)
+  #:use-module (guix download)
+  #:use-module (guix packages)
+  #:use-module (guix build-system gnu)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages))
+
+(define-public musl
+  (package
+    (name "musl")
+    (version "1.1.15")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.musl-libc.org/releases/"
+                                  name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1ymhxkskivzph0q34zadwfglc5gyahqajm7chqqn2zraxv3lgr4p"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f  ; Musl has no tests
+       #:configure-flags
+       (list "--disable-gcc-wrapper")))
+    (synopsis "Small C standard library")
+    (description "musl is a simple and lightweight C standard library.  It
+strives to be correct in the sense of standards-conformance and safety.")
+    (home-page "http://www.musl-libc.org")
+    ;; Musl as a whole is released under the Expat license.  Parts of it are
+    ;; derived from various third-party projects that are released under
+    ;; non-copyleft licenses.  See the COPYRIGHT file for details.
+    (license license:expat)))
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 77207c0e8a..2678739560 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -1,12 +1,14 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2016 Raimon Grau <raimonster@gmail.com>
 ;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -38,6 +40,7 @@
   #:use-module (gnu packages bison)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages databases)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gnupg)
@@ -46,6 +49,7 @@
   #:use-module (gnu packages lua)
   #:use-module (gnu packages mit-krb5)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
@@ -415,6 +419,58 @@ by firewalls or when you want to monitor the response time of the actual web
 application stack itself.")
     (license license:gpl2)))        ; with permission to link with OpenSSL
 
+(define-public aircrack-ng
+  (package
+    (name "aircrack-ng")
+    (version "1.2-rc4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://download.aircrack-ng.org/aircrack-ng-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "0dpzx9kddxpgzmgvdpl3rxn0jdaqhm5wxxndp1xd7d75mmmc2fnr"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libgcrypt" ,libgcrypt)
+       ("libnl" ,libnl)
+       ("ethtool" ,ethtool)
+       ("pcre" ,pcre)
+       ("sqlite" ,sqlite)
+       ("zlib" ,zlib)))
+    (arguments
+     `(#:make-flags `("sqlite=true"
+                      "gcrypt=true"
+                      "libnl=true"
+                      "pcre=true"
+                      "experimental=true" ;build wesside-ng, etc.
+                      "AVX2FLAG=N" "AVX1FLAG=N" "SSEFLAG=Y"
+                      ,(string-append "prefix=" %output))
+       #:phases (modify-phases %standard-phases
+                  (delete 'configure)   ;no configure phase
+                  (add-after 'build 'absolutize-tools
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (let ((ethtool (string-append (assoc-ref inputs "ethtool")
+                                                    "/sbin/ethtool")))
+                        (substitute* "scripts/airmon-ng"
+                          (("\\[ ! -x \"\\$\\(command -v ethtool 2>&1)\" \\]")
+                           (string-append "! " ethtool " --version "
+                                          ">/dev/null 2>&1"))
+                          (("\\$\\(ethtool")
+                           (string-append "$(" ethtool)))
+                        #t))))))
+    (home-page "http://www.aircrack-ng.org")
+    (synopsis "Assess WiFi network security")
+    (description
+     "Aircrack-ng is a complete suite of tools to assess WiFi network
+security.  It focuses on different areas of WiFi security: monitoring,
+attacking, testing, and cracking.  All tools are command-line driven, which
+allows for heavy scripting.")
+    (license (list license:gpl2+ license:bsd-3))))
+
 (define-public perl-net-dns
  (package
   (name "perl-net-dns")
@@ -635,3 +691,37 @@ information by IP Address.")
   (description "IO::Socket::INET6 is an interface for AF_INET/AF_INET6 domain
 sockets in Perl.")
   (license (package-license perl))))
+
+(define-public proxychains-ng
+  (package
+    (name "proxychains-ng")
+    (version "4.11")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/rofl0r/" name "/releases/"
+                                  "download/v" version "/" name "-" version
+                                  ".tar.bz2"))
+              (sha256
+               (base32
+                "1dkncdzw852488gkh5zhn4b5i03qyj8rgh1wcvcva7yd12c19i6w"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; there are no tests
+       #:make-flags '("CC=gcc")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-configure-script
+           (lambda _
+             ;; The configure script is very intolerant to unknown arguments,
+             ;; such as "CONFIG_SHELL".
+             (substitute* "configure"
+               (("\\*\\) break ;;" line)
+                (string-append "[A-Z]*) shift ;;\n"
+                               line)))
+             #t)))))
+    (synopsis "Redirect any TCP connection through a proxy or proxy chain")
+    (description "Proxychains-ng is a preloader which hooks calls to sockets
+in dynamically linked programs and redirects them through one or more SOCKS or
+HTTP proxies.")
+    (home-page "https://github.com/rofl0r/proxychains-ng")
+    (license license:gpl2+)))
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 1421c7ea0a..0fcd0b1646 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -476,13 +476,13 @@ transactions from C or Python.")
 (define-public diffoscope
   (package
     (name "diffoscope")
-    (version "54")
+    (version "56")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri name version))
               (sha256
                (base32
-                "1dv46ywzcll3mlqgvr48mq7rncizfvsic62c6dd2kdhynb22087n"))))
+                "0nbbbp2c1374pl2ysqij2gk013pl49l1nqlg40jxsg95bwa6610l"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 7a8bdcb5f3..7288da6613 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -29,6 +29,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
   #:use-module (guix packages)
+  #:use-module (gnu packages)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
@@ -159,6 +160,7 @@ and vice versa.")
               (uri (string-append "https://github.com/cracklib/cracklib/"
                                   "releases/download/" name "-" version "/"
                                   name "-" version ".tar.gz"))
+              (patches (search-patches "cracklib-CVE-2016-6318.patch"))
               (sha256
                (base32
                 "0hrkb0prf7n92w6rxgq0ilzkk6rkhpys2cfqkrbzswp27na7dkqp"))))
diff --git a/gnu/packages/patches/cracklib-CVE-2016-6318.patch b/gnu/packages/patches/cracklib-CVE-2016-6318.patch
new file mode 100644
index 0000000000..4806ecaae9
--- /dev/null
+++ b/gnu/packages/patches/cracklib-CVE-2016-6318.patch
@@ -0,0 +1,95 @@
+Fix CVE-2016-6318.
+
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6318
+
+Patch copied from Red Hat:
+
+https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2016-6318
+https://bugzilla.redhat.com/attachment.cgi?id=1188599&action=diff
+
+It is not safe to pass words longer than STRINGSIZE further to cracklib
+so the longbuffer cannot be longer than STRINGSIZE.
+diff -up cracklib-2.9.0/lib/fascist.c.longgecos cracklib-2.9.0/lib/fascist.c
+--- cracklib-2.9.0/lib/fascist.c.longgecos	2014-02-06 16:03:59.000000000 +0100
++++ cracklib-2.9.0/lib/fascist.c	2016-08-08 12:05:40.279235815 +0200
+@@ -515,7 +515,7 @@ FascistGecosUser(char *password, const c
+     char gbuffer[STRINGSIZE];
+     char tbuffer[STRINGSIZE];
+     char *uwords[STRINGSIZE];
+-    char longbuffer[STRINGSIZE * 2];
++    char longbuffer[STRINGSIZE];
+ 
+     if (gecos == NULL)
+ 	gecos = "";
+@@ -596,38 +596,47 @@ FascistGecosUser(char *password, const c
+     {
+ 	for (i = 0; i < j; i++)
+ 	{
+-	    strcpy(longbuffer, uwords[i]);
+-	    strcat(longbuffer, uwords[j]);
+-
+-	    if (GTry(longbuffer, password))
++	    if (strlen(uwords[i]) + strlen(uwords[j]) < STRINGSIZE)
+ 	    {
+-		return _("it is derived from your password entry");
+-	    }
+-
+-	    strcpy(longbuffer, uwords[j]);
+-	    strcat(longbuffer, uwords[i]);
++		strcpy(longbuffer, uwords[i]);
++		strcat(longbuffer, uwords[j]);
+ 
+-	    if (GTry(longbuffer, password))
+-	    {
+-		return _("it's derived from your password entry");
++		if (GTry(longbuffer, password))
++		{
++		    return _("it is derived from your password entry");
++		}
++
++		strcpy(longbuffer, uwords[j]);
++		strcat(longbuffer, uwords[i]);
++
++		if (GTry(longbuffer, password))
++		{
++		   return _("it's derived from your password entry");
++		}
+ 	    }
+ 
+-	    longbuffer[0] = uwords[i][0];
+-	    longbuffer[1] = '\0';
+-	    strcat(longbuffer, uwords[j]);
+-
+-	    if (GTry(longbuffer, password))
++	    if (strlen(uwords[j]) < STRINGSIZE - 1)
+ 	    {
+-		return _("it is derivable from your password entry");
++		longbuffer[0] = uwords[i][0];
++		longbuffer[1] = '\0';
++		strcat(longbuffer, uwords[j]);
++
++		if (GTry(longbuffer, password))
++		{
++		    return _("it is derivable from your password entry");
++		}
+ 	    }
+ 
+-	    longbuffer[0] = uwords[j][0];
+-	    longbuffer[1] = '\0';
+-	    strcat(longbuffer, uwords[i]);
+-
+-	    if (GTry(longbuffer, password))
++	    if (strlen(uwords[i]) < STRINGSIZE - 1)
+ 	    {
+-		return _("it's derivable from your password entry");
++		longbuffer[0] = uwords[j][0];
++		longbuffer[1] = '\0';
++		strcat(longbuffer, uwords[i]);
++
++		if (GTry(longbuffer, password))
++		{
++		    return _("it's derivable from your password entry");
++		}
+ 	    }
+ 	}
+     }
diff --git a/gnu/packages/patches/dico-idxgcide-bug.patch b/gnu/packages/patches/dico-idxgcide-bug.patch
deleted file mode 100644
index 28cc8a6a08..0000000000
--- a/gnu/packages/patches/dico-idxgcide-bug.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Reported at <http://mail.gnu.org.ua/archives/bug-dico/2016-07/msg00000.html>.
-Patch the .c file to avoid depending on Flex.
-
-commit 4599abbda3b5979367138ea098e435c919fe93fc
-Author: Sergey Poznyakoff <gray@gnu.org>
-Date:   Thu Jul 28 14:09:58 2016 +0300
-
-    Bugfix
-    
-    * modules/gcide/idxgcide.l (main): Initialize ipg_header.
-
---- dico-2.2/modules/gcide/idxgcide.c	2016-07-28 14:15:07.823587004 +0200
-+++ dico-2.2/modules/gcide/idxgcide.c	2016-07-28 14:15:09.435600549 +0200
-@@ -2497,6 +2497,7 @@ main(int argc, char **argv)
- 	dico_log(L_ERR, 0, _("not enough memory"));
- 	exit(EX_UNAVAILABLE);
-     }
-+    idx_page->ipg_header.hdr.phdr_numentries = 0;
-     idx_page->ipg_header.hdr.phdr_text_offset = idx_header.ihdr_pagesize / 2;
- 
-     idx_header.ihdr_maxpageref = idx_header.ihdr_pagesize / 2 /
diff --git a/gnu/packages/patches/dico-libtool-deterministic.patch b/gnu/packages/patches/dico-libtool-deterministic.patch
deleted file mode 100644
index 957fc79786..0000000000
--- a/gnu/packages/patches/dico-libtool-deterministic.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Dico 2.2 uses an old Libtool (2.2.7a) that did not sort the output
-of 'find', thereby leading to non-deterministic file name ordering
-in the arguments passed to 'ar rcu' for libdico.a & co.
-
---- dico-2.2/build-aux/ltmain.sh	1970-01-01 01:00:00.000000000 +0100
-+++ dico-2.2/build-aux/ltmain.sh	2015-11-25 09:39:30.826169050 +0100
-@@ -2926,7 +2926,7 @@ func_extract_archives ()
-         func_extract_an_archive "$my_xdir" "$my_xabs"
- 	;;
-       esac
--      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
-+      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
-     done
- 
-     func_extract_archives_result="$my_oldobjs"
diff --git a/gnu/packages/patches/jq-CVE-2015-8863.patch b/gnu/packages/patches/jq-CVE-2015-8863.patch
new file mode 100644
index 0000000000..20b3bb3f06
--- /dev/null
+++ b/gnu/packages/patches/jq-CVE-2015-8863.patch
@@ -0,0 +1,45 @@
+Fix CVE-2015-8863 (Off-by-one error in the tokenadd function in
+jv_parse.c in jq allows remote attackers to cause a denial of service
+(crash) via a long JSON-encoded number, which triggers a heap-based
+buffer overflow):
+
+<https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-8863>
+
+Copied from upstream code repository:
+
+<https://github.com/stedolan/jq/commit/8eb1367ca44e772963e704a700ef72ae2e12babd>
+
+From 8eb1367ca44e772963e704a700ef72ae2e12babd Mon Sep 17 00:00:00 2001
+From: Nicolas Williams <nico@cryptonector.com>
+Date: Sat, 24 Oct 2015 17:24:57 -0500
+Subject: [PATCH] Heap buffer overflow in tokenadd() (fix #105)
+
+This was an off-by one: the NUL terminator byte was not allocated on
+resize.  This was triggered by JSON-encoded numbers longer than 256
+bytes.
+---
+ jv_parse.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/jv_parse.c b/jv_parse.c
+index 3102ed4..84245b8 100644
+--- a/jv_parse.c
++++ b/jv_parse.c
+@@ -383,7 +383,7 @@ static pfunc stream_token(struct jv_parser* p, char ch) {
+ 
+ static void tokenadd(struct jv_parser* p, char c) {
+   assert(p->tokenpos <= p->tokenlen);
+-  if (p->tokenpos == p->tokenlen) {
++  if (p->tokenpos >= (p->tokenlen - 1)) {
+     p->tokenlen = p->tokenlen*2 + 256;
+     p->tokenbuf = jv_mem_realloc(p->tokenbuf, p->tokenlen);
+   }
+@@ -485,7 +485,7 @@ static pfunc check_literal(struct jv_parser* p) {
+     TRY(value(p, v));
+   } else {
+     // FIXME: better parser
+-    p->tokenbuf[p->tokenpos] = 0; // FIXME: invalid
++    p->tokenbuf[p->tokenpos] = 0;
+     char* end = 0;
+     double d = jvp_strtod(&p->dtoa, p->tokenbuf, &end);
+     if (end == 0 || *end != 0)
diff --git a/gnu/packages/patches/laby-make-install.patch b/gnu/packages/patches/laby-make-install.patch
new file mode 100644
index 0000000000..3e956bedd5
--- /dev/null
+++ b/gnu/packages/patches/laby-make-install.patch
@@ -0,0 +1,25 @@
+From e9896b8951f9faf1f76a3b45be6e70d0aeb30a73 Mon Sep 17 00:00:00 2001
+From: Jan Nieuwenhuizen <janneke@gnu.org>
+Date: Sat, 15 Nov 2014 17:48:18 +0100
+Subject: [PATCH] Add make install.
+
+---
+ Makefile | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/Makefile b/Makefile
+index ca18c1e..65af31b 100644
+--- a/Makefile	2016-02-09 21:34:01.883660009 +0100
++++ b/Makefile	2016-02-09 21:34:30.672150679 +0100
+@@ -19,3 +19,11 @@
+ 	@git archive --prefix="$(PROJECT_ARCHIVE)/" HEAD \
+ 		 | gzip >_dist/"$(PROJECT_ARCHIVE)".tar.gz
+ 	@echo archive stored in "_dist/$(PROJECT_ARCHIVE).tar.gz"
++
++PREFIX=/usr/local
++install:
++	strip laby
++	mkdir -p $(PREFIX)/bin
++	cp laby $(PREFIX)/bin/laby
++	mkdir -p $(PREFIX)/share/laby
++	tar -C data -cf - . | tar -C $(PREFIX)/share/laby -xf-
diff --git a/gnu/packages/patches/netsurf-about.patch b/gnu/packages/patches/netsurf-about.patch
new file mode 100644
index 0000000000..1fb8eae824
--- /dev/null
+++ b/gnu/packages/patches/netsurf-about.patch
@@ -0,0 +1,26 @@
+--- netsurf-all-3.5/netsurf/gtk/about.c
++++ netsurf-all-3.5/netsurf/gtk/about.c
+@@ -79,11 +79,11 @@
+ 	switch (response_id) {
+ 
+ 	case ABOUT_RESPONSE_ID_LICENCE:
+-		about_open("about:credits");
++		about_open("about:licence");
+ 		break;
+ 
+ 	case ABOUT_RESPONSE_ID_CREDITS:
+-		about_open("about:licence");
++		about_open("about:credits");
+ 		break;
+ 	}
+ 
+--- netsurf-all-3.5/netsurf/desktop/version.c
++++ netsurf-all-3.5/netsurf/desktop/version.c
+@@ -20,6 +20,6 @@
+ 
+ #include "desktop/version.h"
+ 
+-const char * const netsurf_version = "3.5 (6th April 1016)";
++const char * const netsurf_version = "3.5 (6th April 2016)";
+ const int netsurf_version_major = 3;
+ const int netsurf_version_minor = 5;
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 4757ef7534..3c267fb121 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
 ;;; Coypright © 2016 ng0 <ng0@we.make.ritual.n0.is>
 ;;; Coypright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Coypright © 2016 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -50,6 +51,7 @@
   #:use-module (gnu packages curl)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages tls)
   #:use-module (srfi srfi-1))
 
@@ -583,3 +585,35 @@ program capable of converting PDF into other formats.")
      "Xournal is an application for notetaking, sketching, keeping a journal
 using a stylus.")
     (license license:gpl2+)))
+
+(define-public python-reportlab
+  (package
+    (name "python-reportlab")
+    (version "3.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "reportlab" version))
+              (sha256
+               (base32
+                "0rz2pg04wnzjjm2f5a8ik9v8s54mv4xrjhv5liqjijqv6awh12gl"))))
+    (build-system python-build-system)
+    (arguments
+     ;; Prevent creation of the egg. Without this flag, various artifacts
+     ;; from the build inputs end up in the final python3 output. It also
+     ;; works around https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20765 .
+     `(#:configure-flags '("--single-version-externally-managed" "--root=/")))
+    (propagated-inputs
+     `(("python-pillow" ,python-pillow)))
+    (home-page "http://www.reportlab.com")
+    (synopsis "Python library for generating PDFs and graphics")
+    (description "This is the ReportLab PDF Toolkit.  It allows rapid creation
+of rich PDF documents, and also creation of charts in a variety of bitmap and
+vector formats.")
+    (license license:bsd-3)
+    (properties `((python2-variant . ,(delay python2-reportlab))))))
+
+(define-public python2-reportlab
+  (package
+    (inherit (package-with-python2
+              (strip-python2-variant python-reportlab)))
+    (native-inputs `(("python2-pip" ,python2-pip)))))
diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm
index 1a7f2c5e8e..9a22b38ec2 100644
--- a/gnu/packages/pulseaudio.scm
+++ b/gnu/packages/pulseaudio.scm
@@ -113,7 +113,7 @@ rates.")
 (define-public pulseaudio
   (package
     (name "pulseaudio")
-    (version "8.0")
+    (version "9.0")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -121,7 +121,7 @@ rates.")
                    name "-" version ".tar.xz"))
              (sha256
               (base32
-               "128rrlvrgb4ia3pbzipf5mi6nvrpm6zmxn5r3bynqiikhvify3k9"))
+               "11j682g2mn723sz3bh4i44ggq29z053zcggy0glzn63zh9mxdly3"))
              (modules '((guix build utils)))
              (snippet
               ;; Disable console-kit support by default since it's deprecated
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 0ffe72db78..b96f1c4d72 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -24,6 +24,7 @@
 ;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
 ;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
+;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -45,7 +46,7 @@
                 #:select (asl2.0 bsd-4 bsd-3 bsd-2 non-copyleft cc0 x11 x11-style
                           gpl2 gpl2+ gpl3 gpl3+ lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3+ agpl3+
                           isc mpl2.0 psfl public-domain repoze unlicense x11-style
-                          zpl2.1))
+                          zpl2.1 lgpl3))
   #:use-module ((guix licenses) #:select (expat zlib) #:prefix license:)
   #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
@@ -58,7 +59,9 @@
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages ghostscript)
+  #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
@@ -74,6 +77,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages sdl)
   #:use-module (gnu packages statistics)
   #:use-module (gnu packages tex)
   #:use-module (gnu packages texinfo)
@@ -2999,14 +3003,14 @@ is designed to have a low barrier to entry.")
 (define-public python-cython
   (package
     (name "python-cython")
-    (version "0.24")
+    (version "0.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "Cython" version))
        (sha256
         (base32
-         "1wd3q97gia3zhsgcdlvxh26hkrf3m53i6r1l4g0yya119264vr3d"))))
+         "1fg7fmpvfcq9md4ncyqnnylyjy4z3ksdrshzis95g1sh03d8z044"))))
     (build-system python-build-system)
     ;; we need the full python package and not just the python-wrapper
     ;; because we need libpython3.3m.so
@@ -3014,14 +3018,12 @@ is designed to have a low barrier to entry.")
      `(("python" ,python)))
     (arguments
      `(#:phases
-       (alist-cons-before
-        'check 'set-HOME
-        ;; some tests require access to "$HOME/.cython"
-        (lambda* _ (setenv "HOME" "/tmp"))
-        (alist-replace
-         'check
-         (lambda _ (zero? (system* "python" "runtests.py" "-vv")))
-         %standard-phases))))
+       (modify-phases %standard-phases
+         (add-before 'check 'set-HOME
+           ;; some tests require access to "$HOME/.cython"
+           (lambda _ (setenv "HOME" "/tmp")))
+         (replace 'check
+           (lambda _ (zero? (system* "python" "runtests.py" "-vv")))))))
     (home-page "http://cython.org/")
     (synopsis "C extensions for Python")
     (description "Cython is an optimising static compiler for both the Python
@@ -9852,3 +9854,132 @@ etc.")
     (package
       (inherit base)
       (name "ptpython2"))))
+
+(define-public python-stem
+  (package
+    (name "python-stem")
+    (version "1.4.1b")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "stem" version ".tar.bz2"))
+       (sha256
+        (base32
+         "09a3amp1y351nwz088ckiibbp666qi2lxwkyknavswfm400s0ns7"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             (zero? (system* "./run_tests.py" "--unit")))))))
+    (native-inputs
+     `(("python-mock" ,python-mock)
+       ("python-pep8" ,python-pep8)
+       ("python-pyflakes" ,python-pyflakes)))
+    (inputs
+     `(("python-pycrypto" ,python-pycrypto)))
+    (home-page "https://stem.torproject.org/")
+    (synopsis
+     "Python controller library that allows applications to interact with Tor")
+    (description
+     "Stem is a Python controller library for Tor.  With it you can use Tor's
+control protocol to script against the Tor process and read descriptor data
+relays publish about themselves.")
+    (license lgpl3)))
+
+(define-public python2-stem
+  (package-with-python2 python-stem))
+
+(define-public python-pyserial
+  (package
+    (name "python-pyserial")
+    (version "3.1.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "pyserial" version))
+        (sha256
+          (base32
+            "0k1nfdrxxkdlv4zgaqsdv8li0pj3gbh2pyxw8q2bsg6f9490amyn"))))
+    (build-system python-build-system)
+    (home-page
+      "https://github.com/pyserial/pyserial")
+    (synopsis "Python Serial Port Bindings")
+    (description "@code{pyserial} provide serial port bindings for Python.  It
+supports different byte sizes, stop bits, parity and flow control with RTS/CTS
+and/or Xon/Xoff.  The port is accessed in RAW mode.")
+    (license bsd-3)
+    (properties `((python2-variant . ,(delay python2-pyserial))))))
+
+(define-public python2-pyserial
+  (let ((base (package-with-python2 (strip-python2-variant python-pyserial))))
+    (package
+      (inherit base)
+      (native-inputs
+       `(("python2-setuptools" ,python2-setuptools)
+         ,@(package-native-inputs base))))))
+
+(define-public python-kivy
+  (package
+    (name "python-kivy")
+    (version "1.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "kivy" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0zk3g1j1z0lzcm9d0k1lprrs95zr8n8k5pdg3p5qlsn26jz4bg19"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f              ; Tests require many optional packages
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'build (lambda _ (zero? (system* "make" "force"))))
+         (add-after 'patch-generated-file-shebangs 'set-sdl-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (setenv "KIVY_SDL2_PATH"
+                     (string-append (assoc-ref inputs "sdl-union")
+                                    "/include/SDL2"))
+             #t)))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("python-cython" ,python-cython)
+       ("gstreamer" ,gstreamer)
+       ("mesa" ,mesa)
+       ("sdl-union"
+        ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))))
+    (home-page "http://kivy.org")
+    (synopsis
+     "Multitouch application framework")
+    (description
+     "A software library for rapid development of
+hardware-accelerated multitouch applications.")
+    (license license:expat)))
+
+(define-public python2-kivy
+  (package-with-python2 python-kivy))
+
+(define-public python-kivy-next
+  (let ((commit "a988c5e7a47da56263ff39514264a3de516ef2fe")
+        (revision "1"))
+    (package (inherit python-kivy)
+      (name "python-kivy-next")
+      (version (string-append "1.9.1-" revision "."
+                              (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/kivy/kivy")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "0jk92b4a8l7blkvkgkjihk171s0dfnq582cckff5srwc8kal5m0p")))))))
+
+(define-public python2-kivy-next
+  (package-with-python2 python-kivy-next))
diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm
index dfc9843c97..c67e87fb2a 100644
--- a/gnu/packages/qemu.scm
+++ b/gnu/packages/qemu.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,25 +21,37 @@
 
 (define-module (gnu packages qemu)
   #:use-module (gnu packages)
-  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages admin)
   #:use-module (gnu packages attr)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages curl)
+  #:use-module (gnu packages cyrus-sasl)
+  #:use-module (gnu packages disk)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages polkit)
   #:use-module (gnu packages python)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages spice)
   #:use-module (gnu packages texinfo)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages web)
   #:use-module (gnu packages xdisorg)
+  #:use-module (gnu packages xml)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system python)
   #:use-module (guix download)
-  #:use-module ((guix licenses) #:select (gpl2))
+  #:use-module ((guix licenses) #:select (gpl2 gpl2+ lgpl2.1+))
   #:use-module (guix packages)
   #:use-module (guix utils)
   #:use-module (srfi srfi-1))
@@ -178,3 +191,292 @@ server and embedded PowerPC, and S390 guests.")
     ;; Remove dependencies on optional libraries, notably GUI libraries.
     (inputs (fold alist-delete (package-inputs qemu)
                   '("libusb" "mesa" "sdl" "spice" "virglrenderer")))))
+
+(define-public libosinfo
+  (package
+    (name "libosinfo")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://fedorahosted.org/releases/l/i/libosinfo/libosinfo-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "151qrzmafxww5yfamrr7phk8217xmihfhazpb597vdv87na75cjh"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'copy-ids
+           (lambda* (#:key inputs #:allow-other-keys)
+             (copy-file (assoc-ref inputs "pci.ids") "data/pci.ids")
+             (copy-file (assoc-ref inputs "usb.ids") "data/usb.ids")
+             #t)))))
+    (inputs
+     `(("libsoup" ,libsoup)
+       ("libxml2" ,libxml2)
+       ("libxslt" ,libxslt)
+       ("gobject-introspection" ,gobject-introspection)))
+    (native-inputs
+     `(("check" ,check)
+       ("glib" ,glib "bin")  ; glib-mkenums, etc.
+       ("gtk-doc" ,gtk-doc)
+       ("vala" ,vala)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("pci.ids"
+        ,(origin
+           (method url-fetch)
+           (uri "http://pciids.sourceforge.net/v2.2/pci.ids")
+           (sha256
+            (base32
+             "0h8v0lrlrxkfnjiwnwiq86zyvb8qa2n3844dp1m01lh2nb2fliqw"))))
+       ("usb.ids"
+        ,(origin
+           (method url-fetch)
+           (uri "http://linux-usb.cvs.sourceforge.net/viewvc/linux-usb/htdocs/usb.ids?revision=1.539")
+           (sha256
+            (base32
+             "0w9ila7662lzpx416lqy69zx6gfwq2xiigwd5fdyqcrg3dj07m80"))))))
+    (home-page "https://libosinfo.org/")
+    (synopsis "Operating system information database")
+    (description "libosinfo is a GObject based library API for managing
+information about operating systems, hypervisors and the (virtual) hardware
+devices they can support.  It includes a database containing device metadata
+and provides APIs to match/identify optimal devices for deploying an operating
+system on a hypervisor.  Via GObject Introspection, the API is available in
+all common programming languages.  Vala bindings are also provided.")
+    ;; The library files are released under LGPLv2.1 or later; the source
+    ;; files in the "tools" directory are released under GPLv2+.
+    (license (list lgpl2.1+ gpl2+))))
+
+(define-public libvirt
+  (package
+    (name "libvirt")
+    (version "2.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://libvirt.org/sources/libvirt-"
+                                  version ".tar.xz"))
+              (sha256
+               (base32
+                "0sriasjc573c519yqw1hcfb3qqjcsm9hm8vayw0anwkl6di9ay8s"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(;; FAIL: virshtest
+       ;; FAIL: virfirewalltest
+       ;; FAIL: virkmodtest
+       ;; FAIL: virnetsockettest
+       ;; FAIL: networkxml2firewalltest
+       ;; FAIL: nwfilterebiptablestest
+       ;; FAIL: nwfilterxml2firewalltest
+       ;; Times out after PASS: virsh-vcpupin
+       #:tests? #f
+       #:configure-flags
+       (list "--with-polkit"
+             "--localstatedir=/var")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-tests
+           (lambda _
+             (substitute* '("tests/commandtest.c"
+                            "gnulib/tests/test-posix_spawn1.c"
+                            "gnulib/tests/test-posix_spawn2.c")
+               (("/bin/sh") (which "sh")))
+             #t))
+         (add-after 'unpack 'do-not-mkdir-in-/var
+           ;; Since the localstatedir should be /var at runtime, we must
+           ;; prevent writing to /var at installation time.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out           (assoc-ref outputs "out"))
+                    (localstatedir (string-append out "/var")))
+               (substitute* '("src/Makefile.in"
+                              "daemon/Makefile.in")
+                 (("\\$\\(DESTDIR\\)\\$\\(localstatedir)") localstatedir)))
+             #t)))))
+    (inputs
+     `(("libxml2" ,libxml2)
+       ("gnutls" ,gnutls)
+       ("dbus" ,dbus)
+       ("qemu" ,qemu)
+       ("polkit" ,polkit)
+       ("libpcap" ,libpcap)
+       ("libnl" ,libnl)
+       ("libuuid" ,util-linux)
+       ("lvm2" ,lvm2) ; for libdevmapper
+       ("curl" ,curl)
+       ("openssl" ,openssl)
+       ("cyrus-sasl" ,cyrus-sasl)
+       ("perl" ,perl)
+       ("python" ,python-2)
+       ("libyajl" ,libyajl)
+       ("audit" ,audit)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "http://libvirt.org")
+    (synopsis "Simple API for virtualization")
+    (description "Libvirt is a C toolkit to interact with the virtualization
+capabilities of recent versions of Linux.  The library aims at providing long
+term stable C API initially for the Xen paravirtualization but should be able
+to integrate other virtualization mechanisms if needed.")
+    (license lgpl2.1+)))
+
+(define-public libvirt-glib
+  (package
+    (name "libvirt-glib")
+    (version "0.2.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "ftp://libvirt.org/libvirt/glib/"
+                                  "libvirt-glib-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1pahj8qa7k2307sd57rwqwq1hijya02v0sxk91hl3cw48niimcf3"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-tests
+           (lambda _
+             (substitute* "tests/test-events.c"
+               (("/bin/true") (which "true")))
+             #t)))))
+    (inputs
+     `(("libxml2" ,libxml2)
+       ("libvirt" ,libvirt)
+       ("gobject-introspection" ,gobject-introspection)
+       ("glib" ,glib)
+       ("openssl" ,openssl)
+       ("cyrus-sasl" ,cyrus-sasl)
+       ("lvm2" ,lvm2) ; for libdevmapper
+       ("libyajl" ,libyajl)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("glib" ,glib "bin")
+       ("vala" ,vala)))
+    (home-page "http://libvirt.org")
+    (synopsis "GLib wrapper around libvirt")
+    (description "libvirt-glib wraps the libvirt library to provide a
+high-level object-oriented API better suited for glib-based applications, via
+three libraries:
+
+@enumerate
+@item libvirt-glib - GLib main loop integration & misc helper APIs
+@item libvirt-gconfig - GObjects for manipulating libvirt XML documents
+@item libvirt-gobject - GObjects for managing libvirt objects
+@end enumerate
+")
+    (license lgpl2.1+)))
+
+(define-public python-libvirt
+  (package
+    (name "python-libvirt")
+    (version "2.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "libvirt-python" version))
+              (sha256
+               (base32
+                "0h0x5lpsx97bvw20pzfcsdmmivximddq4qmn8fk0n55dqv0wn5kq"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-nosetests-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "setup.py"
+               (("sys.executable, \"/usr/bin/nosetests\"")
+                (string-append "\"" (which "bash") "\", \""
+                               (which "nosetests") "\"")))
+             #t)))))
+    (inputs
+     `(("libvirt" ,libvirt)
+       ("python-lxml" ,python-lxml)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("python-nose" ,python-nose)))
+    (home-page "http://libvirt.org")
+    (synopsis "Python bindings to libvirt")
+    (description "This package provides Python bindings to the libvirt
+virtualization library.")
+    (license lgpl2.1+)))
+
+(define-public python2-libvirt
+  (package-with-python2 python-libvirt))
+
+(define-public virt-manager
+  (package
+    (name "virt-manager")
+    (version "1.4.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://virt-manager.org/download/sources"
+                                  "/virt-manager/virt-manager-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "1jnawqjmcqd2db78ngx05x7cxxn3iy1sb4qfgbwcn045qh6a8cdz"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2
+       ;; Some of the tests seem to require network access to install virtual
+       ;; machines.
+       #:tests? #f
+       #:modules ((ice-9 match)
+                  (srfi srfi-26)
+                  (guix build python-build-system)
+                  (guix build utils))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-setup
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "virtcli/cliconfig.py"
+               (("/usr") (assoc-ref outputs "out")))
+             #t))
+         (add-before 'wrap 'wrap-with-GI_TYPELIB_PATH
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((bin       (string-append (assoc-ref outputs "out") "/bin"))
+                    (bin-files (find-files bin ".*"))
+                    (paths     (map (match-lambda
+                                      ((output . directory)
+                                       (let* ((girepodir (string-append
+                                                          directory
+                                                          "/lib/girepository-1.0")))
+                                         (if (file-exists? girepodir)
+                                             girepodir #f))))
+                                    inputs)))
+               (for-each (lambda (file)
+                           (format #t "wrapping ~a\n" file)
+                           (wrap-program file
+                             `("GI_TYPELIB_PATH" ":" prefix
+                               ,(filter identity paths))))
+                         bin-files))
+             #t)))))
+    (inputs
+     `(("gtk+" ,gtk+)
+       ("libvirt" ,libvirt)
+       ("libvirt-glib" ,libvirt-glib)
+       ("libosinfo" ,libosinfo)
+       ("gobject-introspection" ,gobject-introspection)
+       ("python2-libvirt" ,python2-libvirt)
+       ("python2-requests" ,python2-requests)
+       ("python2-ipaddr" ,python2-ipaddr)
+       ("python2-pygobject" ,python2-pygobject)
+       ("python2-libxml2" ,python2-libxml2)))
+    ;; virt-manager searches for qemu-img or kvm-img in the PATH.
+    (propagated-inputs
+     `(("qemu" ,qemu)))
+    (native-inputs
+     `(("glib" ,glib "bin")             ; glib-compile-schemas.
+       ("perl" ,perl)                   ; pod2man
+       ("intltool" ,intltool)))
+    (home-page "https://virt-manager.org/")
+    (synopsis "Manage virtual machines")
+    (description
+     "The virt-manager application is a desktop user interface for managing
+virtual machines through libvirt.  It primarily targets KVM VMs, but also
+manages Xen and LXC (Linux containers).  It presents a summary view of running
+domains, their live performance and resource utilization statistics.")
+    (license gpl2+)))
diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm
index 4d5fd4d0ac..d0a362c3a0 100644
--- a/gnu/packages/rdf.scm
+++ b/gnu/packages/rdf.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -233,7 +233,7 @@ and triple stores.")
 (define-public serd
   (package
     (name "serd")
-    (version "0.20.0")
+    (version "0.22.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "http://download.drobilla.net/serd-"
@@ -241,7 +241,7 @@ and triple stores.")
                                  ".tar.bz2"))
              (sha256
               (base32
-               "1gxbzqsm212wmn8qkdd3lbl6wbv7fwmaf9qh2nxa4yxjbr7mylb4"))))
+               "1lmgca2s6r7ysakcld2lrj06bgn0pr45c51b47k3apxpnj3h40vv"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f ; no check target
@@ -267,7 +267,7 @@ ideal (e.g. in LV2 implementations or embedded applications).")
 (define-public sord
   (package
     (name "sord")
-    (version "0.12.2")
+    (version "0.14.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "http://download.drobilla.net/sord-"
@@ -275,7 +275,7 @@ ideal (e.g. in LV2 implementations or embedded applications).")
                                  ".tar.bz2"))
              (sha256
               (base32
-               "0rq7vafdv4vsxi6xk9zf5shr59w3kppdhqbj78185rz5gp9kh1dx"))))
+               "16piw1s3l95cf9x3rdcplp9l52k2lxq8drwg2q50ygm4avndhmkn"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f ; no check target
diff --git a/gnu/packages/scsi.scm b/gnu/packages/scsi.scm
new file mode 100644
index 0000000000..92e2d7af4c
--- /dev/null
+++ b/gnu/packages/scsi.scm
@@ -0,0 +1,54 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix 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 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix 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 GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages scsi)
+  #:use-module ((guix licenses)
+                #:select (gpl2+ bsd-3))
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu))
+
+(define-public sg3-utils
+  (package
+    (name "sg3-utils")
+    (version "1.42")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://sg.danny.cz/sg/p/sg3_utils-"
+                                  version ".tar.xz"))
+              (sha256
+               (base32
+                "1fg71rj0f1gdjmkj0z8wlv46cf9lryjdyjkbi7fjmssgi5jyvblp"))))
+    (build-system gnu-build-system)
+    (home-page "http://sg.danny.cz/sg/sg3_utils.html")
+    (synopsis "SCSI device utilities")
+    (description
+     "sg3-utils is a collection of utilities for devices that use the Small
+Computer System Interface (SCSI) command set.  It includes utilities to read
+data from, write data to, control, modify, and query the state of SCSI
+devices.  For example, this package provides command-line tools to copy data
+based on @code{dd} syntax and semantics (called @code{sg_dd}, @code{sgp_dd}
+and @code{sgm_dd}), check INQUIRY data and VPD pages (@code{sg_inq}), check
+mode and log pages (@code{sginfo}, @code{sg_modes} and @code{sg_logs}), spin
+up and down disks (@code{sg_start}), do self tests (@code{sg_senddiag}), parse
+sense data (@code{sg_decode_sense}), and perform various other functions.  In
+addition, this package includes a library, called libsgutils, which can be
+used in C and C++ programs to interact with SCSI devices.")
+    ;; The libsgutils library itself is licensed under bsd-3.  Some tools are
+    ;; licensed under bsd-3, also.  Some tools are licensed under gpl2+.
+    (license (list gpl2+ bsd-3))))
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index c3e5303f0c..183ef7f289 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -233,27 +233,27 @@ history mechanism, job control and a C-like syntax.")
                 "0dsr450v8nydvpk8ry276fvbznlrjgddgp7zvhcw4cv69i9lr4ps"))))
     (build-system gnu-build-system)
     (arguments `(#:configure-flags '("--with-tcsetpgrp" "--enable-pcre")
-                 #:phases (alist-cons-before
-                           'configure 'fix-sh
-                           (lambda _
-                             ;; Some of the files are ISO-8859-1 encoded.
-                             (with-fluids ((%default-port-encoding #f))
-                               (substitute*
-                                   '("configure"
-                                     "configure.ac"
-                                     "Src/exec.c"
-                                     "Src/mkmakemod.sh"
-                                     "Config/installfns.sh"
-                                     "Config/defs.mk.in"
-                                     "Test/E01options.ztst"
-                                     "Test/A05execution.ztst"
-                                     "Test/A01grammar.ztst"
-                                     "Test/A06assign.ztst"
-                                     "Test/B02typeset.ztst"
-                                     "Completion/Unix/Command/_init_d"
-                                     "Util/preconfig")
-                                 (("/bin/sh") (which "sh")))))
-                           %standard-phases)))
+                 #:phases
+                 (modify-phases %standard-phases
+                   (add-before 'configure 'fix-sh
+                     (lambda _
+                       ;; Some of the files are ISO-8859-1 encoded.
+                       (with-fluids ((%default-port-encoding #f))
+                                    (substitute*
+                                        '("configure"
+                                          "configure.ac"
+                                          "Src/exec.c"
+                                          "Src/mkmakemod.sh"
+                                          "Config/installfns.sh"
+                                          "Config/defs.mk.in"
+                                          "Test/E01options.ztst"
+                                          "Test/A05execution.ztst"
+                                          "Test/A01grammar.ztst"
+                                          "Test/A06assign.ztst"
+                                          "Test/B02typeset.ztst"
+                                          "Completion/Unix/Command/_init_d"
+                                          "Util/preconfig")
+                                      (("/bin/sh") (which "sh")))))))))
     (native-inputs `(("autoconf" ,autoconf)))
     (inputs `(("ncurses" ,ncurses)
               ("pcre" ,pcre)
diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm
index 9e4a6695ac..3e6366e6c0 100644
--- a/gnu/packages/spice.scm
+++ b/gnu/packages/spice.scm
@@ -18,6 +18,7 @@
 
 (define-module (gnu packages spice)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools) ; remove after updating usbredir to 0.7.1+
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
@@ -37,34 +38,59 @@
   #:use-module (gnu packages xml)
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
+  #:use-module (guix git-download) ; remove after updating usbredir to 0.7.1+
   #:use-module (guix packages)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix utils))
 
 (define-public usbredir
-  (package
-    (name "usbredir")
-    (version "0.7.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                "http://spice-space.org/download/usbredir/"
-                "usbredir-" version ".tar.bz2"))
-              (sha256
-               (base32
-                "1wsnmk4wjpdhbn1zaxg6bmyxspcki2zgy0am9lk037rnl4krwzj0"))))
-    (build-system gnu-build-system)
-    (propagated-inputs
-      `(("libusb" ,libusb)))
-    (native-inputs
-      `(("pkg-config" ,pkg-config)))
-    (synopsis "Tools for sending USB device traffic over a network")
-    (description "Usbredir is a network protocol for sending USB device traffic
-over a network connection.  It can be used to redirect traffic from a USB device
-to a different (virtual) machine than the one to which the USB device is
-attached.")
-    (home-page "http://www.spice-space.org")
-    (license (list license:gpl2+ license:lgpl2.0+ license:lgpl2.1+))))
+  (let ((commit "ac80a5971c6318d73d5fba4b5f13d3a9389558c9")
+        (revision "1"))          ;Guix package revision
+    (package
+      (name "usbredir")
+      (version (string-append "0.7.1-" revision "."
+                              (string-take commit 7)))
+      ;(version "0.7.1")
+      ;(source (origin
+      ;          (method url-fetch)
+      ;          (uri (string-append
+      ;            "http://spice-space.org/download/usbredir/"
+      ;            "usbredir-" version ".tar.bz2"))
+      ;          (sha256
+      ;           (base32
+      ;            "1wsnmk4wjpdhbn1zaxg6bmyxspcki2zgy0am9lk037rnl4krwzj0"))))
+      ; FIXME: usbredir 0.7.1 release doesn't build on 32 bit systems.
+      ;        issue is fixed in HEAD
+      ;        remove 'autogen phase and autoconf, automake, libtool inputs
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                        (url "http://cgit.freedesktop.org/spice/usbredir")
+                        (commit commit)))
+                (sha256
+                 (base32
+                  "052fywgi72j68dr5ybldncg4vk8iqfrh58la7iazyxxpph9aag1g"))))
+      (build-system gnu-build-system)
+      (propagated-inputs
+        `(("libusb" ,libusb)))
+      (native-inputs
+        `(("pkg-config" ,pkg-config)
+          ("autoconf" ,autoconf)
+          ("automake" ,automake)
+          ("libtool" ,libtool)))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'autogen
+             (lambda _
+               (zero? (system* "autoreconf" "-vfi")))))))
+      (synopsis "Tools for sending USB device traffic over a network")
+      (description "Usbredir is a network protocol for sending USB device traffic
+  over a network connection.  It can be used to redirect traffic from a USB device
+  to a different (virtual) machine than the one to which the USB device is
+  attached.")
+      (home-page "http://www.spice-space.org")
+      (license (list license:gpl2+ license:lgpl2.0+ license:lgpl2.1+)))))
 
 (define-public virglrenderer
   (package
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index bca443390d..16cd6e20d8 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -275,23 +275,22 @@ libssh library.")
      ;; Replace configure phase as the ./configure script does not link
      ;; CONFIG_SHELL and SHELL passed as parameters
      '(#:phases
-       (alist-replace
-        'configure
-        (lambda* (#:key outputs inputs system build target
-                        #:allow-other-keys #:rest args)
-          (let* ((configure (assoc-ref %standard-phases 'configure))
-                 (prefix (assoc-ref outputs "out"))
-                 (bash   (which "bash"))
-                 ;; Set --build and --host flags as the provided config.guess
-                 ;; is not able to detect them
-                 (flags `(,(string-append "--prefix=" prefix)
-                          ,(string-append "--build=" build)
-                          ,(string-append "--host=" (or target build)))))
-            (setenv "CONFIG_SHELL" bash)
-            (zero? (apply system* bash
-                          (string-append "." "/configure")
-                          flags))))
-        %standard-phases)))
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key outputs inputs system build target
+                           #:allow-other-keys #:rest args)
+             (let* ((configure (assoc-ref %standard-phases 'configure))
+                    (prefix (assoc-ref outputs "out"))
+                    (bash   (which "bash"))
+                    ;; Set --build and --host flags as the provided config.guess
+                    ;; is not able to detect them
+                    (flags `(,(string-append "--prefix=" prefix)
+                             ,(string-append "--build=" build)
+                             ,(string-append "--host=" (or target build)))))
+               (setenv "CONFIG_SHELL" bash)
+               (zero? (apply system* bash
+                             (string-append "." "/configure")
+                             flags))))))))
     (home-page "http://www.agroman.net/corkscrew")
     (synopsis "Tunneling SSH through HTTP proxies")
     (description
@@ -304,26 +303,25 @@ in future and NTLM based authentication is most likey never be supported.")
 (define-public mosh
   (package
     (name "mosh")
-    (version "1.2.5")
+    (version "1.2.6")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://mosh.mit.edu/mosh-"
-                                  version ".tar.gz"))
+              (uri (string-append "https://mosh.org/mosh-" version ".tar.gz"))
               (sha256
                (base32
-                "1qsb0y882yfgwnpy6f98pi5xqm6kykdsrxzvaal37hs7szjhky0s"))))
+                "118fhpm754wpklf1blnlq5xbvrxqml6rdfs3b07wg666zkxvg0ky"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases (alist-cons-after
-                 'install 'wrap
-                 (lambda* (#:key outputs #:allow-other-keys)
-                   ;; Make sure 'mosh' can find 'mosh-client' and
-                   ;; 'mosh-server'.
-                   (let* ((out (assoc-ref outputs "out"))
-                          (bin (string-append out "/bin")))
-                     (wrap-program (string-append bin "/mosh")
-                                   `("PATH" ":" prefix (,bin)))))
-                 %standard-phases)))
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; Make sure 'mosh' can find 'mosh-client' and
+             ;; 'mosh-server'.
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin")))
+               (wrap-program (string-append bin "/mosh")
+                             `("PATH" ":" prefix (,bin)))))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
@@ -334,7 +332,7 @@ in future and NTLM based authentication is most likey never be supported.")
        ("ncurses" ,ncurses)
        ("protobuf" ,protobuf)
        ("boost-headers" ,boost)))
-    (home-page "http://mosh.mit.edu/")
+    (home-page "https://mosh.org/")
     (synopsis "Remote shell tolerant to intermittent connectivity")
     (description
      "Remote terminal application that allows roaming, supports intermittent
@@ -346,7 +344,7 @@ especially over Wi-Fi, cellular, and long-distance links.")
 (define-public dropbear
   (package
     (name "dropbear")
-    (version "2016.73")
+    (version "2016.74")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -354,7 +352,7 @@ especially over Wi-Fi, cellular, and long-distance links.")
                     name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "1mzg18jss1bsmcnn88zv7kv5yj01hzimndnd5636hfq9kgva8qaw"))))
+                "14c8f4gzixf0j9fkx68jgl85q7b05852kk0vf09gi6h0xmafl817"))))
     (build-system gnu-build-system)
     (arguments  `(#:tests? #f)) ; There is no "make check" or anything similar
     (inputs `(("zlib" ,zlib)))
diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm
index 87e5aadc40..1f62e26248 100644
--- a/gnu/packages/suckless.scm
+++ b/gnu/packages/suckless.scm
@@ -3,6 +3,9 @@
 ;;; Copyright © 2015 Amirouche Boubekki <amirouche@hypermove.net>
 ;;; Copyright © 2016 Al McElrath <hello@yrns.org>
 ;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
+;;; Copyright © 2015 Dmitry Bogatov <KAction@gnu.org>
+;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,6 +30,7 @@
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (gnu packages)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages image)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages pkg-config)
@@ -68,30 +72,7 @@
     (description
      "dwm is a dynamic window manager for X.  It manages windows in tiled,
 monocle and floating layouts.  All of the layouts can be applied dynamically,
-optimising the environment for the application in use and the task performed.
-
-In tiled layout windows are managed in a master and stacking area.  The master
-area contains the window which currently needs most attention, whereas the
-stacking area contains all other windows.  In monocle layout all windows are
-maximised to the screen size.  In floating layout windows can be resized and
-moved freely.  Dialog windows are always managed floating, regardless of the
-layout applied.
-
-Windows are grouped by tags.  Each window can be tagged with one or multiple
-tags.  Selecting certain tags displays all windows with these tags.
-
-Each screen contains a small status bar which displays all available tags, the
-layout, the number of visible windows, the title of the focused window, and the
-text read from the root window name property, if the screen is focused.  A
-floating window is indicated with an empty square and a maximised floating
-window is indicated with a filled square before the windows title.  The selected
-tags are indicated with a different color.  The tags of the focused window are
-indicated with a filled square in the top left corner.  The tags which are
-applied to one or more windows are indicated with an empty square in the top
-left corner.
-
-dwm draws a small customizable border around windows to indicate the focus
-state.")
+optimising the environment for the application in use and the task performed.")
     (license license:x11)))
 
 (define-public dmenu
@@ -152,7 +133,7 @@ numbers of user-defined menu items efficiently.")
 (define-public st
   (package
     (name "st")
-    (version "0.6")
+    (version "0.7")
     (source
      (origin
        (method url-fetch)
@@ -160,7 +141,7 @@ numbers of user-defined menu items efficiently.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "0avsfc1qp8zvshsfjwwrkvk411jlqy58z225bsdhjkl1qc40qcc5"))))
+         "00309qiw20rc89696pk8bdr7ik4r1aarik7jxqk8k66cdj80v1zp"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f ; no tests
@@ -177,14 +158,8 @@ numbers of user-defined menu items efficiently.")
     (inputs
      `(("libx11" ,libx11)
        ("libxft" ,libxft)
-       ("libxcomposite" ,libxcomposite)
-       ("compositeproto" ,compositeproto)
-       ("libxext" ,libxext)
-       ("xextproto" ,xextproto)
-       ("libxrender" ,libxrender)
        ("fontconfig" ,fontconfig)
-       ("freetype" ,freetype)
-       ("font-liberation" ,font-liberation)))
+       ("freetype" ,freetype)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://st.suckless.org/")
     (synopsis "Simple terminal emulator")
@@ -229,3 +204,44 @@ display websites and follow links.  It supports the XEmbed protocol which
 makes it possible to embed it in another application.  Furthermore, one can
 point surf to another URI by setting its XProperties.")
     (license license:x11)))
+
+(define-public sent
+  (package
+    (name "sent")
+    (version "0.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://dl.suckless.org/tools/sent-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0xhh752hwaa26k4q6wvrb9jnpbnylss2aw6z11j7l9rav7wn3fak"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (delete 'configure))  ;no configuration
+       #:tests? #f                      ;no test suite
+       #:make-flags (let ((pkg-config (lambda (flag)
+                                        (string-append
+                                         "$(shell pkg-config " flag " "
+                                         "xft fontconfig x11 libpng)"))))
+                      (list
+                       "CC=gcc"
+                       (string-append "PREFIX=" %output)
+                       (string-append "INCS=-I. " (pkg-config "--cflags"))
+                       (string-append "LIBS=" (pkg-config "--libs") " -lm")))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libpng" ,libpng)
+       ("libx11" ,libx11)
+       ("libxft" ,libxft)
+       ("fontconfig" ,fontconfig)))
+    (synopsis "Plaintext presentation tool")
+    (description "Sent uses plaintext files and PNG images to create slideshow
+presentations.  Each paragraph represents a slide in the presentation.
+Especially for presentations using the Takahashi method this is very nice and
+allows you to write down the presentation for a quick lightning talk within a
+few minutes.")
+    (home-page "http://tools.suckless.org/sent")
+    (license license:x11)))
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 767715d1b1..c39368d9ad 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com>
 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -110,21 +111,29 @@ as well as the classic centralized workflow.")
     (license gpl2+)))
 
 (define-public git
-  ;; Keep in sync with 'git-manpages'!
   (package
    (name "git")
-   (version "2.9.2")
+   (version "2.9.3")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://kernel.org/software/scm/git/git-"
                                 version ".tar.xz"))
             (sha256
              (base32
-              "1d9dmhgzcnwc2jbib4q23ypjbnw1gh1w8gif63qldwkpixj4dxgq"))))
+              "0qzs681a64k3shh5p0rg41l1z16fbk5sj0xga45k34hp1hsp654z"))))
    (build-system gnu-build-system)
    (native-inputs
     `(("native-perl" ,perl)
-      ("gettext" ,gnu-gettext)))
+      ("gettext" ,gnu-gettext)
+      ("git-manpages"
+       ,(origin
+          (method url-fetch)
+          (uri (string-append
+                "mirror://kernel.org/software/scm/git/git-manpages-"
+                version ".tar.xz"))
+          (sha256
+           (base32
+            "0kabsmjfbvq4y1vlwq0yl2y4033a90rnwsq01d7np3cvy55fiq0l"))))))
    (inputs
     `(("curl" ,curl)
       ("expat" ,expat)
@@ -260,7 +269,15 @@ as well as the classic centralized workflow.")
               ;; specify a single directory, not a search path.
               (wrap-program (string-append out "/bin/git")
                 `("PATH" ":" prefix
-                  ("$HOME/.guix-profile/libexec/git-core")))))))))
+                  ("$HOME/.guix-profile/libexec/git-core"))))))
+        (add-after 'split 'install-man-pages
+          (lambda* (#:key inputs outputs #:allow-other-keys)
+            (let* ((out (assoc-ref outputs "out"))
+                   (man (string-append out "/share/man"))
+                   (manpages (assoc-ref inputs "git-manpages")))
+              (mkdir-p man)
+              (with-directory-excursion man
+                (zero? (system* "tar" "xvf" manpages)))))))))
 
    (native-search-paths
     ;; For HTTPS access, Git needs a single-file certificate bundle, specified
@@ -278,52 +295,6 @@ everything from small to very large projects with speed and efficiency.")
    (license gpl2)
    (home-page "http://git-scm.com/")))
 
-(define-public git-manpages
-  ;; Keep in sync with 'git'!
-
-  ;; Granted, we could build the man pages from the 'git' package itself,
-  ;; which contains the real source.  However, it would add a dependency on a
-  ;; full XML tool chain, and building it actually takes ages.  So we use this
-  ;; lazy approach.
-  (package
-    (name "git-manpages")
-    (version (package-version git))
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "mirror://kernel.org/software/scm/git/git-manpages-"
-                    version ".tar.xz"))
-              (sha256
-               (base32
-                "08y38w6yfvrpgj10dl3vghp05xjpl8jj37kkfna2nhf0wip52p2c"))))
-    (build-system trivial-build-system)
-    (arguments
-     '(#:modules ((guix build utils))
-       #:builder
-       (begin
-         (use-modules (guix build utils))
-
-         (let* ((xz  (assoc-ref %build-inputs "xz"))
-                (tar (assoc-ref %build-inputs "tar"))
-                (out (assoc-ref %outputs "out"))
-                (man (string-append out "/share/man")))
-           (setenv "PATH" (string-append tar "/bin:" xz "/bin"))
-
-           (mkdir-p man)
-           (with-directory-excursion man
-             (zero? (system* "tar" "xvf"
-                             (assoc-ref %build-inputs "source"))))))))
-
-    (native-inputs `(("tar" ,tar)
-                     ("xz" ,xz)))
-    (home-page (package-home-page git))
-    (license (package-license git))
-    (synopsis "Man pages of the Git version control system")
-    (description
-     "This package provides the man pages of the Git version control system.
-This is the documentation displayed when using the '--help' option of a 'git'
-command.")))
-
 (define-public libgit2
   (package
     (name "libgit2")
@@ -609,14 +580,14 @@ control to Git repositories.")
 (define-public mercurial
   (package
     (name "mercurial")
-    (version "3.8.4")
+    (version "3.9")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://www.mercurial-scm.org/"
                                  "release/mercurial-" version ".tar.gz"))
              (sha256
               (base32
-               "19ixvxgifx48lxp9vdmsf88nnjsxl035ahmp3iw1vyilkpqkwbjb"))))
+               "1g6svg7fc1kyaxq653iwsvdh8hp2lrhs2ywazfc436a4zzf2akw3"))))
     (build-system python-build-system)
     (arguments
      `(;; Restrict to Python 2, as Python 3 would require
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 5164477e80..bc6415ec74 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -104,7 +104,7 @@
     (inputs
      `(("ncurses" ,ncurses)))
     (arguments
-     '(#:phases
+     `(#:phases
        (modify-phases %standard-phases
          (replace 'configure
                   (lambda* (#:key build inputs outputs #:allow-other-keys)
@@ -116,6 +116,12 @@
                       (zero? (system* "./configure"
                                       (string-append "--prefix=" out)
                                       (string-append "--build=" build)
+                                      ;; The ancient config.guess is unable to
+                                      ;; guess the host triplet on mips64el.
+                                      ,@(if (string=? "mips64el-linux"
+                                                      (%current-system))
+                                            '("--host=mips64el-unknown-linux-gnu")
+                                            '())
                                       (string-append "--with-ncurses="
                                                      ncurses)))))))))
     (home-page "http://aa-project.sourceforge.net/aalib/")
@@ -216,7 +222,18 @@ television and DVD.  It is also known as AC-3.")
                            ;; package to avoid a circular dependency (the x264
                            ;; program depends on ffmpeg and ffmpeg depends on
                            ;; libx264).
-                           "--disable-cli")))
+                           "--disable-cli"
+
+                           ;; On MIPS, we must pass "--disable-asm" or else
+                           ;; configure fails after printing: "You specified a
+                           ;; pre-MSA CPU in your CFLAGS. If you really want
+                           ;; to run on such a CPU, configure with
+                           ;; --disable-asm."
+                           ,@(if (string-prefix? "mips"
+                                                 (or (%current-target-system)
+                                                     (%current-system)))
+                                 '("--disable-asm")
+                                 '()))))
     (home-page "http://www.videolan.org/developers/x264.html")
     (synopsis "H.264 video coding library")
     (description "libx264 is an advanced encoding library for creating
@@ -273,6 +290,7 @@ ASS/SSA (Advanced Substation Alpha/SubStation Alpha) subtitle format.")
     (inputs
      `(("freeglut" ,freeglut)
        ("ftgl" ,ftgl)
+       ("imlib2" ,imlib2)
        ("libx11" ,libx11)
        ("mesa" ,mesa)
        ("ncurses" ,ncurses)
@@ -381,14 +399,14 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
 (define-public ffmpeg
   (package
     (name "ffmpeg")
-    (version "3.1.1")
+    (version "3.1.2")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1nris3flwqd4v4b65yrrv9aqhsab7cb9lfp4wpxz6bi0m3r13g3i"))))
+               "0qdxp6r6x47jzi6nmbsv3dhvm073c8n5hpnlmj5gwihgkyva5ljq"))))
     (build-system gnu-build-system)
     (inputs
      `(("fontconfig" ,fontconfig)
@@ -769,7 +787,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
 (define-public mpv
   (package
     (name "mpv")
-    (version "0.18.0")
+    (version "0.19.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -777,7 +795,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
                     ".tar.gz"))
               (sha256
                (base32
-                "0az0zqb2rakak51zsvfqzj9a8jiqpvc61jxap8hjdkkb9y6n6mmn"))
+                "1qk7blpg64v47qfnvpgnbf413v5gzn900wmlivs727fd88cq3x9x"))
               (file-name (string-append name "-" version ".tar.gz"))))
     (build-system waf-build-system)
     (native-inputs
@@ -838,7 +856,7 @@ projects while introducing many more.")
 (define-public gnome-mpv
   (package
     (name "gnome-mpv")
-    (version "0.9")
+    (version "0.10")
     (source
      (origin
        (method url-fetch)
@@ -847,7 +865,7 @@ projects while introducing many more.")
                            ".tar.xz"))
        (sha256
         (base32
-         "06pgxl6f3kkgxv8nlmyl7gy3pg55sqf8vgr8m6426mlpm4p3qdn0"))))
+         "10zizf926a82c753a80bi49rb5c4yqjyd6zin4xgmggspfxngncj"))))
     (native-inputs
      `(("intltool" ,intltool)
        ("pkg-config" ,pkg-config)))
@@ -1398,7 +1416,7 @@ be used for realtime video capture via Linux-specific APIs.")
 (define-public obs
   (package
     (name "obs")
-    (version "0.15.1")
+    (version "0.15.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/jp9000/obs-studio"
@@ -1406,7 +1424,7 @@ be used for realtime video capture via Linux-specific APIs.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "18fycg7xlj2i89wdb9c5js0bnl964s1lpmnvmfyj11zi9k061wsg"))))
+                "11bqk0jpp8fp24j0rkjgrv3fdi3xnjyk4wq55j803cg84mn4zsp0"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ; no tests
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index fa791ffbe1..29055c3c06 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -52,12 +52,17 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages databases)
+  #:use-module (gnu packages bison)
+  #:use-module (gnu packages flex)
   #:use-module (gnu packages mit-krb5)
   #:use-module (gnu packages gd)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gperf)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages icu4c)
+  #:use-module (gnu packages image)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages base)
   #:use-module (gnu packages perl)
@@ -453,7 +458,7 @@ for efficient socket-like bidirectional reliable communication channels.")
 (define-public libpsl
   (package
     (name "libpsl")
-    (version "0.13.0")
+    (version "0.14.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/rockdaboot/libpsl/"
@@ -461,7 +466,7 @@ for efficient socket-like bidirectional reliable communication channels.")
                                   "/libpsl-" version ".tar.gz"))
               (sha256
                (base32
-                "0afn2c4s2m65xifa5sfdll0s2gyqbh2q9k9nq4nsmx1b6c2i3i7x"))))
+                "1yrfkwjw5b9y9qb4xqw7g0hk0wdscay701c1wkg8fp7lxny99iz8"))))
     (build-system gnu-build-system)
     (inputs
      `(("icu4c" ,icu4c)
@@ -3293,7 +3298,11 @@ It uses the uwsgi protocol for all the networking/interprocess communications.")
                                   "/" name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0g29kyz4ykasdcrb0zmbrp2jqs9kv1wz9swx849i2d1ncknbzln4"))))
+                "0g29kyz4ykasdcrb0zmbrp2jqs9kv1wz9swx849i2d1ncknbzln4"))
+              ;; This patch has been pushed and the vulnerability will be
+              ;; fixed in the next release after 1.5.
+              ;; https://github.com/stedolan/jq/issues/995
+              (patches (search-patches "jq-CVE-2015-8863.patch"))))
     (inputs
      `(("oniguruma" ,oniguruma)))
     (native-inputs
@@ -3385,3 +3394,114 @@ playback of HTTP request/response traces.")
 can easily be invoked on a single file.  Your partner can access the file with
 tools they trust (e.g. wget).")
     (license l:gpl2+)))
+
+(define-public netsurf
+  (package
+    (name "netsurf")
+    (version "3.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://download.netsurf-browser.org/"
+                           "netsurf/releases/source-full/netsurf-all-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "1vdldzcv42wykajmw8vbql0f1yd44gbx30kywfrrh2x3064ly609"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (substitute* "Makefile"
+             ;; Do not clobber PKG_CONFIG_PATH from the environment
+             (("PKG_CONFIG_PATH = \\$")
+              "PKG_CONFIG_PATH := $(PKG_CONFIG_PATH):$")
+             ;; Honor make variables
+             (("shell cc") "shell $(CC)"))))
+       (patches (search-patches "netsurf-about.patch"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("perl" ,perl)
+       ("perl-html-parser" ,perl-html-parser)
+       ("flex" ,flex)
+       ("bison" ,bison)))
+    (inputs
+     `(("gtk+" ,gtk+-2)
+       ("gperf" ,gperf)
+       ("curl" ,curl)
+       ("openssl" ,openssl)
+       ("libpng" ,libpng)
+       ("libjpeg" ,libjpeg)
+       ("expat" ,expat)))
+    (arguments
+     `(#:make-flags `("CC=gcc" "BUILD_CC=gcc"
+                      ,(string-append "PREFIX=" %output))
+       #:parallel-build? #f         ;parallel builds not supported
+       #:tests? #f                  ;no way to easily run from release tarball
+       #:modules ((ice-9 rdelim)
+                  (ice-9 match)
+                  (srfi srfi-1)
+                  (sxml simple)
+                  ,@%glib-or-gtk-build-system-modules)
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda _
+             (call-with-output-file "netsurf/Makefile.config"
+               (lambda (port)
+                 (format port "~
+                         NETSURF_GTK_RESOURCES := $(PREFIX)/share/netsurf/~@
+                         ")))
+             #t))
+         (add-after 'build 'adjust-welcome
+           (lambda _
+             ;; First, fix some unended tags and simple substitutions
+             (substitute* "netsurf/gtk/res/welcome.html"
+               (("<(img|input)([^>]*)>" _ tag contents)
+                (string-append "<" tag contents " />"))
+               (("Licence") "License") ;prefer GNU spelling
+               ((" open source") ", free software")
+               (("web&nbsp;site") "website")
+               ;; Prefer privacy-respecting default search engine
+               (("www.google.co.uk") "www.duckduckgo.com/html")
+               (("Google Search") "DuckDuckGo Search")
+               (("name=\"btnG\"") ""))
+             ;; Remove default links so it doesn't seem we're endorsing them
+             (with-atomic-file-replacement "netsurf/gtk/res/welcome.html"
+               (lambda (in out)
+                 ;; Leave the DOCTYPE header as is
+                 (display (read-line in 'concat) out)
+                 (sxml->xml
+                  (let rec ((sxml (xml->sxml in)))
+                    ;; We'd like to use sxml-match here, but it can't
+                    ;; match against generic tag symbols...
+                    (match sxml
+                      (`(div (@ (class "links")) . ,rest)
+                       '())
+                      ((x ...)
+                       (map rec x))
+                      (x x)))
+                  out)))
+             #t))
+         (add-after 'install 'install-more
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (desktop (string-append out "/share/applications/"
+                                            "netsurf.desktop")))
+               (mkdir-p (dirname desktop))
+               (copy-file "netsurf/gtk/res/netsurf-gtk.desktop"
+                          desktop)
+               (substitute* desktop
+                 (("netsurf-gtk") (string-append out "/bin/netsurf"))
+                 (("netsurf.png") (string-append out "/share/netsurf/"
+                                                 "netsurf.xpm")))
+               (install-file "netsurf/Docs/netsurf-gtk.1"
+                             (string-append out "/share/man/man1/"))
+               #t))))))
+    (home-page "https://www.netsurf-browser.org")
+    (synopsis "Web browser")
+    (description
+     "NetSurf is a lightweight web browser that has its own layout and
+rendering engine entirely written from scratch.  It is small and capable of
+handling many of the web standards in use today.")
+    (license l:gpl2+)))
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 4bd1c3887d..cfdc6c006d 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
+;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -775,3 +776,35 @@ used to transform, query, validate, and edit XML documents.  XPath is used to
 match and extract data, and elements can be added, deleted or modified using
 XSLT and EXSLT.")
    (license license:x11)))
+
+(define-public xlsx2csv
+  (package
+    (name "xlsx2csv")
+    (version "0.7.2")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "https://github.com/dilshod/"
+                   name "/archive/release/" version ".tar.gz"))
+             (file-name (string-append name "-" version ".tar.gz"))
+             (sha256
+              (base32
+               "1gpn6kaa7l1ai8c9zx2j3acf04bvxq79pni8jjfjrk01smjbyyql"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2 ; Use python-2 for the test script.
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             (substitute* "test/run"
+               ;; Run tests with `python' only
+               (("^(PYTHON_VERSIONS = ).*" all m) (string-append m "['']")))
+             (zero? (system* "test/run")))))))
+    (home-page "https://github.com/dilshod/xlsx2csv")
+    (synopsis "XLSX to CSV converter")
+    (description
+     "Xlsx2csv is a program to convert Microsoft Excel 2007 XML (XLSX and
+XLSM) format spreadsheets into plaintext @dfn{comma separated values} (CSV)
+files.  It is designed to be fast and to handle large input files.")
+    (license license:gpl2+)))