summary refs log tree commit diff
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2016-07-29 14:18:07 -0400
committerMark H Weaver <mhw@netris.org>2016-07-29 14:18:07 -0400
commit0bab3af0786ffd4caec05a29d7281ac5e5c18b6b (patch)
treed83fd52d0cb72b3a9c21642583d804c8c1865646
parent49d725a108dc33f4eb72faff7cf138c5dd8c64f4 (diff)
parent682a7d23385f709a680049a823bb84e45c922b3c (diff)
downloadguix-0bab3af0786ffd4caec05a29d7281ac5e5c18b6b.tar.gz
Merge branch 'master' into core-updates
-rw-r--r--configure.ac2
-rw-r--r--gnu/local.mk8
-rw-r--r--gnu/packages/bison.scm6
-rw-r--r--gnu/packages/databases.scm3
-rw-r--r--gnu/packages/education.scm69
-rw-r--r--gnu/packages/emacs.scm2
-rw-r--r--gnu/packages/flex.scm6
-rw-r--r--gnu/packages/freedesktop.scm10
-rw-r--r--gnu/packages/gd.scm10
-rw-r--r--gnu/packages/gnunet.scm14
-rw-r--r--gnu/packages/gnustep.scm2
-rw-r--r--gnu/packages/haskell.scm2
-rw-r--r--gnu/packages/kde-frameworks.scm2
-rw-r--r--gnu/packages/linux.scm6
-rw-r--r--gnu/packages/marst.scm9
-rw-r--r--gnu/packages/maths.scm9
-rw-r--r--gnu/packages/networking.scm2
-rw-r--r--gnu/packages/openstack.scm2
-rw-r--r--gnu/packages/package-management.scm1
-rw-r--r--gnu/packages/password-utils.scm38
-rw-r--r--gnu/packages/patches/gd-CVE-2016-5766.patch81
-rw-r--r--gnu/packages/patches/gd-CVE-2016-6128.patch253
-rw-r--r--gnu/packages/patches/gd-CVE-2016-6132.patch55
-rw-r--r--gnu/packages/patches/gd-CVE-2016-6214.patch66
-rw-r--r--gnu/packages/patches/gd-fix-test-on-i686.patch34
-rw-r--r--gnu/packages/patches/gd-fix-tests-on-i686.patch66
-rw-r--r--gnu/packages/perl.scm6
-rw-r--r--gnu/packages/pulseaudio.scm11
-rw-r--r--gnu/packages/python.scm10
-rw-r--r--gnu/packages/qemu.scm30
-rw-r--r--gnu/packages/ruby.scm3
-rw-r--r--gnu/packages/sdl.scm26
-rw-r--r--gnu/packages/search.scm3
-rw-r--r--gnu/packages/skarnet.scm122
-rw-r--r--gnu/packages/spice.scm297
-rw-r--r--gnu/packages/ssh.scm21
-rw-r--r--gnu/packages/swig.scm7
-rw-r--r--gnu/packages/xorg.scm36
-rw-r--r--tests/guix-register.sh18
39 files changed, 730 insertions, 618 deletions
diff --git a/configure.ac b/configure.ac
index 20adf85f0b..13a9b6e19f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.68)
-AC_INIT([GNU Guix], [0.10.0], [bug-guix@gnu.org], [guix],
+AC_INIT([GNU Guix], [0.11.0], [bug-guix@gnu.org], [guix],
   [http://www.gnu.org/software/guix/])
 AC_CONFIG_AUX_DIR([build-aux])
 
diff --git a/gnu/local.mk b/gnu/local.mk
index 91e90706c2..84e1d77f66 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -103,6 +103,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/dvtm.scm				\
   %D%/packages/ebook.scm			\
   %D%/packages/ed.scm				\
+  %D%/packages/education.scm			\
   %D%/packages/elf.scm				\
   %D%/packages/emacs.scm			\
   %D%/packages/enchant.scm			\
@@ -316,6 +317,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/slim.scm				\
   %D%/packages/smalltalk.scm			\
   %D%/packages/speech.scm			\
+  %D%/packages/spice.scm			\
   %D%/packages/ssh.scm				\
   %D%/packages/stalonetray.scm			\
   %D%/packages/statistics.scm			\
@@ -513,11 +515,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/gcc-cross-environment-variables.patch	\
   %D%/packages/patches/gcc-libvtv-runpath.patch			\
   %D%/packages/patches/gcc-5.0-libvtv-runpath.patch		\
-  %D%/packages/patches/gd-CVE-2016-5766.patch			\
-  %D%/packages/patches/gd-CVE-2016-6128.patch			\
-  %D%/packages/patches/gd-CVE-2016-6132.patch			\
-  %D%/packages/patches/gd-CVE-2016-6214.patch			\
-  %D%/packages/patches/gd-fix-test-on-i686.patch		\
+  %D%/packages/patches/gd-fix-tests-on-i686.patch		\
   %D%/packages/patches/gegl-CVE-2012-4433.patch			\
   %D%/packages/patches/geoclue-config.patch			\
   %D%/packages/patches/ghostscript-CVE-2015-3228.patch		\
diff --git a/gnu/packages/bison.scm b/gnu/packages/bison.scm
index c8ec8cc274..178a99d4ec 100644
--- a/gnu/packages/bison.scm
+++ b/gnu/packages/bison.scm
@@ -24,10 +24,9 @@
   #:use-module (gnu packages m4)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages flex)
-  #:use-module (srfi srfi-1)
-  #:export (bison))
+  #:use-module (srfi srfi-1))
 
-(define bison
+(define-public bison
   (package
     (name "bison")
     (version "3.0.4")
@@ -65,4 +64,3 @@ simple tools through complex programming languages.")
       (sha256
        (base32
         "1zd77ilmpv5mi3kr55jrj6ncqlcnyhpianhrwzak2q28cv2cbn23"))))))
-
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 6bf8d81061..36cfad3102 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -765,7 +765,8 @@ columns, primary keys, unique constraints and relationships.")
        ("postgresql" ,postgresql)))
     (home-page "http://search.cpan.org/dist/DBD-Pg")
     (synopsis "DBI PostgreSQL interface")
-    (description "")
+    (description "This package provides a PostgreSQL driver for the Perl5
+@dfn{Database Interface} (DBI).")
     (license (package-license perl))))
 
 (define-public perl-dbd-mysql
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
new file mode 100644
index 0000000000..834cd6baf6
--- /dev/null
+++ b/gnu/packages/education.scm
@@ -0,0 +1,69 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
+;;;
+;;; 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 education)
+  #:use-module (ice-9 regex)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages perl)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix svn-download)
+  #:use-module (guix utils)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build-system cmake)
+  #:use-module (srfi srfi-1))
+
+(define-public stellarium
+  (package
+    (name "stellarium")
+    (version "0.14.2")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://sourceforge/stellarium/"
+                                 "Stellarium-sources/"
+                                 version "/stellarium-" version ".tar.gz"))
+             (sha256 (base32
+                      "1xxil0rv61zc08znfv83cpsc47y1gjl2f3njhz0pn5zd8jpaa15a"))))
+    (build-system cmake-build-system)
+    (inputs
+      `(("qtbase" ,qtbase)
+        ("zlib" ,zlib)
+        ("qtserialport" ,qtserialport)
+        ("qtscript" ,qtscript)
+        ("gettext" ,gnu-gettext)))
+    (native-inputs
+      `(("qtbase" ,qtbase)                   ;Qt MOC is needed at compile time
+        ("qttools" ,qttools)
+        ("perl" ,perl)))                          ;for 'pod2man'
+    (arguments
+      `(#:test-target "tests"
+        #:phases (modify-phases %standard-phases
+                   (add-before 'check 'set-offscreen-display
+                     (lambda _
+                       (setenv "QT_QPA_PLATFORM" "offscreen")
+                       (setenv "HOME" "/tmp")
+                       #t)))))
+    (home-page "http://www.stellarium.org/")
+    (synopsis "3D sky viewer")
+    (description "Stellarium is a planetarium.  It shows a realistic sky in
+3D, just like what you see with the naked eye, binoculars, or a telescope.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index fb19c87bca..97c21f1bc0 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -1563,7 +1563,7 @@ mode-line.")
     (propagated-inputs
      `(("emacs-rich-minority" ,emacs-rich-minority)))
     (home-page "http://github.com/Malabarba/smart-mode-line")
-    (synopsis "Color-coded smart mode-line.")
+    (synopsis "Color-coded smart mode-line")
     (description
      "Smart Mode Line is a mode-line theme for Emacs.  It aims to be easy to
 read from small to large monitors by using colors, a prefix feature, and smart
diff --git a/gnu/packages/flex.scm b/gnu/packages/flex.scm
index f8d5ccd032..20aff196e9 100644
--- a/gnu/packages/flex.scm
+++ b/gnu/packages/flex.scm
@@ -26,10 +26,9 @@
   #:use-module (gnu packages m4)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages indent)
-  #:use-module (srfi srfi-1)
-  #:export (flex))
+  #:use-module (srfi srfi-1))
 
-(define flex
+(define-public flex
   (package
     (name "flex")
     (version "2.6.0")
@@ -79,4 +78,3 @@ regular expressions for each rule.  Whenever it finds a match, it
 executes the corresponding C code.")
     (license (non-copyleft "file://COPYING"
                         "See COPYING in the distribution."))))
-
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 458331d703..0262d0a1ed 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -106,6 +106,16 @@ freedesktop.org project.")
 other applications that need to directly deal with input devices.")
     (license license:x11)))
 
