summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-05-27 23:19:49 +0200
committerLudovic Courtès <ludo@gnu.org>2014-05-27 23:19:49 +0200
commitaf018f5e0a1b7c67e9f40ca68929bd35b94206d3 (patch)
tree8c3efe66f8ac1f6178357937c0a41c6f5ff8f0f8 /gnu/packages
parentd84a7be6675bd647931d8eff9134d00dd5a6bd58 (diff)
parent35066aa596931ef84922298c2760ceba69940cd1 (diff)
downloadguix-af018f5e0a1b7c67e9f40ca68929bd35b94206d3.tar.gz
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/admin.scm180
-rw-r--r--gnu/packages/algebra.scm23
-rw-r--r--gnu/packages/autotools.scm14
-rw-r--r--gnu/packages/backup.scm71
-rw-r--r--gnu/packages/base.scm3
-rw-r--r--gnu/packages/bittorrent.scm91
-rw-r--r--gnu/packages/calcurse.scm2
-rw-r--r--gnu/packages/ccache.scm57
-rw-r--r--gnu/packages/compression.scm23
-rw-r--r--gnu/packages/cyrus-sasl.scm10
-rw-r--r--gnu/packages/doxygen.scm74
-rw-r--r--gnu/packages/ftp.scm56
-rw-r--r--gnu/packages/games.scm64
-rw-r--r--gnu/packages/gcc.scm11
-rw-r--r--gnu/packages/gdb.scm10
-rw-r--r--gnu/packages/gimp.scm63
-rw-r--r--gnu/packages/glib.scm11
-rw-r--r--gnu/packages/gnome.scm665
-rw-r--r--gnu/packages/gnupg.scm2
-rw-r--r--gnu/packages/gtk.scm88
-rw-r--r--gnu/packages/guile.scm11
-rw-r--r--gnu/packages/imagemagick.scm4
-rw-r--r--gnu/packages/kde.scm131
-rw-r--r--gnu/packages/libevent.scm47
-rw-r--r--gnu/packages/linux.scm174
-rw-r--r--gnu/packages/lua.scm17
-rw-r--r--gnu/packages/mail.scm73
-rw-r--r--gnu/packages/make-bootstrap.scm6
-rw-r--r--gnu/packages/man.scm6
-rw-r--r--gnu/packages/maths.scm545
-rw-r--r--gnu/packages/mcrypt.scm114
-rw-r--r--gnu/packages/mp3.scm27
-rw-r--r--gnu/packages/mpd.scm6
-rw-r--r--gnu/packages/mpi.scm130
-rw-r--r--gnu/packages/openssl.scm6
-rw-r--r--gnu/packages/patches/ccache-stdc-predef-test.patch157
-rw-r--r--gnu/packages/patches/clucene-pkgconfig.patch21
-rw-r--r--gnu/packages/patches/doxygen-test.patch38
-rw-r--r--gnu/packages/patches/doxygen-tmake.patch24
-rw-r--r--gnu/packages/patches/mhash-keygen-test-segfault.patch13
-rw-r--r--gnu/packages/patches/openssl-CVE-2010-5298.patch27
-rw-r--r--gnu/packages/patches/openssl-extension-checking-fixes.patch40
-rw-r--r--gnu/packages/patches/perl-tk-x11-discover.patch14
-rw-r--r--gnu/packages/patches/petsc-fix-threadcomm.patch15
-rw-r--r--gnu/packages/patches/pybugz-encode-error.patch17
-rw-r--r--gnu/packages/patches/pybugz-stty.patch19
-rw-r--r--gnu/packages/patches/scotch-test-threading.patch139
-rw-r--r--gnu/packages/patches/soprano-find-clucene.patch15
-rw-r--r--gnu/packages/patches/superlu-dist-scotchmetis.patch21
-rw-r--r--gnu/packages/pciutils.scm91
-rw-r--r--gnu/packages/perl.scm4
-rw-r--r--gnu/packages/python.scm56
-rw-r--r--gnu/packages/qemu.scm4
-rw-r--r--gnu/packages/qt.scm9
-rw-r--r--gnu/packages/rdf.scm128
-rw-r--r--gnu/packages/rsync.scm27
-rw-r--r--gnu/packages/screen.scm4
-rw-r--r--gnu/packages/sdl.scm15
-rw-r--r--gnu/packages/slim.scm12
-rw-r--r--gnu/packages/ssh.scm35
-rw-r--r--gnu/packages/tcl.scm4
-rw-r--r--gnu/packages/version-control.scm24
-rw-r--r--gnu/packages/video.scm178
-rw-r--r--gnu/packages/wdiff.scm4
-rw-r--r--gnu/packages/xiph.scm10
-rw-r--r--gnu/packages/xorg.scm20
66 files changed, 3748 insertions, 252 deletions
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 51b40c889e..fded33c60b 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -40,10 +40,14 @@
                 #:select (tar))
   #:use-module ((gnu packages compression)
                 #:select (gzip))
+  #:use-module ((gnu packages openssl)
+                #:renamer (symbol-prefix-proc 'o:))
   #:use-module (gnu packages bison)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages texinfo)
+  #:use-module (gnu packages groff)
   #:use-module (gnu packages xorg))
 
 (define-public dmd
@@ -471,6 +475,28 @@ network statistics collection, security monitoring, network debugging, etc.")
     ;; fad-*.c and a couple other files are BSD-4, but the rest is BSD-3.
     (license bsd-3)))
 
+(define-public tcpdump
+  (package
+    (name "tcpdump")
+    (version "4.5.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.tcpdump.org/release/tcpdump-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "15hb7zkzd66nag102qbv100hcnf7frglbkylmr8adwr8f5jkkaql"))))
+    (build-system gnu-build-system)
+    (inputs `(("libpcap" ,libpcap)
+              ("openssl" ,o:openssl)))
+    (native-inputs `(("perl" ,perl)))        ; for tests
+    (home-page "http://www.tcpdump.org/")
+    (synopsis "Network packet analyzer")
+    (description
+     "Tcpdump is a command-line tool to analyze network traffic passing
+through the network interface controller.")
+    (license bsd-3)))
+
 (define-public jnettop
   (package
     (name "jnettop")
@@ -542,3 +568,157 @@ by bandwidth they use.")
 console window to allow commands to be interactively run on multiple servers
 over ssh connections.")
     (license gpl2+)))
+
+(define-public rottlog
+  (package
+    (name "rottlog")
+    (version "0.72.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnu/rottlog/rottlog-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0751mb9l2f0jrk3vj6q8ilanifd121dliwk0c34g8k0dlzsv3kd7"))
+              (modules '((guix build utils)))
+              (snippet
+               '(substitute* "Makefile.in"
+                  (("-o \\$\\{LOG_OWN\\} -g \\$\\{LOG_GROUP\\}")
+                   ;; Don't try to chown root.
+                   "")
+                  (("mkdir -p \\$\\(ROTT_STATDIR\\)")
+                   ;; Don't attempt to create /var/lib/rottlog.
+                   "true")))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags (list (string-append "ROTT_ETCDIR="
+                                              (assoc-ref %outputs "out")
+                                              "/etc")
+                               "--localstatedir=/var")
+       #:phases (alist-cons-after
+                 'install 'install-info
+                 (lambda _
+                   (zero? (system* "make" "install-info")))
+                 %standard-phases)))
+    (native-inputs `(("texinfo" ,texinfo)
+                     ("util-linux" ,util-linux))) ; for 'cal'
+    (home-page "http://www.gnu.org/software/rottlog/")
+    (synopsis "Log rotation and management")
+    (description
+     "GNU Rot[t]log is a program for managing log files.  It is used to
+automatically rotate out log files when they have reached a given size or
+according to a given schedule.  It can also be used to automatically compress
+and archive such logs.  Rot[t]log will mail reports of its activity to the
+system administrator.")
+    (license gpl3+)))
+
+(define-public sudo
+  (package
+    (name "sudo")
+    (version "1.8.10p2")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (list (string-append "http://www.sudo.ws/sudo/dist/sudo-"
+                                    version ".tar.gz")
+                     (string-append "ftp://ftp.sudo.ws/pub/sudo/OLD/sudo-"
+                                    version ".tar.gz")))
+              (sha256
+               (base32
+                "1wbrygz584abmywklq0b4xhqn3s1bjk3rrladslr5nycdpdvhv5s"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("--with-logpath=/var/log/sudo.log")
+       #:phases (alist-cons-before
+                 'configure 'pre-configure
+                 (lambda _
+                   (substitute* "configure"
+                     ;; Refer to the right executables.
+                     (("/usr/bin/mv") (which "mv"))
+                     (("/usr/bin/sh") (which "sh")))
+                   (substitute* (find-files "." "Makefile\\.in")
+                     (("-O [[:graph:]]+ -G [[:graph:]]+")
+                      ;; Allow installation as non-root.
+                      "")
+                     (("^install: (.*)install-sudoers(.*)" _ before after)
+                      ;; Don't try to create /etc/sudoers.
+                      (string-append "install: " before after "\n"))))
+                 %standard-phases)
+
+       ;; XXX: The 'testsudoers' test series expects user 'root' to exist, but
+       ;; the chroot's /etc/passwd doesn't have it.  Turn off the tests.
+       #:tests? #f))
+    (inputs
+     `(("groff" ,groff)
+       ("linux-pam" ,linux-pam)
+       ("coreutils" ,coreutils)))
+    (home-page "http://www.sudo.ws/")
+    (synopsis "Run commands as root")
+    (description
+     "Sudo (su \"do\") allows a system administrator to delegate authority to
+give certain users (or groups of users) the ability to run some (or all)
+commands as root or another user while providing an audit trail of the
+commands and their arguments.")
+
+    ;; See <http://www.sudo.ws/sudo/license.html>.
+    (license x11)))
+
+(define-public wpa-supplicant
+  (package
+    (name "wpa-supplicant")
+    (version "2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://hostap.epitest.fi/releases/wpa_supplicant-"
+                    version
+                    ".tar.gz"))
+              (sha256
+               (base32
+                "0xxjw7lslvql1ykfbwmbhdrnjsjljf59fbwf837418s97dz2wqwi"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases (alist-replace
+                 'configure
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   (chdir "wpa_supplicant")
+                   (copy-file "defconfig" ".config")
+                   (let ((port (open-file ".config" "al")))
+                     (display "
+      CONFIG_DEBUG_SYSLOG=y
+      CONFIG_CTRL_IFACE_DBUS=y
+      CONFIG_CTRL_IFACE_DBUS_NEW=y
+      CONFIG_CTRL_IFACE_DBUS_INTRO=y
+      CONFIG_DRIVER_NL80211=y
+      CFLAGS += $(shell pkg-config libnl-3.0 --cflags)
+      CONFIG_LIBNL32=y
+      CONFIG_READLINE=y\n" port)
+                     (close-port port)))
+                 %standard-phases)
+
+      #:make-flags (list "CC=gcc"
+                         (string-append "BINDIR=" (assoc-ref %outputs "out")
+                                        "/sbin")
+                         (string-append "LIBDIR=" (assoc-ref %outputs "out")
+                                        "/lib"))
+      #:tests? #f))
+    (inputs
+     `(("readline" ,readline)
+       ("libnl" ,libnl)
+       ("dbus" ,dbus)
+       ("openssl" ,o:openssl)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "http://hostap.epitest.fi/wpa_supplicant/")
+    (synopsis "Connecting to WPA and WPA2-protected wireless networks")
+    (description
+     "wpa_supplicant is a WPA Supplicant with support for WPA and WPA2 (IEEE
+802.11i / RSN).  Supplicant is the IEEE 802.1X/WPA component that is used in
+the client stations.  It implements key negotiation with a WPA Authenticator
+and it controls the roaming and IEEE 802.11 authentication/association of the
+WLAN driver.
+
+This package provides the 'wpa_supplicant' daemon and the 'wpa_cli' command.")
+
+    ;; In practice, this is linked against Readline, which makes it GPLv3+.
+    (license bsd-3)))
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 86f8361a63..9ed978536d 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -21,6 +21,7 @@
 (define-module (gnu packages algebra)
   #:use-module (gnu packages)
   #:use-module (gnu packages multiprecision)
+  #:use-module (gnu packages mpi)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages flex)
@@ -123,14 +124,14 @@ PARI is also available as a C library to allow for faster computations.")
 (define-public gp2c
   (package
    (name "gp2c")
-   (version "0.0.8pl1")
+   (version "0.0.9pl1")
    (source (origin
             (method url-fetch)
             (uri (string-append
                   "http://pari.math.u-bordeaux.fr/pub/pari/GP2C/gp2c-"
                   version ".tar.gz"))
             (sha256 (base32
-                     "0r1xrshgx0db2snmacwvg5r99fhd9rpblcfs86pfsp23hnjxj9i0"))))
+                     "1p36060vwhn38j77r4c3jqyaslvhvgm6fdw2486k7krxk5ai7ph5"))))
    (build-system gnu-build-system)
    (native-inputs `(("perl" ,perl)))
    (inputs `(("pari-gp" ,pari-gp)))
@@ -196,14 +197,14 @@ syntax is similar to that of C, so basic usage is familiar.  It also includes
 (define-public fftw
   (package
     (name "fftw")
-    (version "3.3.3")
+    (version "3.3.4")
     (source (origin
              (method url-fetch)
              (uri (string-append "ftp://ftp.fftw.org/pub/fftw/fftw-"
                                  version".tar.gz"))
              (sha256
               (base32
-               "1wwp9b2va7vkq3ay7a9jk22nr4x5q6m37rzqy2j8y3d11c5grkc5"))))
+               "10h9mzjxnwlsjziah4lri85scc05rlajz39nqf3mbh4vja8dw34g"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--enable-shared" "--enable-openmp")
@@ -237,3 +238,17 @@ cosine/ sine transforms or DCT/DST).")
     (description
      (string-append (package-description fftw)
                     "  Single-precision version."))))
+
+(define-public fftw-openmpi
+  (package (inherit fftw)
+    (name "fftw-openmpi")
+    (inputs
+     `(("openmpi" ,openmpi)
+       ,@(package-inputs fftw)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments fftw)
+       ((#:configure-flags cf)
+        `(cons "--enable-mpi" ,cf))))
+    (description
+     (string-append (package-description fftw)
+                    "  With OpenMPI parallelism support."))))
diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm
index bd38f2a901..db1db45fc1 100644
--- a/gnu/packages/autotools.scm
+++ b/gnu/packages/autotools.scm
@@ -74,6 +74,20 @@ know anything about Autoconf or M4.")
        (base32
         "1fjm21k2na07f3vasf288a0zx66lbv0hd3l9bvv3q8p62s3pg569"))))))
 
+(define-public autoconf-2.64
+  ;; As of GDB 7.8, GDB is still developed using this version of Autoconf.
+  (package (inherit autoconf)
+    (version "2.64")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://gnu/autoconf/autoconf-"
+                          version ".tar.xz"))
+      (sha256
+       (base32
+        "0j3jdjpf5ly39dlp0bg70h72nzqr059k0x8iqxvaxf106chpgn9j"))))))
+
+
 (define* (autoconf-wrapper #:optional (autoconf autoconf))
   "Return an wrapper around AUTOCONF that generates `configure' scripts that
 use our own Bash instead of /bin/sh in shebangs.  For that reason, it should
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
new file mode 100644
index 0000000000..574bb11816
--- /dev/null
+++ b/gnu/packages/backup.scm
@@ -0,0 +1,71 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.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 backup)
+  #:use-module (guix packages)
+  #:use-module (guix licenses)
+  #:use-module (guix download)
+  #:use-module (guix build-system python)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages rsync)
+  #:use-module (srfi srfi-1))
+
+(define-public duplicity
+  (package
+    (name "duplicity")
+    (version "0.6.24")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "https://code.launchpad.net/duplicity/"
+                          (string-join (take (string-split version #\.) 2) ".")
+                          "-series/" version "/+download/duplicity-"
+                          version ".tar.gz"))
+      (sha256
+       (base32
+        "0l14nrhbgkyjgvh339bbhnm6hrdwrjadphq1jmpi0mcgcdbdfh8x"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python2-setuptools" ,python2-setuptools)))
+    (inputs
+     `(("python" ,python-2)
+       ("librsync" ,librsync)
+       ("mock" ,python2-mock)           ;for testing
+       ("lockfile" ,python2-lockfile)
+       ("gnupg" ,gnupg-1)))             ;gpg executable needed
+    (arguments
+     `(#:python ,python-2               ;setup assumes Python 2
+       #:test-target "test"
+       #:phases (alist-cons-before
+                 'check 'patch-tests
+                 (lambda _
+                   (substitute* "testing/functional/__init__.py"
+                     (("/bin/sh") (which "sh"))))
+                 %standard-phases)))
+    (home-page "http://duplicity.nongnu.org/index.html")
+    (synopsis "Encrypted backup using rsync algorithm")
+    (description
+     "Duplicity backs up directories by producing encrypted tar-format volumes
+and uploading them to a remote or local file server.  Because duplicity uses
+librsync, the incremental archives are space efficient and only record the
+parts of files that have changed since the last backup.  Because duplicity
+uses GnuPG to encrypt and/or sign these archives, they will be safe from
+spying and/or modification by the server.")
+    (license gpl2+)))
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 8771d2bf37..0139a6b506 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -1184,4 +1184,7 @@ and binaries, plus debugging symbols in the 'debug' output), and Binutils.")
 (define-public gcc-toolchain-4.8
   (gcc-toolchain gcc-final))
 
+(define-public gcc-toolchain-4.9
+  (gcc-toolchain gcc-4.9))
+
 ;;; base.scm ends here
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
new file mode 100644
index 0000000000..e21b7fbee2
--- /dev/null
+++ b/gnu/packages/bittorrent.scm
@@ -0,0 +1,91 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.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 bittorrent)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module ((guix licenses)
+                #:renamer (symbol-prefix-proc 'l:))
+  #:use-module (gnu packages openssl)
+  #:use-module (gnu packages libevent)
+  #:use-module (gnu packages curl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages file)
+  #:use-module (gnu packages linux)
+  #:use-module ((gnu packages compression)
+                #:select (zlib))
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gtk))
+
+(define-public transmission
+  (package
+    (name "transmission")
+    (version "2.83")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://transmission.cachefly.net/transmission-"
+                    version ".tar.xz"))
+              (sha256
+               (base32
+                "0cqlgl6jmjw1caybz6nzh3l8z0jak1dxba01isv72zvy2r8b1qdh"))))
+    (build-system gnu-build-system)
+    (outputs '("out"                      ; library and command-line interface
+               "gui"))                    ; graphical user interface
+    (arguments
+     '(#:phases (alist-cons-after
+                 'install 'move-gui
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   ;; Move the GUI to its own output, so that "out" doesn't
+                   ;; depend on GTK+.
+                   (let ((out (assoc-ref outputs "out"))
+                         (gui (assoc-ref outputs "gui")))
+                     (mkdir-p (string-append gui "/bin"))
+                     (rename-file (string-append out "/bin/transmission-gtk")
+                                  (string-append gui
+                                                 "/bin/transmission-gtk"))))
+                 %standard-phases)))
+    (inputs
+     `(("inotify-tools" ,inotify-tools)
+       ("libevent" ,libevent)
+       ("curl" ,curl)
+       ("openssl" ,openssl)
+       ("file" ,file)
+       ("zlib" ,zlib)
+       ("gtk+" ,gtk+)))
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (home-page "http://www.transmissionbt.com/")
+    (synopsis "Fast and easy BitTorrent client")
+    (description
+     "Transmission is a BitTorrent client that comes with graphical,
+textual, and Web user interfaces.  Transmission also has a daemon for
+unattended operationg.  It supports local peer discovery, full encryption,
+DHT, µTP, PEX and Magnet Links.")
+
+    ;; COPYING reads:
+    ;;
+    ;;     Transmission can be redistributed and/or modified under the terms of
+    ;; the GNU GPLv2 (http://www.gnu.org/licenses/license-list.html#GPLv2),
+    ;; the GNU GPLv3 (http://www.gnu.org/licenses/license-list.html#GNUGPLv3),
+    ;; or any future license endorsed by Mnemosyne LLC.
+    ;;
+    ;; A few files files carry an MIT/X11 license header.
+    (license l:gpl3+)))
diff --git a/gnu/packages/calcurse.scm b/gnu/packages/calcurse.scm
index 84dab0c53c..c13cfeaa37 100644
--- a/gnu/packages/calcurse.scm
+++ b/gnu/packages/calcurse.scm
@@ -16,7 +16,7 @@
 ;;; 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 autogen)
+(define-module (gnu packages calcurse)
   #:use-module (guix packages)
   #:use-module (guix licenses)
   #:use-module (guix download)
diff --git a/gnu/packages/ccache.scm b/gnu/packages/ccache.scm
new file mode 100644
index 0000000000..4918ec9609
--- /dev/null
+++ b/gnu/packages/ccache.scm
@@ -0,0 +1,57 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.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 ccache)
+  #:use-module (guix packages)
+  #:use-module ((guix licenses) #:select (gpl3+))
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages compression))
+
+(define-public ccache
+  (package
+    (name "ccache")
+    (version "3.1.9")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "https://www.samba.org/ftp/ccache/ccache-"
+                          version ".tar.xz"))
+      (sha256
+       (base32
+        "1i06015jjc0n55xgvhv2h37fjp0i7z8a10s0v40f87c5mprzv0a9"))
+      (patches (list (search-patch "ccache-stdc-predef-test.patch")))))
+    (build-system gnu-build-system)
+    (native-inputs `(("perl" ,perl)))   ;for test.sh
+    (inputs `(("zlib" ,zlib)))
+    (arguments
+     '(#:phases (alist-cons-before
+                 'check 'patch-test-shebangs
+                 (lambda _
+                   (substitute* '("test/test_hashutil.c" "test.sh")
+                     (("#!/bin/sh") (string-append "#!" (which "sh")))))
+                 %standard-phases)))
+    (home-page "https://ccache.samba.org/")
+    (synopsis "Compiler cache")
+    (description
+     "Ccache is a compiler cache.  It speeds up recompilation by caching
+previous compilations and detecting when the same compilation is being done
+again.  Supported languages are C, C++, Objective-C and Objective-C++.")
+    (license gpl3+)))
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index a4c6f53202..c8328076cf 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -238,6 +238,29 @@ LZO is written in ANSI C.  Both the source code and the compressed data
 format are designed to be portable across platforms.")
     (license license:gpl2+)))
 
+(define-public lzop
+  (package
+    (name "lzop")
+    (version "1.03")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://www.lzop.org/download/lzop-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "1jdjvc4yjndf7ihmlcsyln2rbnbaxa86q4jskmkmm7ylfy65nhn1"))))
+    (build-system gnu-build-system)
+    (inputs `(("lzo" ,lzo)))
+    (home-page "http://www.lzop.org/")
+    (synopsis "Compress or expand files")
+    (description
+     "Lzop is a file compressor which is very similar to gzip.  Lzop uses the
+LZO data compression library for compression services, and its main advantages
+over gzip are much higher compression and decompression speed (at the cost of
+some compression ratio).")
+    (license license:gpl2+)))
+
 (define-public lzip
   (package
     (name "lzip")
diff --git a/gnu/packages/cyrus-sasl.scm b/gnu/packages/cyrus-sasl.scm
index b724d4fc2f..1913f93f0d 100644
--- a/gnu/packages/cyrus-sasl.scm
+++ b/gnu/packages/cyrus-sasl.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -34,8 +34,12 @@
    (version "2.1.26")
    (source (origin
             (method url-fetch)
-            (uri (string-append "ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-" version
-                                ".tar.gz"))
+            (uri (list (string-append
+                        "http://cyrusimap.org/releases/cyrus-sasl-"
+                        version ".tar.gz")
+                       (string-append
+                        "ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-"
+                        version ".tar.gz")))
             (sha256 (base32
                      "1hvvbcsg21nlncbgs0cgn3iwlnb3vannzwsp6rwvnn9ba4v53g4g"))))
    (build-system gnu-build-system)
diff --git a/gnu/packages/doxygen.scm b/gnu/packages/doxygen.scm
new file mode 100644
index 0000000000..8c51ae858e
--- /dev/null
+++ b/gnu/packages/doxygen.scm
@@ -0,0 +1,74 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
+;;;
+;;; 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 doxygen)
+  #:use-module ((guix licenses) #:select (gpl3+))
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages bison)
+  #:use-module (gnu packages flex)
+  #:use-module (gnu packages graphviz)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages python))
+
+(define-public doxygen
+  (package
+    (name "doxygen")
+    (version "1.8.7")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "http://ftp.stack.nl/pub/users/dimitri/"
+                                 name "-" version ".src.tar.gz"))
+             (sha256
+              (base32
+               "1ng3dv5fninhfi2fj75ghkr5jwsl653fxv2sxhaswj11x2vcdsn6"))
+             (patches (list (search-patch "doxygen-tmake.patch")
+                            (search-patch "doxygen-test.patch")))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("bison" ,bison)
+       ("flex" ,flex)
+       ("libxml2" ,libxml2) ; provides xmllint for the tests
+       ("perl" ,perl) ; for the tests
+       ("python" ,python-2))) ; for creating the documentation
+    (propagated-inputs
+     `(("graphviz" ,graphviz)))
+    (arguments
+     `(#:test-target "test"
+       #:phases
+         (alist-replace
+          'configure
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let ((out (assoc-ref outputs "out")))
+              ;; do not pass "--enable-fast-install", which makes the
+              ;; configure process fail
+              (zero? (system*
+                      "./configure"
+                      "--prefix" out))))
+          %standard-phases)))
+    (home-page "http://www.stack.nl/~dimitri/doxygen/")
+    (synopsis "tool for generating documentation from annotated sources")
+    (description "Doxygen is the de facto standard tool for generating
+documentation from annotated C++ sources, but it also supports other popular
+programming languages such as C, Objective-C, C#, PHP, Java, Python,
+IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl,
+and to some extent D.")
+    (license gpl3+)))
diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm
new file mode 100644
index 0000000000..96af2bf649
--- /dev/null
+++ b/gnu/packages/ftp.scm
@@ -0,0 +1,56 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.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 ftp)
+  #:use-module ((guix licenses) #:select (gpl3+))
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages readline)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages gnutls)
+  #:use-module (gnu packages compression))
+
+(define-public lftp
+  (package
+    (name "lftp")
+    (version "4.4.15")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://lftp.yar.ru/ftp/lftp-"
+                                  version ".tar.xz"))
+              (sha256
+               (base32
+                "0s38vc2ij869dwx3i1c7sk96mqv0hknf3cqf86av59rqnix0px3m"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("zlib" ,zlib)
+       ("readline" ,readline)
+       ("gnutls" ,gnutls)))
+    (home-page "http://lftp.yar.ru/")
+    (synopsis "Command-line file transfer program")
+    (description
+     "LFTP is a sophisticated FTP/HTTP client, and a file transfer program
+supporting a number of network protocols.  Like Bash, it has job control and
+uses the Readline library for input.  It has bookmarks, a built-in mirror
+command, and can transfer several files in parallel.  It was designed with
+reliability in mind.")
+    (license gpl3+)))
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 46fbd21805..0e5616cd59 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 John Darrington <jmd@gnu.org>
+;;; Copyright © 2014 David Thompson <dthompson2@worcester.edu>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -32,6 +33,7 @@
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages sdl)
   #:use-module (guix build-system gnu))
 
 (define-public gnubg
@@ -94,3 +96,65 @@ you to set the size of the cube (the default is 3x3) or to change the colors.
  You may even apply photos to the faces instead of colors.  The game is
 scriptable with Guile.")
     (license gpl3+)))