+(define-public libinput-minimal
+  (package (inherit libinput)
+    (name "libinput-minimal")
+    (inputs
+     `(("libevdev" ,libevdev)
+       ("mtdev" ,mtdev)))
+    (arguments
+      `(#:configure-flags
+        '("--disable-libwacom")))))
+
 (define-public libxdg-basedir
   (package
     (name "libxdg-basedir")
diff --git a/gnu/packages/gd.scm b/gnu/packages/gd.scm
index 3313ee68f2..153e1c7f8b 100644
--- a/gnu/packages/gd.scm
+++ b/gnu/packages/gd.scm
@@ -40,21 +40,17 @@
     ;; Note: With libgd.org now pointing to github.com, genuine old
     ;; tarballs are no longer available.  Notably, versions 2.0.x are
     ;; missing.
-    (version "2.2.2")
+    (version "2.2.3")
 
     (source (origin
              (method url-fetch)
              (uri (string-append
                    "https://github.com/libgd/libgd/releases/download/gd-"
                    version "/libgd-" version ".tar.xz"))
-             (patches (search-patches "gd-fix-test-on-i686.patch"
-                                      "gd-CVE-2016-5766.patch"
-                                      "gd-CVE-2016-6128.patch"
-                                      "gd-CVE-2016-6132.patch"
-                                      "gd-CVE-2016-6214.patch"))
              (sha256
               (base32
-               "1311g5mva2xlzqv3rjqjc4jjkn5lzls4skvr395h633zw1n7b7s8"))))
+               "0g3xz8jpz1pl2zzmssglrpa9nxiaa7rmcmvgpbrjz8k9cyynqsvl"))
+             (patches (search-patches "gd-fix-tests-on-i686.patch"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index f052eab40c..67b04375e8 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -257,14 +257,12 @@ supports HTTPS, HTTPS and GnuTLS.")
            %standard-phases)))))
    (synopsis "Secure, decentralized, peer-to-peer networking framework")
    (description
-    "GNUnet is a framework for secure peer-to-peer networking that does not
-use any centralized or otherwise trusted services.  Our high-level goal is to
-provide a strong free software foundation for a global network that provides
-security and privacy.  GNUnet started with an idea for anonymous
-censorship-resistant file-sharing, but has grown to incorporate other
-applications as well as many generic building blocks for secure networking
-applications.  In particular, GNUnet now includes the GNU Name System, a
-privacy-preserving, decentralized public key infrastructure.")
+     "GNUnet is a framework for secure peer-to-peer networking.  The
+high-level goal is to provide a strong foundation of free software for a
+global, distributed network that provides security and privacy.  GNUnet in
+that sense aims to replace the current internet protocol stack.  Along with
+an application for secure publication of files, it has grown to include all
+kinds of basic applications for the foundation of a GNU internet.")
    (license license:gpl3+)
    (home-page "https://gnunet.org/")))
 
diff --git a/gnu/packages/gnustep.scm b/gnu/packages/gnustep.scm
index 30574fca18..6c522866c9 100644
--- a/gnu/packages/gnustep.scm
+++ b/gnu/packages/gnustep.scm
@@ -244,7 +244,7 @@ display, and can run a user-specified program on mouse click.")
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (home-page "http://www.improbability.net/")
-    (synopsis "Display flames to represent CPU usage, memory usage, etc.")
+    (synopsis "Display flames to represent resource usage")
     (description
      "wmfire is an applet for Window Maker that can monitor the average cpu
 load, or individual cpu load on SMP computers.  Additionally it can monitor the
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index f41157332d..87628b559d 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -6205,7 +6205,7 @@ extensions.")
      `(("ghc-cereal" ,ghc-cereal)
        ("ghc-network" ,ghc-network)))
     (home-page "https://github.com/vincenthz/hs-socks")
-    (synopsis "SOCKS proxy (version 5) implementation.")
+    (synopsis "SOCKS proxy (version 5) implementation")
     (description
      "This library provides a SOCKS proxy (version 5) implementation.")
     (license license:bsd-3)))
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index dc7c27ed4a..74fbac2635 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -112,6 +112,6 @@ lower level classes for interaction with the X Windowing System.")
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("qtbase" ,qtbase)))
     (home-page "https://community.kde.org/Frameworks")
-    (synopsis "Oxygen provides the standard icon theme for the KDE desktop.")
+    (synopsis "Oxygen provides the standard icon theme for the KDE desktop")
     (description "Oxygen icon theme for the KDE desktop")
     (license license:lgpl3+)))
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 2d49bd2e6e..68ca5fceee 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -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.15")
+    (version "4.4.16")
     (source (origin
               (method url-fetch)
               (uri (linux-libre-urls version))
               (sha256
                (base32
-                "0n3lz4xnciif9v3y769q1pjs9321gvl6a2wr10r40sl1ixlk3ipz"))))
+                "0lgc064r18gxvya5zvv2l4dmcj7161mb34q4frlw9z02ils9d623"))))
     (native-inputs
      (let ((conf (kernel-config (or (%current-target-system)
                                     (%current-system))
@@ -903,7 +903,7 @@ MIDI functionality to the Linux-based operating system.")
     (synopsis "Program to configure the Linux IP packet filtering rules")
     (description
      "iptables is the userspace command line program used to configure the
-Linux 2.4.x and later IPv4 packet filtering ruleset.  It is targeted towards
+Linux 2.4.x and later IPv4 packet filtering ruleset (firewall).  It is targeted at
 system administrators.  Since Network Address Translation is also configured
 from the packet filter ruleset, iptables is used for this, too.  The iptables
 package also includes ip6tables.  ip6tables is used for configuring the IPv6
diff --git a/gnu/packages/marst.scm b/gnu/packages/marst.scm
index 7d4a4f364d..7249cf1823 100644
--- a/gnu/packages/marst.scm
+++ b/gnu/packages/marst.scm
@@ -37,7 +37,10 @@
         (base32 "0l6swjy8fjrqw89ghc1vvakg21jmpfkpsw92yssrzkg3rg8vkrry"))))
     (build-system gnu-build-system)
     (home-page "http://www.gnu.org/software/marst")
-    (synopsis "Algol to C translator")
-    (description "MARST is an Algol-to-C translator.  It automatically translates programs
-written on the algorithmic language Algol 60 to the C programming language.")
+    (synopsis "Algol-to-C translator")
+    (description
+     "GNU MARST is an Algol-to-C translator.  The package consists of the
+translator itself, a library that contains the necessary Algol 60 procedures,
+and a converter that converts existing Algol 60 programs from other
+representations to the MARST representation.")
     (license gpl3+)))
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 9f10933a64..86643b3ae3 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -102,10 +102,13 @@
    (build-system gnu-build-system)
    (inputs
      `(("fortran" ,gfortran)))
-   (synopsis "Visualize and analyze convolution operations")
+   (synopsis "Visualizing and demonstrating convolution")
    (description
-    "GNU C-Graph demonstrates the theory of convolution underlying
-engineering systems and signal analysis.")
+     "GNU C-Graph is a tool for demonstrating the theory of convolution.
+Thus, it can serve as an excellent aid to students of signal and systems
+theory in visualizing the convolution process.  Rather than forcing the
+student to write code, the program offers an intuitive interface with
+interactive dialogs to guide them.")
    (license license:gpl3+)
    (home-page "http://www.gnu.org/software/c-graph/")))
 
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 1ef401f245..8b76b0738f 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -62,7 +62,7 @@
                 "1xsiivjjyhqcs6dyjcshrnxlgypvyfzacjz7gcjgl88xiw9lylri"))))
     (build-system gnu-build-system)
     (home-page "http://www.gnu.org/software/macchanger")
-    (synopsis "Display or change the MAC address of networking devices")
+    (synopsis "Viewing and manipulating MAC addresses of network interfaces")
     (description "GNU MAC Changer is a utility for viewing and changing MAC
 addresses of networking devices.  New addresses may be set explicitly or
 randomly.  They can include MAC addresses of the same or other hardware vendors
diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index a316af9666..6ae1275c96 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -56,7 +56,7 @@
         ("python-testscenarios" ,python-testscenarios)
         ("python-testtools" ,python-testtools)))
     (home-page "https://wiki.openstack.org/wiki/Security/Projects/Bandit")
-    (synopsis "Security oriented static analyser for python code.")
+    (synopsis "Security oriented static analyser for python code")
     (description
       "Bandit is a tool designed to find common security issues in Python code.
 To do this Bandit processes each file, builds an AST from it, and runs
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 77c1da357c..5b8aabd05b 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -168,6 +168,7 @@
                           (sha256 hash)))))
        `(("bzip2" ,bzip2)
          ("gzip" ,gzip)
+         ("zlib" ,zlib)                           ;for 'guix publish'
 
          ("sqlite" ,sqlite)
          ("libgcrypt" ,libgcrypt)
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index a03214ae6d..7a8bdcb5f3 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2016 Jessica Tallon <tsyesika@tsyesika.se>
 ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
+;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -266,27 +267,26 @@ any X11 window.")
      '(#:phases
        (modify-phases %standard-phases
          (delete 'configure)
-         (add-after
-          ;; The script requires 'getopt' at run-time, and this allows
-          ;; the user to not install the providing package 'util-linux'
-          ;; in their profile.
-          'unpack 'patch-path
-          (lambda* (#:key inputs outputs #:allow-other-keys)
-            (let ((getopt (string-append (assoc-ref inputs "getopt")
-                                         "/bin/getopt")))
-              (substitute* "src/password-store.sh"
-                (("GETOPT=\"getopt\"")
-                 (string-append "GETOPT=\"" getopt "\"")))
-              #t))))
+         (add-after 'install 'wrap-path
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (path (map (lambda (pkg)
+                                (string-append (assoc-ref inputs pkg) "/bin"))
+                              '("coreutils" "getopt" "git" "gnupg" "pwgen"
+                                "sed" "tree" "which" "xclip"))))
+               (wrap-program (string-append out "/bin/pass")
+                 `("PATH" ":" prefix (,(string-join path ":"))))))))
        #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
        #:test-target "test"))
-    (native-inputs `(("getopt" ,util-linux))) ; getopt for the tests
-    (inputs `(("gnupg" ,gnupg)
-              ("pwgen" ,pwgen)
-              ("xclip" ,xclip)
-              ("git" ,git)
-              ("tree" ,tree)
-              ("which" ,which)))
+    (inputs
+     `(("getopt" ,util-linux)
+       ("git" ,git)
+       ("gnupg" ,gnupg)
+       ("pwgen" ,pwgen)
+       ("sed" ,sed)
+       ("tree" ,tree)
+       ("which" ,which)
+       ("xclip" ,xclip)))
     (home-page "http://www.passwordstore.org/")
     (synopsis "Encrypted password manager")
     (description "Password-store is a password manager which uses GnuPG to
diff --git a/gnu/packages/patches/gd-CVE-2016-5766.patch b/gnu/packages/patches/gd-CVE-2016-5766.patch
deleted file mode 100644
index 400cb0ab48..0000000000
--- a/gnu/packages/patches/gd-CVE-2016-5766.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-Fix CVE-2016-5766 (Integer Overflow in _gd2GetHeader() resulting in heap
-overflow).
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5766
-
-Adapted from upstream commits:
-https://github.com/libgd/libgd/commit/aba3db8ba159465ecec1089027a24835a6da9cc0
-https://github.com/libgd/libgd/commit/a6a0e7feabb2a9738086a5dc96348f233c87fa79
-
-Since `patch` cannot apply Git binary diffs, we omit the addition of
-'tests/gd2/php_bug_72339.c' and its associated binary data.
-
-From aba3db8ba159465ecec1089027a24835a6da9cc0 Mon Sep 17 00:00:00 2001
-From: Pierre Joye <pierre.php@gmail.com>
-Date: Tue, 28 Jun 2016 16:23:42 +0700
-Subject: [PATCH] fix php bug 72339 (CVE-2016-5766), Integer Overflow in
- _gd2GetHeader() resulting in heap overflow
-
----
- src/gd_gd2.c                    |   5 ++++-
- tests/gd2/CMakeLists.txt        |   1 +
- tests/gd2/Makemodule.am         |   6 ++++--
- tests/gd2/php_bug_72339.c       |  21 +++++++++++++++++++++
- tests/gd2/php_bug_72339_exp.gd2 | Bin 0 -> 67108882 bytes
- 5 files changed, 30 insertions(+), 3 deletions(-)
- create mode 100644 tests/gd2/php_bug_72339.c
- create mode 100644 tests/gd2/php_bug_72339_exp.gd2
-
-diff --git a/src/gd_gd2.c b/src/gd_gd2.c
-index fd1e0c9..bdbbecf 100644
---- a/src/gd_gd2.c
-+++ b/src/gd_gd2.c
-@@ -154,8 +154,11 @@ _gd2GetHeader (gdIOCtxPtr in, int *sx, int *sy,
- 		nc = (*ncx) * (*ncy);
- 		GD2_DBG (printf ("Reading %d chunk index entries\n", nc));
- 		sidx = sizeof (t_chunk_info) * nc;
-+		if (overflow2(sidx, nc)) {
-+			goto fail1;
-+		}
- 		cidx = gdCalloc (sidx, 1);
--		if (!cidx) {
-+		if (cidx == NULL) {
- 			goto fail1;
- 		}
- 		for (i = 0; i < nc; i++) {
-From a6a0e7feabb2a9738086a5dc96348f233c87fa79 Mon Sep 17 00:00:00 2001
-From: Pierre Joye <pierre.php@gmail.com>
-Date: Wed, 29 Jun 2016 09:36:26 +0700
-Subject: [PATCH] fix php bug 72339 (CVE-2016-5766), Integer Overflow in
- _gd2GetHeader() resulting in heap overflow. Sync with php's sync
-
----
- src/gd_gd2.c              | 7 ++++++-
- tests/gd2/php_bug_72339.c | 2 +-
- 2 files changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/src/gd_gd2.c b/src/gd_gd2.c
-index bdbbecf..2837456 100644
---- a/src/gd_gd2.c
-+++ b/src/gd_gd2.c
-@@ -152,11 +152,16 @@ _gd2GetHeader (gdIOCtxPtr in, int *sx, int *sy,
- 
- 	if (gd2_compressed (*fmt)) {
- 		nc = (*ncx) * (*ncy);
-+
- 		GD2_DBG (printf ("Reading %d chunk index entries\n", nc));
-+		if (overflow2(sizeof(t_chunk_info), nc)) {
-+			goto fail1;
-+		}
- 		sidx = sizeof (t_chunk_info) * nc;
--		if (overflow2(sidx, nc)) {
-+		if (sidx <= 0) {
- 			goto fail1;
- 		}
-+
- 		cidx = gdCalloc (sidx, 1);
- 		if (cidx == NULL) {
- 			goto fail1;
--- 
-2.9.1
-
diff --git a/gnu/packages/patches/gd-CVE-2016-6128.patch b/gnu/packages/patches/gd-CVE-2016-6128.patch
deleted file mode 100644
index 45ee6b0cfa..0000000000
--- a/gnu/packages/patches/gd-CVE-2016-6128.patch
+++ /dev/null
@@ -1,253 +0,0 @@
-Fix CVE-2016-6128 (invalid color index is not properly handled leading
-to denial of service).
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=2016-6128
-
-Copied from upstream commits:
-https://github.com/libgd/libgd/compare/3fe0a7128bac5000fdcfab888bd2a75ec0c9447d...fd623025505e87bba7ec8555eeb72dae4fb0afd
-
-From 1ccfe21e14c4d18336f9da8515cd17db88c3de61 Mon Sep 17 00:00:00 2001
-From: Pierre Joye <pierre.php@gmail.com>
-Date: Mon, 27 Jun 2016 11:17:39 +0700
-Subject: [PATCH 1/8] fix php 72494, invalid color index not handled, can lead
- to crash
-
----
- src/gd_crop.c        | 4 ++++
- tests/CMakeLists.txt | 1 +
- tests/Makefile.am    | 1 +
- 3 files changed, 6 insertions(+)
-
-diff --git a/src/gd_crop.c b/src/gd_crop.c
-index 0296633..532b49b 100644
---- a/src/gd_crop.c
-+++ b/src/gd_crop.c
-@@ -136,6 +136,10 @@ BGD_DECLARE(gdImagePtr) gdImageCropThreshold(gdImagePtr im, const unsigned int c
- 		return NULL;
- 	}
- 
-+	if (color < 0 || (!gdImageTrueColor(im) && color >= gdImageColorsTotal(im))) {
-+		return NULL;
-+	}
-+
- 	/* TODO: Add gdImageGetRowPtr and works with ptr at the row level
- 	 * for the true color and palette images
- 	 * new formats will simply work with ptr
-diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
-index 6f5c786..5093d52 100644
---- a/tests/CMakeLists.txt
-+++ b/tests/CMakeLists.txt
-@@ -31,6 +31,7 @@ if (BUILD_TEST)
- 		gdimagecolortransparent
- 		gdimagecopy
- 		gdimagecopyrotated
-+        gdimagecrop
- 		gdimagefile
- 		gdimagefill
- 		gdimagefilledellipse
-diff --git a/tests/Makefile.am b/tests/Makefile.am
-index 4f6e756..5a0ebe8 100644
---- a/tests/Makefile.am
-+++ b/tests/Makefile.am
-@@ -25,6 +25,7 @@ include gdimagecolorresolve/Makemodule.am
- include gdimagecolortransparent/Makemodule.am
- include gdimagecopy/Makemodule.am
- include gdimagecopyrotated/Makemodule.am
-+include gdimagecrop/Makemodule.am
- include gdimagefile/Makemodule.am
- include gdimagefill/Makemodule.am
- include gdimagefilledellipse/Makemodule.am
--- 
-2.9.1
-
-From 8c9f39c7cb1f62ea00bc7a48aff64d3811c2d6d0 Mon Sep 17 00:00:00 2001
-From: Pierre Joye <pierre.php@gmail.com>
-Date: Mon, 27 Jun 2016 11:20:07 +0700
-Subject: [PATCH 2/8] fix php 72494, invalid color index not handled, can lead
- to crash
-
----
- tests/gdimagecrop/.gitignore | 1 +
- 1 file changed, 1 insertion(+)
- create mode 100644 tests/gdimagecrop/.gitignore
-
-diff --git a/tests/gdimagecrop/.gitignore b/tests/gdimagecrop/.gitignore
-new file mode 100644
-index 0000000..8e8c9c3
---- /dev/null
-+++ b/tests/gdimagecrop/.gitignore
-@@ -0,0 +1 @@
-+/php_bug_72494
--- 
-2.9.1
-
-From 8de370b7b6263a02268037a7cd13ddd991b43ea9 Mon Sep 17 00:00:00 2001
-From: Pierre Joye <pierre.php@gmail.com>
-Date: Mon, 27 Jun 2016 11:24:50 +0700
-Subject: [PATCH 3/8] fix php 72494, invalid color index not handled, can lead
- to crash
-
----
- tests/gdimagecrop/CMakeLists.txt | 5 +++++
- 1 file changed, 5 insertions(+)
- create mode 100644 tests/gdimagecrop/CMakeLists.txt
-
-diff --git a/tests/gdimagecrop/CMakeLists.txt b/tests/gdimagecrop/CMakeLists.txt
-new file mode 100644
-index 0000000..f7e4c7e
---- /dev/null
-+++ b/tests/gdimagecrop/CMakeLists.txt
-@@ -0,0 +1,5 @@
-+SET(TESTS_FILES
-+	php_bug_72494
-+)
-+
-+ADD_GD_TESTS()
--- 
-2.9.1
-
-From bca12e4e11ecda8a0ea719472700ad5c2b36a0d6 Mon Sep 17 00:00:00 2001
-From: Pierre Joye <pierre.php@gmail.com>
-Date: Mon, 27 Jun 2016 11:25:12 +0700
-Subject: [PATCH 4/8] fix php 72494, invalid color index not handled, can lead
- to crash
-
----
- tests/gdimagecrop/Makemodule.am | 5 +++++
- 1 file changed, 5 insertions(+)
- create mode 100644 tests/gdimagecrop/Makemodule.am
-
-diff --git a/tests/gdimagecrop/Makemodule.am b/tests/gdimagecrop/Makemodule.am
-new file mode 100644
-index 0000000..210888b
---- /dev/null
-+++ b/tests/gdimagecrop/Makemodule.am
-@@ -0,0 +1,5 @@
-+libgd_test_programs += \
-+	gdimagecrop/php_bug_72494
-+
-+EXTRA_DIST += \
-+	gdimagecrop/CMakeLists.txt
--- 
-2.9.1
-
-From 6ff72ae40c7c20ece939afb362d98cc37f4a1c96 Mon Sep 17 00:00:00 2001
-From: Pierre Joye <pierre.php@gmail.com>
-Date: Mon, 27 Jun 2016 11:25:40 +0700
-Subject: [PATCH 5/8] fix php 72494, invalid color index not handled, can lead
- to crash
-
----
- tests/gdimagecrop/php_bug_72494.c | 23 +++++++++++++++++++++++
- 1 file changed, 23 insertions(+)
- create mode 100644 tests/gdimagecrop/php_bug_72494.c
-
-diff --git a/tests/gdimagecrop/php_bug_72494.c b/tests/gdimagecrop/php_bug_72494.c
-new file mode 100644
-index 0000000..adaa379
---- /dev/null
-+++ b/tests/gdimagecrop/php_bug_72494.c
-@@ -0,0 +1,23 @@
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include "gd.h"
-+
-+#include "gdtest.h"
-+
-+int main()
-+{
-+	gdImagePtr im, exp;
-+	int error = 0;
-+
-+	im = gdImageCreate(50, 50);
-+
-+	if (!im) {
-+		gdTestErrorMsg("gdImageCreate failed.\n");
-+		return 1;
-+	}
-+
-+	gdImageCropThreshold(im, 1337, 0);
-+	gdImageDestroy(im);
-+	/* this bug tests a crash, it never reaches this point if the bug exists*/
-+	return 0;
-+}
--- 
-2.9.1
-
-From a0f9f8f7bd0d3a6c6afd6d180b8e75d93aadddfa Mon Sep 17 00:00:00 2001
-From: Pierre Joye <pierre.php@gmail.com>
-Date: Mon, 27 Jun 2016 11:38:07 +0700
-Subject: [PATCH 6/8] fix php 72494, CID 149753, color is unsigned int, remove
- useless <0 comparison
-
----
- src/gd_crop.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/gd_crop.c b/src/gd_crop.c
-index 532b49b..d51ad67 100644
---- a/src/gd_crop.c
-+++ b/src/gd_crop.c
-@@ -136,7 +136,7 @@ BGD_DECLARE(gdImagePtr) gdImageCropThreshold(gdImagePtr im, const unsigned int c
- 		return NULL;
- 	}
- 
--	if (color < 0 || (!gdImageTrueColor(im) && color >= gdImageColorsTotal(im))) {
-+	if (!gdImageTrueColor(im) && color >= gdImageColorsTotal(im)) {
- 		return NULL;
- 	}
- 
--- 
-2.9.1
-
-From 907115fbb980862934d0de91af4977a216745039 Mon Sep 17 00:00:00 2001
-From: Pierre Joye <pierre.php@gmail.com>
-Date: Mon, 27 Jun 2016 11:51:40 +0700
-Subject: [PATCH 7/8] fix php 72494, CID 149753, color is unsigned int, remove
- useless <0 comparison
-
----
- tests/gdimagecrop/php_bug_72494.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tests/gdimagecrop/php_bug_72494.c b/tests/gdimagecrop/php_bug_72494.c
-index adaa379..5cb589b 100644
---- a/tests/gdimagecrop/php_bug_72494.c
-+++ b/tests/gdimagecrop/php_bug_72494.c
-@@ -6,7 +6,7 @@
- 
- int main()
- {
--	gdImagePtr im, exp;
-+	gdImagePtr im;
- 	int error = 0;
- 
- 	im = gdImageCreate(50, 50);
--- 
-2.9.1
-
-From fd623025505e87bba7ec8555eeb72dae4fb0afdc Mon Sep 17 00:00:00 2001
-From: Pierre Joye <pierre.php@gmail.com>
-Date: Mon, 27 Jun 2016 12:04:25 +0700
-Subject: [PATCH 8/8] fix php 72494, CID 149753, color is unsigned int, remove
- useless <0 comparison
-
----
- tests/gdimagecrop/php_bug_72494.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/tests/gdimagecrop/php_bug_72494.c b/tests/gdimagecrop/php_bug_72494.c
-index 5cb589b..3bd19be 100644
---- a/tests/gdimagecrop/php_bug_72494.c
-+++ b/tests/gdimagecrop/php_bug_72494.c
-@@ -7,7 +7,6 @@
- int main()
- {
- 	gdImagePtr im;
--	int error = 0;
- 
- 	im = gdImageCreate(50, 50);
- 
--- 
-2.9.1
-
diff --git a/gnu/packages/patches/gd-CVE-2016-6132.patch b/gnu/packages/patches/gd-CVE-2016-6132.patch
deleted file mode 100644
index 4c475b71b2..0000000000
--- a/gnu/packages/patches/gd-CVE-2016-6132.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-Fix CVE-2016-6132 (read out-of-bounds when parsing TGA files).
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=2016-6132
-
-Copied from upstream commit:
-https://github.com/libgd/libgd/commit/ead349e99868303b37f5e6e9d9d680c9dc71ff8d
-
-From ead349e99868303b37f5e6e9d9d680c9dc71ff8d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ond=C5=99ej=20Sur=C3=BD?= <ondrej@sury.org>
-Date: Tue, 12 Jul 2016 11:24:09 +0200
-Subject: [PATCH] Fix #247, A read out-of-bands was found in the parsing of TGA
- files (CVE-2016-6132)
-
----
- src/gd_tga.c | 13 +++++++++++--
- 1 file changed, 11 insertions(+), 2 deletions(-)
-
-diff --git a/src/gd_tga.c b/src/gd_tga.c
-index ef20f86..20fe2d2 100644
---- a/src/gd_tga.c
-+++ b/src/gd_tga.c
-@@ -237,7 +237,11 @@ int read_image_tga( gdIOCtx *ctx, oTga *tga )
- 			return -1;
- 		}
- 
--		gdGetBuf(conversion_buffer, image_block_size, ctx);
-+		if (gdGetBuf(conversion_buffer, image_block_size, ctx) != image_block_size) {
-+			gd_error("gd-tga: premature end of image data\n");
-+			gdFree(conversion_buffer);
-+			return -1;
-+		}
- 
- 		while (buffer_caret < image_block_size) {
- 			tga->bitmap[buffer_caret] = (int) conversion_buffer[buffer_caret];
-@@ -257,11 +261,16 @@ int read_image_tga( gdIOCtx *ctx, oTga *tga )
- 		}
- 		conversion_buffer = (unsigned char *) gdMalloc(image_block_size * sizeof(unsigned char));
- 		if (conversion_buffer == NULL) {
-+			gd_error("gd-tga: premature end of image data\n");
- 			gdFree( decompression_buffer );
- 			return -1;
- 		}
- 
--		gdGetBuf( conversion_buffer, image_block_size, ctx );
-+		if (gdGetBuf(conversion_buffer, image_block_size, ctx) != image_block_size) {
-+			gdFree(conversion_buffer);
-+			gdFree(decompression_buffer);
-+			return -1;
-+		}
- 
- 		buffer_caret = 0;
- 
--- 
-2.9.1
-
diff --git a/gnu/packages/patches/gd-CVE-2016-6214.patch b/gnu/packages/patches/gd-CVE-2016-6214.patch
deleted file mode 100644
index 7894a32bb1..0000000000
--- a/gnu/packages/patches/gd-CVE-2016-6214.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-Fix CVE-2016-6214 (read out-of-bounds when parsing TGA files).
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6214
-
-Adapted from upstream commit:
-https://github.com/libgd/libgd/commit/341aa68843ceceae9ba6e083431f14a07bd92308
-
-Since `patch` cannot apply Git binary diffs, we omit the addition of
-'tests/tga/bug00247a.c' and its associated binary data.
-
-From 341aa68843ceceae9ba6e083431f14a07bd92308 Mon Sep 17 00:00:00 2001
-From: "Christoph M. Becker" <cmbecker69@gmx.de>
-Date: Tue, 12 Jul 2016 19:23:13 +0200
-Subject: [PATCH] Unsupported TGA bpp/alphabit combinations should error
- gracefully
-
-Currently, only 24bpp without alphabits and 32bpp with 8 alphabits are
-really supported. All other combinations will be rejected with a warning.
-
-(cherry picked from commit cb1a0b7e54e9aa118270c23a4a6fe560e4590dc9)
----
- src/gd_tga.c             |  16 ++++++----------
- tests/tga/.gitignore     |   1 +
- tests/tga/CMakeLists.txt |   1 +
- tests/tga/Makemodule.am  |   4 +++-
- tests/tga/bug00247a.c    |  19 +++++++++++++++++++
- tests/tga/bug00247a.tga  | Bin 0 -> 36 bytes
- 6 files changed, 30 insertions(+), 11 deletions(-)
- create mode 100644 tests/tga/bug00247a.c
- create mode 100644 tests/tga/bug00247a.tga
-
-diff --git a/src/gd_tga.c b/src/gd_tga.c
-index 20fe2d2..b4f8fa6 100644
---- a/src/gd_tga.c
-+++ b/src/gd_tga.c
-@@ -99,7 +99,7 @@ BGD_DECLARE(gdImagePtr) gdImageCreateFromTgaCtx(gdIOCtx* ctx)
- 			if (tga->bits == TGA_BPP_24) {
- 				*tpix = gdTrueColor(tga->bitmap[bitmap_caret + 2], tga->bitmap[bitmap_caret + 1], tga->bitmap[bitmap_caret]);
- 				bitmap_caret += 3;
--			} else if (tga->bits == TGA_BPP_32 || tga->alphabits) {
-+			} else if (tga->bits == TGA_BPP_32 && tga->alphabits) {
- 				register int a = tga->bitmap[bitmap_caret + 3];
- 
- 				*tpix = gdTrueColorAlpha(tga->bitmap[bitmap_caret + 2], tga->bitmap[bitmap_caret + 1], tga->bitmap[bitmap_caret], gdAlphaMax - (a >> 1));
-@@ -159,16 +159,12 @@ int read_header_tga(gdIOCtx *ctx, oTga *tga)
- 	printf("wxh: %i %i\n", tga->width, tga->height);
- #endif
- 
--	switch(tga->bits) {
--	case 8:
--	case 16:
--	case 24:
--	case 32:
--		break;
--	default:
--		gd_error("bps %i not supported", tga->bits);
-+	if (!((tga->bits == TGA_BPP_24 && tga->alphabits == 0)
-+		|| (tga->bits == TGA_BPP_32 && tga->alphabits == 8)))
-+	{
-+		gd_error_ex(GD_WARNING, "gd-tga: %u bits per pixel with %u alpha bits not supported\n",
-+			tga->bits, tga->alphabits);
- 		return -1;
--		break;
- 	}
- 
- 	tga->ident = NULL;
diff --git a/gnu/packages/patches/gd-fix-test-on-i686.patch b/gnu/packages/patches/gd-fix-test-on-i686.patch
deleted file mode 100644
index 6dd2e0fb03..0000000000
--- a/gnu/packages/patches/gd-fix-test-on-i686.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-Disable part of the gdimagerotate test on architectures such as i686
-where intermediate floating-point operations are done with 80-bit long
-doubles, and typically later rounded to 64-bit doubles.  This double
-rounding causes small differences in the resulting pixel values
-compared with other architectures, causing the image comparison to
-fail.
-
-Patch by Mark H Weaver <mhw@netris.org>.
-
---- libgd-2.2.2/tests/gdimagerotate/bug00067.c	1969-12-31 19:00:00.000000000 -0500
-+++ libgd-2.2.2/tests/gdimagerotate/bug00067.c	2016-07-18 12:19:19.885423132 -0400
-@@ -1,5 +1,6 @@
- #include <stdio.h>
- #include <stdlib.h>
-+#include <float.h>
- #include "gd.h"
- 
- #include "gdtest.h"
-@@ -41,6 +42,7 @@
- 			return 1;
- 		}
- 
-+#if FLT_EVAL_METHOD != 2
- 		sprintf(filename, "bug00067_%03d_exp.png", angle);
- 		path = gdTestFilePath2("gdimagerotate", filename);
- 		if (!gdAssertImageEqualsToFile(path, exp)) {
-@@ -48,6 +50,7 @@
- 			error += 1;
- 		}
- 		free(path);
-+#endif
- 
- 		gdImageDestroy(exp);
- 	}
diff --git a/gnu/packages/patches/gd-fix-tests-on-i686.patch b/gnu/packages/patches/gd-fix-tests-on-i686.patch
new file mode 100644
index 0000000000..280893c1d4
--- /dev/null
+++ b/gnu/packages/patches/gd-fix-tests-on-i686.patch
@@ -0,0 +1,66 @@
+Disable some image comparison tests on architectures such as i686
+where intermediate floating-point operations are done with 80-bit long
+doubles, and typically later rounded to 64-bit doubles.  This double
+rounding causes small differences in the resulting pixel values
+compared with other architectures, causing the image comparisons to
+fail.
+
+Patch by Mark H Weaver <mhw@netris.org>.
+
+diff -ru libgd-2.2.3.orig/tests/gdimagecopyresampled/basic_alpha.c libgd-2.2.3/tests/gdimagecopyresampled/basic_alpha.c
+--- libgd-2.2.3.orig/tests/gdimagecopyresampled/basic_alpha.c	2016-07-21 04:06:42.000000000 -0400
++++ libgd-2.2.3/tests/gdimagecopyresampled/basic_alpha.c	2016-07-29 13:50:56.214877446 -0400
+@@ -1,5 +1,6 @@
+ /* Testing basic gdImageCopyResampled() functionality with alpha channel */
+ 
++#include <float.h>
+ #include "gd.h"
+ #include "gdtest.h"
+ 
+@@ -33,7 +34,8 @@
+ 	gdImageCopyResampled(copy, im, 0,0, 0,0, 200,200, 400,300);
+ 	gdImageDestroy(im);
+ 
+-	gdAssertImageEqualsToFile("gdimagecopyresampled/basic_alpha_exp.png", copy);
++	if (FLT_EVAL_METHOD != 2)
++		gdAssertImageEqualsToFile("gdimagecopyresampled/basic_alpha_exp.png", copy);
+ 
+ 	gdImageDestroy(copy);
+ 	return gdNumFailures();
+diff -ru libgd-2.2.3.orig/tests/gdimagecopyresampled/bug00201.c libgd-2.2.3/tests/gdimagecopyresampled/bug00201.c
+--- libgd-2.2.3.orig/tests/gdimagecopyresampled/bug00201.c	2016-07-21 04:06:42.000000000 -0400
++++ libgd-2.2.3/tests/gdimagecopyresampled/bug00201.c	2016-07-29 13:50:30.638559003 -0400
+@@ -1,3 +1,4 @@
++#include <float.h>
+ #include "gd.h"
+ #include "gdtest.h"
+ 
+@@ -65,7 +66,8 @@
+     gdImageDestroy(background);
+     gdImageDestroy(scaled_logo);
+     
+-    gdAssertImageEqualsToFile("gdimagecopyresampled/bug00201_exp.png", img);
++    if (FLT_EVAL_METHOD != 2)
++        gdAssertImageEqualsToFile("gdimagecopyresampled/bug00201_exp.png", img);
+     gdImageDestroy(img);
+     return gdNumFailures();
+ }
+diff -ru libgd-2.2.3.orig/tests/gdimagerotate/bug00067.c libgd-2.2.3/tests/gdimagerotate/bug00067.c
+--- libgd-2.2.3.orig/tests/gdimagerotate/bug00067.c	2016-06-18 05:42:16.000000000 -0400
++++ libgd-2.2.3/tests/gdimagerotate/bug00067.c	2016-07-29 13:50:07.566271765 -0400
+@@ -1,5 +1,6 @@
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <float.h>
+ #include "gd.h"
+ 
+ #include "gdtest.h"
+@@ -43,7 +44,7 @@
+ 
+ 		sprintf(filename, "bug00067_%03d_exp.png", angle);
+ 		path = gdTestFilePath2("gdimagerotate", filename);
+-		if (!gdAssertImageEqualsToFile(path, exp)) {
++		if (FLT_EVAL_METHOD != 2 && !gdAssertImageEqualsToFile(path, exp)) {
+ 			gdTestErrorMsg("comparing rotated image to %s failed.\n", path);
+ 			error += 1;
+ 		}
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 959513f988..52734f5624 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -1930,7 +1930,7 @@ each stack frame.")
 (define-public perl-devel-symdump
   (package
     (name "perl-devel-symdump")
-    (version "2.14")
+    (version "2.17")
     (source
      (origin
        (method url-fetch)
@@ -1938,7 +1938,7 @@ each stack frame.")
                            "Devel-Symdump-" version ".tar.gz"))
        (sha256
         (base32
-         "1phyyxgxsymgzbjd524zlaavvay6vjw34af5zn9153qffqign54v"))))
+         "0qkfjk7bm7jwn9d9qaldg298zvkqh2f19fgvfh5j1rp66mwzql1c"))))
     (build-system perl-build-system)
     (home-page "http://search.cpan.org/dist/Devel-Symdump")
     (synopsis "Dump symbol names or the symbol table")
@@ -5732,7 +5732,7 @@ a minimum of effort.")
      `(("perl-test-tester" ,perl-test-tester)
        ("perl-data-dump" ,perl-data-dump)))
     (home-page "http://search.cpan.org/dist/Test-Trap")