+
+(define-public abbaye
+  (package
+    (name "abbaye")
+    (version "1.13")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://abbaye-for-linux.googlecode.com/files/abbaye-for-linux-src-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "1wgvckgqa2084rbskxif58wbb83xbas8s1i8s7d57xbj08ryq8rk"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:modules ((ice-9 match)
+                  (guix build gnu-build-system)
+                  (guix build utils))
+       #:phases (alist-cons-after
+                 'set-paths 'set-sdl-paths
+                 (lambda* (#:key inputs outputs (search-paths '()) #:allow-other-keys)
+                   (define input-directories
+                     (match inputs
+                       (((_ . dir) ...)
+                        dir)))
+                   ;; This package does not use pkg-config, so modify CPATH
+                   ;; variable to point to include/SDL for SDL header files.
+                   (set-path-environment-variable "CPATH"
+                                                  '("include/SDL")
+                                                  input-directories))
+                 (alist-cons-after
+                  'patch-source-shebangs 'patch-makefile
+                  (lambda* (#:key outputs #:allow-other-keys)
+                    ;; Replace /usr with package output directory.
+                    (for-each (lambda (file)
+                                (substitute* file
+                                  (("/usr") (assoc-ref outputs "out"))))
+                              '("makefile" "src/pantallas.c" "src/comun.h")))
+                  (alist-cons-before
+                   'install 'make-install-dirs
+                   (lambda* (#:key outputs #:allow-other-keys)
+                     (let ((prefix (assoc-ref outputs "out")))
+                       ;; Create directories that the makefile assumes exist.
+                       (mkdir-p (string-append prefix "/bin"))
+                       (mkdir-p (string-append prefix "/share/applications"))))
+                   ;; No configure script.
+                   (alist-delete 'configure %standard-phases))))
+       #:tests? #f)) ;; No check target.
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs `(("sdl" ,sdl)
+              ("sdl-gfx" ,sdl-gfx)
+              ("sdl-image" ,sdl-image)
+              ("sdl-mixer" ,sdl-mixer)
+              ("sdl-ttf" ,sdl-ttf)))
+    (home-page "http://code.google.com/p/abbaye-for-linux/")
+    (synopsis "GNU/Linux port of the indie game \"l'Abbaye des Morts\"")
+    (description "L'Abbaye des Morts is a 2D platform game set in 13th century
+France.  The Cathars, who preach about good Christian beliefs, were being
+expelled by the Catholic Church out of the Languedoc region in France.  One of
+them, called Jean Raymond, found an old church in which to hide, not knowing
+that beneath its ruins lay buried an ancient evil.")
+    (license gpl3+)))
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index cb7817c084..a8d63fc98a 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -227,6 +227,17 @@ Go.  It also includes runtime support libraries for these languages.")
               (base32
                "1j6dwgby4g3p3lz7zkss32ghr45zpdidrg8xvazvn91lqxv25p09"))))))
 
+(define-public gcc-4.9
+  (package (inherit gcc-4.7)
+    (version "4.9.0")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://gnu/gcc/gcc-"
+                                 version "/gcc-" version ".tar.bz2"))
+             (sha256
+              (base32
+               "0mqjxpw2klskls00lwx1k24pnyzm3whqxg3hk74c3sddgfllgc5r"))))))
+
 (define (custom-gcc gcc name languages)
   "Return a custom version of GCC that supports LANGUAGES."
   (package (inherit gcc)
diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm
index f521ef5839..1b8a0bbe22 100644
--- a/gnu/packages/gdb.scm
+++ b/gnu/packages/gdb.scm
@@ -33,14 +33,14 @@
 (define-public gdb
   (package
     (name "gdb")
-    (version "7.7")
+    (version "7.7.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/gdb/gdb-"
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "08vcb97j1b7vxwq6088wb6s3g3bm8iwikd922y0xsgbbxv3d2104"))))
+               "199sn1p0gzli6icp9dcvrphdvyi7hm4cc9zhziq0q6vg81h55g8d"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f ; FIXME "make check" fails on single-processor systems.
@@ -57,7 +57,11 @@
        ("readline" ,readline)
        ("ncurses" ,ncurses)
        ("python" ,python-wrapper)
-       ("dejagnu" ,dejagnu)))
+       ("dejagnu" ,dejagnu)
+
+       ;; Allow use of XML-formatted syscall information.  This enables 'catch
+       ;; syscall' and similar commands.
+       ("libxml2" ,libxml2)))
     (native-inputs
       `(("texinfo" ,texinfo)))
     (home-page "http://www.gnu.org/software/gdb/")
diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
new file mode 100644
index 0000000000..bdcd46f38e
--- /dev/null
+++ b/gnu/packages/gimp.scm
@@ -0,0 +1,63 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.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 gimp)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module ((guix licenses)
+                #:renamer (symbol-prefix-proc 'license:))
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages libpng)
+  #:use-module (gnu packages libjpeg)
+  #:use-module ((gnu packages ghostscript)
+                #:select (lcms))
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages photo)
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages imagemagick))
+
+(define-public babl
+  (package
+    (name "babl")
+    (version "0.1.10")
+    (source (origin
+              (method url-fetch)
+              (uri (list (string-append "http://ftp.gtk.org/pub/babl/0.1/babl-"
+                                        version ".tar.bz2")
+                         (string-append "ftp://ftp.gtk.org/pub/babl/0.1/babl-"
+                                        version ".tar.bz2")))
+              (sha256
+               (base32
+                "1x2mb7zfbvk9d0a7h5cpdff9hhjsadxvqml2jay2bpf7x9nc6gwl"))))
+    (build-system gnu-build-system)
+    (home-page "http://gegl.org/babl/")
+    (synopsis "Image pixel format conversion library")
+    (description
+     "babl is a dynamic, any to any, pixel format translation library.
+It allows converting between different methods of storing pixels known as
+pixel formats that have with different bitdepths and other data
+representations, color models and component permutations.
+
+A vocabulary to formulate new pixel formats from existing primitives is
+provided as well as the framework to add new color models and data types.")
+    (license license:lgpl3+)))
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 49ffaa8f6e..77f21f95ce 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -160,6 +160,17 @@ shared NFS home directories.")
       ;; In 'gio/tests', 'gdbus-test-codegen-generated.h' is #included in a
       ;; file that gets compiled possibly before it has been fully generated.
       #:parallel-tests? #f))
+
+   (native-search-paths
+    ;; This variable is not really "owned" by GLib, but several related
+    ;; packages refer to it: gobject-introspection's tools use it as a search
+    ;; path for .gir files, and it's also a search path for schemas produced
+    ;; by 'glib-compile-schemas'.
+    (list (search-path-specification
+           (variable "XDG_DATA_DIRS")
+           (directories '("share")))))
+   (search-paths native-search-paths)
+
    (synopsis "Thread-safe general utility library; basis of GTK+ and GNOME")
    (description
     "GLib provides data structure handling for C, portability wrappers,
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 5d17b019fd..232afc6e44 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -17,25 +18,31 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages gnome)
-  #:use-module ((guix licenses) #:select (gpl2 gpl2+ lgpl2.0+ lgpl2.1+ lgpl3))
+  #:use-module ((guix licenses)
+                #:renamer (symbol-prefix-proc 'license:))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
+  #:use-module (gnu packages bison)
+  #:use-module (gnu packages flex)  
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages pdf)
+  #:use-module (gnu packages popt)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages libcanberra)
+  #:use-module (gnu packages libjpeg)
   #:use-module (gnu packages libpng)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages gl)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages xorg))
 
 (define-public brasero
@@ -75,7 +82,7 @@
     (description "Brasero is an application to burn CD/DVD for the Gnome
 Desktop.  It is designed to be as simple as possible and has some unique
 features to enable users to create their discs easily and quickly.")
-    (license gpl2+)))
+    (license license:gpl2+)))
 
 (define-public gnome-desktop
   (package
@@ -116,7 +123,7 @@ stability. Documentation for the API is available with gtk-doc.
 
 The gnome-about program helps find which version of GNOME is installed.")
     ; Some bits under the LGPL.
-    (license gpl2+)))
+    (license license:gpl2+)))
 
 (define-public gnome-doc-utils
   (package
@@ -146,7 +153,7 @@ The gnome-about program helps find which version of GNOME is installed.")
      "Gnome-doc-utils is a collection of documentation utilities for the
 Gnome project.  It includes xml2po tool which makes it easier to translate
 and keep up to date translations of documentation.")
-    (license gpl2+))) ; xslt under lgpl
+    (license license:gpl2+))) ; xslt under lgpl
 
 (define-public libgnome-keyring
   (package
@@ -177,7 +184,7 @@ and keep up to date translations of documentation.")
      "Client library to access passwords from the GNOME keyring.")
 
     ;; Though a couple of files are LGPLv2.1+.
-    (license lgpl2.0+)))
+    (license license:lgpl2.0+)))
 
 (define-public evince
   (package
@@ -242,7 +249,7 @@ and keep up to date translations of documentation.")
 currently supports PDF, PostScript, DjVu, TIFF and DVI.  The goal
 of Evince is to replace the multiple document viewers that exist
 on the GNOME Desktop with a single simple application.")
-    (license gpl2+)))
+    (license license:gpl2+)))
 
 (define-public gsettings-desktop-schemas
   (package
@@ -269,7 +276,7 @@ on the GNOME Desktop with a single simple application.")
     (description
      "Gsettings-desktop-schemas contains a collection of GSettings schemas
 for settings shared by various components of the GNOME desktop.")
-    (license lgpl2.1+)))
+    (license license:lgpl2.1+)))
 
 (define-public icon-naming-utils
   (package
@@ -294,7 +301,7 @@ for settings shared by various components of the GNOME desktop.")
      "To help with the transition to the Freedesktop Icon Naming
 Specification, the icon naming utility maps the icon names used by the
 GNOME and KDE desktops to the icon names proposed in the specification.")
-    (license lgpl2.1+)))
+    (license license:lgpl2.1+)))
 
 (define-public gnome-icon-theme
   (package
@@ -321,7 +328,7 @@ GNOME and KDE desktops to the icon names proposed in the specification.")
      "GNOME icon theme")
     (description
      "Icons for the GNOME desktop.")
-    (license lgpl3))) ; or Creative Commons BY-SA 3.0
+    (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
 
 (define-public shared-mime-info
   (package
@@ -352,7 +359,7 @@ and the update-mime-database command used to extend it.  It requires glib2 to
 be installed for building the update command.  Additionally, it uses intltool
 for translations, though this is only a dependency for the maintainers.  This
 database is translated at Transifex.")
-    (license gpl2+)))
+    (license license:gpl2+)))
 
 (define-public hicolor-icon-theme
   (package
@@ -374,7 +381,7 @@ database is translated at Transifex.")
      "Freedesktop icon theme")
     (description
      "Freedesktop icon theme.")
-    (license gpl2)))
+    (license license:gpl2)))
 
 (define-public libnotify
   (package
@@ -405,7 +412,7 @@ database is translated at Transifex.")
 notification daemon, as defined in the Desktop Notifications spec. These
 notifications can be used to inform the user about an event or display
 some form of information without getting in the user's way.")
-    (license lgpl2.1+)))
+    (license license:lgpl2.1+)))
 
 (define-public libpeas
   (package
@@ -421,45 +428,16 @@ some form of information without getting in the user's way.")
        (base32
         "13fzyzv6c0cfdj83z1s16lv8k997wpnzyzr0wfwcfkcmvz64g1q0"))))
     (build-system gnu-build-system)