-    (synopsis "Trap exit codes, exceptions, output, etc.")
+    (synopsis "Trap exit codes, exceptions, output, and so on")
     (description "This module is primarily (but not exclusively) for use in
 test scripts: A block eval configurable and extensible but by default trapping
 STDOUT, STDERR, warnings, exceptions, would-be exit codes, and return values
diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm
index 2d97539498..1a7f2c5e8e 100644
--- a/gnu/packages/pulseaudio.scm
+++ b/gnu/packages/pulseaudio.scm
@@ -37,12 +37,9 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages m4)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages xiph)
-  #:export (libsndfile
-            libsamplerate
-            pulseaudio))
+  #:use-module (gnu packages xiph))
 
-(define libsndfile
+(define-public libsndfile
   (package
     (name "libsndfile")
     (version "1.0.26")
@@ -75,7 +72,7 @@ SPARC.  Hopefully the design of the library will also make it easy to extend
 for reading and writing new sound file formats.")
     (license l:gpl2+)))
 
-(define libsamplerate
+(define-public libsamplerate
   (package
     (name "libsamplerate")                     ; aka. Secret Rabbit Code (SRC)
     (version "0.1.8")
@@ -113,7 +110,7 @@ the theoretical best bandwidth for a given pair of input and output sample
 rates.")
     (license l:gpl2+)))
 
-(define pulseaudio
+(define-public pulseaudio
   (package
     (name "pulseaudio")
     (version "8.0")
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 2b42a2c343..3753f9a1bf 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -4653,14 +4653,14 @@ libxml2 and libxslt.")
 (define-public python-beautifulsoup4
   (package
     (name "python-beautifulsoup4")
-    (version "4.4.1")
+    (version "4.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "beautifulsoup4" version))
        (sha256
         (base32
-         "1d36lc4pfkvl74fmzdib2nqnvknm0jddgf2n9yd7im150qyh3m47"))))
+         "1rf94360s8pmn37vxqjl0g74krq2p6nj3wbn6pj94ik6ny44q24f"))))
     (build-system python-build-system)
     (home-page
      "http://www.crummy.com/software/BeautifulSoup/bs4/")
@@ -5023,7 +5023,7 @@ connection to each user.")
     (inputs
      `(("python-setuptools" ,python-setuptools)))
     (home-page "https://github.com/cython/backports_abc")
-    (synopsis "Backport of additions to the 'collections.abc' module.")
+    (synopsis "Backport of additions to the 'collections.abc' module")
     (description
      "Python-backports-abc provides a backport of additions to the
 'collections.abc' module in Python-3.5.")
@@ -5998,7 +5998,7 @@ responses, rather than doing any computation.")
     (native-inputs
      `(("python-setuptools" ,python-setuptools)))
     (home-page "https://github.com/pyca/cryptography")
-    (synopsis "Test vectors for the cryptography package.")
+    (synopsis "Test vectors for the cryptography package")
     (description
       "This package contains test vectors for the cryptography package.")
     ;; Distributed under either BSD-3 or ASL2.0
@@ -9297,7 +9297,7 @@ are optionally backed by a C extension built on librdkafka.")
           "02wjrpf001gjdjsaxxbzcwfg19crlk2dbddayrfc2v06f53yrcyw"))))
   (build-system python-build-system)
   (home-page "https://github.com/jquast/wcwidth")