-    (arguments
-     `(#:modules ((guix build gnome)
-                  (guix build gnu-build-system)
-                  (guix build utils))
-       #:imported-modules ((guix build gnome)
-                           (guix build gnu-build-system)
-                           (guix build utils))
-       #:phases
-        (alist-replace
-         'configure
-         (lambda* (#:key inputs #:allow-other-keys #:rest args)
-          (let ((configure (assoc-ref %standard-phases 'configure)))
-           (substitute* "libpeas-gtk/Makefile.in"
-            (("--add-include-path")
-             (string-append
-               " --add-include-path=" (gir-directory inputs "atk")
-               " --add-include-path=" (gir-directory inputs "gdk-pixbuf")
-               " --add-include-path=" (gir-directory inputs "gtk+")
-               " --add-include-path=" (gir-directory inputs "pango")
-               " --add-include-path")))
-           (substitute* "libpeas-gtk/Makefile.in"
-            (("--includedir=\\$\\(top_builddir")
-             (string-append
-              " --includedir=" (gir-directory inputs "atk")
-              " --includedir=" (gir-directory inputs "gdk-pixbuf")
-              " --includedir=" (gir-directory inputs "gtk+")
-              " --includedir=" (gir-directory inputs "pango")
-              " --includedir=$(top_builddir")))
-           (apply configure args)))
-         %standard-phases)))
     (inputs
      `(("atk" ,atk)
        ("gdk-pixbuf" ,gdk-pixbuf)
        ("glib" ,glib)
-       ("gobject-introspection" ,gobject-introspection)
        ("gtk+" ,gtk+)
-       ("intltool" ,intltool)
-       ("pango" ,pango)
-       ("pkg-config" ,pkg-config)))
+       ("pango" ,pango)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)))
     (home-page "https://wiki.gnome.org/Libpeas")
     (synopsis "GObject plugin system")
     (description
@@ -469,7 +447,7 @@ set of features including, but not limited to: multiple extension points; on
 demand (lazy) programming language support for C, Python and JS; simplicity of
 the API")
 
-    (license lgpl2.0+)))
+    (license license:lgpl2.0+)))
 
 (define-public gtkglext
   (package
@@ -495,7 +473,7 @@ the API")
     (description "GtkGLExt is an OpenGL extension to GTK+. It provides
 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
 API add-ons to make GTK+ widgets OpenGL-capable.")
-    (license lgpl2.1+)))
+    (license license:lgpl2.1+)))
 
 (define-public glade3
   (package
@@ -522,4 +500,593 @@ API add-ons to make GTK+ widgets OpenGL-capable.")
     (description "Glade is a rapid application development (RAD) tool to
 enable quick & easy development of user interfaces for the GTK+ toolkit and
 the GNOME desktop environment.")
-    (license lgpl2.0+)))
+    (license license:lgpl2.0+)))
+
+(define-public libcroco
+  (package
+    (name "libcroco")
+    (version "0.6.8")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://gnome/sources/libcroco/0.6/libcroco-"
+                    version
+                    ".tar.xz"))
+              (sha256
+               (base32
+                "0w453f3nnkbkrly7spx5lx5pf6mwynzmd5qhszprq8amij2invpa"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glib" ,glib)
+       ("libxml2" ,libxml2)
+       ("zlib" ,zlib)))
+    (home-page "https://github.com/GNOME/libcroco")
+    (synopsis "CSS2 parsing and manipulation library")
+    (description
+     "Libcroco is a standalone CSS2 parsing and manipulation library.
+The parser provides a low level event driven SAC-like API and a CSS object
+model like API.  Libcroco provides a CSS2 selection engine and an experimental
+XML/CSS rendering engine.")
+
+    ;; LGPLv2.1-only.
+    (license license:lgpl2.1)))
+
+(define-public libgsf
+  (package
+    (name "libgsf")
+    (version "1.14.30")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/libgsf/1.14/libgsf-"
+                                  version ".tar.xz"))
+              (sha256
+               (base32
+                "0w2v1a9sxsymd1mcy4mwsz4r6za9iwq69rj86nb939p41d4c6j6b"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("python" ,python)
+       ("zlib" ,zlib)
+       ("bzip2" ,bzip2)))
+    (propagated-inputs
+     `(("gdk-pixbuf" ,gdk-pixbuf)
+       ("glib" ,glib)
+       ("libxml2" ,libxml2)))
+    (home-page "http://www.gnome.org/projects/libgsf")
+    (synopsis "GNOME's Structured File Library")
+    (description
+     "Libgsf aims to provide an efficient extensible I/O abstraction for
+dealing with different structured file formats.")
+
+    ;; LGPLv2.1-only.
+    (license license:lgpl2.1)))
+
+(define-public librsvg
+  (package
+    (name "librsvg")
+    (version "2.40.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://gnome/sources/librsvg/2.40/librsvg-"
+                    version ".tar.xz"))
+              (sha256
+               (base32
+                "071959yjb2i1bja7ciy4bmpnd6fn2is9jjqsvvvnsqwl69j9n128"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (alist-cons-before
+        'configure 'augment-gir-search-path
+        (lambda* (#:key inputs #:allow-other-keys)
+          (substitute* "gdk-pixbuf-loader/Makefile.in"
+            ;; By default the gdk-pixbuf loader is installed under
+            ;; gdk-pixbuf's prefix.  Work around that.
+            (("gdk_pixbuf_moduledir = .*$")
+             (string-append "gdk_pixbuf_moduledir = "
+                            "$(prefix)/lib/gdk-pixbuf-2.0/2.0.10/"
+                             "loaders\n"))
+            ;; Likewise, create a separate 'loaders.cache' file.
+            (("gdk_pixbuf_cache_file = .*$")
+             "gdk_pixbuf_cache_file = $(gdk_pixbuf_moduledir).cache\n")))
+        %standard-phases)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
+    (inputs
+     `(("pango" ,pango)
+       ("libcroco" ,libcroco)
+       ("bzip2" ,bzip2)
+       ("libgsf" ,libgsf)
+       ("libxml2" ,libxml2)))
+    (propagated-inputs
+     ;; librsvg-2.0.pc refers to all of that.
+     `(("cairo" ,cairo)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("glib" ,glib)))
+    (home-page "https://wiki.gnome.org/LibRsvg")
+    (synopsis "Render SVG files using Cairo")
+    (description
+     "librsvg is a C library to render SVG files using the Cairo 2D graphics
+library.")
+    (license license:lgpl2.0+)))
+
+(define-public libidl
+  (package
+    (name "libidl")
+    (version "0.8.14")
+    (source (origin
+              (method url-fetch)
+              (uri (let ((upstream-name "libIDL"))
+		     (string-append
+		      "mirror://gnome/sources/" upstream-name "/" (string-take version 3) "/" upstream-name "-"
+		      version
+		      ".tar.bz2")))
+              (sha256
+               (base32
+                "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
+    (build-system gnu-build-system)
+    (inputs `(("glib" ,glib)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("flex", flex)
+       ("bison" ,bison)))
+    (home-page "http://freecode.com/projects/libidl")
+    (synopsis "Create trees of CORBA Interface Definition Language files")
+    (description  "libidl is a library for creating trees of CORBA Interface
+Definition Language (idl) files, which is a specification for defining
+portable interfaces. libidl was initially written for orbit (the orb from the
+GNOME project, and the primary means of libidl distribution). However, the
+functionality was designed to be as reusable and portable as possible.") 
+    (license license:lgpl2.0+)))
+
+
+(define-public orbit2
+  (package
+    (name "orbit2")
+    (version "2.14.19")
+    (source (origin
+              (method url-fetch)
+              (uri (let ((upstream-name "ORBit2")) 
+		     (string-append
+		      "mirror://gnome/sources/" upstream-name "/" (string-take version 4) "/" upstream-name "-"
+		      version
+		      ".tar.bz2")))
+              (sha256
+               (base32 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
+    (build-system gnu-build-system)
+    (arguments
+     ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
+     `(#:configure-flags '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
+                         ;; ... which they then completly ignore !!
+                         #:phases
+                         (alist-cons-before
+                          'configure 'ignore-deprecations
+                          (lambda _
+                            (substitute* "linc2/src/Makefile.in"
+                              (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS")))
+                          %standard-phases)))
+    (inputs `(("glib" ,glib)
+              ("libidl" ,libidl)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "https://projects.gnome.org/orbit2/")
+    (synopsis "CORBA 2.4-compliant Object Request Broker")
+    (description  "orbit2 is a CORBA 2.4-compliant Object Request Broker (orb)
+featuring mature C, C++ and Python bindings.") 
+    ;; Licence notice is unclear.  The Web page simply say "GPL" without giving a version.
+    ;; SOME of the code files have licence notices for GPLv2+
+    ;; The tarball contains files of the text of GPLv2 and LGPLv2
+    (license license:gpl2+))) 
+
+
+(define-public libbonobo
+  (package
+    (name "libbonobo")
+    (version "2.32.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://gnome/sources/" name "/" (string-take version 4) "/" name "-"
+                    version
+                    ".tar.bz2"))
+              (sha256
+               (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))))
+    (build-system gnu-build-system)
+    (arguments
+     ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
+     `(#:configure-flags '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
+                         ;; ... which they then completly ignore !!
+                         #:phases
+                         (alist-cons-before
+                          'configure 'ignore-deprecations
+                          (lambda _
+                            (substitute* "activation-server/Makefile.in"
+                              (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS")))
+                          %standard-phases)))
+    (inputs `(("popt" ,popt)
+              ("libxml2" ,libxml2)))
+    ;; The following are Required by the .pc file
+    (propagated-inputs  
+     `(("glib" ,glib)
+       ("orbit2" ,orbit2)))
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("flex" ,flex)
+       ("bison" ,bison)))
+    (home-page "https://developer.gnome.org/libbonobo/")
+    (synopsis "Framework for creating reusable components for use in GNOME applications")
+    (description "Bonobo is a framework for creating reusable components for
+use in GNOME applications, built on top of CORBA.") 
+    ;; Licence not explicitly stated.  Source files contain no licence notices.
+    ;; Tarball contains text of both GPLv2 and LGPLv2
+    ;; GPLv2 covers both conditions
+    (license license:gpl2+)))
+
+
+(define-public gconf
+  (package
+    (name "gconf")
+    (version "3.2.6")
+    (source (origin
+              (method url-fetch)
+	      (uri 
+	       (let ((upstream-name "GConf"))
+		 (string-append
+		  "mirror://gnome/sources/" upstream-name "/" (string-take version 3)  "/" upstream-name "-"
+		  version
+		  ".tar.xz")))
+              (sha256
+               (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
+    (build-system gnu-build-system)
+    (inputs `(("glib" ,glib)
+              ("dbus" ,dbus)
+              ("dbus-glib" ,dbus-glib)
+              ("libxml2" ,libxml2)))
+    (propagated-inputs `(("orbit2" ,orbit2))) ; referred to in the .pc file
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://projects.gnome.org/gconf/")
+    (synopsis "store application preferences")
+    (description  "gconf is a system for storing application preferences. It
+is intended for user preferences; not arbitrary data storage.") 
+    (license license:lgpl2.0+))) 
+
+
+(define-public gnome-mime-data
+  (package
+    (name "gnome-mime-data")
+    (version "2.18.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://gnome/sources/" name "/" (string-take version 4)  "/" name "-"
+                    version
+                    ".tar.bz2"))
+              (sha256
+               (base32
+                "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("perl" ,perl)
+       ("intltool" ,intltool)))
+    (home-page "http://www.gnome.org")
+    (synopsis "base MIME and Application database for GNOME")
+    (description  "GNOME Mime Data is a module which contains the base MIME
+and Application database for GNOME.  The data stored by this module is
+designed to be accessed through the MIME functions in GnomeVFS.")
+    (license license:gpl2+)))
+
+
+(define-public gnome-vfs
+  (package
+    (name "gnome-vfs")
+    (version "2.24.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://gnome/sources/" name "/" (string-take version 4)  "/" name "-"
+                    version
+                    ".tar.bz2"))
+              (sha256
+               (base32 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
+    (build-system gnu-build-system)
+    (arguments
+     ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
+     `(#:configure-flags '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
+                         ;; ... which they then completly ignore !!
+                         #:phases
+                         (alist-cons-before
+                          'configure 'ignore-deprecations
+                          (lambda _
+                            (begin
+                              (substitute* "libgnomevfs/Makefile.in"
+                                (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
+                              (substitute* "daemon/Makefile.in"
+                                (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))))
+                          %standard-phases)))
+    (inputs `(("glib" ,glib)
+              ("libxml2" ,libxml2)
+              ("dbus-glib" ,dbus-glib)
+              ("dbus" ,dbus)
+              ("gconf" ,gconf)
+              ("gnome-mime-data" ,gnome-mime-data)
+              ("zlib" ,zlib)))
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://developer.gnome.org/gnome-vfs/")
+    (synopsis "access files and folders in GNOME applications")
+    (description  "GnomeVFS is the core library used to access files and
+folders in GNOME applications. It provides a file system abstraction which
+allows applications to access local and remote files with a single consistent API.")
+    (license license:lgpl2.0+)))
+
+
+
+(define-public libgnome
+  (package
+    (name "libgnome")
+    (version "2.32.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://gnome/sources/" name "/" (string-take version 3)  "/" name "-"
+                    version
+                    ".tar.bz2"))
+              (sha256
+               (base32
+                "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (alist-cons-before
+        'configure 'enable-deprecated
+        (lambda _ 
+          (substitute* "libgnome/Makefile.in"
+            (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS")))
+        %standard-phases)))
+    (inputs `(("popt" ,popt)
+              ("libxml2" ,libxml2)))
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    ;; The following are listed as Required in the .pc file
+    ;; (except for libcanberra -- which seems to be oversight on the part
+    ;; of the upstream developers -- anything that links against libgnome,
+    ;; must also link against libcanberra
+    (propagated-inputs
+     `(("libcanberra" ,libcanberra)
+       ("libbonobo" ,libbonobo)
+       ("gconf" ,gconf)
+       ("gnome-vfs" ,gnome-vfs)
+       ("glib" ,glib)))
+    (home-page "https://developer.gnome.org/libgnome/")
+    (synopsis "Useful routines for building applications")
+    (description  "The libgnome library provides a number of useful routines
+for building modern applications, including session management, activation of
+files and URIs, and displaying help.")
+    (license license:lgpl2.0+)))
+
+
+(define-public libart-lgpl
+  (package
+    (name "libart-lgpl")
+    (version "2.3.9")
+    (source (origin
+              (method url-fetch)
+              (uri (let ((upstream-name "libart_lgpl"))
+                     (string-append
+                      "mirror://gnome/sources/" upstream-name "/" 
+                      (string-take version 3) "/" upstream-name "-" version
+                      ".tar.bz2")))
+              (sha256
+               (base32
+                "072r4svs4hjf2f4gxzx02n3f970kdv9fpx54r2m8bd42fjyyawrw"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "https://people.gnome.org/~mathieu/libart")
+    (synopsis "2D drawing library")
+    (description  "Libart is a 2D drawing library intended as a 
+high-quality vector-based 2D library with antialiasing and alpha composition.")
+    (license license:lgpl2.0+)))
+
+
+
+(define-public libgnomecanvas
+  (package
+    (name "libgnomecanvas")
+    (version "2.30.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://gnome/sources/" name "/" (string-take version 4)  "/" name "-"
+                    version
+                    ".tar.gz"))
+              (sha256
+               (base32
+                "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
+    (build-system gnu-build-system)
+    ;; Mentioned as Required in the .pc file
+    (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
+                         ("gtk+" ,gtk+-2)))
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://developer.gnome.org/libgnomecanvas/")
+    (synopsis "Flexible widget for creating interactive structured graphics")
+    (description  "The GnomeCanvas widget provides a flexible widget for
+creating interactive structured graphics.")
+    (license license:lgpl2.0+)))
+
+(define-public libgnomeui
+  (package
+    (name "libgnomeui")
+    (version "2.24.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://gnome/sources/" name "/" (string-take version 4)  "/" name "-"
+                    version
+                    ".tar.bz2"))
+              (sha256
+               (base32
+                "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
+    (build-system gnu-build-system)
+    ;; Mentioned as Required in the .pc file
+    (propagated-inputs `(("libgnome" ,libgnome)
+                         ("libgnome-keyring" ,libgnome-keyring)))
+    (inputs `(("libgnomecanvas" ,libgnomecanvas)
+              ("libbonoboui" ,libbonoboui)
+              ("libjpeg" ,libjpeg)
+              ("popt" ,popt)
+              ("libbonobo" ,libbonobo)
+              ("libxml2" ,libxml2)
+              ("libglade" ,libglade)))
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://developer.gnome.org/libgnomeui/")
+    (synopsis "Additional widgets for applications")
+    (description  "The libgnomeui library provides additional widgets for
+applications. Many of the widgets from libgnomeui have already been ported to GTK+.")
+    (license license:lgpl2.0+)))
+
+(define-public libglade
+  (package
+    (name "libglade")
+    (version "2.6.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://gnome/sources/" name "/" (string-take version 3)  "/" name "-"
+                    version
+                    ".tar.bz2"))
+              (sha256
+               (base32
+                "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("gtk+-2" ,gtk+-2)
+       ("libxml2" ,libxml2)
+       ("python" ,python))) ;; needed for the optional libglade-convert program
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "https://developer.gnome.org/libglade")
+    (synopsis "load glade interfaces and access the glade built widgets")
+    (description  "libglade is a library that provides interfaces for loading
+graphical interfaces described in glade files and for accessing the
+widgets built in the loading process.")
+    (license license:gpl2+))) ; This is correct.  GPL not LGPL
+
+(define-public libgnomeprint
+  (package
+    (name "libgnomeprint")
+    (version "2.8.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://gnome/sources/" name "/" (string-take version 3)  "/" name "-"
+                    version
+                    ".tar.bz2"))
+              (sha256
+               (base32
+                "129ka3nn8gx9dlfry17ib79azxk45wzfv5rgqzw6dwx2b5ns8phm"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("popt" ,popt)
+       ("libart-lgpl" ,libart-lgpl)
+       ("gtk+" ,gtk+-2)
+       ("libxml2" ,libxml2))) 
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
+    (synopsis "printing framework for GNOME")
+    (description  "Gnome-print is a high-quality printing framework for GNOME.")
+    (license license:lgpl2.0+)))
+
+
+(define-public libgnomeprintui
+  (package
+    (name "libgnomeprintui")
+    (version "2.8.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://gnome/sources/" name "/" (string-take version 3)  "/" name "-"
+                    version
+                    ".tar.bz2"))
+              (sha256
+               (base32
+                "1ivipk7r61rg90p9kp889j28xlyyj6466ypvwa4jvnrcllnaajsw"))))
+    (build-system gnu-build-system)
+    ;; Mentioned as Required in the .pc file
+    (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
+    (inputs `(("gtk+" ,gtk+-2)
+              ("glib" ,glib)
+              ("gnome-icon-theme" ,gnome-icon-theme)
+              ("libgnomecanvas" ,libgnomecanvas)
+              ("libxml2" ,libxml2))) 
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
+    (synopsis "Printing framework for GNOME")
+    (description  "Gnome-print is a high-quality printing framework for GNOME.")
+    (license license:lgpl2.0+)))
+
+
+(define-public libbonoboui
+  (package
+    (name "libbonoboui")
+    (version "2.24.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://gnome/sources/" name "/" (string-take version 3)  "/" name "-"
+                    version
+                    ".tar.bz2"))
+              (sha256
+               (base32
+                "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (alist-cons-before
+        'check 'start-xserver
+        (lambda* (#:key inputs #:allow-other-keys)
+          (let ((xorg-server (assoc-ref inputs "xorg-server"))
+                (disp ":1"))
+            
+            (setenv "HOME" (getcwd))
+            (setenv "DISPLAY" disp)
+            ;; There must be a running X server and make check doesn't start one.
+            ;; Therefore we must do it.
+            (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))
+        %standard-phases)))
+    ;; Mentioned as Required by the .pc file
+    (propagated-inputs `(("libxml2" ,libxml2)))
+    (inputs
+     `(("popt" ,popt)
+       ("pangox-compat" ,pangox-compat)
+       ("libgnome" ,libgnome)
+       ("libgnomecanvas" ,libgnomecanvas)
+       ("libglade" ,libglade)))
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("xorg-server" ,xorg-server) ; For running the tests
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://developer.gnome.org/libbonoboui/")
+    (synopsis "Some user interface controls using Bonobo")
+    (description  "The Bonobo UI library provides a number of user interface
+controls using the Bonobo component framework.")
+    (license license:lgpl2.0+)))
+
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index f3fbef06fe..39f1ac0036 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -279,7 +279,7 @@ and every application benefits from this.")
                      "1g1jly3wl4ks6h8ydkygyl2c4i7v3z91rg42005m6vm70y1d8b3d"))))
    (build-system gnu-build-system)
    (inputs `(("perl" ,perl)
-             ("python" ,python-wrapper)
+             ("python" ,python-2)           ; uses the Python 2 'print' syntax
              ("gpg" ,gnupg)))
    (arguments
     `(#:tests? #f
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index fa92e5ab8c..54cfbfb5f1 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -53,9 +53,10 @@
              (base32
               "1c2hbg66wfvibsz2ia0ri48yr62751fn950i97c53j3b0fjifsb3"))))
    (build-system gnu-build-system)
-   (inputs `(("glib" ,glib)
-             ("gobject-introspection" ,gobject-introspection)))
-   (native-inputs `(("pkg-config" ,pkg-config)))
+   (inputs `(("glib" ,glib)))
+   (native-inputs
+    `(("pkg-config" ,pkg-config)
+      ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
    (synopsis "GNOME accessibility toolkit")
    (description
     "ATK provides the set of accessibility interfaces that are implemented
@@ -156,10 +157,10 @@ affine transformation (scale, rotation, shear, etc.)")
     `(("cairo" ,cairo)
       ("harfbuzz" ,harfbuzz)))
    (inputs
-    `(("gobject-introspection" ,gobject-introspection)
-      ("zlib" ,zlib)))
+    `(("zlib" ,zlib)))
    (native-inputs
-    `(("pkg-config" ,pkg-config)))
+    `(("pkg-config" ,pkg-config)
+      ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
    (synopsis "GNOME text and font handling library")
    (description
     "Pango is the core text and font handling library used in GNOME
@@ -168,6 +169,33 @@ used throughout the world.")
    (license license:lgpl2.0+)
    (home-page "https://developer.gnome.org/pango/")))
 
+(define-public pangox-compat
+  (package
+    (name "pangox-compat")
+    (version "0.0.2")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "mirror://gnome/sources/" name "/" (string-take version 3)  "/" name "-"
+                   version
+                   ".tar.xz"))
+             (sha256
+              (base32
+               "0ip0ziys6mrqqmz4n71ays0kf5cs1xflj1gfpvs4fgy2nsrr482m"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("glib" ,glib)
+       ("pango" ,pango)))
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://developer.gnome.org/pango")
+    (synopsis "functions now obsolete in pango")
+    (description  "Pangox was a X backend to pango.  It is now obsolete and no
+longer provided by recent pango releases.  pangox-compat provides the
+functions which were removed.")
+    (license license:lgpl2.0+)))
+
 
 (define-public gtksourceview
   (package
@@ -236,12 +264,12 @@ printing and other features typical of a source code editor.")
    (build-system gnu-build-system)
    (inputs
     `(("glib" ,glib)
-      ("gobject-introspection", gobject-introspection)
       ("libjpeg" ,libjpeg)
       ("libpng" ,libpng)
       ("libtiff" ,libtiff)))
    (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ("gobject-introspection", gobject-introspection))) ; g-ir-compiler, etc.
    (synopsis "GNOME image loading and manipulation library")
    (description
     "GdkPixbuf is a library for image loading and manipulation developed
@@ -366,21 +394,15 @@ application suites.")
       ("libxinerama" ,libxinerama)
       ("pango" ,pango)))
    (inputs
-    `(("gobject-introspection" ,gobject-introspection)
-      ("libxml2" ,libxml2)))
+    `(("libxml2" ,libxml2)))
    (native-inputs
-     `(("perl" ,perl)
+    `(("perl" ,perl)
       ("pkg-config" ,pkg-config)
+      ("gobject-introspection" ,gobject-introspection)
       ("python-wrapper" ,python-wrapper)
       ("xorg-server" ,xorg-server)))
    (arguments
-    `(#:modules ((guix build gnome)
-                 (guix build gnu-build-system)
-                 (guix build utils))
-      #:imported-modules ((guix build gnome)
-                          (guix build gnu-build-system)
-                          (guix build utils))
-      #:phases
+    `(#:phases
       (alist-replace
        'configure
        (lambda* (#:key inputs #:allow-other-keys #:rest args)
@@ -391,32 +413,8 @@ application suites.")
            ;; directory.
            ;; See the manual page for dbus-uuidgen to correct this issue.
            (substitute* "testsuite/Makefile.in"
-            (("SUBDIRS = gdk gtk a11y css reftests") "SUBDIRS = gdk"))
-
-	   ;; We need to tell GIR where it can find some of the required .gir
-           ;; files.
-           (substitute* "gdk/Makefile.in"
-            (("--add-include-path=../gdk")
-             (string-append
-              "--add-include-path=../gdk"
-              " --add-include-path=" (gir-directory inputs "gdk-pixbuf")
-              " --add-include-path=" (gir-directory inputs "pango")))
-            (("--includedir=\\.")
-             (string-append "--includedir=."
-              " --includedir=" (gir-directory inputs "gdk-pixbuf")
-              " --includedir=" (gir-directory inputs "pango"))))
-
-           (substitute* "gtk/Makefile.in"
-            (("--add-include-path=../gdk")
-             (string-append "--add-include-path=../gdk"
-              " --add-include-path=" (gir-directory inputs "atk")
-              " --add-include-path=" (gir-directory inputs "gdk-pixbuf")
-              " --add-include-path=" (gir-directory inputs "pango")))
-            (("--includedir=../gdk")
-             (string-append "--includedir=../gdk"
-              " --includedir=" (gir-directory inputs "atk")
-              " --includedir=" (gir-directory inputs "gdk-pixbuf")
-              " --includedir=" (gir-directory inputs "pango"))))
+             (("SUBDIRS = gdk gtk a11y css reftests")
+              "SUBDIRS = gdk"))
            (apply configure args)))
        %standard-phases)))))
 
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index a240937f75..4c42d82345 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -247,7 +247,8 @@ many readers as needed).")
     (inputs `(("ncurses" ,ncurses)
               ("guile" ,guile-2.0)))
     (arguments
-     '(#:configure-flags (list (string-append "--with-guilesitedir="
+     '(#:configure-flags (list "--with-ncursesw"  ; Unicode support
+                               (string-append "--with-guilesitedir="
                                               (assoc-ref %outputs "out")
                                               "/share/guile/site/2.0"))
        #:phases (alist-cons-after
@@ -271,18 +272,18 @@ library.")
 (define-public mcron
   (package
     (name "mcron")
-    (version "1.0.6")
+    (version "1.0.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/mcron/mcron-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "0yvrfzzdy2m7fbqkr61fw01wd9r2jpnbyabxhcsfivgxywknl0fy"))
+               "1d214fmhsn3kvpnwxnqwfpy6gr5c5dbz2mx3sijhxi070vkfibxc"))
              (patches (list (search-patch "mcron-install.patch")))))
     (build-system gnu-build-system)
-    (inputs
-     `(("ed" ,ed) ("which" ,which) ("guile" ,guile-1.8)))
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs `(("ed" ,ed) ("which" ,which) ("guile" ,guile-2.0)))
     (home-page "http://www.gnu.org/software/mcron/")
     (synopsis "Run jobs at scheduled times")
     (description
diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm
index d8c1afaaec..0c80c0a57f 100644
--- a/gnu/packages/imagemagick.scm
+++ b/gnu/packages/imagemagick.scm
@@ -37,14 +37,14 @@
 (define-public imagemagick
   (package
     (name "imagemagick")
-    (version "6.8.8-10")
+    (version "6.8.9-0")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://imagemagick/ImageMagick-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0crdazi2f1qj1ppb01f0mhqjw5q3afswgw49fa1m100bxmqpf77k"))))
+               "1lapn2798fkc2wn81slpms5p21kq4dsyg45khsk7n8p69cvrmw2b"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases (alist-cons-before
diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index 2666e58a7a..bc5d2d533a 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -17,14 +17,22 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages kde)
-  #:use-module ((guix licenses) #:select (bsd-2 lgpl2.1+))
+  #:use-module ((guix licenses) #:select (bsd-2 lgpl2.0+ lgpl2.1 lgpl2.1+))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system cmake)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages doxygen)
+  #:use-module (gnu packages geeqie)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages rdf)
+  #:use-module (gnu packages video)
+  #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
 (define-public automoc4
@@ -78,3 +86,122 @@
     (synopsis "Qt 4 multimedia API")
     (description "KDE desktop environment")
     (license lgpl2.1+)))
+
+(define-public qjson
+  (package
+    (name "qjson")
+    (version "0.8.1")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "https://github.com/flavio/qjson/archive/"
+                                 version ".tar.gz"))
+             (sha256
+              (base32
+               "163fspi0xc705irv79qw861fmh68pjyla9vx3kqiq6xrdhb9834j"))))
+    (build-system cmake-build-system)
+    (inputs
+     `(("qt" ,qt-4)))
+    (arguments
+     `(#:tests? #f)) ; no test target
+    (home-page "http://qjson.sourceforge.net/")
+    (synopsis "Qt-based library for handling JSON")
+    (description "QJson is a Qt-based library that maps JSON data to QVariant
+objects and vice versa.  JSON arrays are mapped to QVariantList instances,
+while JSON objects are mapped to QVariantMap.")
+    (license lgpl2.1+)))
+
+(define-public libdbusmenu-qt
+  (package
+    (name "libdbusmenu-qt")
+    (version "0.9.2")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "https://launchpad.net/" name "/trunk/"
+                                 version "/+download/"
+                                 name "-" version ".tar.bz2"))
+             (sha256
+              (base32
+               "1v0ri5g9xw2z64ik0kx0ra01v8rpjn2kxprrxppkls1wvav1qv5f"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("doxygen" ,doxygen) ; used for static documentation
+       ("pkg-config" ,pkg-config)
+       ("qjson", qjson))) ; used for the tests
+    (inputs
+     `(("qt" ,qt-4)))
+    (arguments
+     `(#:tests? #f)) ; no check target
+    (home-page "https://launchpad.net/libdbusmenu-qt/")
+    (synopsis "Qt implementation of the DBusMenu protocol")
+    (description "The library provides a Qt implementation of the DBusMenu
+protocol.  The DBusMenu protocol makes it possible for applications to export
+and import their menus over DBus.")
+    (license lgpl2.0+)))
+
+(define-public attica
+  (package
+    (name "attica")
+    (version "0.4.2")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "http://download.kde.org/stable/"
+                                 name "/"
+                                 name "-" version ".tar.bz2"))
+             (sha256
+              (base32
+               "1y74gsyzi70dfr9d1f1b08k130rm3jaibsppg8dv5h3211vm771v"))))
+    (build-system cmake-build-system)
+    (inputs
+     `(("qt" ,qt-4)))
+    (home-page "https://projects.kde.org/projects/kdesupport/attica")
+    (synopsis "Qt library for the Open Collaboration Services API")
+    (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.")
+    (license lgpl2.1+)))
+
+(define-public strigi
+  (package
+    (name "strigi")
+    (version "0.7.8")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "http://www.vandenoever.info/software/"
+                                 name "/"
+                                 name "-" version ".tar.bz2"))
+             (sha256
+              (base32
+               "12grxzqwnvbyqw7q1gnz42lypadxmq89vk2qpxczmpmc4nk63r23"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    ;; FIXME: Add optional inputs XAttr, FAM, Log4cxx
+    (inputs
+     `(("clucene" ,clucene)
+       ("dbus" ,dbus)
+       ("exiv2" ,exiv2)
+       ("ffmpeg" ,ffmpeg)
+       ("libxml2" ,libxml2)
+       ("perl" ,perl)
+       ("python" ,python-wrapper)
+       ("qt" ,qt-4)
+       ("zlib" ,zlib)))
+    (arguments
+     `(#:tests? #f)) ; FIXME: Test 23/25 ProcessInputStreamTest fails.
+    (home-page "http://www.vandenoever.info/software/strigi/")
+    (synopsis "Desktop search daemon")
+    (description "Strigi is a desktop search daemon with the following
+main features:
+very fast crawling;
+very small memory footprint;
+no hammering of the system;
+pluggable backend, currently clucene and hyperestraier, sqlite3 and xapian
+are in the works;
+communication between daemon and search program over an abstract interface,
+currently a simple socket;
+simple interface for implementing plugins for extracting information;
+calculation of sha1 for every file crawled
+(allows fast finding of duplicates).")
+    (license lgpl2.0+)))
diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm
index dce1ac1a69..7b8adbace4 100644
--- a/gnu/packages/libevent.scm
+++ b/gnu/packages/libevent.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,7 +23,9 @@
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages which)
-  #:use-module (gnu packages python))
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages pkg-config))
 
 (define-public libevent
   (package
@@ -58,3 +60,44 @@ network servers.  An application just needs to call event_dispatch() and
 then add or remove events dynamically without having to change the event
 loop.")
     (license bsd-3)))