-  (synopsis "Measure number of terminal column cells of wide-character codes.")
+  (synopsis "Measure number of terminal column cells of wide-character codes")
   (description "Wcwidth measures the number of terminal column cells of
 wide-character codes.  It is useful for those implementing a terminal emulator,
 or programs that carefully produce output to be interpreted by one.  It is a
diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm
index 4d78f9b086..911ed4c8cc 100644
--- a/gnu/packages/qemu.scm
+++ b/gnu/packages/qemu.scm
@@ -19,27 +19,27 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages qemu)
-  #:use-module (guix download)
-  #:use-module (guix packages)
-  #:use-module (guix utils)
-  #:use-module ((guix licenses) #:select (gpl2))
-  #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
-  #:use-module (gnu packages texinfo)
-  #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages glib)
-  #:use-module (gnu packages python)
-  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages attr)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages gl)
+  #:use-module (gnu packages glib)
   #:use-module (gnu packages image)
-  #:use-module (gnu packages attr)
-  #:use-module (gnu packages linux)
   #:use-module (gnu packages libusb)
-  #:use-module (gnu packages xdisorg)
-  #:use-module (gnu packages gl)
-  #:use-module (gnu packages sdl)
+  #: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 python)
+  #:use-module (gnu packages sdl)
+  #:use-module (gnu packages texinfo)
+  #:use-module (gnu packages xdisorg)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix download)
+  #:use-module ((guix licenses) #:select (gpl2))
+  #:use-module (guix packages)
+  #:use-module (guix utils)
   #:use-module (srfi srfi-1))
 
 (define (qemu-patch commit file-name sha256)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 877f229fe1..028b82daaf 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -4050,7 +4050,7 @@ associated records.")
        ("ruby-minitest-rg" ,ruby-minitest-rg)
        ("ruby-mocha" ,ruby-mocha)
        ("ruby-activesupport" ,ruby-activesupport)))
-    (synopsis "Test mocks for time-dependent functions.")
+    (synopsis "Test mocks for time-dependent functions")
     (description
      "Timecop provides \"time travel\" and \"time freezing\" capabilities,
 making it easier to test time-dependent code.  It provides a unified method to
@@ -4116,4 +4116,3 @@ inspired by Erlang, Clojure, Go, JavaScript, actors and classic concurrency
 patterns.")
     (home-page "http://www.concurrent-ruby.com")
     (license license:expat)))
-
diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm
index 49b9deaf4d..161689bf24 100644
--- a/gnu/packages/sdl.scm
+++ b/gnu/packages/sdl.scm
@@ -38,17 +38,9 @@
   #:use-module (gnu packages gl)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xorg)
-  #:export (sdl
-            sdl2
-            libmikmod
-            sdl-gfx
-            sdl-image
-            sdl-mixer
-            sdl-net
-            sdl-ttf
-            sdl-union))
+  #:export (sdl-union))
 
-(define sdl
+(define-public sdl
   (package
     (name "sdl")
     (version "1.2.15")
@@ -92,7 +84,7 @@ joystick, and graphics hardware.")
     (home-page "http://libsdl.org/")
     (license lgpl2.1)))
 
-(define sdl2
+(define-public sdl2
   (package (inherit sdl)
     (name "sdl2")
     (version "2.0.4")
@@ -106,7 +98,7 @@ joystick, and graphics hardware.")
                "0jqp46mxxbh9lhpx1ih6sp93k752j2smhpc0ad0q4cb3px0famfs"))))
     (license bsd-3)))
 