+
+(define-public libuv
+  (package
+    (name "libuv")
+    (version "0.11.25")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/joyent/libuv/archive/v"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "1ys2wlypdbv59yywn91d5vl329z50mi7ivi3fj5rjm4mr9g3wnmr"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases (alist-cons-before
+                 'configure 'autogen
+                 (lambda _
+                   ;; Fashionable people don't run 'make dist' these days, so
+                   ;; we need to do that ourselves.
+                   (zero? (system* "./autogen.sh")))
+                 %standard-phases)
+
+       ;; XXX: Some tests want /dev/tty, attempt to make connections, etc.
+       #:tests? #f))
+    (native-inputs `(("autoconf" ,(autoconf-wrapper))
+                     ("automake" ,automake)
+                     ("libtool" ,libtool "bin")
+
+                     ;; libuv.pc is installed only when pkg-config is found.
+                     ("pkg-config" ,pkg-config)))
+    (home-page "https://github.com/joyent/libuv")
+    (synopsis "Library for asynchronous I/O")
+    (description
+     "libuv is a multi-platform support library with a focus on asynchronous
+I/O.  Among other things, it supports event loops via epoll, kqueue, and
+similar IOCP, and event ports, asynchronous TCP/UDP sockets, asynchronous DNS
+resolution, asynchronous file system operations, and threading primitives.")
+
+    ;; A few files fall under other non-copyleft licenses; see 'LICENSE' for
+    ;; details.
+    (license x11)))
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index da5b31a169..130a0f2a9a 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -38,11 +38,14 @@
   #:use-module (gnu packages attr)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages texinfo)
+  #:use-module (gnu packages check)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
-  #:use-module (guix build-system python))
+  #:use-module (guix build-system python)
+  #:use-module (guix build-system trivial))
 
 (define-public (system->linux-architecture arch)
   "Return the Linux architecture name for ARCH, a Guix system name such as
@@ -440,7 +443,8 @@ slabtop, and skill.")
                "0ibkkvp6kan0hn0d1anq4n2md70j5gcm7mwna515w82xwyr02rfw"))))
     (build-system gnu-build-system)
     (inputs `(("util-linux" ,util-linux)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs `(("pkg-config" ,pkg-config)
+                     ("texinfo" ,texinfo)))    ; for the libext2fs Info manual
     (arguments
      '(#:phases (alist-cons-before
                  'configure 'patch-shells
@@ -466,6 +470,39 @@ slabtop, and skill.")
                    lgpl2.0                        ; libext2fs
                    x11))))                        ; libuuid
 
+(define-public e2fsck/static
+  (package
+    (name "e2fsck-static")
+    (version (package-version e2fsprogs))
+    (build-system trivial-build-system)
+    (source #f)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils)
+                      (ice-9 ftw)
+                      (srfi srfi-26))
+
+         (let ((source (string-append (assoc-ref %build-inputs "e2fsprogs")
+                                      "/sbin"))
+               (bin    (string-append (assoc-ref %outputs "out") "/sbin")))
+           (mkdir-p bin)
+           (with-directory-excursion bin
+             (for-each (lambda (file)
+                         (copy-file (string-append source "/" file)
+                                    file)
+                         (remove-store-references file)
+                         (chmod file #o555))
+                       (scandir source (cut string-prefix? "fsck." <>))))))))
+    (inputs `(("e2fsprogs" ,(static-package e2fsprogs))))
+    (synopsis "Statically-linked fsck.* commands from e2fsprogs")
+    (description
+     "This package provides statically-linked command of fsck.ext[234] taken
+from the e2fsprogs package.  It is meant to be used in initrds.")
+    (home-page (package-home-page e2fsprogs))
+    (license (package-license e2fsprogs))))
+
 (define-public strace
   (package
     (name "strace")
@@ -962,6 +999,23 @@ space, using the FUSE library.  Mounting a union file system allows you to
 UnionFS-FUSE additionally supports copy-on-write.")
     (license bsd-3)))
 
+(define fuse-static
+  (package (inherit fuse)
+    (name "fuse-static")
+    (source (origin (inherit (package-source fuse))
+              (modules '((guix build utils)))
+              (snippet
+               ;; Normally libfuse invokes mount(8) so that /etc/mtab is
+               ;; updated.  Change calls to 'mtab_needs_update' to 0 so that
+               ;; it doesn't do that, allowing us to remove the dependency on
+               ;; util-linux (something that is useful in initrds.)
+               '(substitute* '("lib/mount_util.c"
+                               "util/mount_util.c")
+                  (("mtab_needs_update[[:blank:]]*\\([a-z_]+\\)")
+                   "0")
+                  (("/bin/")
+                   "")))))))
+
 (define-public unionfs-fuse/static
   (package (inherit unionfs-fuse)
     (synopsis "User-space union file system (statically linked)")
@@ -976,4 +1030,118 @@ UnionFS-FUSE additionally supports copy-on-write.")
                                   libs " dl)"))))))
     (arguments
      '(#:tests? #f
-       #:configure-flags '("-DCMAKE_EXE_LINKER_FLAGS=-static")))))
+       #:configure-flags '("-DCMAKE_EXE_LINKER_FLAGS=-static")))
+    (inputs `(("fuse" ,fuse-static)))))
+
+(define-public numactl
+  (package
+    (name "numactl")
+    (version "2.0.9")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "ftp://oss.sgi.com/www/projects/libnuma/download/numactl-"
+                    version
+                    ".tar.gz"))
+              (sha256
+               (base32
+                "073myxlyyhgxh1w3r757ajixb7s2k69czc3r0g12c3scq7k3784w"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases (alist-replace
+                 'configure
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   ;; There's no 'configure' script, just a raw makefile.
+                   (substitute* "Makefile"
+                     (("^prefix := .*$")
+                      (string-append "prefix := " (assoc-ref outputs "out")
+                                     "\n"))
+                     (("^libdir := .*$")
+                      ;; By default the thing tries to install under
+                      ;; $prefix/lib64 when on a 64-bit platform.
+                      (string-append "libdir := $(prefix)/lib\n"))))
+                 %standard-phases)
+
+       #:make-flags (list
+                     ;; By default the thing tries to use 'cc'.
+                     "CC=gcc"
+
+                     ;; Make sure programs have an RPATH so they can find
+                     ;; libnuma.so.
+                     (string-append "LDLIBS=-Wl,-rpath="
+                                    (assoc-ref %outputs "out") "/lib"))
+
+       ;; There's a 'test' target, but it requires NUMA support in the kernel
+       ;; to run, which we can't assume to have.
+       #:tests? #f))
+    (home-page "http://oss.sgi.com/projects/libnuma/")
+    (synopsis "Tools for non-uniform memory access (NUMA) machines")
+    (description
+     "NUMA stands for Non-Uniform Memory Access, in other words a system whose
+memory is not all in one place.  The numactl program allows you to run your
+application program on specific CPU's and memory nodes.  It does this by
+supplying a NUMA memory policy to the operating system before running your
+program.
+
+The package contains other commands, such as numademo, numastat and memhog.
+The numademo command provides a quick overview of NUMA performance on your
+system.")
+    (license (list gpl2                           ; programs
+                   lgpl2.1))))                    ; library
+
+(define-public kbd
+  (package
+    (name "kbd")
+    (version "2.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kernel.org/linux/utils/kbd/kbd-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0c34b0za2v0934acvgnva0vaqpghmmhz4zh7k0m9jd4mbc91byqm"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases (alist-cons-before
+                 'build 'pre-build
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   (let ((gzip  (assoc-ref %build-inputs "gzip"))
+                         (bzip2 (assoc-ref %build-inputs "bzip2")))
+                     (substitute* "src/libkeymap/findfile.c"
+                       (("gzip")
+                        (string-append gzip "/bin/gzip"))
+                       (("bzip2")
+                        (string-append bzip2 "/bin/bzip2")))))
+                 %standard-phases)))
+    (inputs `(("check" ,check)
+              ("gzip" ,guix:gzip)
+              ("bzip2" ,guix:bzip2)
+              ("pam" ,linux-pam)))
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    (home-page "ftp://ftp.kernel.org/pub/linux/utils/kbd/")
+    (synopsis "Linux keyboard utilities and keyboard maps")
+    (description
+     "This package contains keytable files and keyboard utilities compatible
+for systems using the Linux kernel.  This includes commands such as
+'loadkeys', 'setfont', 'kbdinfo', and 'chvt'.")
+    (license gpl2+)))
+
+(define-public inotify-tools
+  (package
+    (name "inotify-tools")
+    (version "3.13")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://sourceforge/inotify-tools/inotify-tools/"
+                    version "/inotify-tools-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0icl4bx041axd5dvhg89kilfkysjj86hjakc7bk8n49cxjn4cha6"))))
+    (build-system gnu-build-system)
+    (home-page "http://inotify-tools.sourceforge.net/")
+    (synopsis "Monitor file accesses")
+    (description
+     "The inotify-tools packages provides a C library and command-line tools
+to use Linux' inotify mechanism, which allows file accesses to be monitored.")
+    (license gpl2+)))
diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm
index 991cfc6e67..a85c120469 100644
--- a/gnu/packages/lua.scm
+++ b/gnu/packages/lua.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
 ;;; Copyright © 2014 Raimon Grau <raimonster@gmail.com>
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -29,13 +30,13 @@
 (define-public lua
   (package
     (name "lua")
-    (version "5.2.1")
+    (version "5.2.3")
     (source (origin
              (method url-fetch)
              (uri (string-append "http://www.lua.org/ftp/lua-"
                                  version ".tar.gz"))
              (sha256
-              (base32 "1rbv2ysq5fdksz7xg07dnrkl8i0gnx855hg4z6b324vng6l4sc34"))))
+              (base32 "0b8034v1s82n4dg5rzcn12067ha3nxaylp2vdp8gg08kjsbzphhk"))))
     (build-system gnu-build-system)
     (inputs `(("readline", readline)))
     (arguments
@@ -45,7 +46,7 @@
        #:test-target "test"
        #:phases (alist-replace
                  'build
-                 (lambda _ (zero? (system* "make" "linux"))) ; XXX: Other OS.
+                 (lambda _ (zero? (system* "make" "CFLAGS=-fPIC" "linux")))
                  (alist-replace
                   'install
                   (lambda* (#:key outputs #:allow-other-keys)
@@ -66,6 +67,16 @@ automatic memory management with incremental garbage collection, making it ideal
 for configuration, scripting, and rapid prototyping.")
     (license x11)))
 
+(define-public lua-5.1
+  (package (inherit lua)
+    (version "5.1.5")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "http://www.lua.org/ftp/lua-"
+                                 version ".tar.gz"))
+             (sha256
+              (base32 "0cskd4w0g6rdm2q8q3i4n1h3j8kylhs3rq8mxwl9vwlmlxbgqh16"))))))
+
 (define-public luajit
   (package
     (name "luajit")
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 3790b583ee..796dcd7e88 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -20,9 +20,12 @@
 (define-module (gnu packages mail)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages dejagnu)
+  #:use-module (gnu packages emacs)
   #:use-module (gnu packages gdbm)
+  #:use-module (gnu packages glib)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gnutls)
   #:use-module (gnu packages guile)
@@ -32,7 +35,9 @@
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages openssl)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages search)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages glib)
@@ -44,6 +49,7 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system python)
   #:use-module (srfi srfi-1))
 
 (define-public mailutils
@@ -253,4 +259,71 @@ content (body).  The program is able to learn from the user's classifications
 and corrections.  It is based on a Bayesian filter.")
     (license gpl2)))
 
+(define-public offlineimap
+  (package
+    (name "offlineimap")
+    (version "6.5.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/OfflineIMAP/offlineimap/"
+                                  "archive/v" version ".tar.gz"))
+              (sha256
+               (base32
+                "00k84qagph3xnxss6rkxm61x07ngz8fvffx4z9jyw5baf3cdd32p"))))
+    (build-system python-build-system)
+    (native-inputs `(("python" ,python-2)))
+    (arguments
+     ;; The setup.py script expects python-2.
+     `(#:python ,python-2
+      ;; Tests require a modifiable IMAP account.
+       #:tests? #f))
+    (home-page "http://www.offlineimap.org")
+    (synopsis "Synch emails between two repositories")
+    (description
+     "OfflineImap synchronizes emails between two repositories, so that you
+can read the same mailbox from multiple computers.  It supports IMAP as REMOTE
+repository and Maildir/IMAP as LOCAL repository.")
+    (license gpl2+)))
+
+(define-public mu
+  (package
+    (name "mu")
+    (version "0.9.9.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://mu0.googlecode.com/files/mu-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "1hwkliyb8fjrz5sw9fcisssig0jkdxzhccw0ld0l9a10q1l9mqhp"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("texinfo" ,texinfo)))
+    ;; TODO: Add webkit and gtk to build the mug GUI.
+    (inputs
+     `(("xapian" ,xapian)
+       ("emacs" ,emacs)
+       ("guile" ,guile-2.0)
+       ("glib" ,glib)
+       ("gmime" ,gmime)
+       ("tzdata" ,tzdata)))             ;for mu/test/test-mu-query.c
+    (arguments
+     '(#:phases (alist-cons-before
+                 'check 'check-tz-setup
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   ;; For mu/test/test-mu-query.c
+                   (setenv "TZDIR"
+                           (string-append (assoc-ref inputs "tzdata")
+                                          "/share/zoneinfo")))
+                 %standard-phases)))
+    (home-page "http://www.djcbsoftware.nl/code/mu/")
+    (synopsis "Quickly find emails")
+    (description
+     "Mu is a tool for dealing with e-mail messages stored in the
+Maildir-format.  Mu's purpose in life is to help you to quickly find the
+messages you need; in addition, it allows you to view messages, extract
+attachments, create new maildirs, and so on.")
+    (license gpl3+)))
+
 ;;; mail.scm ends here
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index 97a13b4b74..2e3e9ec4c1 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -40,7 +40,9 @@
             %glibc-bootstrap-tarball
             %gcc-bootstrap-tarball
             %guile-bootstrap-tarball
-            %bootstrap-tarballs))
+            %bootstrap-tarballs
+
+            %guile-static-stripped))
 
 ;;; Commentary:
 ;;;
diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm
index a6c2c1c0a8..03058a55e1 100644
--- a/gnu/packages/man.scm
+++ b/gnu/packages/man.scm
@@ -102,6 +102,10 @@ a flexible and convenient way.")
        ("groff" ,groff)
        ("less" ,less)
        ("libpipeline" ,libpipeline)))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "MANPATH")
+            (directories '("share/man")))))
     (home-page "http://man-db.nongnu.org/")
     (synopsis "Standard Unix documentation system")
     (description
@@ -117,7 +121,7 @@ the traditional flat-text whatis databases.")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "mirror://kernel/linux/docs/man-pages/man-pages-"
+                    "mirror://kernel.org/linux/docs/man-pages/man-pages-"
                     version ".tar.xz"))
               (sha256
                (base32
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 68c326752c..8ef4f44f5a 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -1,7 +1,8 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2014 John Darrington <jmd@gnu.org>
+;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,11 +25,16 @@
                 #:renamer (symbol-prefix-proc 'license:))
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix utils)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (gnu packages algebra)
+  #:use-module (gnu packages bison)
+  #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages elf)
+  #:use-module (gnu packages flex)
   #:use-module (gnu packages fltk)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gettext)
@@ -37,14 +43,18 @@
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages less)
+  #:use-module (gnu packages gnome)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages gl)
+  #:use-module (gnu packages mpi)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages pcre)
+  #:use-module (gnu packages popt)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages tcsh)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages texlive)
   #:use-module (gnu packages xml))