-(define libmikmod
+(define-public libmikmod
   (package
     (name "libmikmod")
     (version "3.3.7")
@@ -131,7 +123,7 @@ system, such as sound redirection over the network.")
     (license lgpl2.1)
     (home-page "http://mikmod.sourceforge.net/")))
 
-(define sdl-gfx
+(define-public sdl-gfx
   (package
     (name "sdl-gfx")
     (version "2.0.24")
@@ -155,7 +147,7 @@ other supporting functions for SDL.")
     ;; MIPS, at least.
     (supported-systems '("i686-linux" "x86_64-linux"))))
 
-(define sdl-image
+(define-public sdl-image
   (package
     (name "sdl-image")
     (version "1.2.12")
@@ -191,7 +183,7 @@ WEBP, XCF, XPM, and XV.")
     (home-page "http://www.libsdl.org/projects/SDL_image/")
     (license zlib)))
 
-(define sdl-mixer
+(define-public sdl-mixer
   (package
     (name "sdl-mixer")
     (version "1.2.12")
@@ -229,7 +221,7 @@ MIDI, Ogg Vorbis, and MP3.")
     (home-page "http://www.libsdl.org/projects/SDL_mixer/")
     (license zlib)))
 
-(define sdl-net
+(define-public sdl-net
   (package
     (name "sdl-net")
     (version "1.2.8")
@@ -250,7 +242,7 @@ SDL.")
     (home-page "http://www.libsdl.org/projects/SDL_net/")
     (license zlib)))
 
-(define sdl-ttf
+(define-public sdl-ttf
   (package
     (name "sdl-ttf")
     (version "2.0.11")
diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm
index d34d70bfce..9b01909753 100644
--- a/gnu/packages/search.scm
+++ b/gnu/packages/search.scm
@@ -26,8 +26,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages check)
   #:use-module (gnu packages databases)
-  #:use-module (gnu packages linux)
-  #:export (xapian))
+  #:use-module (gnu packages linux))
 
 (define-public xapian
   (package
diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm
index e1518feeb4..57fc12d1a3 100644
--- a/gnu/packages/skarnet.scm
+++ b/gnu/packages/skarnet.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Claes Wallin <claes.wallin@greatsinodevelopment.com>
+;;; Copyright © 2016 Eric Le Bihan <eric.le.bihan.dev@free.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,7 +27,7 @@
 (define-public skalibs
   (package
     (name "skalibs")
-    (version "2.3.5.1")
+    (version "2.3.10.0")
     (source
      (origin
       (method url-fetch)
@@ -34,7 +35,7 @@
                           version ".tar.gz"))
       (sha256
        (base32
-        "1m31wph4qr4mqgv51nzwd9nw0x5vmpkcxr48i216wn3dpy3mvxwy"))))
+        "0i7af224kl1crxgml09wx0x6q8ab79vnyrllfwv2lnq585wi9mg4"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--enable-force-devr") ; do not analyze /dev/random
@@ -51,7 +52,7 @@ and file system operations.  It is used by all skarnet.org software.")
 (define-public execline
   (package
     (name "execline")
-    (version "2.1.2.2")
+    (version "2.1.5.0")
     (source
      (origin
       (method url-fetch)
@@ -59,7 +60,7 @@ and file system operations.  It is used by all skarnet.org software.")
                           version ".tar.gz"))
       (sha256
        (base32
-        "01pckac5zijf6icrhwicbmq92yq68gfkf1yl03rr2v4q3cn8r85f"))))
+        "0hhirdmyh3sj9qagkis7addmmdvyic717wkb6ym3n63kvfk0adla"))))
     (build-system gnu-build-system)
     (inputs `(("skalibs" ,skalibs)))
     (arguments
@@ -90,3 +91,116 @@ It features conditional loops, getopt-style option handling, file name
 globbing, redirection and other shell concepts, expressed as discrete commands
 rather than in special syntax, minimizing runtime footprint and
 complexity.")))
+
+(define-public s6
+  (package
+   (name "s6")
+   (version "2.3.0.0")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (string-append "http://skarnet.org/software/s6/s6-"
+                         version ".tar.gz"))
+     (sha256
+      (base32
+       "1rp8i228zxzbia1799pdav1kkzdk96fax9bcfyf2gilkdm3s1ja9"))))
+   (build-system gnu-build-system)
+   (inputs `(("skalibs" ,skalibs)
+             ("execline" ,execline)))
+   (arguments
+    '(#:configure-flags (list
+                        (string-append "--with-lib="
+                                       (assoc-ref %build-inputs "skalibs")
+                                       "/lib/skalibs")
+                        (string-append "--with-lib="
+                                       (assoc-ref %build-inputs "execline")
+                                       "/lib/execline")
+                        (string-append "--with-sysdeps="
+                                       (assoc-ref %build-inputs "skalibs")
+                                       "/lib/skalibs/sysdeps"))
+      #:tests? #f))
+   (home-page "http://skarnet.org/software/s6")
+   (license isc)
+   (synopsis "Small suite of programs for process supervision")
+   (description
+    "s6 is a small suite of programs for UNIX, designed to allow process
+supervision (a.k.a. service supervision), in the line of daemontools and
+runit, as well as various operations on processes and daemons.  It is meant to
+be a toolbox for low-level process and service administration, providing
+different sets of independent tools that can be used within or without the
+framework, and that can be assembled together to achieve powerful
+functionality with a very small amount of code.")))
+
+(define-public s6-dns
+  (package
+   (name "s6-dns")
+   (version "2.0.1.0")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (string-append "http://skarnet.org/software/s6-dns/s6-dns-"
+                         version ".tar.gz"))
+     (sha256
+      (base32
+       "1ji47iy8czx4jmi763dxd6lgjbnp4vqqgcijh46ym65l0a97z04w"))))
+    (build-system gnu-build-system)
+    (inputs `(("skalibs" ,skalibs)))
+    (arguments
+     '(#:configure-flags (list
+                          (string-append "--with-lib="
+                                         (assoc-ref %build-inputs "skalibs")
+                                         "/lib/skalibs")
+                          (string-append "--with-sysdeps="
+                                         (assoc-ref %build-inputs "skalibs")
+                                         "/lib/skalibs/sysdeps"))
+       #:tests? #f))
+    (home-page "http://skarnet.org/software/s6-dns")
+    (license isc)
+    (synopsis "Suite of DNS client programs")
+    (description
+     "s6-dns is a suite of DNS client programs and libraries for Unix systems,
+as an alternative to the BIND, djbdns or other DNS clients.")))
+
+(define-public s6-networking
+  (package
+   (name "s6-networking")
+   (version "2.1.1.0")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (string-append "http://skarnet.org/software/s6-networking/s6-networking-"
+                         version ".tar.gz"))
+     (sha256
+      (base32
+       "0r8gfv0l2k449nacjy919gqlgn25q7fjxaqra5r37k7kiikkgqfw"))))
+    (build-system gnu-build-system)
+    (inputs `(("skalibs" ,skalibs)
+              ("execline" ,execline)
+              ("s6" ,s6)
+              ("s6-dns" ,s6-dns)))
+    (arguments
+     '(#:configure-flags (list
+                          (string-append "--with-lib="
+                                         (assoc-ref %build-inputs "skalibs")
+                                         "/lib/skalibs")
+                          (string-append "--with-lib="
+                                         (assoc-ref %build-inputs "execline")
+                                         "/lib/execline")
+                          (string-append "--with-lib="
+                                         (assoc-ref %build-inputs "s6")
+                                         "/lib/s6")
+                          (string-append "--with-lib="
+                                         (assoc-ref %build-inputs "s6-dns")
+                                         "/lib/s6-dns")
+                          (string-append "--with-sysdeps="
+                                         (assoc-ref %build-inputs "skalibs")
+                                         "/lib/skalibs/sysdeps"))
+       #:tests? #f))
+    (home-page "http://skarnet.org/software/s6-networking")
+    (license isc)
+    (synopsis "Suite of network utilities for Unix systems")
+    (description
+     "s6-networking is a suite of small networking utilities for Unix systems.
+It includes command-line client and server management, TCP access control,
+privilege escalation across UNIX domain sockets, IDENT protocol management and
+clock synchronization.")))
diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm
new file mode 100644
index 0000000000..cfb60845bc
--- /dev/null
+++ b/gnu/packages/spice.scm
@@ -0,0 +1,297 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 David Craven <david@craven.ch>
+;;;
+;;; 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 spice)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages gl)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gstreamer)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages image)
+  #:use-module (gnu packages libusb)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pulseaudio)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages xdisorg)
+  #:use-module (gnu packages xiph)
+  #:use-module (gnu packages xml)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix download)
+  #: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+))))
+
+(define-public virglrenderer
+  (package
+    (name "virglrenderer")
+    (version "0.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                "https://www.freedesktop.org/software/virgl/"
+                "virglrenderer-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "1dj0j8nbyr7nrpds4dqlp43ji8ixjyqhgw6ywlz1r9dn6cs5m5d1"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("libepoxy" ,libepoxy)
+        ("mesa" ,mesa)
+        ("udev" ,eudev)))
+    (native-inputs
+      `(("pkg-config" ,pkg-config)))
+    (synopsis "Virtual 3D GPU library")
+    (description "A virtual 3D GPU library that enables a virtualized operating
+system to use the host GPU to accelerate 3D rendering.")
+    (home-page "https://virgil3d.github.io")
+    (license (list license:expat license:bsd-3))))
+
+(define-public spice-protocol
+  (package
+    (name "spice-protocol")
+    (version "0.12.11")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                "http://www.spice-space.org/download/releases/"
+                "spice-protocol-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "0c33kg3vdz3nnl2wjfbgmszz5hbjbvsw6map35dj9hxnpwwf9fi2"))))
+    (build-system gnu-build-system)
+    (synopsis "Protocol headers for the SPICE protocol")
+    (description "SPICE (the Simple Protocol for Independent Computing
+Environments) is a remote-display system built for virtual environments
+which allows users to view a desktop computing environment.")
+    (home-page "http://www.spice-space.org")
+    (license (list license:bsd-3 license:lgpl2.1+))))
+
+(define-public spice-gtk
+  (package
+    (name "spice-gtk")
+    (version "0.32")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                "http://spice-space.org/download/gtk/"
+                "spice-gtk-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "00pf94xh2xf0h1g13lnavxrysd0d0x22l5jl108cvq1mjc4z8j2c"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("gstreamer" ,gstreamer)
+        ("gst-libav" ,gst-libav)
+        ("gst-plugins-base" ,gst-plugins-base)
+        ("gst-plugins-good" ,gst-plugins-good)
+        ("gst-plugins-bad" ,gst-plugins-bad)
+        ("gst-plugins-ugly" ,gst-plugins-ugly)
+        ("spice-protocol" ,spice-protocol)))
+    (inputs
+      `(("glib-networking" ,glib-networking)
+        ("gtk+" ,gtk+)
+        ("libepoxy" ,libepoxy)
+        ("libjpeg" ,libjpeg)
+        ("libxcb" ,libxcb)
+        ("lz4" ,lz4)
+        ("mesa" ,mesa)
+        ("pixman" ,pixman)
+        ("pulseaudio" ,pulseaudio)
+        ("python" ,python)
+        ("openssl" ,openssl)
+        ("opus" ,opus)
+        ("usbredir" ,usbredir)))
+    (native-inputs
+      `(("glib:bin" ,glib "bin")
+        ("intltool" ,intltool)
+        ("pkg-config" ,pkg-config)))
+    (arguments
+      `(#:configure-flags
+        '("--enable-gstaudio"
+          "--enable-gstvideo"
+          "--enable-pulse")
+        #:phases
+         (modify-phases %standard-phases
+           (add-after
+            'install 'wrap-spicy
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (let ((out             (assoc-ref outputs "out"))
+                    (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
+                (wrap-program (string-append out "/bin/spicy")
+                  `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
+              #t)))))
+    (synopsis "Gtk client and libraries for SPICE remote desktop servers")
+    (description "Gtk client and libraries for SPICE remote desktop servers.")
+    (home-page "http://www.spice-space.org")
+    (license (list license:lgpl2.1+ license:lgpl2.0+))))
+
+(define-public spice
+  (package
+    (name "spice")
+    (version "0.13.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                "http://www.spice-space.org/download/releases/"
+                "spice-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "18hxk47z58cqbix5h477qmvcdmsrwzv984jw4c6fj0ns4h217jwy"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+      `(("openssl" ,openssl)
+        ("pixman" ,pixman)
+        ("spice-protocol" ,spice-protocol)))
+    (inputs
+      `(("glib" ,glib)
+        ("libjpeg" ,libjpeg)
+        ("lz4" ,lz4)
+        ("opus" ,opus)
+        ("zlib" ,zlib)))
+    (native-inputs
+      `(("pkg-config" ,pkg-config)
+        ("python" ,python)
+        ("spice-gtk" ,spice-gtk)))
+    (arguments
+      `(#:configure-flags
+        '("--disable-celt051" ; Disable support for unpackaged audio codec
+          "--enable-lz4"
+          "--enable-automated-tests")))
+    (synopsis "Server implementation of the SPICE protocol")
+    (description "SPICE is a remote display system built for virtual
+environments which allows you to view a computing 'desktop' environment
+not only on the machine where it is running, but from anywhere on the
+Internet and from a wide variety of machine architectures.")
+    (home-page "http://www.spice-space.org")
+    (license (list license:lgpl2.1+ license:lgpl2.0+))))
+
+(define-public spice-vdagent
+  (package
+    (name "spice-vdagent")
+    (version "0.17.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                "http://www.spice-space.org/download/releases/"
+                "spice-vdagent-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "0gdkyylyg1hksg0i0anvznqfli2q39335fnrmcd6847frpc8njpi"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       '("--localstatedir=/var")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-makefile.in
+           (lambda _
+             (substitute* "Makefile.in"
+               (((string-append "\\$\\(mkdir_p\\) \\$\\(DESTDIR\\)"
+                                "\\$\\(localstatedir\\)/run/spice-vdagentd"))
+                 "-$(mkdir_p) $(DESTDIR)$(localstatedir)/run/spice-vdagentd"))
+             #t)))))
+    (inputs
+      `(("alsa-lib" ,alsa-lib)
+        ("dbus" ,dbus)
+        ("glib" ,glib)
+        ("libpciaccess" ,libpciaccess)
+        ("libx11" ,libx11)
+        ("libxext" ,libxext)
+        ("libxfixes" ,libxfixes)
+        ("libxinerama" ,libxinerama)
+        ("libxrandr" ,libxrandr)
+        ("spice-protocol" ,spice-protocol)))
+    (native-inputs
+      `(("pkg-config" ,pkg-config)))
+    (synopsis "Spice agent for Linux")
+    (description "Spice-vdagent enables sharing the clipboard and guest display
+resolution scaling on graphical console window resize.")
+    (home-page "http://www.spice-space.org")
+    (license license:gpl3+)))
+
+(define-public virt-viewer
+  (package
+    (name "virt-viewer")
+    (version "4.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                "https://virt-manager.org/download/sources/virt-viewer/"
+                "virt-viewer-" version ".tar.gz"))
+              (sha256
+               (base32
+                "07zsi1fqg05mag1ayniaqj25fzb6dxg76d4ka5196lq4l477nhhw"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("gtk+" ,gtk+)
+        ("libcap" ,libcap)
+        ("libxml2" ,libxml2)
+        ("openssl" ,openssl)
+        ("spice-gtk" ,spice-gtk)))
+    (native-inputs
+      `(("glib:bin" ,glib "bin")
+        ("intltool" ,intltool)
+        ("pkg-config" ,pkg-config)))
+    (arguments
+      `(#:configure-flags
+        '("--with-spice-gtk")
+        #:phases
+         (modify-phases %standard-phases
+           (add-after
+            'install 'wrap-remote-viewer
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (let ((out             (assoc-ref outputs "out"))
+                    (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
+                (wrap-program (string-append out "/bin/remote-viewer")
+                  `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
+              #t)))))
+    (synopsis "Graphical console client for virtual machines")
+    (description "Graphical console client for virtual machines using SPICE or
+VNC.")
+    (home-page "https://virt-manager.org")
+    (license license:gpl2+)))
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index 61a6a5b9d9..a669ccfc9b 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -492,3 +493,23 @@ providing shell access to the server system from the client.  It provides
 both the server daemon and the client application, as well as tools for
 manipulating key files.")
     (license license:gpl2+)))
+
+(define-public sshpass
+  (package
+    (name "sshpass")
+    (version "1.06")
+    (synopsis "Non-interactive password authentication with SSH")
+    (home-page "https://sourceforge.net/projects/sshpass/")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/sshpass/sshpass/"
+                           version "/sshpass-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0q7fblaczb7kwbsz0gdy9267z0sllzgmf0c7z5c9mf88wv74ycn6"))))
+    (build-system gnu-build-system)
+    (description "sshpass is a tool for non-interactivly performing password
+authentication with SSH's so-called @dfn{interactive keyboard password
+authentication}.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/swig.scm b/gnu/packages/swig.scm
index 1e4de427b9..a615796745 100644
--- a/gnu/packages/swig.scm
+++ b/gnu/packages/swig.scm
@@ -26,10 +26,9 @@
   #:use-module (gnu packages guile)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages perl)
-  #:export (swig))
+  #:use-module (gnu packages perl))
 
-(define swig
+(define-public swig
   (package
     (name "swig")
     (version "3.0.5")
@@ -48,7 +47,7 @@
               ("guile" ,guile-2.0)
               ("perl" ,perl)))
               ;; FIXME: reactivate input python as soon as the test failures
-              ;;   fatal error: Python.h: No such file or directory 
+              ;;   fatal error: Python.h: No such file or directory
               ;;   # include <Python.h>
               ;; are fixed.
               ;; The python part probably never worked and does not seem to
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 59c8d1c871..0b91f2d203 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -38,6 +38,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
@@ -46,13 +47,13 @@
   #:use-module (gnu packages image)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages m4)
+  #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages spice)
   #:use-module (gnu packages xml)
-  #:use-module (gnu packages ncurses)
-  #:use-module (gnu packages xdisorg)
-  #:use-module (gnu packages freedesktop))
+  #:use-module (gnu packages xdisorg))
 
 
 
@@ -3076,6 +3077,35 @@ UniChrome Pro and Chrome9 integrated graphics processors.")
     (license license:x11)))
 
 
+(define-public xf86-video-qxl
+  (package
+    (name "xf86-video-qxl")
+    (version "0.1.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                "mirror://xorg/individual/driver/"
+                "xf86-video-qxl-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "018ic9ddxfnjcv2yss0mwk1gq6rmip1hrgi2wxwqkbqx1cpx4yp5"))))
+    (build-system gnu-build-system)
+    (inputs
+      `(("fontsproto" ,fontsproto)
+        ("libxfont" ,libxfont)
+        ("spice-protocol" ,spice-protocol)
+        ("xf86dgaproto" ,xf86dgaproto)
+        ("xorg-server" ,xorg-server)
+        ("xproto" ,xproto)))
+    (native-inputs
+      `(("pkg-config" ,pkg-config)))
+    (synopsis "Qxl video driver for X server")
+    (description "xf86-video-qxl is a video driver for the Xorg X server.
+This driver is intended for the spice qxl virtio device.")
+    (home-page "http://www.spice-space.org")
+    (license license:x11)))
+
+
 (define-public xf86-video-r128
   (package
     (name "xf86-video-r128")
diff --git a/tests/guix-register.sh b/tests/guix-register.sh
index 360cf55979..521735b8a4 100644
--- a/tests/guix-register.sh
+++ b/tests/guix-register.sh
@@ -1,5 +1,5 @@
 # GNU Guix --- Functional package management for GNU
-# Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 #
 # This file is part of GNU Guix.
 #
@@ -157,8 +157,20 @@ do
     # that name in a 'valid-path?' query because 'assertStorePath' would kill
     # us because of the wrong prefix.  So we just list dead paths instead.
     guile -c "
-      (use-modules (guix store) (srfi srfi-1))
-      (define s (open-connection \"$GUIX_DAEMON_SOCKET\"))
+      (use-modules (guix store) (srfi srfi-1) (srfi srfi-34))
+
+      (define s
+        (let loop ((i 5))
+          (guard (c ((nix-connection-error? c)
+                     (if (<= i 0)
+                         (raise c)
+                         (begin
+                           (display \"waiting for daemon socket...\")
+                           (newline)
+                           (sleep 1)
+                           (loop (- i 1))))))
+             (open-connection \"$GUIX_DAEMON_SOCKET\"))))
+
       (exit (lset= string=?
                    (pk 1 (list \"$copied\" \"$copied_duplicate1\"
                                \"$copied_duplicate2\"))