@@ -137,7 +147,7 @@ LP/MIP solver is included in the package.")
 (define-public pspp
   (package
     (name "pspp")
-    (version "0.8.2")
+    (version "0.8.3")
     (source
      (origin
       (method url-fetch)
@@ -145,7 +155,7 @@ LP/MIP solver is included in the package.")
                           version ".tar.gz"))
       (sha256
        (base32
-        "1w7h3dglgx0jlq1wb605b8pgfsk2vr1q2q2rj7bsajh9ihbcsixr"))))
+        "0vri2pzvmm38qaihfvwlry30f40lcnps4blg59ixic4q20ldxf5d"))))
     (build-system gnu-build-system)
     (inputs
      `(("cairo" ,cairo)
@@ -190,43 +200,14 @@ output in text, PostScript, PDF or HTML.")
     (inputs `(("fortran" ,gfortran-4.8)
               ("python" ,python-2)))
     (arguments
-     `(#:modules ((guix build cmake-build-system)
-                  (guix build utils)
-                  (guix build rpath)
-                  (srfi srfi-1))
-       #:imported-modules ((guix build cmake-build-system)
-                           (guix build gnu-build-system)
-                           (guix build utils)
-                           (guix build rpath))
-       #:configure-flags '("-DBUILD_SHARED_LIBS:BOOL=YES")
+     `(#:configure-flags '("-DBUILD_SHARED_LIBS:BOOL=YES")
        #:phases (alist-cons-before
                  'check 'patch-python
                  (lambda* (#:key inputs #:allow-other-keys)
                    (let ((python (assoc-ref inputs "python")))
                      (substitute* "lapack_testing.py"
                        (("/usr/bin/env python") python))))
-                 (alist-cons-after
-                  'strip 'add-libs-to-runpath
-                  (lambda* (#:key inputs outputs #:allow-other-keys)
-                    (let* ((out     (assoc-ref outputs "out"))
-                           (fortran (assoc-ref inputs "fortran"))
-                           (libc    (assoc-ref inputs "libc"))
-                           (rpaths  `(,(string-append fortran "/lib64")
-                                      ,(string-append fortran "/lib")
-                                      ,(string-append libc "/lib")
-                                      ,(string-append out "/lib"))))
-                      ;; Set RUNPATH for all libraries
-                      (with-directory-excursion out
-                        (for-each
-                         (lambda (lib)
-                           (let ((lib-rpaths (file-rpath lib)))
-                             (for-each
-                              (lambda (dir)
-                                (or (member dir lib-rpaths)
-                                    (augment-rpath lib dir)))
-                              rpaths)))
-                         (find-files "lib" ".*so$")))))
-                  %standard-phases))))
+                  %standard-phases)))
     (synopsis "Library for numerical linear algebra")
     (description
      "LAPACK is a Fortran 90 library for solving the most commonly occurring
@@ -349,3 +330,499 @@ applications and it provides great support for visualizing results.  Work may
 be performed both at the interactive command-line as well as via script
 files.")
     (license license:gpl3+)))
+
+(define-public gmsh
+  (package
+    (name "gmsh")
+    (version "2.8.4")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "http://www.geuz.org/gmsh/src/gmsh-"
+                          version "-source.tgz"))
+      (sha256
+       (base32 "0jv2yvk28w86rx5mvjkb0w12ff2jxih7axnpvznpd295lg5jg7hr"))
+      (modules '((guix build utils)))
+      (snippet
+       ;; Remove non-free METIS code
+       '(delete-file-recursively "contrib/Metis"))))
+    (build-system cmake-build-system)
+    (native-inputs `(("patchelf" ,patchelf))) ;for augment-rpath
+    (propagated-inputs
+     `(("fltk" ,fltk)
+       ("gfortran" ,gfortran-4.8)
+       ("gmp" ,gmp)
+       ("hdf5-lib" ,hdf5 "lib")
+       ("hdf5-include" ,hdf5 "include")
+       ("lapack" ,lapack)
+       ("mesa" ,mesa)
+       ("libx11" ,libx11)
+       ("libxext" ,libxext)))
+    (arguments
+     `(#:configure-flags `("-DENABLE_METIS:BOOL=OFF"
+                           "-DENABLE_BUILD_SHARED:BOOL=ON"
+                           "-DENABLE_BUILD_DYNAMIC:BOOL=ON")))
+    (home-page "http://www.geuz.org/gmsh/")
+    (synopsis "3D finite element grid generator")
+    (description "Gmsh is a 3D finite element grid generator with a built-in
+CAD engine and post-processor.  Its design goal is to provide a fast, light
+and user-friendly meshing tool with parametric input and advanced
+visualization capabilities.  Gmsh is built around four modules: geometry,
+mesh, solver and post-processing.  The specification of any input to these
+modules is done either interactively using the graphical user interface or in
+ASCII text files using Gmsh's own scripting language.")
+    (license license:gpl2+)))
+
+(define-public petsc
+  (package
+    (name "petsc")
+    (version "3.4.4")
+    (source
+     (origin
+      (method url-fetch)
+      ;; The *-lite-* tarball does not contain the *large* documentation
+      (uri (string-append "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/"
+                          "petsc-lite-" version ".tar.gz"))
+      (sha256
+       (base32 "0v5dg6dhdjpi5ianvd4mm6hsvxzv1bsxwnh9f9myag0a0d9xk9iv"))
+      (patches
+       (list (search-patch "petsc-fix-threadcomm.patch")))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("python" ,python-2)
+       ("perl" ,perl)))
+    (inputs
+     `(("gfortran" ,gfortran-4.8)
+       ("lapack" ,lapack)
+       ("superlu" ,superlu)
+       ;; leaving out hdf5 and fftw, as petsc expects them to be built with mpi
+       ;; leaving out opengl, as configuration seems to only be for mac
+       ))
+    (arguments
+     `(#:test-target "test"
+       #:parallel-build? #f
+       #:configure-flags
+       `("--with-mpi=0"
+         "--with-openmp=1"
+         "--with-superlu=1"
+         ,(string-append "--with-superlu-include="
+                         (assoc-ref %build-inputs "superlu") "/include")
+         ,(string-append "--with-superlu-lib="
+                         (assoc-ref %build-inputs "superlu") "/lib/libsuperlu.a"))
+       #:phases
+       (alist-replace
+        'configure
+        ;; PETSc's configure script is actually a python script, so we can't
+        ;; run it with bash.
+        (lambda* (#:key outputs (configure-flags '())
+                  #:allow-other-keys)
+          (let* ((prefix (assoc-ref outputs "out"))
+                 (flags `(,(string-append "--prefix=" prefix)
+                          ,@configure-flags)))
+            (format #t "build directory: ~s~%" (getcwd))
+            (format #t "configure flags: ~s~%" flags)
+            (zero? (apply system* "./configure" flags))))
+        (alist-cons-after
+         'configure 'clean-local-references
+         ;; Try to keep build directory names from leaking into compiled code
+         (lambda* (#:key inputs outputs #:allow-other-keys)
+           (let ((out (assoc-ref outputs "out")))
+             (substitute* (find-files "." "^petsc(conf|machineinfo).h$")
+               (((getcwd)) out))))
+         (alist-cons-after
+          'install 'clean-install
+          ;; Try to keep installed files from leaking build directory names.
+          (lambda* (#:key inputs outputs #:allow-other-keys)
+            (let ((out     (assoc-ref outputs "out"))
+                  (fortran (assoc-ref inputs  "gfortran")))
+              (substitute* (map (lambda (file)
+                                  (string-append out "/" file))
+                                '("conf/petscvariables"
+                                  "conf/PETScConfig.cmake"))
+                (((getcwd)) out))
+              ;; Make compiler references point to the store
+              (substitute* (string-append out "/conf/petscvariables")
+                (("= g(cc|\\+\\+|fortran)" _ suffix)
+                 (string-append "= " fortran "/bin/g" suffix)))
+              ;; PETSc installs some build logs, which aren't necessary.
+              (for-each (lambda (file)
+                          (let ((f (string-append out "/" file)))
+                            (when (file-exists? f)
+                              (delete-file f))))
+                        '("conf/configure.log"
+                          "conf/make.log"
+                          "conf/test.log"
+                          "conf/error.log"
+                          "conf/RDict.db"
+                          ;; Once installed, should uninstall with Guix
+                          "conf/uninstall.py"))))
+          %standard-phases)))))
+    (home-page "http://www.mcs.anl.gov/petsc")
+    (synopsis "Library to solve PDEs")
+    (description "PETSc, pronounced PET-see (the S is silent), is a suite of
+data structures and routines for the scalable (parallel) solution of
+scientific applications modeled by partial differential equations.")
+    (license (license:bsd-style
+              "http://www.mcs.anl.gov/petsc/documentation/copyright.html"))))
+
+(define-public petsc-complex
+  (package (inherit petsc)
+    (name "petsc-complex")
+    (arguments
+     (substitute-keyword-arguments (package-arguments petsc)
+       ((#:configure-flags cf)
+        `(cons "--with-scalar-type=complex" ,cf))))
+    (synopsis "Library to solve PDEs (with complex scalars)")))
+
+(define-public petsc-openmpi
+  (package (inherit petsc)
+    (name "petsc-openmpi")
+    (inputs
+     `(("openmpi" ,openmpi)
+       ,@(package-inputs petsc)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments petsc)
+       ((#:configure-flags cf)
+        ``("--with-mpiexec=mpirun"
+           ,(string-append "--with-mpi-dir="
+                           (assoc-ref %build-inputs "openmpi"))
+           ,@(delete "--with-mpi=0" ,cf)))))
+    (synopsis "Library to solve PDEs (with MPI support)")))
+
+(define-public petsc-complex-openmpi
+  (package (inherit petsc-complex)
+    (name "petsc-complex-openmpi")
+    (inputs
+     `(("openmpi" ,openmpi)
+       ,@(package-inputs petsc-complex)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments petsc-complex)
+       ((#:configure-flags cf)
+        ``("--with-mpiexec=mpirun"
+           ,(string-append "--with-mpi-dir="
+                           (assoc-ref %build-inputs "openmpi"))
+           ,@(delete "--with-mpi=0" ,cf)))))
+    (synopsis "Library to solve PDEs (with complex scalars and MPI support)")))
+
+(define-public superlu
+  (package
+    (name "superlu")
+    (version "4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/"
+                           "superlu_" version ".tar.gz"))
+       (sha256
+        (base32 "10b785s9s4x0m9q7ihap09275pq4km3k2hk76jiwdfdr5qr2168n"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("tcsh" ,tcsh)))
+    (inputs
+     `(("lapack" ,lapack)
+       ("gfortran" ,gfortran-4.8)))
+    (arguments
+     `(#:parallel-build? #f
+       #:tests? #f                      ;tests are run as part of `make all`
+       #:phases
+       (alist-replace
+        'configure
+        (lambda* (#:key inputs outputs #:allow-other-keys)
+          (call-with-output-file "make.inc"
+            (lambda (port)
+              (format port "
+PLAT        =
+SuperLUroot = ~a
+SUPERLULIB  = ~a/lib/libsuperlu.a
+TMGLIB      = libtmglib.a
+BLASDEF     = -DUSE_VENDOR_BLAS
+BLASLIB     = -L~a/lib -lblas
+LIBS        = $(SUPERLULIB) $(BLASLIB)
+ARCH        = ar
+ARCHFLAGS   = cr
+RANLIB      = ranlib
+CC          = gcc
+PIC         = -fPIC
+CFLAGS      = -O3 -DPRNTlevel=0 $(PIC)
+NOOPTS      = -O0 $(PIC)
+FORTRAN     = gfortran
+FFLAGS      = -O2 $(PIC)
+LOADER      = $(CC)
+CDEFS       = -DAdd_"
+                      (getcwd)
+                      (assoc-ref outputs "out")
+                      (assoc-ref inputs "lapack")))))
+        (alist-cons-before
+         'build 'create-install-directories
+         (lambda* (#:key outputs #:allow-other-keys)
+           (for-each
+            (lambda (dir)
+              (mkdir-p (string-append (assoc-ref outputs "out")
+                                      "/" dir)))
+            '("lib" "include")))
+         (alist-replace
+          'install
+          (lambda* (#:key outputs #:allow-other-keys)
+            ;; Library is placed in lib during the build phase.  Copy over
+            ;; headers to include.
+            (let* ((out    (assoc-ref outputs "out"))
+                   (incdir (string-append out "/include")))
+              (for-each (lambda (file)
+                          (let ((base (basename file)))
+                            (format #t "installing `~a' to `~a'~%"
+                                    base incdir)
+                            (copy-file file
+                                       (string-append incdir "/" base))))
+                        (find-files "SRC" ".*\\.h$"))))
+          %standard-phases)))))
+    (home-page "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/")
+    (synopsis "Supernodal direct solver for sparse linear systems")
+    (description
+     "SuperLU is a general purpose library for the direct solution of large,
+sparse, nonsymmetric systems of linear equations on high performance machines.
+The library is written in C and is callable from either C or Fortran.  The
+library routines perform an LU decomposition with partial pivoting and
+triangular system solves through forward and back substitution.  The library
+also provides threshold-based ILU factorization preconditioners.")
+    (license license:bsd-3)))
+
+(define-public superlu-dist
+  (package
+    (name "superlu-dist")
+    (version "3.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/"
+                           "superlu_dist_" version ".tar.gz"))
+       (sha256
+        (base32 "1hnak09yxxp026blq8zhrl7685yip16svwngh1wysqxf8z48vzfj"))
+       (patches (list (search-patch "superlu-dist-scotchmetis.patch")))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("tcsh" ,tcsh)))
+    (inputs
+     `(("gfortran" ,gfortran-4.8)))
+    (propagated-inputs
+     `(("openmpi" ,openmpi)             ;headers include MPI heades
+       ("lapack" ,lapack)               ;required to link with output library
+       ("pt-scotch" ,pt-scotch)))       ;same
+    (arguments
+     `(#:parallel-build? #f             ;race conditions using ar
+       #:phases
+       (alist-replace
+        'configure
+        (lambda* (#:key inputs outputs #:allow-other-keys)
+          (call-with-output-file "make.inc"
+            (lambda (port)
+              (format port "
+PLAT        =
+DSuperLUroot = ~a
+DSUPERLULIB  = ~a/lib/libsuperlu_dist.a
+BLASDEF     = -DUSE_VENDOR_BLAS
+BLASLIB     = -L~a/lib -lblas
+PARMETISLIB = -L~a/lib \
+              -lptscotchparmetis -lptscotch -lptscotcherr -lptscotcherrexit \
+              -lscotch -lscotcherr -lscotcherrexit
+METISLIB    = -L~:*~a/lib \
+              -lscotchmetis -lscotch -lscotcherr -lscotcherrexit
+LIBS        = $(DSUPERLULIB) $(PARMETISLIB) $(METISLIB) $(BLASLIB)
+ARCH        = ar
+ARCHFLAGS   = cr
+RANLIB      = ranlib
+CC          = mpicc
+PIC         = -fPIC
+CFLAGS      = -O3 -g -DPRNTlevel=0 $(PIC)
+NOOPTS      = -O0 -g $(PIC)
+FORTRAN     = mpifort
+FFLAGS      = -O2 -g $(PIC)
+LOADER      = $(CC)
+CDEFS       = -DAdd_"
+                      (getcwd)
+                      (assoc-ref outputs "out")
+                      (assoc-ref inputs "lapack")
+                      (assoc-ref inputs "pt-scotch")))))
+        (alist-cons-after
+         'unpack 'remove-broken-symlinks
+         (lambda _
+           (for-each delete-file
+                     (find-files "MAKE_INC" "\\.#make\\..*")))
+         (alist-cons-before
+          'build 'create-install-directories
+          (lambda* (#:key outputs #:allow-other-keys)
+            (for-each
+             (lambda (dir)
+               (mkdir-p (string-append (assoc-ref outputs "out")
+                                       "/" dir)))
+             '("lib" "include")))
+          (alist-replace
+           'check
+           (lambda _
+             (with-directory-excursion "EXAMPLE"
+               (and
+                (zero? (system* "mpirun" "-n" "2"
+                                "./pddrive" "-r" "1" "-c" "2" "g20.rua"))
+                (zero? (system* "mpirun" "-n" "2"
+                                "./pzdrive" "-r" "1" "-c" "2" "cg20.cua")))))
+           (alist-replace
+            'install
+            (lambda* (#:key outputs #:allow-other-keys)
+              ;; Library is placed in lib during the build phase.  Copy over
+              ;; headers to include.
+              (let* ((out    (assoc-ref outputs "out"))
+                     (incdir (string-append out "/include")))
+                (for-each (lambda (file)
+                            (let ((base (basename file)))
+                              (format #t "installing `~a' to `~a'~%"
+                                      base incdir)
+                              (copy-file file
+                                         (string-append incdir "/" base))))
+                          (find-files "SRC" ".*\\.h$"))))
+            %standard-phases)))))))
+    (home-page (package-home-page superlu))
+    (synopsis "Parallel supernodal direct solver")
+    (description
+     "SuperLU_DIST is a parallel extension to the serial SuperLU library.
+It is targeted for distributed memory parallel machines.  SuperLU_DIST is
+implemented in ANSI C, and MPI for communications.")
+    (license license:bsd-3)))
+
+(define-public scotch
+  (package
+    (name "scotch")
+    (version "6.0.0")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "https://gforge.inria.fr/frs/download.php/31831/"
+                          "scotch_" version ".tar.gz"))
+      (sha256
+       (base32 "0yfqf9lk7chb3h42777x42x4adx0v3n0b41q0cdqrdmscp4iczp5"))
+      (patches (list (search-patch "scotch-test-threading.patch")))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("zlib" ,zlib)
+       ("flex" ,flex)
+       ("bison" ,bison)))
+    (arguments
+     `(#:phases
+       (alist-cons-after
+        'unpack 'chdir-to-src
+        (lambda _ (chdir "src"))
+        (alist-replace
+         'configure
+         (lambda _
+           (call-with-output-file "Makefile.inc"
+             (lambda (port)
+               (format port "
+EXE =
+LIB = .a
+OBJ = .o
+MAKE = make
+AR = ar
+ARFLAGS = -ruv
+CCS = gcc
+CCP = mpicc
+CCD = gcc
+CPPFLAGS =~{ -D~a~}
+CFLAGS = -O2 -g $(CPPFLAGS)
+LDFLAGS = -lz -lm -lrt -lpthread
+CP = cp
+LEX = flex -Pscotchyy -olex.yy.c
+LN = ln
+MKDIR = mkdir
+MV = mv
+RANLIB = ranlib
+YACC = bison -pscotchyy -y -b y
+"
+                       '("COMMON_FILE_COMPRESS_GZ"
+                         "COMMON_PTHREAD"
+                         "COMMON_RANDOM_FIXED_SEED"
+                         ;; TODO: Define once our MPI supports
+                         ;; MPI_THREAD_MULTIPLE
+                         ;; "SCOTCH_PTHREAD"
+                         ;; "SCOTCH_PTHREAD_NUMBER=2"
+                         "restrict=__restrict")))))
+         (alist-replace
+          'install
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let ((out (assoc-ref outputs "out")))
+              (mkdir out)
+              (zero? (system* "make"
+                              (string-append "prefix=" out)
+                              "install"))))
+          %standard-phases)))))
+    (home-page "http://www.labri.fr/perso/pelegrin/scotch/")
+    (synopsis "Programs and libraries for graph algorithms")
+    (description "SCOTCH is a set of programs and libraries which implement
+the static mapping and sparse matrix reordering algorithms developed within
+the SCOTCH project.  Its purpose is to apply graph theory, with a divide and
+conquer approach, to scientific computing problems such as graph and mesh
+partitioning, static mapping, and sparse matrix ordering, in application
+domains ranging from structural mechanics to operating systems or
+bio-chemistry.")
+    ;; See LICENSE_en.txt
+    (license license:cecill-c)))
+
+(define-public pt-scotch
+  (package (inherit scotch)
+    (name "pt-scotch")
+    (propagated-inputs
+     `(("openmpi" ,openmpi)))           ;Headers include MPI headers
+    (arguments
+     (substitute-keyword-arguments (package-arguments scotch)
+       ((#:phases scotch-phases)
+        `(alist-replace
+          'build
+          ;; TODO: Would like to add parallelism here
+          (lambda _
+            (and
+             (zero? (system* "make" "ptscotch"))
+             ;; Install the serial metis compatibility library
+             (zero? (system* "make" "-C" "libscotchmetis" "install"))))
+          (alist-replace
+           'check
+           (lambda _ (zero? (system* "make" "ptcheck")))
+           (alist-replace
+            'install
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let ((out (assoc-ref outputs "out")))
+                (mkdir out)
+                (zero? (system* "make"
+                                (string-append "prefix=" out)
+                                "install"))))
+            ,scotch-phases))))))
+    (synopsis "Programs and libraries for graph algorithms (with MPI)")))
+
+(define-public gsegrafix
+  (package
+    (name "gsegrafix")
+    (version "1.0.6")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://gnu/" name "/" name "-"
+                          version ".tar.gz"))
+      (sha256
+       (base32
+        "1b13hvx063zv970y750bx41wpx6hwd5ngjhbdrna8w8yy5kmxcda"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags '("LDFLAGS=-lm")))
+    (inputs
+     `(("libgnomecanvas" ,libgnomecanvas)
+       ("libbonoboui" ,libbonoboui)
+       ("libgnomeui" ,libgnomeui)
+       ("libgnomeprintui" ,libgnomeprintui)
+       ("popt" ,popt)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "http://www.gnu.org/software/gsegrafix/")
+    (synopsis "GNOME application to create scientific and engineering plots")
+    (description  "GSEGrafix is an application which produces high-quality graphical
+plots for science and engineering.  Plots are specified via simple ASCII
+parameter files and data files and are presented in an anti-aliased GNOME
+canvas.  The program supports rectangular two-dimensional plots, histograms,
+polar-axis plots and three-dimensional plots.  Plots can be printed or saved
+to BMP, JPEG or PNG image formats.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/mcrypt.scm b/gnu/packages/mcrypt.scm
new file mode 100644
index 0000000000..eac8c72c5e
--- /dev/null
+++ b/gnu/packages/mcrypt.scm
@@ -0,0 +1,114 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.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 mcrypt)
+  #:use-module (guix packages)
+  #:use-module ((guix licenses) #:select (gpl2+))
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages file))
+
+(define-public mcrypt
+  (package
+    (name "mcrypt")
+    (version "2.6.8")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://sourceforge/mcrypt/mcrypt-"
+                          version ".tar.gz"))
+      (sha256
+       (base32
+        "161031n1w9pb4yzz9i47szc12a4mwpcpvyxnvafsik2l9s2aliai"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("zlib" ,zlib)
+       ("libmcrypt" ,libmcrypt)
+       ("libmhash" ,libmhash)))
+    (home-page "http://mcrypt.sourceforge.net/")
+    (synopsis "Replacement for the popular Unix crypt command")
+    (description
+     "MCrypt is a replacement for the old crypt() package and crypt(1)
+command, with extensions.  It allows developers to use a wide range of
+encryption functions, without making drastic changes to their code.  It allows
+users to encrypt files or data streams without having to be cryptographers.
+The companion to MCrypt is Libmcrypt, which contains the actual encryption
+functions themselves, and provides a standardized mechanism for accessing
+them.")
+    (license gpl2+)))
+
+(define-public libmcrypt
+  (package
+    (name "libmcrypt")
+    (version "2.5.8")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://sourceforge/mcrypt/libmcrypt-"
+                          version ".tar.gz"))
+      (sha256
+       (base32
+        "0gipgb939vy9m66d3k8il98rvvwczyaw2ixr8yn6icds9c3nrsz4"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("file" ,file)))
+    (home-page "http://mcrypt.sourceforge.net/")
+    (synopsis "Encryption algorithm library")
+    (description
+     "Libmcrypt is a data encryption library.  The library is thread safe and
+provides encryption and decryption functions.  This version of the library
+supports many encryption algorithms and encryption modes.  Some algorithms
+which are supported: SERPENT, RIJNDAEL, 3DES, GOST, SAFER+, CAST-256, RC2,
+XTEA, 3WAY, TWOFISH, BLOWFISH, ARCFOUR, WAKE and more.")
+    (license gpl2+)))
+
+(define-public libmhash
+  (package
+    (name "libmhash")
+    (version "0.9.9.9")
+    (source
+     (origin
+      (method url-fetch)
+
+      (uri (string-append "mirror://sourceforge/mhash/mhash-"
+                          version ".tar.bz2"))
+      (sha256
+       (base32
+        "1w7yiljan8gf1ibiypi6hm3r363imm3sxl1j8hapjdq3m591qljn"))
+      (patches (list (search-patch "mhash-keygen-test-segfault.patch")))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("file" ,file)
+       ("perl" ,perl)))                 ;for tests
+    (home-page "http://mhash.sourceforge.net/")
+    (synopsis "Thread-safe hash library")
+    (description
+     "mhash is a thread-safe hash library, implemented in C, and provides a
+uniform interface to a large number of hash algorithms. These algorithms can
+be used to compute checksums, message digests, and other signatures. The HMAC
+support implements the basics for message authentication, following RFC 2104.
+
+Algorithms currently supplied are:
+
+CRC-32, CRC-32B, ALDER-32, MD-2, MD-4, MD-5, RIPEMD-128, RIPEMD-160,
+RIPEMD-256, RIPEMD-320, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, HAVAL-128,
+HAVAL-160, HAVAL-192, HAVAL-256, TIGER, TIGER-128, TIGER-160, GOST, WHIRLPOOL,
+SNEFRU-128, SNEFRU-256")
+    (license gpl2+)))
diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm
index 5eca6c3d35..79ae6eac94 100644
--- a/gnu/packages/mp3.scm
+++ b/gnu/packages/mp3.scm
@@ -30,6 +30,9 @@
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages xiph)
+  #:use-module (gnu packages pulseaudio)
+  #:use-module ((gnu packages linux)
+                #:select (alsa-lib))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu))
@@ -186,6 +189,30 @@ This package contains the binary.")
    (license license:gpl2+)
    (home-page "http://mp3splt.sourceforge.net/mp3splt_page/home.php")))
 
+(define-public mpg123
+  (package
+    (name "mpg123")
+    (version "1.19.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/mpg123/mpg123-"
+                                  version ".tar.bz2"))
+              (sha256
+               (base32
+                "06xhd68mj9yp0r6l771aq0d7xgnl402a3wm2mvhxmd3w3ph29446"))))
+    (build-system gnu-build-system)
+    (arguments '(#:configure-flags '("--with-default-audio=pulse")))
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs `(("pulseaudio" ,pulseaudio)
+              ("alsa-lib" ,alsa-lib)))
+    (home-page "http://www.mpg123.org/")
+    (synopsis "Console MP3 player and decoder library")
+    (description
+     "mpg123 is a real time MPEG 1.0/2.0/2.5 audio player/decoder for layers
+1,2 and 3 (MPEG 1.0 layer 3 aka MP3 most commonly tested).  It comes with a
+command-line tool as well as a C library, libmpg123.")
+    (license license:lgpl2.1)))
+
 (define-public mpg321
   (package
     (name "mpg321")
diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm
index 04b34eaf87..5841e8be7b 100644
--- a/gnu/packages/mpd.scm
+++ b/gnu/packages/mpd.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 David Thompson <dthompson2@worcester.edu>
+;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,6 +27,7 @@
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
+  #:use-module (gnu packages doxygen)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages mp3)
@@ -53,9 +55,7 @@
                (base32
                 "0csb9r3nlmbwpiryixjr5k33x3zqd61xjhwmlps3a6prck1n1xw2"))))
     (build-system gnu-build-system)
-    (arguments
-     ;; FIXME: Needs doxygen.
-     '(#:configure-flags '("--disable-documentation")))
+    (native-inputs `(("doxygen" ,doxygen)))
     (synopsis "Music Player Daemon client library")
     (description "A stable, documented, asynchronous API library for
 interfacing MPD in the C, C++ & Objective C languages.")
diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
new file mode 100644
index 0000000000..e7919bc436
--- /dev/null
+++ b/gnu/packages/mpi.scm
@@ -0,0 +1,130 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.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 mpi)
+  #:use-module (guix packages)
+  #:use-module ((guix licenses)
+                #:hide (expat))
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages gcc)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages pciutils)
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages valgrind)
+  #:use-module (srfi srfi-1))
+
+(define-public hwloc
+  (package
+    (name "hwloc")
+    (version "1.9")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.open-mpi.org/software/hwloc/v"
+                                  version "/downloads/hwloc-"
+                                  version ".tar.bz2"))
+              (sha256
+               (base32
+                "0zjgiili2a8v63s8ly3a8qp8ibxv1jw3zbgm7diic3w1qgqiza14"))))
+    (build-system gnu-build-system)
+    (arguments
+     ;; Enable libpci support, which effectively makes hwloc GPLv2+.
+     '(#:configure-flags '("--enable-libpci")))
+    (inputs
+     `(("libx11" ,libx11)
+       ("cairo" ,cairo)
+       ("ncurses" ,ncurses)
+       ("expat" ,expat)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     ;; 'hwloc.pc' refers to libpci and libnuma, hence the propagation.
+     `(("numactl" ,numactl)
+       ("pciutils" ,pciutils)))
+    (home-page "http://www.open-mpi.org/projects/hwloc/")
+    (synopsis "Abstraction of hardware architectures")
+    (description
+     "hwloc provides a portable abstraction (across OS,
+versions, architectures, ...) of the hierarchical topology of modern
+architectures, including NUMA memory nodes, sockets, shared caches, cores and
+simultaneous multithreading.  It also gathers various attributes such as cache
+and memory information.  It primarily aims at helping high-performance
+computing applications with gathering information about the hardware so as to
+exploit it accordingly and efficiently.
+
+hwloc may display the topology in multiple convenient formats.  It also offers
+a powerful programming interface to gather information about the hardware,
+bind processes, and much more.")
+
+    ;; But see above about linking against libpci.
+    (license bsd-3)))
+
+(define-public openmpi
+  (package
+    (name "openmpi")
+    (version "1.8.1")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "http://www.open-mpi.org/software/ompi/v"
+                          (string-join (take (string-split version #\.) 2)
+                                       ".")
+                          "/downloads/openmpi-" version ".tar.bz2"))
+      (sha256
+       (base32
+        "13z1q69f3qwmmhpglarfjminfy2yw4rfqr9jydjk5507q3mjf50p"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("hwloc" ,hwloc)
+       ("gfortran" ,gfortran-4.8)
+       ("valgrind" ,valgrind)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (arguments
+     `(#:configure-flags `("--enable-static"
+                           "--enable-oshmem"
+                           ;; Thread support causes some applications to hang
+                           ;; "--enable-event-thread-support"
+                           ;; "--enable-opal-multi-threads"
+                           ;; "--enable-orte-progress-threads"
+                           ;; "--enable-mpi-thread-multiple"
+                           "--enable-mpi-ext=all"
+                           "--with-devel-headers"
+                           "--enable-debug"
+                           "--enable-memchecker"
+                           ,(string-append "--with-valgrind="
+                                           (assoc-ref %build-inputs "valgrind"))
+                           ,(string-append "--with-hwloc="
+                                           (assoc-ref %build-inputs "hwloc")))))
+    (home-page "http://www.open-mpi.org")
+    (synopsis "MPI-2 implementation")
+    (description
+     "The Open MPI Project is an MPI-2 implementation that is developed and
+maintained by a consortium of academic, research, and industry partners.  Open
+MPI is therefore able to combine the expertise, technologies, and resources
+from all across the High Performance Computing community in order to build the
+best MPI library available.  Open MPI offers advantages for system and
+software vendors, application developers and computer science researchers.")
+    ;; See file://LICENSE
+    (license bsd-2)))
diff --git a/gnu/packages/openssl.scm b/gnu/packages/openssl.scm
index 8c12ff9355..eb03bb99c3 100644
--- a/gnu/packages/openssl.scm
+++ b/gnu/packages/openssl.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -34,7 +35,10 @@
                                 ".tar.gz"))
             (sha256
              (base32
-              "0a70qdqccg16nw4bbawa6pjvzn05vfp5wkwg6jl0grch7f683jsk"))))
+              "0a70qdqccg16nw4bbawa6pjvzn05vfp5wkwg6jl0grch7f683jsk"))
+            (patches
+             (list (search-patch "openssl-CVE-2010-5298.patch")
+                   (search-patch "openssl-extension-checking-fixes.patch")))))
    (build-system gnu-build-system)
    (native-inputs `(("perl" ,perl)))
    (arguments
diff --git a/gnu/packages/patches/ccache-stdc-predef-test.patch b/gnu/packages/patches/ccache-stdc-predef-test.patch
new file mode 100644
index 0000000000..bd9444c2df
--- /dev/null
+++ b/gnu/packages/patches/ccache-stdc-predef-test.patch
@@ -0,0 +1,157 @@
+This patch is a combination of the following commits::
+
+  https://git.samba.org/?p=ccache.git;a=commit;h=b5d63f81c1a83fd4c50b769a96a04f581b7db70c
+  https://git.samba.org/?p=ccache.git;a=commit;h=a11f5688748ecb49f590b3f4bc0e9b3458f9a56f
+  https://git.samba.org/?p=ccache.git;a=commit;h=5a9322c56ed0cd16255966e99077843aae57ab3e
+
+from the general discussion at
+http://comments.gmane.org/gmane.comp.compilers.ccache/1089
+
+--- a/test.sh
++++ b/test.sh
+@@ -562,6 +562,12 @@
+ EOF
+     backdate test1.h test2.h test3.h
+ 
++    $COMPILER -c -Wp,-MD,expected.d test.c
++    expected_d_content=`cat expected.d`
++
++    $COMPILER -c -Wp,-MMD,expected_mmd.d test.c
++    expected_mmd_d_content=`cat expected_mmd.d`
++
+     ##################################################################
+     # First compilation is a miss.
+     testname="first compilation"
+@@ -677,7 +683,7 @@
+     checkstat 'cache hit (direct)' 0
+     checkstat 'cache hit (preprocessed)' 0
+     checkstat 'cache miss' 1
+-    checkfile other.d "test.o: test.c test1.h test3.h test2.h"
++    checkfile other.d "$expected_d_content"
+ 
+     rm -f other.d
+ 
+@@ -685,7 +691,7 @@
+     checkstat 'cache hit (direct)' 1
+     checkstat 'cache hit (preprocessed)' 0
+     checkstat 'cache miss' 1
+-    checkfile other.d "test.o: test.c test1.h test3.h test2.h"
++    checkfile other.d "$expected_d_content"
+ 
+     rm -f other.d
+ 
+@@ -698,7 +704,7 @@
+     checkstat 'cache hit (direct)' 0
+     checkstat 'cache hit (preprocessed)' 0
+     checkstat 'cache miss' 1
+-    checkfile other.d "test.o: test.c test1.h test3.h test2.h"
++    checkfile other.d "$expected_mmd_d_content"
+ 
+     rm -f other.d
+ 
+@@ -706,7 +712,7 @@
+     checkstat 'cache hit (direct)' 1
+     checkstat 'cache hit (preprocessed)' 0
+     checkstat 'cache miss' 1
+-    checkfile other.d "test.o: test.c test1.h test3.h test2.h"
++    checkfile other.d "$expected_mmd_d_content"
+ 
+     rm -f other.d
+ 
+@@ -760,7 +766,7 @@
+     checkstat 'cache hit (direct)' 0
+     checkstat 'cache hit (preprocessed)' 0
+     checkstat 'cache miss' 1
+-    checkfile test.d "test.o: test.c test1.h test3.h test2.h"
++    checkfile test.d "$expected_d_content"
+ 
+     rm -f test.d
+ 
+@@ -768,7 +774,7 @@
+     checkstat 'cache hit (direct)' 1
+     checkstat 'cache hit (preprocessed)' 0
+     checkstat 'cache miss' 1
+-    checkfile test.d "test.o: test.c test1.h test3.h test2.h"
++    checkfile test.d "$expected_d_content"
+ 
+     ##################################################################
+     # Check the scenario of running a ccache with direct mode on a cache
+@@ -780,7 +786,7 @@
+     checkstat 'cache hit (direct)' 0
+     checkstat 'cache hit (preprocessed)' 0
+     checkstat 'cache miss' 1
+-    checkfile test.d "test.o: test.c test1.h test3.h test2.h"
++    checkfile test.d "$expected_d_content"
+ 
+     rm -f test.d
+ 
+@@ -788,7 +794,7 @@
+     checkstat 'cache hit (direct)' 0
+     checkstat 'cache hit (preprocessed)' 1
+     checkstat 'cache miss' 1
+-    checkfile test.d "test.o: test.c test1.h test3.h test2.h"
++    checkfile test.d "$expected_d_content"
+ 
+     rm -f test.d
+ 
+@@ -796,7 +802,7 @@
+     checkstat 'cache hit (direct)' 0
+     checkstat 'cache hit (preprocessed)' 2
+     checkstat 'cache miss' 1
+-    checkfile test.d "test.o: test.c test1.h test3.h test2.h"
++    checkfile test.d "$expected_d_content"
+ 
+     rm -f test.d
+ 
+@@ -804,7 +810,7 @@
+     checkstat 'cache hit (direct)' 1
+     checkstat 'cache hit (preprocessed)' 2
+     checkstat 'cache miss' 1
+-    checkfile test.d "test.o: test.c test1.h test3.h test2.h"
++    checkfile test.d "$expected_d_content"
+ 
+     ##################################################################
+     # Check that -MF works.
+@@ -815,7 +821,7 @@
+     checkstat 'cache hit (direct)' 0
+     checkstat 'cache hit (preprocessed)' 0
+     checkstat 'cache miss' 1
+-    checkfile other.d "test.o: test.c test1.h test3.h test2.h"
++    checkfile other.d "$expected_d_content"
+ 
+     rm -f other.d
+ 
+@@ -823,7 +829,7 @@
+     checkstat 'cache hit (direct)' 1
+     checkstat 'cache hit (preprocessed)' 0
+     checkstat 'cache miss' 1
+-    checkfile other.d "test.o: test.c test1.h test3.h test2.h"
++    checkfile other.d "$expected_d_content"
+ 
+     ##################################################################
+     # Check that a missing .d file in the cache is handled correctly.
+@@ -835,13 +841,13 @@
+     checkstat 'cache hit (direct)' 0
+     checkstat 'cache hit (preprocessed)' 0
+     checkstat 'cache miss' 1
+-    checkfile other.d "test.o: test.c test1.h test3.h test2.h"
++    checkfile other.d "$expected_d_content"
+ 
+     $CCACHE $COMPILER -c -MD test.c
+     checkstat 'cache hit (direct)' 1
+     checkstat 'cache hit (preprocessed)' 0
+     checkstat 'cache miss' 1
+-    checkfile other.d "test.o: test.c test1.h test3.h test2.h"
++    checkfile other.d "$expected_d_content"
+ 
+     find $CCACHE_DIR -name '*.d' -exec rm -f '{}' \;
+ 
+@@ -849,7 +855,7 @@
+     checkstat 'cache hit (direct)' 1
+     checkstat 'cache hit (preprocessed)' 1
+     checkstat 'cache miss' 1
+-    checkfile other.d "test.o: test.c test1.h test3.h test2.h"
++    checkfile other.d "$expected_d_content"
+ 
+     ##################################################################
+     # Check that stderr from both the preprocessor and the compiler is emitted
diff --git a/gnu/packages/patches/clucene-pkgconfig.patch b/gnu/packages/patches/clucene-pkgconfig.patch
new file mode 100644
index 0000000000..5e4825cd3f
--- /dev/null
+++ b/gnu/packages/patches/clucene-pkgconfig.patch
@@ -0,0 +1,21 @@
+Taken from the Debian package.
+
+From 7be4a19b76d98260cf95040a47935f854a4ba7a4 Mon Sep 17 00:00:00 2001
+From: Valentin Rusu <kde@rusu.info>
+Date: Sat, 17 Dec 2011 13:47:58 +0100
+Subject: [PATCH] Fix .pc file by adding clucene-shared library
+
+---
+ src/core/libclucene-core.pc.cmake |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/src/core/libclucene-core.pc.cmake
++++ b/src/core/libclucene-core.pc.cmake
+@@ -6,6 +6,6 @@ includedir=${prefix}/include:${prefix}/i
+ Name: libclucene
+ Description: CLucene - a C++ search engine, ported from the popular Apache Lucene
+ Version: @CLUCENE_VERSION_MAJOR@.@CLUCENE_VERSION_MINOR@.@CLUCENE_VERSION_REVISION@.@CLUCENE_VERSION_PATCH@
+-Libs: -L${prefix}/@LIB_DESTINATION@/ -lclucene-core
++Libs: -L${prefix}/@LIB_DESTINATION@/ -lclucene-core -lclucene-shared
+ Cflags: -I${prefix}/include -I${prefix}/include/CLucene/ext
+ ~
diff --git a/gnu/packages/patches/doxygen-test.patch b/gnu/packages/patches/doxygen-test.patch
new file mode 100644
index 0000000000..7a7f4e963f
--- /dev/null
+++ b/gnu/packages/patches/doxygen-test.patch
@@ -0,0 +1,38 @@
+Modify the expected outcome of test 012 so that it passes when bibtex is
+not in the path, as we do not wish to add texlive as an input just for this
+test.
+
+diff -u -r doxygen-1.8.7.orig/testing/012/citelist.xml doxygen-1.8.7/testing/012/citelist.xml
+--- doxygen-1.8.7.orig/testing/012/citelist.xml	2014-04-24 23:43:34.000000000 +0200
++++ doxygen-1.8.7/testing/012/citelist.xml	2014-04-24 23:49:43.000000000 +0200
+@@ -4,17 +4,6 @@
+     <compoundname>citelist</compoundname>
+     <title>Bibliography</title>
+     <detaileddescription>
+-      <para>
+-        <variablelist>
+-          <varlistentry>
+-            <term><anchor id="_1CITEREF_knuth79"/>[1]</term>
+-          </varlistentry>
+-          <listitem>
+-            <para>Donald<nonbreakablespace/>E. Knuth. <emphasis>Tex and Metafont, New Directions in Typesetting</emphasis>. American Mathematical Society and Digital Press, Stanford, 1979.</para>
+-            <para/>
+-          </listitem>
+-        </variablelist>
+-      </para>
+     </detaileddescription>
+   </compounddef>
+ </doxygen>
+diff -u -r doxygen-1.8.7.orig/testing/012/indexpage.xml doxygen-1.8.7/testing/012/indexpage.xml
+--- doxygen-1.8.7.orig/testing/012/indexpage.xml	2014-04-24 23:43:34.000000000 +0200
++++ doxygen-1.8.7/testing/012/indexpage.xml	2014-04-24 23:44:05.000000000 +0200
+@@ -4,7 +4,7 @@
+     <compoundname>index</compoundname>
+     <title>My Project</title>
+     <detaileddescription>
+-      <para>See <ref refid="citelist_1CITEREF_knuth79" kindref="member">[1]</ref> for more info. </para>
++      <para>See <ref refid="citelist_1CITEREF_knuth79" kindref="member">knuth79</ref> for more info. </para>
+     </detaileddescription>
+   </compounddef>
+ </doxygen>
+Nur in doxygen-1.8.7/testing: test_output_012.
diff --git a/gnu/packages/patches/doxygen-tmake.patch b/gnu/packages/patches/doxygen-tmake.patch
new file mode 100644
index 0000000000..3579243702
--- /dev/null
+++ b/gnu/packages/patches/doxygen-tmake.patch
@@ -0,0 +1,24 @@
+Fix the `check_unix' function, which looks for `/bin/uname' to determine
+whether we're on a Unix-like system.
+Taken from nixpkgs.
+
+--- doxygen-1.5.8/tmake/bin/tmake	2008-12-06 14:16:20.000000000 +0100
++++ doxygen-1.5.8/tmake/bin/tmake	2009-03-05 11:29:55.000000000 +0100
+@@ -234,17 +234,7 @@ sub tmake_verb {
+ #
+ 
+ sub check_unix {
+-    my($r);
+-    $r = 0;
+-    if ( -f "/bin/uname" ) {
+-	$r = 1;
+-	(-f "\\bin\\uname") && ($r = 0);
+-    }
+-    if ( -f "/usr/bin/uname" ) {
+-	$r = 1;
+-	(-f "\\usr\\bin\\uname") && ($r = 0);
+-    }
+-    return $r;
++    return 1;
+ }
+ 
diff --git a/gnu/packages/patches/mhash-keygen-test-segfault.patch b/gnu/packages/patches/mhash-keygen-test-segfault.patch
new file mode 100644
index 0000000000..3bd9f43418
--- /dev/null
+++ b/gnu/packages/patches/mhash-keygen-test-segfault.patch
@@ -0,0 +1,13 @@
+This patch from resolution of https://sourceforge.net/p/mhash/bugs/37/
+
+--- a/src/keygen_test.c
++++ b/src/keygen_test.c
+@@ -121,8 +121,6 @@
+ 	
+ 	mhash_keygen_ext(KEYGEN_S2K_SALTED, data, key, keysize, password, passlen);
+ 
+-	mutils_memset(tmp, 0, keysize * 2);
+-
+ 	tmp = mutils_asciify(key, keysize);
+ 
+ 	result = mutils_strcmp((mutils_word8 *) KEY2, tmp);
diff --git a/gnu/packages/patches/openssl-CVE-2010-5298.patch b/gnu/packages/patches/openssl-CVE-2010-5298.patch
new file mode 100644
index 0000000000..707a24dff0
--- /dev/null
+++ b/gnu/packages/patches/openssl-CVE-2010-5298.patch
@@ -0,0 +1,27 @@
+From db978be7388852059cf54e42539a363d549c5bfd Mon Sep 17 00:00:00 2001
+From: Kurt Roeckx <kurt@roeckx.be>
+Date: Sun, 13 Apr 2014 15:05:30 +0200
+Subject: [PATCH] Don't release the buffer when there still is data in it
+
+RT: 2167, 3265
+---
+ ssl/s3_pkt.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/ssl/s3_pkt.c b/ssl/s3_pkt.c
+index b9e45c7..32e9207 100644
+--- a/ssl/s3_pkt.c
++++ b/ssl/s3_pkt.c
+@@ -1055,7 +1055,8 @@ int ssl3_read_bytes(SSL *s, int type, unsigned char *buf, int len, int peek)
+ 				{
+ 				s->rstate=SSL_ST_READ_HEADER;
+ 				rr->off=0;
+-				if (s->mode & SSL_MODE_RELEASE_BUFFERS)
++				if (s->mode & SSL_MODE_RELEASE_BUFFERS &&
++					s->s3->rbuf.left == 0)
+ 					ssl3_release_read_buffer(s);
+ 				}
+ 			}
+-- 
+1.9.1
+
diff --git a/gnu/packages/patches/openssl-extension-checking-fixes.patch b/gnu/packages/patches/openssl-extension-checking-fixes.patch
new file mode 100644
index 0000000000..3fdd893563
--- /dev/null
+++ b/gnu/packages/patches/openssl-extension-checking-fixes.patch
@@ -0,0 +1,40 @@
+From 300b9f0b704048f60776881f1d378c74d9c32fbd Mon Sep 17 00:00:00 2001
+From: "Dr. Stephen Henson" <steve@openssl.org>
+Date: Tue, 15 Apr 2014 18:48:54 +0100
+Subject: [PATCH] Extension checking fixes.
+
+When looking for an extension we need to set the last found
+position to -1 to properly search all extensions.
+
+PR#3309.
+---
+ crypto/x509v3/v3_purp.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/crypto/x509v3/v3_purp.c b/crypto/x509v3/v3_purp.c
+index 6c40c7d..5f931db 100644
+--- a/crypto/x509v3/v3_purp.c
++++ b/crypto/x509v3/v3_purp.c
+@@ -389,8 +389,8 @@ static void x509v3_cache_extensions(X509 *x)
+ 	/* Handle proxy certificates */
+ 	if((pci=X509_get_ext_d2i(x, NID_proxyCertInfo, NULL, NULL))) {
+ 		if (x->ex_flags & EXFLAG_CA
+-		    || X509_get_ext_by_NID(x, NID_subject_alt_name, 0) >= 0
+-		    || X509_get_ext_by_NID(x, NID_issuer_alt_name, 0) >= 0) {
++		    || X509_get_ext_by_NID(x, NID_subject_alt_name, -1) >= 0
++		    || X509_get_ext_by_NID(x, NID_issuer_alt_name, -1) >= 0) {
+ 			x->ex_flags |= EXFLAG_INVALID;
+ 		}
+ 		if (pci->pcPathLengthConstraint) {
+@@ -670,7 +670,7 @@ static int check_purpose_timestamp_sign(const X509_PURPOSE *xp, const X509 *x,
+ 		return 0;
+ 
+ 	/* Extended Key Usage MUST be critical */
+-	i_ext = X509_get_ext_by_NID((X509 *) x, NID_ext_key_usage, 0);
++	i_ext = X509_get_ext_by_NID((X509 *) x, NID_ext_key_usage, -1);
+ 	if (i_ext >= 0)
+ 		{
+ 		X509_EXTENSION *ext = X509_get_ext((X509 *) x, i_ext);
+-- 
+1.9.1
+
diff --git a/gnu/packages/patches/perl-tk-x11-discover.patch b/gnu/packages/patches/perl-tk-x11-discover.patch
new file mode 100644
index 0000000000..f4365e6882
--- /dev/null
+++ b/gnu/packages/patches/perl-tk-x11-discover.patch
@@ -0,0 +1,14 @@
+On non-x86_64 systems, this conditional can cause a specified X11 build value
+to be overwritten to null, causing x11 discovery to fail.
+
+--- a/myConfig	2014-05-12 11:16:48.152719722 -0500
++++ b/myConfig	2014-05-12 11:16:24.704719113 -0500
+@@ -350,7 +350,7 @@
+   #
+   # Prefer 64bit libraries on certain architectures
+   #
+-  unless (defined $xlib and $Config{'archname'} =~ m/x86_64/)
++  unless (defined $xlib or not $Config{'archname'} =~ m/x86_64/)
+     {
+       $xlib64 = &lX11(0, chooseX11(</usr/X11*/lib64>));
+     }
diff --git a/gnu/packages/patches/petsc-fix-threadcomm.patch b/gnu/packages/patches/petsc-fix-threadcomm.patch
new file mode 100644
index 0000000000..3ef4f2d83d
--- /dev/null
+++ b/gnu/packages/patches/petsc-fix-threadcomm.patch
@@ -0,0 +1,15 @@
+Fix "error: unknown type name 'cpu_set_t'".  Patch submitted upstream
+http://lists.mcs.anl.gov/pipermail/petsc-dev/2014-May/015345.html
+
+--- a/src/sys/threadcomm/impls/openmp/tcopenmp.c	2014-03-13 21:47:22.000000000 -0500
++++ b/src/sys/threadcomm/impls/openmp/tcopenmp.c	2014-04-02 14:44:57.185170151 -0500
+@@ -1,6 +1,9 @@
+ #define PETSC_DESIRE_FEATURE_TEST_MACROS
+ #include <../src/sys/threadcomm/impls/openmp/tcopenmpimpl.h>
+ #include <omp.h>
++#if defined(PETSC_HAVE_SCHED_CPU_SET_T)
++#include <sched.h>
++#endif
+ 
+ PetscErrorCode PetscThreadCommGetRank_OpenMP(PetscInt *trank)
+ {
diff --git a/gnu/packages/patches/pybugz-encode-error.patch b/gnu/packages/patches/pybugz-encode-error.patch
new file mode 100644
index 0000000000..ab78bf84b3
--- /dev/null
+++ b/gnu/packages/patches/pybugz-encode-error.patch
@@ -0,0 +1,17 @@
+In case of 'AttributeError', 'value' is None, so do not try to
+access it.
+Submitted upstream.
+
+--- pybugz-0.6.11/bugz.py	2006-09-02 14:35:37.000000000 +0200
++++ pybugz-0.6.11/bugz.py	2014-05-05 16:02:20.000000000 +0200
+@@ -1249,9 +1254,9 @@ class PrettyBugz(Bugz):
+         for field, name in FIELDS + MORE_FIELDS:
+             try:
+                 value = result.find('//%s' % field).text
++                print '%-12s: %s' % (name, value.encode(self.enc))
+             except AttributeError:
+                 continue
+-            print '%-12s: %s' % (name, value.encode(self.enc))
+ 
+         # Print out the cc'ed people
+         cced = result.findall('.//cc')
diff --git a/gnu/packages/patches/pybugz-stty.patch b/gnu/packages/patches/pybugz-stty.patch
new file mode 100644
index 0000000000..4453e9d027
--- /dev/null
+++ b/gnu/packages/patches/pybugz-stty.patch
@@ -0,0 +1,19 @@
+Gracefully deal with 'stty size' failures.
+Submitted upstream.
+
+--- pybugz-0.6.11/bugz.py	2006-09-02 14:35:37.000000000 +0200
++++ pybugz-0.6.11/bugz.py	2014-05-05 15:17:03.000000000 +0200
+@@ -288,7 +288,12 @@ def get_cols():
+     stty = which('stty')
+     if stty:
+         row_cols = commands.getoutput("%s size" % stty)
+-        rows, cols = map(int, row_cols.split())
++        try:
++            rows, cols = map(int, row_cols.split())
++        except:
++            # In some cases 'stty size' will just fail with
++            # "Inappropriate ioctl for device".
++            cols = DEFAULT_NUM_COLS
+         return cols
+     else:
+         return DEFAULT_NUM_COLS
diff --git a/gnu/packages/patches/scotch-test-threading.patch b/gnu/packages/patches/scotch-test-threading.patch
new file mode 100644
index 0000000000..2527a6e6dd
--- /dev/null
+++ b/gnu/packages/patches/scotch-test-threading.patch
@@ -0,0 +1,139 @@
+* These tests assume threading support, even when the library is compiled
+  without it.  Protect these checks.
+
+* Tests should not require keyboard interaction.
+
+--- a/src/check/test_scotch_dgraph_band.c	2012-09-27 10:46:42.000000000 -0500
++++ b/src/check/test_scotch_dgraph_band.c	2014-05-13 14:36:07.479270243 -0500
+@@ -99,10 +99,12 @@
+     errorPrint ("main: Cannot initialize (1)");
+     exit       (1);
+   }
++#ifdef SCOTCH_PTHREAD
+   if (thrdlvlreqval > thrdlvlproval) {
+     errorPrint ("main: Cannot initialize (2)");
+     exit       (1);
+   }
++#endif
+ 
+   if (argc != 2) {
+     errorPrint ("main: invalid number of parameters");
+@@ -115,12 +117,14 @@
+ 
+   fprintf (stderr, "Proc %2d of %2d, pid %d\n", proclocnum, procglbnbr, getpid ());
+ 
++#ifdef SCOTCH_DEBUG_CHECK2
+   if (proclocnum == 0) {                          /* Synchronize on keybord input */
+     char           c;
+ 
+     printf ("Waiting for key press...\n");
+     scanf ("%c", &c);
+   }
++#endif /* SCOTCH_DEBUG_CHECK2 */
+ 
+   if (MPI_Barrier (proccomm) != MPI_SUCCESS) {    /* Synchronize for debug */
+     errorPrint ("main: cannot communicate");
+--- a/src/check/test_scotch_dgraph_grow.c	2012-11-30 12:19:33.000000000 -0600
++++ b/src/check/test_scotch_dgraph_grow.c	2014-05-13 14:35:31.307269303 -0500
+@@ -103,10 +103,12 @@
+     errorPrint ("main: Cannot initialize (1)");
+     exit       (1);
+   }
++#ifdef SCOTCH_PTHREAD
+   if (thrdlvlreqval > thrdlvlproval) {
+     errorPrint ("main: Cannot initialize (2)");
+     exit       (1);
+   }
++#endif
+ 
+   if (argc != 2) {
+     errorPrint ("main: invalid number of parameters");
+@@ -119,12 +121,14 @@
+ 
+   fprintf (stderr, "Proc %2d of %2d, pid %d\n", proclocnum, procglbnbr, getpid ());
+ 
++#ifdef SCOTCH_DEBUG_CHECK2
+   if (proclocnum == 0) {                          /* Synchronize on keybord input */
+     char           c;
+ 
+     printf ("Waiting for key press...\n");
+     scanf ("%c", &c);
+   }
++#endif /* SCOTCH_DEBUG_CHECK2 */
+ 
+   if (MPI_Barrier (proccomm) != MPI_SUCCESS) {    /* Synchronize for debug */
+     errorPrint ("main: cannot communicate");
+--- a/src/check/test_scotch_dgraph_redist.c	2012-09-26 11:42:27.000000000 -0500
++++ b/src/check/test_scotch_dgraph_redist.c	2014-05-13 14:34:30.323267722 -0500
+@@ -98,10 +98,12 @@
+     errorPrint ("main: Cannot initialize (1)");
+     exit       (1);
+   }
++#ifdef SCOTCH_PTHREAD
+   if (thrdlvlreqval > thrdlvlproval) {
+     errorPrint ("main: Cannot initialize (2)");
+     exit       (1);
+   }
++#endif
+ 
+   if (argc != 2) {
+     errorPrint ("main: invalid number of parameters");
+@@ -114,7 +116,6 @@
+ 
+   fprintf (stderr, "Proc %2d of %2d, pid %d\n", proclocnum, procglbnbr, getpid ());
+ 
+-#define SCOTCH_DEBUG_CHECK2
+ #ifdef SCOTCH_DEBUG_CHECK2
+   if (proclocnum == 0) {                          /* Synchronize on keybord input */
+     char           c;
+--- /tmp/nix-build-scotch-6.0.0.drv-9/scotch_6.0.0/src/check/test_common_thread.c	2012-11-30 11:05:23.000000000 -0600
++++ scotch_6.0.0/src/check/test_common_thread.c	2014-05-13 17:26:27.159535244 -0500
+@@ -90,7 +90,7 @@
+ /*                       */
+ /*************************/
+ 
+-#if ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD))
++#ifdef SCOTCH_PTHREAD
+ 
+ static
+ void
+@@ -161,7 +161,7 @@
+   return (o);
+ }
+ 
+-#endif /* ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD)) */
++#endif /* SCOTCH_PTHREAD */
+ 
+ /*********************/
+ /*                   */
+@@ -175,14 +175,14 @@
+ char *              argv[])
+ {
+   TestThreadGroup       groudat;
+-#if ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD))
++#ifdef SCOTCH_PTHREAD
+   TestThread * restrict thrdtab;
+   int                   thrdnbr;
+-#endif /* ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD)) */
++#endif /* SCOTCH_PTHREAD */
+ 
+   SCOTCH_errorProg (argv[0]);
+ 
+-#if ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD))
++#ifdef SCOTCH_PTHREAD
+   thrdnbr = SCOTCH_PTHREAD_NUMBER;
+ 
+   groudat.redusum = COMPVAL (thrdnbr);
+@@ -197,9 +197,9 @@
+     errorPrint ("main: cannot launch or run threads");
+     return     (1);
+   }
+-#else /* ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD)) */
+-  printf ("Scotch not compiled with either COMMON_PTHREAD or SCOTCH_PTHREAD\n");
+-#endif /* ((defined COMMON_PTHREAD) || (defined SCOTCH_PTHREAD)) */
++#else /* not SCOTCH_PTHREAD */
++  printf ("Scotch not compiled with SCOTCH_PTHREAD\n");
++#endif /* not SCOTCH_PTHREAD */
+ 
+   return (0);
+ }
diff --git a/gnu/packages/patches/soprano-find-clucene.patch b/gnu/packages/patches/soprano-find-clucene.patch
new file mode 100644
index 0000000000..cc2707853a
--- /dev/null
+++ b/gnu/packages/patches/soprano-find-clucene.patch
@@ -0,0 +1,15 @@
+Search for clucene include file in the clucene include directory.
+
+diff -u -r soprano-2.9.4.orig/cmake/modules/FindCLucene.cmake soprano-2.9.4/cmake/modules/FindCLucene.cmake
+--- soprano-2.9.4.orig/cmake/modules/FindCLucene.cmake	2013-10-09 19:22:28.000000000 +0200
++++ soprano-2.9.4/cmake/modules/FindCLucene.cmake	2014-04-28 20:08:11.000000000 +0200
+@@ -77,7 +77,8 @@
+ 
+ get_filename_component(TRIAL_LIBRARY_DIR ${CLUCENE_LIBRARY} PATH)
+ find_path(CLUCENE_LIBRARY_DIR
+-  NAMES CLucene/clucene-config.h PATHS ${TRIAL_LIBRARY_DIR} ${TRIAL_LIBRARY_PATHS} ${TRIAL_INCLUDE_PATHS} NO_DEFAULT_PATH)
++  NAMES CLucene/clucene-config.h PATHS ${TRIAL_LIBRARY_DIR} ${TRIAL_LIBRARY_PATHS} ${TRIAL_INCLUDE_PATHS} ${CLUCENE_INCLUDE_DIR} NO_DEFAULT_PATH)
++message (STATUS "XXX ${CLUCENE_LIBRARY_DIR}")
+ if(CLUCENE_LIBRARY_DIR)
+   message(STATUS "Found CLucene library dir: ${CLUCENE_LIBRARY_DIR}")
+   file(READ ${CLUCENE_LIBRARY_DIR}/CLucene/clucene-config.h CLCONTENT)
diff --git a/gnu/packages/patches/superlu-dist-scotchmetis.patch b/gnu/packages/patches/superlu-dist-scotchmetis.patch
new file mode 100644
index 0000000000..3d78380551
--- /dev/null
+++ b/gnu/packages/patches/superlu-dist-scotchmetis.patch
@@ -0,0 +1,21 @@
+The METIS interface from Scotch may segfault if passed NULL to indicate a
+default parameter, so use the older calling style.
+
+--- a/SRC/get_perm_c.c	2014-05-16 23:38:30.070835316 -0500
++++ b/SRC/get_perm_c.c	2014-05-16 23:39:04.582836211 -0500
+@@ -70,11 +70,13 @@
+ #else
+ 
+     /* Earlier version 3.x.x */
+-    /* METIS_NodeND(&nm, b_colptr, b_rowind, &numflag, metis_options,
+-       perm, iperm);*/
++    METIS_NodeND(&nm, b_colptr, b_rowind, &numflag, metis_options,
++                 perm, iperm);
+ 
+     /* Latest version 4.x.x */
++#if 0
+     METIS_NodeND(&nm, b_colptr, b_rowind, NULL, NULL, perm, iperm);
++#endif
+ 
+     /*check_perm_dist("metis perm",  n, perm);*/
+ #endif
diff --git a/gnu/packages/pciutils.scm b/gnu/packages/pciutils.scm
new file mode 100644
index 0000000000..2b887f16d8
--- /dev/null
+++ b/gnu/packages/pciutils.scm
@@ -0,0 +1,91 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.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 pciutils)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module ((guix licenses)
+                #:renamer (symbol-prefix-proc 'license:))
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages which))
+
+(define-public pciutils
+  (package
+    (name "pciutils")
+    (version "3.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://kernel.org/software/utils/pciutils/pciutils-"
+                    version
+                    ".tar.bz2"))
+              (sha256
+               (base32
+                "0d9as9jzjjg5c1nwf58z1y1i7rf9fqxmww1civckhcvcn0xr85mq"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases (alist-replace
+                 'configure
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   ;; There's no 'configure' script, just a raw makefile.
+                   (substitute* "Makefile"
+                     (("^PREFIX=.*$")
+                      (string-append "PREFIX := " (assoc-ref outputs "out")
+                                     "\n"))
+                     (("^MANDIR:=.*$")
+                       ;; By default the thing tries to automatically
+                       ;; determine whether to use $prefix/man or
+                       ;; $prefix/share/man, and wrongly so.
+                      (string-append "MANDIR := " (assoc-ref outputs "out")
+                                     "/share/man\n"))
+                     (("^SHARED=.*$")
+                      ;; Build libpciutils.so.
+                      "SHARED := yes\n")
+                     (("^ZLIB=.*$")
+                      ;; Ask for zlib support.
+                      "ZLIB := yes\n")))
+
+                 (alist-replace
+                  'install
+                  (lambda* (#:key outputs #:allow-other-keys)
+                    ;; Install the commands, library, and .pc files.
+                    (zero? (system* "make" "install" "install-lib")))
+                  %standard-phases))
+
+       ;; Make sure programs have an RPATH so they can find libpciutils.so.
+       #:make-flags (list (string-append "LDFLAGS=-Wl,-rpath="
+                                         (assoc-ref %outputs "out") "/lib"))
+
+       ;; No test suite.
+       #:tests? #f))
+    (native-inputs
+     `(("which" ,which)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     ;; TODO: Add dependency on Linux libkmod.
+     `(("zlib" ,zlib)))
+    (home-page "http://mj.ucw.cz/sw/pciutils/")
+    (synopsis "Programs for inspecting and manipulating PCI devices")
+    (description
+     "The PCI Utilities are a collection of programs for inspecting and
+manipulating configuration of PCI devices, all based on a common portable
+library libpci which offers access to the PCI configuration space on a variety
+of operating systems.  This includes the 'lspci' and 'setpci' commands.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 6279120107..48b543436e 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -106,14 +106,14 @@ matching a regular expression.")
 (define-public perl-io-tty
   (package
     (name "perl-io-tty")
-    (version "1.10")
+    (version "1.11")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://cpan/authors/id/T/TO/TODDR/IO-Tty-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1cgqyv1zg8857inlnfczrrgpqr0r6mmqv29b7jlmxv47s4df59ii"))))
+                "0lgd9xcbi4gf4gw1ka6fj94my3w1f3k1zamb4pfln0qxz45zlxx4"))))
     (build-system perl-build-system)
     (home-page "http://search.cpan.org/~toddr/IO-Tty/")
     (synopsis "Perl interface to pseudo ttys")
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 372f763ee5..b15e5b66d2 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -21,7 +21,7 @@
 
 (define-module (gnu packages python)
   #:use-module ((guix licenses)
-                #:select (bsd-3 bsd-style psfl x11 x11-style
+                #:select (bsd-3 bsd-style expat psfl x11 x11-style
                           gpl2 gpl2+ lgpl2.1+))
   #:use-module ((guix licenses) #:select (zlib)
                                 #:renamer (symbol-prefix-proc 'license:))
@@ -293,6 +293,55 @@ etc. ")
 (define-public python2-babel
   (package-with-python2 python-babel))
 
+(define-public python-lockfile
+  (package
+    (name "python-lockfile")
+    (version "0.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pypi.python.org/packages/source/l/lockfile/"
+                           "lockfile-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0iwif7i84gwpvrnpv4brshdk8j6l77smvknm8k3bg77mj6f5ini3"))))
+    (build-system python-build-system)
+    (arguments '(#:test-target "check"))
+    (home-page "http://code.google.com/p/pylockfile/")
+    (synopsis "Platform-independent file locking module")
+    (description
+     "The lockfile package exports a LockFile class which provides a simple
+API for locking files.")
+    (license expat)))
+
+(define-public python2-lockfile
+  (package-with-python2 python-lockfile))
+
+(define-public python-mock
+  (package
+    (name "python-mock")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pypi.python.org/packages/source/m/mock/"
+                           "mock-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0kzlsbki6q0awf89rc287f3aj8x431lrajf160a70z0ikhnxsfdq"))))
+    (build-system python-build-system)
+    (arguments '(#:test-target "check"))
+    (home-page "http://code.google.com/m/mock/")
+    (synopsis "A Python Mocking and Patching Library for Testing")
+    (description
+     "Mock is a library for testing in Python.  It allows you to replace parts
+of your system under test with mock objects and make assertions about how they
+have been used.")
+    (license expat)))
+
+(define-public python2-mock
+  (package-with-python2 python-mock))
+
 
 (define-public python-setuptools
   (package
@@ -578,7 +627,10 @@ commands.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "17ni00p08gp5lkxlrrcnvi3x09fmajnlbz4da03qcgl9q21ym4jd"))))
+                "17ni00p08gp5lkxlrrcnvi3x09fmajnlbz4da03qcgl9q21ym4jd"))
+              (patches (map search-patch
+                            (list "pybugz-stty.patch"
+                                  "pybugz-encode-error.patch")))))
     (build-system python-build-system)
     (arguments
      `(#:python ,python-2                         ; SyntaxError with Python 3
diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm
index b02998392e..b4a962e888 100644
--- a/gnu/packages/qemu.scm
+++ b/gnu/packages/qemu.scm
@@ -44,14 +44,14 @@
   ;; This is QEMU without GUI support.
   (package
     (name "qemu-headless")
-    (version "1.7.1")
+    (version "2.0.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "http://wiki.qemu-project.org/download/qemu-"
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "1x5y06zhp0gc97g1sb98vf7dkawg63xywv0mbnpfnbi20jh452fn"))))
+               "0frsahiw56jr4cqr9m6s383lyj4ar9hfs2wp3y4yr76krah1mk30"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (alist-replace
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index a47dcac50f..de8dbdea48 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -150,7 +150,7 @@ developers using C++ or QML, a CSS & JavaScript like language.")
 
 (define-public qt-4
   (package (inherit qt)
-    (version "4.8.5")
+    (version "4.8.6")
     (source (origin
              (method url-fetch)
              (uri (string-append "http://download.qt-project.org/official_releases/qt/"
@@ -160,10 +160,11 @@ developers using C++ or QML, a CSS & JavaScript like language.")
                                  version ".tar.gz"))
              (sha256
               (base32
-               "0f51dbgn1dcck8pqimls2qyf1pfmsmyknh767cvw87c3d218ywpb"))
+               "0b036iqgmbbv37dgwwfihw3mihjbnw3kb5kaisdy0qi8nn8xs54b"))
              (patches (list (search-patch "qt4-tests.patch")))))
     (inputs `(,@(alist-delete "libjpeg" (package-inputs qt))
-              ("libjepg" ,libjpeg-8)))
+              ("libjepg" ,libjpeg-8)
+              ("libsm" ,libsm)))
     (arguments
      `(#:phases
          (alist-replace
diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm
index 22cfc2e257..7634e48018 100644
--- a/gnu/packages/rdf.scm
+++ b/gnu/packages/rdf.scm
@@ -17,13 +17,22 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages rdf)
-  #:use-module ((guix licenses) #:select (lgpl2.0+ lgpl2.1+))
+  #:use-module ((guix licenses) #:select (lgpl2.0+ lgpl2.1 lgpl2.1+))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages bdb)
+  #:use-module (gnu packages boost)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
+  #:use-module (gnu packages doxygen)
+  #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages multiprecision)
+  #:use-module (gnu packages pcre)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages xml))
@@ -60,15 +69,107 @@ Turtle 2013, N-Quads, N-Triples 1.1, Atom 1.0, RSS 1.0, GraphViz DOT,
 HTML and JSON.")
     (license lgpl2.1+))) ; or any choice of gpl2+ or asl2.0
 
+(define-public clucene
+  (package
+    (name "clucene")
+    (version "2.3.3.4")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://sourceforge/clucene/"
+                                 "clucene-core-unstable/2.3/clucene-core-"
+                                 version ".tar.gz"))
+             (sha256
+              (base32
+               "1arffdwivig88kkx685pldr784njm0249k0rb1f1plwavlrw9zfx"))
+             (patches (list (search-patch "clucene-pkgconfig.patch")))))
+    (build-system cmake-build-system)
+    (inputs
+     `(("boost" ,boost) ; could also use bundled copy
+       ("zlib" ,zlib)))
+    (arguments
+     `(#:test-target "cl_test"
+       #:tests? #f)) ; Tests do not compile, as TestIndexSearcher.cpp uses
+                     ; undeclared usleep. After fixing this, one needs to run
+                     ; "make test" in addition to "make cl_test", then
+                     ; SimpleTest fails.
+                     ; Notice that the library appears to be unmaintained
+                     ; with no reaction to bug reports.
+    (home-page "http://clucene.sourceforge.net/")
+    (synopsis "C text indexing and searching library")
+    (description "CLucene is a high-performance, scalable, cross platform,
+full-featured indexing and searching API.  It is a port of the very popular
+Java Lucene text search engine API to C++.")
+    (license lgpl2.1)))
+
+(define-public rasqal
+  (package
+    (name "rasqal")
+    (version "0.9.32")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "http://download.librdf.org/source/" name
+                                 "-" version ".tar.gz"))
+             (sha256
+              (base32
+               "13rfprkk7d74065c7bafyshajwa6lshj7m9l741zlz9viqhh7fpf"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("perl" ,perl)
+       ("perl-xml-dom" ,perl-xml-dom) ; for the tests
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libgcrypt" ,libgcrypt)
+       ("libxml2" ,libxml2)
+       ("mpfr" ,mpfr)
+       ("pcre" ,pcre)
+       ("util-linux" ,util-linux)))
+    (propagated-inputs
+     `(("raptor2" ,raptor2))) ; stipulated by rasqal.pc
+    (arguments
+     `(#:parallel-tests? #f
+       ; test failure reported upstream, see
+       ; http://bugs.librdf.org/mantis/view.php?id=571
+       #:tests? #f))
+    (home-page "http://librdf.org/rasqal/")
+    (synopsis "RDF query library")
+    (description "Rasqal is a C library that handles Resource Description
+Framework (RDF) query language syntaxes, query construction and execution
+of queries returning results as bindings, boolean, RDF graphs/triples or
+syntaxes.  The supported query languages are SPARQL Query 1.0,
+SPARQL Query 1.1, SPARQL Update 1.1 (no executing) and the Experimental
+SPARQL extensions (LAQRS).  Rasqal can write binding query results in the
+SPARQL XML, SPARQL JSON, CSV, TSV, HTML, ASCII tables, RDF/XML and
+Turtle/N3 and read them in SPARQL XML, RDF/XML and Turtle/N3.")
+    (license lgpl2.1+))) ; or any choice of gpl2+ or asl2.0
+
+(define-public redland
+  (package
+    (name "redland")
+    (version "1.0.17")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "http://download.librdf.org/source/" name
+                                 "-" version ".tar.gz"))
+             (sha256
+              (base32
+               "109n0kp39p966dpiasad2bb7q66rwbcb9avjvimw28chnpvlf66y"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("perl" ,perl) ; needed for installation
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("bdb" ,bdb)
+       ("rasqal" ,rasqal)))
+    (home-page "http://librdf.org/")
+    (synopsis "RDF library")
+    (description "The Redland RDF Library (librdf) provides the RDF API
+and triple stores.")
+    (license lgpl2.1+))) ; or any choice of gpl2+ or asl2.0
+
 (define-public soprano
   (package
     (name "soprano")
-    (version "2.9.3")
-    ;; 2.9.4 requires clucene, see
-    ;; http://www.mailinglistarchive.com/html/lfs-book@linuxfromscratch.org/2013-10/msg00285.html
-    ;; The stable clucene-0.9.21b fails one of its tests;
-    ;; in the unstable clucene-2.3.3.4 the binary cl_test is not found.
-    ;; In any case, the library seems to be unmaintained.
+    (version "2.9.4")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://sourceforge/soprano/Soprano/"
@@ -76,14 +177,17 @@ HTML and JSON.")
                                 "soprano-" version ".tar.bz2"))
              (sha256
               (base32
-               "08gb5d8bgy7vc6qd6r1kkmmc5rli67dlglpjqjlahpnvs26r1cwl"))))
+               "1rg0x7yg0a1cbnxz7kqk52580wla8jbnj4d4r3j7l7g7ajyny1k4"))
+             (patches (list (search-patch "soprano-find-clucene.patch")))))
     (build-system cmake-build-system)
-    ;; FIXME: Add optional dependencies: Redland, odbci, clucene; doxygen
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("doxygen" ,doxygen)
+       ("pkg-config" ,pkg-config)))
     (inputs
-     `(("qt" ,qt-4)
-       ("raptor2" ,raptor2)))
+     `(("clucene" ,clucene)
+       ("qt" ,qt-4)
+       ("rasqal" ,rasqal)
+       ("redland" ,redland)))
     (home-page "http://soprano.sourceforge.net/")
     (synopsis "RDF data library for Qt")
     (description "Soprano (formerly known as QRDF) is a library which
diff --git a/gnu/packages/rsync.scm b/gnu/packages/rsync.scm
index c51d65c33e..9c1a7a3b34 100644
--- a/gnu/packages/rsync.scm
+++ b/gnu/packages/rsync.scm
@@ -20,6 +20,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages acl)
+  #:use-module (gnu packages which)
   #:use-module (guix licenses)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -49,3 +50,29 @@ by sending only the differences between the source files and the existing
 files in the destination.")
    (license gpl3+)
    (home-page "http://rsync.samba.org/")))
+
+(define-public librsync
+  (package
+    (name "librsync")
+    (version "0.9.7")
+       (source (origin
+            (method url-fetch)
+            (uri (string-append "mirror://sourceforge/librsync/librsync/"
+                                version "/librsync-" version ".tar.gz"))
+            (sha256
+             (base32
+              "1mj1pj99mgf1a59q9f2mxjli2fzxpnf55233pc1klxk2arhf8cv6"))))
+   (build-system gnu-build-system)
+   (native-inputs
+    `(("which" ,which)
+      ("perl" ,perl)))
+   (arguments '(#:configure-flags '("--enable-shared")))
+   (home-page "http://librsync.sourceforge.net/")
+   (synopsis "Implementation of the rsync remote-delta algorithm")
+   (description
+    "Librsync is a free software library that implements the rsync
+remote-delta algorithm.  This algorithm allows efficient remote updates of a
+file, without requiring the old and new versions to both be present at the
+sending end. The library uses a \"streaming\" design similar to that of zlib
+with the aim of allowing it to be embedded into many different applications.")
+   (license lgpl2.1+)))
diff --git a/gnu/packages/screen.scm b/gnu/packages/screen.scm
index 58ee42a2a2..ae03220cc3 100644
--- a/gnu/packages/screen.scm
+++ b/gnu/packages/screen.scm
@@ -29,13 +29,13 @@
 (define-public screen
   (package
     (name "screen")
-    (version "4.0.3")
+    (version "4.2.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/screen/screen-"
                                  version ".tar.gz"))
              (sha256
-              (base32 "0xvckv1ia5pjxk7fs4za6gz2njwmfd54sc464n8ab13096qxbw3q"))))
+              (base32 "105hp6qdd8rl71p81klmxiz4mlb60kh9r7czayrx40g38x858s2l"))))
     (build-system gnu-build-system)
     (inputs
      `(("ncurses", ncurses)
diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm
index d86ecde38e..bbf8597c7a 100644
--- a/gnu/packages/sdl.scm
+++ b/gnu/packages/sdl.scm
@@ -147,12 +147,17 @@ other supporting functions for SDL.")
               (base32
                "16an9slbb8ci7d89wakkmyfvp7c0cval8xw4hkg0842nhhlp540b"))))
     (build-system gnu-build-system)
+    (native-inputs `(("pkg-config" ,pkg-config)))
     ;; FIXME: Add webp
-    (inputs `(("libpng" ,libpng)
-              ("libjpeg" ,libjpeg)
-              ("libtiff" ,libtiff)
-              ("pkg-config" ,pkg-config)))
-    (propagated-inputs `(("sdl" ,sdl)))
+    ;;
+    ;; libjpeg, libpng, and libtiff are propagated inputs because the
+    ;; SDL_image headers include the headers of these libraries.  SDL is a
+    ;; propagated input because the pkg-config file refers to SDL's pkg-config
+    ;; file.
+    (propagated-inputs `(("sdl" ,sdl)
+                         ("libjpeg" ,libjpeg)
+                         ("libpng" ,libpng)
+                         ("libtiff" ,libtiff)))
     (synopsis "SDL image loading library")
     (description "SDL_image is an image file loading library for SDL that
 supports the following formats: BMP, GIF, JPEG, LBM, PCX, PNG, PNM, TGA, TIFF,
diff --git a/gnu/packages/slim.scm b/gnu/packages/slim.scm
index f25b070f3c..cea3748985 100644
--- a/gnu/packages/slim.scm
+++ b/gnu/packages/slim.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Guy Grant <gzg@riseup.net>
 ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -75,15 +76,8 @@
                       ;; "systemd".  Strip that.
                       "")))
 		 %standard-phases)
-       #:configure-flags '("-DUSE_PAM=yes" "-DUSE_CONSOLEKIT=no"
-
-                           ;; Don't build libslim.so, because then the build
-                           ;; system is unable to set the right RUNPATH on the
-                           ;; 'slim' binary.
-                           "-DBUILD_SHARED_LIBS=OFF"
-
-                           ;; Leave a valid RUNPATH upon install.
-                           "-DCMAKE_SKIP_BUILD_RPATH=ON")
+       #:configure-flags '("-DUSE_PAM=yes"
+                           "-DUSE_CONSOLEKIT=no")
        #:tests? #f))
     (home-page "http://slim.berlios.de/")
     (synopsis "Desktop-independent graphcal login manager for X11")
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index 51e1990168..c8ed3be4a7 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -53,39 +53,10 @@
                 "1jyaj9h1iglvn02hrvcchbx8ycjpj8b91h8mi459k7q5jp2xgd9b"))))
     (build-system cmake-build-system)
     (arguments
-     '(#:configure-flags '("-DWITH_GCRYPT=ON"
-
-                           ;; Leave a valid RUNPATH upon install.
-                           "-DCMAKE_SKIP_BUILD_RPATH=ON")
+     '(#:configure-flags '("-DWITH_GCRYPT=ON")
 
        ;; TODO: Add 'CMockery' and '-DWITH_TESTING=ON' for the test suite.
-       #:tests? #f
-
-       #:modules ((guix build cmake-build-system)
-                  (guix build utils)
-                  (guix build rpath))
-       #:imported-modules ((guix build gnu-build-system)
-                           (guix build cmake-build-system)
-                           (guix build utils)
-                           (guix build rpath))
-
-       #:phases (alist-cons-after
-                 'install 'augment-runpath
-                 (lambda* (#:key outputs #:allow-other-keys)
-                   ;; libssh_threads.so NEEDs libssh.so, so add $libdir to its
-                   ;; RUNPATH.
-                   (define (dereference file)
-                     (let ((target (false-if-exception (readlink file))))
-                       (if target
-                           (dereference target)
-                           file)))
-
-                   (let* ((out (assoc-ref outputs "out"))
-                          (lib (string-append out "/lib")))
-                     (with-directory-excursion lib
-                       (augment-rpath (dereference "libssh_threads.so")
-                                      lib))))
-                 %standard-phases)))
+       #:tests? #f))
     (inputs `(("zlib" ,zlib)
                ;; Link against an older gcrypt, because libssh tries to access
                ;; fields of 'gcry_thread_cbs' that are now private:
diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm
index eb4c227049..4859c2be72 100644
--- a/gnu/packages/tcl.scm
+++ b/gnu/packages/tcl.scm
@@ -23,6 +23,7 @@
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system perl)
+  #:use-module (gnu packages)
   #:use-module (gnu packages libpng)
   #:use-module (gnu packages libjpeg)
   #:use-module (gnu packages perl)
@@ -177,7 +178,8 @@ X11 GUIs.")
                    version ".tar.gz"))
              (sha256
               (base32
-               "0jarvplhfvnm0shhdm2a5zczlnk9mkf8jvfjiwyhjrr3cy1gl0w0"))))
+               "0jarvplhfvnm0shhdm2a5zczlnk9mkf8jvfjiwyhjrr3cy1gl0w0"))
+             (patches (list (search-patch "perl-tk-x11-discover.patch")))))
     (build-system perl-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs `(("libx11" ,libx11)
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index f63df4a2ff..ed7d6f61ad 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -21,7 +21,8 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages version-control)
-  #:use-module ((guix licenses) #:select (asl2.0 gpl1+ gpl2 gpl2+ gpl3+))
+  #:use-module ((guix licenses)
+                #:select (asl2.0 gpl1+ gpl2 gpl2+ gpl3+ x11-style))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
@@ -413,3 +414,24 @@ when a file change has been described in the ChangeLog but the file has not
 been added to the VC.  vc-chlog scans changed files and generates
 standards-compliant ChangeLog entries based on the changes that it detects.")
     (license gpl3+)))
+
+(define-public diffstat
+  (package
+    (name "diffstat")
+    (version "1.58")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "ftp://invisible-island.net/diffstat/diffstat-"
+                    version ".tgz"))
+              (sha256
+               (base32
+                "14rpf5c05ff30f6vn6pn6pzy0k4g4is5im656ahsxff3k58i7mgs"))))
+    (build-system gnu-build-system)
+    (home-page "http://invisible-island.net/diffstat/")
+    (synopsis "Make histograms from the output of 'diff'")
+    (description
+     "diffstat reads the output of 'diff' and displays a histogram of the
+insertions, deletions, and modifications per-file.  It is useful for reviewing
+large, complex patch files.")
+    (license (x11-style "file://COPYING"))))
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 7c3bf6b777..a824d5c5f7 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -17,19 +17,37 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages video)
-  #:use-module ((guix licenses) #:select (gpl2+))
+  #:use-module ((guix licenses) #:select (gpl2 gpl2+))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages algebra)
+  #:use-module (gnu packages avahi)
+  #:use-module (gnu packages cdrom)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages elf)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages gl)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages gnutls)
+  #:use-module (gnu packages libjpeg)
+  #:use-module (gnu packages libpng)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages lua)
+  #:use-module (gnu packages mp3)
   #:use-module (gnu packages openssl)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages sdl)
+  #:use-module (gnu packages ssh)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages xiph)
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages xorg)
   #:use-module (gnu packages yasm))
 
 (define-public ffmpeg
@@ -192,3 +210,161 @@
 convert and stream audio and video.  It includes the libavcodec
 audio/video codec library.")
     (license gpl2+)))
+
+(define-public vlc
+  (package
+    (name "vlc")
+    (version "2.1.4")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "http://download.videolan.org/pub/videolan/vlc/"
+                   version "/vlc-" version ".tar.xz"))
+             (sha256
+              (base32
+               "1lymhbb2bns73qivdaqanhggjjhyc9fwfgf5ikhng0a74msnqmiy"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("git" ,git) ; needed for a test
+       ("pkg-config" ,pkg-config)))
+    ;; FIXME: Add optional inputs once available.
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("avahi" ,avahi)
+       ("dbus" ,dbus)
+       ("flac" ,flac)
+       ("ffmpeg" ,ffmpeg)
+       ("fontconfig" ,fontconfig)
+       ("freetype" ,freetype)
+       ("gnutls" ,gnutls)
+       ("libcddb" ,libcddb)
+       ("libgcrypt" ,libgcrypt)
+       ("libkate" ,libkate)
+       ("libmad" ,libmad)
+       ("libogg" ,libogg)
+       ("libpng" ,libpng)
+       ("libsamplerate" ,libsamplerate)
+       ("libssh2" ,libssh2)
+       ("libvorbis" ,libvorbis)
+       ("libtheora" ,libtheora)
+       ("libxext" ,libxext)
+       ("libxinerama" ,libxinerama)
+       ("libxml2" ,libxml2)
+       ("libxpm" ,libxpm)
+       ("lua" ,lua-5.1)
+       ("mesa" ,mesa)
+       ("opus" ,opus)
+       ("perl" ,perl)
+       ("pulseaudio" ,pulseaudio)
+       ("python" ,python-wrapper)
+       ("qt" ,qt-4)
+       ("sdl" ,sdl)
+       ("sdl-image" ,sdl-image)
+       ("speex" ,speex)
+       ("xcb-util-keysyms" ,xcb-util-keysyms)))
+    (arguments
+     `(#:configure-flags
+       `("--disable-a52" ; FIXME: reenable once available
+         "--disable-mmx" ; FIXME: may be enabled on x86_64
+         "--disable-sse" ; 1-4, no separate options available
+         "--disable-neon"
+         "--disable-altivec"
+         ,(string-append "LDFLAGS=-Wl,-rpath -Wl,"
+                         (assoc-ref %build-inputs "ffmpeg")
+                         "/lib")))) ; needed for the tests
+    (home-page "https://www.videolan.org/")
+    (synopsis "Audio and video framework")
+    (description "VLC is a cross-platform multimedia player and framework
+that plays most multimedia files as well as DVD, Audio CD, VCD, and various
+treaming protocols.")
+    (license gpl2+)))
+
+(define-public mplayer
+  (package
+    (name "mplayer")
+    (version "1.1.1")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "http://www.mplayerhq.hu/MPlayer/releases/MPlayer-"
+                   version ".tar.xz"))
+             (sha256
+              (base32
+               "0xlcg7rszrwmw29wqr0plsw5d1rq0hb7vjsq7bmmfsly2z1wg3yf"))))
+    (build-system gnu-build-system)
+    ;; FIXME: Add additional inputs once available.
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("cdparanoia" ,cdparanoia)
+       ("fontconfig" ,fontconfig)
+       ("freetype" ,freetype)
+       ("lame" ,lame)
+       ("libmpg123" ,mpg123)                      ; audio codec for MP3
+;;        ("giflib" ,giflib) ; uses QuantizeBuffer, requires version >= 5
+       ("libjpeg" ,libjpeg)
+       ("libpng" ,libpng)
+       ("libtheora" ,libtheora)
+       ("libvorbis" ,libvorbis)
+       ("libx11" ,libx11)
+       ("libxxf86dga" ,libxxf86dga)
+       ("libxinerama" ,libxinerama)
+       ("libxv" ,libxv)
+       ("mesa" ,mesa)
+       ("perl" ,perl)
+       ("pulseaudio" ,pulseaudio)
+       ("python" ,python-wrapper)
+       ("sdl" ,sdl)
+       ("speex" ,speex)
+       ("yasm" ,yasm)
+       ("zlib" ,zlib)))
+    (arguments
+     `(#:tests? #f ; no test target
+       #:phases
+         (alist-replace
+          'configure
+          ;; configure does not work followed by "SHELL=..." and
+          ;; "CONFIG_SHELL=..."; set environment variables instead
+          (lambda* (#:key inputs outputs #:allow-other-keys)
+            (let ((out (assoc-ref outputs "out"))
+                  (libx11 (assoc-ref inputs "libx11")))
+              (substitute* "configure"
+                (("#! /bin/sh") (string-append "#!" (which "bash"))))
+              (setenv "SHELL" (which "bash"))
+              (setenv "CONFIG_SHELL" (which "bash"))
+              (zero? (system*
+                      "./configure"
+                      (string-append "--extra-cflags=-I"
+                                     libx11 "/include") ; to detect libx11
+                      "--disable-tremor-internal" ; forces external libvorbis
+                      (string-append "--prefix=" out)
+                      ;; drop special machine instructions not supported
+                      ;; on all instances of the target
+                      ,@(if (string-prefix? "x86_64"
+                                            (or (%current-target-system)
+                                                (%current-system)))
+                            '()
+                            '("--disable-3dnow"
+                              "--disable-3dnowext"
+                              "--disable-mmx"
+                              "--disable-mmxext"
+                              "--disable-sse"
+                              "--disable-sse2"))
+                      "--disable-ssse3"
+                      "--disable-altivec"
+                      "--disable-armv5te"
+                      "--disable-armv6"
+                      "--disable-armv6t2"
+                      "--disable-armvfp"
+                      "--disable-neon"
+                      "--disable-thumb"
+                      "--disable-iwmmxt"))))
+          %standard-phases)))
+    (home-page "http://www.mplayerhq.hu/design7/news.html")
+    (synopsis "Audio and video player")
+    (description "MPlayer is a movie player.  It plays most MPEG/VOB, AVI,
+Ogg/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, RealMedia, Matroska, NUT,
+NuppelVideo, FLI, YUV4MPEG, FILM, RoQ, PVA files.  One can watch VideoCD,
+SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
+    (license gpl2)))
diff --git a/gnu/packages/wdiff.scm b/gnu/packages/wdiff.scm
index 774015ef90..06a44a9f40 100644
--- a/gnu/packages/wdiff.scm
+++ b/gnu/packages/wdiff.scm
@@ -28,7 +28,7 @@
 (define-public wdiff
   (package
     (name "wdiff")
-    (version "1.2.1")
+    (version "1.2.2")
     (source
      (origin
       (method url-fetch)
@@ -36,7 +36,7 @@
                           version ".tar.gz"))
       (sha256
        (base32
-        "1gb5hpiyikada9bwz63q3g96zs383iskiir0xsqynqnvq1vd4n41"))))
+        "0sxgg0ms5lhi4aqqvz1rj4s77yi9wymfm3l3gbjfd1qchy66kzrl"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases (alist-cons-before
diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm
index 2de9074f28..66c6c1373d 100644
--- a/gnu/packages/xiph.scm
+++ b/gnu/packages/xiph.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2013 David Thompson <dthompson2@worcester.edu>
 ;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
@@ -25,6 +25,7 @@
   #:use-module (gnu packages bison)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
+  #:use-module (gnu packages doxygen)
   #:use-module (gnu packages libpng)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
@@ -231,12 +232,13 @@ meaning that audio is compressed in FLAC without any loss in quality.")
              (base32
               "0s3vr2nxfxlf1k75iqpp4l78yf4gil3f0v778kvlngbchvaq23n4"))))
    (build-system gnu-build-system)
-   ;; FIXME: Add optional inputs doxygen (for documentation) and liboggz
+   (native-inputs `(("doxygen" ,doxygen)
+                    ("pkg-config" ,pkg-config)))
+   ;; FIXME: Add optional input liboggz
    (inputs `(("bison" ,bison)
              ("libogg" ,libogg)
              ("libpng" ,libpng)
-             ("pkg-config" ,pkg-config)
-             ("python" ,python-wrapper)
+("python" ,python-wrapper)
              ("zlib" ,zlib)))
    (synopsis "kate, a karaoke and text codec for embedding in ogg")
    (description
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index d72054a855..a480896083 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 ;;;
@@ -1153,10 +1153,11 @@ tracking.")
           (base32
             "07bzi6xwlhq36f60qfspjbz0qjj7zcgayi1vp4ihgx34kib1vhck"))))
     (build-system gnu-build-system)
+    (propagated-inputs
+      `(("libice" ,libice))) ; SMlib.h includes ICElib.h
     (inputs
       `(("xtrans" ,xtrans)
-        ("util-linux" ,util-linux)
-        ("libice" ,libice)))
+        ("util-linux" ,util-linux)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
@@ -1427,10 +1428,11 @@ tracking.")
           (base32
             "15291ddhyr54sribwbg8hxx2psgzm5gh0pgkw5yrf3zgvdsa67sm"))))
     (build-system gnu-build-system)
+    (propagated-inputs
+      `(("xf86dgaproto" ,xf86dgaproto)))
     (inputs
       `(("libx11" ,libx11)
-        ("libxext" ,libxext)
-        ("xf86dgaproto" ,xf86dgaproto)))
+        ("libxext" ,libxext)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
@@ -4733,14 +4735,14 @@ icccm: Both client and window-manager helpers for ICCCM.")
 (define-public xterm
   (package
     (name "xterm")
-    (version "303")
+    (version "304")
     (source (origin
               (method url-fetch)
-              (uri                                ; XXX: constant URL!
-               "http://invisible-island.net/datafiles/release/xterm.tar.gz")
+              (uri (string-append "ftp://ftp.invisible-island.net/xterm/"
+                                  "xterm-" version ".tgz"))
               (sha256
                (base32
-                "0n7hay16aam9kfn642ri0wj5yzilbjm3l8znxc2p5dx9pn3rkwla"))))
+                "19yp5phfzzgydc2yqka4p69ygvfzsd2aa98hbw086xyjlws3kbyk"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--enable-wide-chars" "--enable-256-color"