summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/acct.scm44
-rw-r--r--gnu/packages/algebra.scm32
-rw-r--r--gnu/packages/autogen.scm63
-rw-r--r--gnu/packages/bootstrap.scm14
-rw-r--r--gnu/packages/cmake.scm3
-rw-r--r--gnu/packages/compression.scm43
-rw-r--r--gnu/packages/gcc.scm4
-rw-r--r--gnu/packages/glib.scm3
-rw-r--r--gnu/packages/gnome.scm133
-rw-r--r--gnu/packages/gnunet.scm15
-rw-r--r--gnu/packages/gstreamer.scm45
-rw-r--r--gnu/packages/gtk.scm11
-rw-r--r--gnu/packages/kde.scm46
-rw-r--r--gnu/packages/linux-initrd.scm41
-rw-r--r--gnu/packages/linux.scm46
-rw-r--r--gnu/packages/make-bootstrap.scm14
-rw-r--r--gnu/packages/maths.scm35
-rw-r--r--gnu/packages/mit-krb5.scm12
-rw-r--r--gnu/packages/oggvorbis.scm25
-rw-r--r--gnu/packages/patches/cmake-fix-tests.patch8
-rw-r--r--gnu/packages/patches/glib-tests-newnet.patch30
-rw-r--r--gnu/packages/patches/gstreamer-0.10-bison3.patch32
-rw-r--r--gnu/packages/patches/gstreamer-0.10-silly-test.patch14
-rw-r--r--gnu/packages/patches/pulseaudio-test-timeouts.patch19
-rw-r--r--gnu/packages/patches/qt4-tests.patch22
-rw-r--r--gnu/packages/patches/valgrind-glibc.patch74
-rw-r--r--gnu/packages/pdf.scm15
-rw-r--r--gnu/packages/pem.scm48
-rw-r--r--gnu/packages/pulseaudio.scm4
-rw-r--r--gnu/packages/python.scm93
-rw-r--r--gnu/packages/qemu.scm3
-rw-r--r--gnu/packages/qt.scm43
-rw-r--r--gnu/packages/rsync.scm8
-rw-r--r--gnu/packages/sdl.scm49
-rw-r--r--gnu/packages/system.scm25
-rw-r--r--gnu/packages/version-control.scm31
-rw-r--r--gnu/packages/xorg.scm3
37 files changed, 993 insertions, 157 deletions
diff --git a/gnu/packages/acct.scm b/gnu/packages/acct.scm
new file mode 100644
index 0000000000..e892fd8484
--- /dev/null
+++ b/gnu/packages/acct.scm
@@ -0,0 +1,44 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.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 acct)
+  #:use-module (guix licenses)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu))
+
+(define-public acct
+  (package
+    (name "acct")
+    (version "6.6.1")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://gnu/acct/acct-"
+                          version ".tar.gz"))
+      (sha256
+       (base32
+        "1jzz601cavml7894fjalw661gz28ia35002inw990agr3rhiaiam"))))
+    (build-system gnu-build-system)
+    (home-page "https://gnu.org/software/acct/")
+    (synopsis "Standard login and process accounting utilities")
+    (description
+     "GNU acct provides a means for system administrators to determine
+system usage patterns.  It provides information on, for example, connections,
+programs executed, and system resources used.")
+    (license gpl3+)))
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index b70dd91099..9cc079d498 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -125,6 +125,38 @@ PARI is also available as a C library to allow for faster computations.")
    (license gpl2+)
    (home-page "http://pari.math.u-bordeaux.fr/")))
 
+(define-public gp2c
+  (package
+   (name "gp2c")
+   (version "0.0.8")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append
+                  "http://pari.math.u-bordeaux.fr/pub/pari/GP2C/gp2c-"
+                  version ".tar.gz"))
+            (sha256 (base32
+                     "03fgiwy2si264g3zfgw2yi6i2l8szl5m106zgwk77sddshk20b34"))))
+   (build-system gnu-build-system)
+   (inputs `(("pari-gp" ,pari-gp)))
+   (arguments
+    '(#:configure-flags
+      (list (string-append "--with-paricfg="
+                           (assoc-ref %build-inputs "pari-gp")
+                           "/lib/pari/pari.cfg"))))
+   (synopsis "PARI/GP, a computer algebra system for number theory")
+   (description
+    "PARI/GP is a widely used computer algebra system designed for fast
+computations in number theory (factorisations, algebraic number theory,
+elliptic curves...), but it also contains a large number of other useful
+functions to compute with mathematical entities such as matrices,
+polynomials, power series, algebraic numbers, etc., and a lot of
+transcendental functions.
+PARI is also available as a C library to allow for faster computations.
+
+GP2C, the GP to C compiler, translates GP scripts to PARI programs.")
+   (license gpl2)
+   (home-page "http://pari.math.u-bordeaux.fr/")))
+
 (define-public bc
   (package
     (name "bc")
diff --git a/gnu/packages/autogen.scm b/gnu/packages/autogen.scm
new file mode 100644
index 0000000000..3109c2bf0b
--- /dev/null
+++ b/gnu/packages/autogen.scm
@@ -0,0 +1,63 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 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 autogen)
+  #:use-module (guix packages)
+  #:use-module (guix licenses)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages which)
+  #:use-module (gnu packages guile))
+
+(define-public autogen
+  (package
+    (name "autogen")
+    (version "5.18.1")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://gnu/autogen/rel"
+                          version "/autogen-"
+                          version ".tar.gz"))
+      (sha256
+       (base32
+        "0k0gkr5inr9wb3ws30q6bbiqg3qm3ryvl9cznym2xis4lm216d53"))))
+    (build-system gnu-build-system)
+    (inputs `(("which" ,which)
+              ("guile" ,guile-2.0)))
+    (arguments
+     '(#:phases (alist-cons-before
+                 'patch-source-shebangs 'patch-test-scripts
+                 (lambda _
+                   (let ((sh (which "sh")))
+                     (substitute*
+                         (append (find-files "agen5/test" "\\.test$")
+                                 (find-files "autoopts/test" "\\.(test|in)$"))
+                       (("/bin/sh") sh)
+                       (("/usr/bin/tr") "tr"))))
+                 %standard-phases)))
+    (home-page "http://www.gnu.org/software/autogen/")
+    (synopsis "Automated program generator")
+    (description
+     "AutoGen is a program to ease the maintenance of programs that contain
+large amounts of repetitive text.  It automates the construction of these
+sections of the code, simplifying the task of keeping the text in sync.  It
+also includes an add-on package called AutoOpts, which is specialized for the
+maintenance and documentation of program options.")
+    (license gpl3+)))
diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index 86be880cfd..2a8af36ad6 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -80,14 +80,13 @@
       (patch-guile %bootstrap-guile)
       (patch-inputs %bootstrap-patch-inputs))))
 
-(define (package-from-tarball name* source* program-to-test description*)
-  "Return a package that correspond to the extraction of SOURCE*.
-PROGRAM-TO-TEST is a program to run after extraction of SOURCE*, to
+(define (package-from-tarball name source program-to-test description)
+  "Return a package that correspond to the extraction of SOURCE.
+PROGRAM-TO-TEST is a program to run after extraction of SOURCE, to
 check whether everything is alright."
   (package
-    (name name*)
+    (name name)
     (version "0")
-    (source #f)
     (build-system trivial-build-system)
     (arguments
      `(#:guile ,%bootstrap-guile
@@ -111,8 +110,9 @@ check whether everything is alright."
     (inputs
      `(("tar" ,(search-bootstrap-binary "tar" (%current-system)))
        ("xz"  ,(search-bootstrap-binary "xz" (%current-system)))
-       ("tarball" ,(bootstrap-origin (source* (%current-system))))))
-    (synopsis description*)
+       ("tarball" ,(bootstrap-origin (source (%current-system))))))
+    (source #f)
+    (synopsis description)
     (description #f)
     (home-page #f)
     (license #f)))
diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm
index 0717529fcd..a5c3d45193 100644
--- a/gnu/packages/cmake.scm
+++ b/gnu/packages/cmake.scm
@@ -41,7 +41,6 @@
     (build-system gnu-build-system)
     (arguments
      '(#:test-target "test"
-       #:patch-flags '("-p0")
        #:phases (alist-replace
                  'configure
                  (lambda* (#:key outputs #:allow-other-keys)
@@ -68,7 +67,7 @@
     (inputs
      `(("file" ,file)))
     (home-page "http://www.cmake.org/")
-    (synopsis "A cross-platform, open-source build system")
+    (synopsis "Cross-platform build system")
     (description
      "CMake is a family of tools designed to build, test and package software.
 CMake is used to control the software compilation process using simple platform
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index df0acd9cc2..4d66ff6de6 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -21,7 +22,8 @@
                 #:renamer (symbol-prefix-proc 'license:))
   #:use-module (guix packages)
   #:use-module (guix download)
-  #:use-module (guix build-system gnu))
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages which))
 
 (define-public zlib
   (package
@@ -230,14 +232,14 @@ format are designed to be portable across platforms.")
 (define-public lzip
   (package
     (name "lzip")
-    (version "1.14")
+    (version "1.15")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://savannah/lzip/lzip-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "1rybhk2pxpfh2789ck9mrkdv3bpx7b7miwndlshb5vb02m9crxbz"))))
+               "1dh5vmj5apizfawnsm50y7z064yx7cz3313przph16gwd3dgrlvw"))))
     (build-system gnu-build-system)
     (home-page "http://www.nongnu.org/lzip/lzip.html")
     (synopsis "Lossless data compressor based on the LZMA algorithm")
@@ -247,3 +249,38 @@ one of gzip or bzip2.  Lzip decompresses almost as fast as gzip and compresses
 more than bzip2, which makes it well suited for software distribution and data
 archiving.  Lzip is a clean implementation of the LZMA algorithm.")
     (license license:gpl3+)))
+
+(define-public sharutils
+  (package
+    (name "sharutils")
+    (version "4.14")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://gnu/sharutils/sharutils-"
+                          version ".tar.xz"))
+      (sha256
+       (base32
+        "033sq1v0cp0bi1mp320xaqwd4fhakqc5747hh6qa1asjrzpqiqza"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("which" ,which)))
+    (arguments
+     `(#:phases
+        (alist-cons-after
+         'patch-source-shebangs 'unpatch-source-shebang
+         ;; revert the patch-shebang phase on a script which is
+         ;; in fact test data
+         (lambda* (#:key #:allow-other-keys)
+           (substitute* "tests/shar-1.ok"
+             (((which "sh")) "/bin/sh")))
+         %standard-phases)))
+    (home-page "http://www.gnu.org/software/sharutils/")
+    (synopsis "Archives in shell scripts, uuencode/uudecode")
+    (description
+     "GNU sharutils is a package for manipulating shell archives. Shell
+archives are collections of files that can be unpacked using only the shell;
+an archive is a self-extracting shell script. The tools in the Sharutils
+package make working with shell archives more robust, offering compression,
+file-splitting and simple checksums.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index cececcacd3..dde0f0d934 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -202,14 +202,14 @@ Go.  It also includes standard libraries for these languages.")
 
 (define-public gcc-4.8
   (package (inherit gcc-4.7)
-    (version "4.8.1")
+    (version "4.8.2")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/gcc/gcc-"
                                  version "/gcc-" version ".tar.bz2"))
              (sha256
               (base32
-               "04sqn0ds17ys8l6zn7vyyvjz1a7hsk4zb0381vlw9wnr7az48nsl"))))))
+               "1j6dwgby4g3p3lz7zkss32ghr45zpdidrg8xvazvn91lqxv25p09"))))))
 
 (define-public isl
   (package
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 2fbc46892b..61ba0b944e 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -117,7 +117,8 @@ shared NFS home directories.")
              (base32 "0cpzqadqk6z6bmb79p04pykxc8x57rvshh33414cnk41bvgaf4vm"))
             (patches (list (search-patch "glib-tests-homedir.patch")
                            (search-patch "glib-tests-desktop.patch")
-                           (search-patch "glib-tests-prlimit.patch")))))
+                           (search-patch "glib-tests-prlimit.patch")
+                           (search-patch "glib-tests-newnet.patch")))))
    (build-system gnu-build-system)
    (outputs '("out"                        ; everything
               "doc"))                      ; 20 MiB of GTK-Doc reference
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index e7dbfc75cb..713b64fde6 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -17,14 +17,16 @@
 ;;; 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.1+ lgpl3))
+  #:use-module ((guix licenses) #:select (gpl2 gpl2+ lgpl2.0+ lgpl2.1+ lgpl3))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages glib)
-  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages pdf)
+  #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages libpng)
   #:use-module (gnu packages perl)
@@ -98,6 +100,102 @@ 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
 
+(define-public libgnome-keyring
+  (package
+    (name "libgnome-keyring")
+    (version "3.6.0")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "mirror://gnome/sources/libgnome-keyring/3.6/libgnome-keyring-"
+                   version
+                   ".tar.xz"))
+             (sha256
+              (base32
+               "0c4qrjpmv1hqga3xv6wsq2z10x2n78qgw7q3k3s01y1pggxkgjkd"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("intltool" ,intltool)))
+    (inputs
+     `(("pkg-config" ,pkg-config)
+       ("libgcrypt" ,libgcrypt)
+       ("dbus" ,dbus)))
+    (propagated-inputs
+     ;; Referred to in .h files and .pc.
+     `(("glib" ,glib)))
+    (home-page "http://www.gnome.org")
+    (synopsis "Accessing passwords from the GNOME keyring")
+    (description
+     "Client library to access passwords from the GNOME keyring.")
+
+    ;; Though a couple of files are LGPLv2.1+.
+    (license lgpl2.0+)))
+
+(define-public evince
+  (package
+    (name "evince")
+    (version "3.6.1")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://gnome/sources/evince/3.6/evince-"
+                                 version ".tar.xz"))
+             (sha256
+              (base32
+               "1da1pij030dh8mb0pr0jnyszgsbjnh8lc17rj5ii52j3kmbv51qv"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags '("--disable-nautilus")
+
+       ;; FIXME: Tests fail with:
+       ;;   ImportError: No module named gi.repository
+       ;; Where should that module come from?
+       #:tests? #f
+
+       #:phases (alist-cons-after
+                 'install 'set-mime-search-path
+                 (lambda* (#:key inputs outputs #:allow-other-keys)
+                   ;; Wrap 'evince' so that it knows where MIME info is.
+                   (let ((out  (assoc-ref outputs "out"))
+                         (mime (assoc-ref inputs "shared-mime-info")))
+                     (wrap-program (string-append out "/bin/evince")
+                                   `("XDG_DATA_DIRS" ":" prefix
+                                     ,(list (string-append mime "/share")
+                                            (string-append out "/share"))))))
+                 %standard-phases)))
+    (inputs
+     `(("libspectre" ,libspectre)
+       ;; ("djvulibre" ,djvulibre)
+       ("ghostscript" ,ghostscript)
+       ("poppler" ,poppler)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("libgnome-keyring" ,libgnome-keyring)
+       ("gnome-icon-theme" ,gnome-icon-theme)
+       ("itstool" ,itstool)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("atk" ,atk)
+       ("pango" ,pango)
+       ("gtk+" ,gtk+)
+       ("glib" ,glib)
+       ("libxml2" ,libxml2)
+       ("pkg-config" ,pkg-config)
+       ("libsm" ,libsm)
+       ("libice" ,libice)
+       ("shared-mime-info" ,shared-mime-info)
+
+       ;; For tests.
+       ("dogtail" ,python2-dogtail)))
+    (native-inputs
+     `(("intltool" ,intltool)))
+    (home-page
+     "http://www.gnome.org/projects/evince/")
+    (synopsis "GNOME's document viewer")
+    (description
+     "Evince is a document viewer for multiple document formats.  It
+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+)))
+
 (define-public gsettings-desktop-schemas
   (package
     (name "gsettings-desktop-schemas")
@@ -175,6 +273,37 @@ GNOME and KDE desktops to the icon names proposed in the specification.")
      "Icons for the GNOME desktop.")
     (license lgpl3))) ; or Creative Commons BY-SA 3.0
 
+(define-public shared-mime-info
+  (package
+    (name "shared-mime-info")
+    (version "1.2")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "http://freedesktop.org/~hadess/shared-mime-info-"
+                                 version ".tar.xz"))
+             (sha256
+              (base32
+               "0y5vi0vr6rbhvfzcfg57cfskn362bpvcpca9cy598nmr87i6lld5"))))
+    (build-system gnu-build-system)
+    (arguments
+     ;; The build system appears not to be parallel-safe.
+     '(#:parallel-build? #f))
+    (inputs
+     `(("glib" ,glib)
+       ("libxml2" ,libxml2)
+       ("pkg-config" ,pkg-config)))
+    (native-inputs
+     `(("intltool" ,intltool)))
+    (home-page "http://freedesktop.org/wiki/Software/shared-mime-info")
+    (synopsis "Database of common MIME types")
+    (description
+     "The shared-mime-info package contains the core database of common types
+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+)))
+
 (define-public hicolor-icon-theme
   (package
     (name "hicolor-icon-theme")
diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index 86abb7b5bf..83278583b7 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -91,14 +91,14 @@ tool to extract metadata from a file and print the results.")
 (define-public libmicrohttpd
   (package
    (name "libmicrohttpd")
-   (version "0.9.30")
+   (version "0.9.31")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/libmicrohttpd/libmicrohttpd-"
                                 version ".tar.gz"))
             (sha256
              (base32
-              "0v30w90qx8wpg5ksy97f5r4acpwd4q7q2v508mcss00vzj18rx40"))))
+              "06sxxial1794589k0ahi7nhhyfp14jf4jwirf6bkxqhs138pghfa"))))
    (build-system gnu-build-system)
    (inputs
     `(("curl" ,curl)
@@ -106,13 +106,16 @@ tool to extract metadata from a file and print the results.")
       ("libgcrypt" ,libgcrypt)
       ("openssl" ,openssl)
       ("zlib" ,zlib)))
+   (arguments
+    `(#:parallel-tests? #f))
    (synopsis "C library implementing an HTTP 1.1 server")
    (description
-    "Libmicrohttpd is a small, embeddable HTTP server implemented as a C
-library.  It makes it easy to run an HTTP server as part of another
+    "GNU libmicrohttpd is a small, embeddable HTTP server implemented as a
+C library.  It makes it easy to run an HTTP server as part of another
 application.  The library is fully HTTP 1.1 compliant.  It can listen on
-multiple ports, supports four different threading models, and supports IPv6.
- It also features security features such as basic and digest authentication
+multiple ports, supports four different threading models, and supports
+IPv6.  It
+also features security features such as basic and digest authentication
 and support for SSL3 and TLS.")
    (license license:lgpl2.1+)
    (home-page "http://www.gnu.org/software/libmicrohttpd/")))
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 7478dc3188..58625be073 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -21,12 +21,14 @@
   #: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 perl)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages python))
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages xml))
 
 (define-public gstreamer
   (package
@@ -64,6 +66,30 @@ simple plugin with a clean, generic interface.
 This package provides the core library and elements.")
     (license lgpl2.0+)))
 
+(define-public gstreamer-0.10
+  (package (inherit gstreamer)
+    (version "0.10.36")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-"
+                          version ".tar.xz"))
+      (sha256
+       (base32
+        "1nkid1n2l3rrlmq5qrf5yy06grrkwjh3yxl5g0w58w0pih8allci"))
+      (patches
+        (list (search-patch "gstreamer-0.10-bison3.patch")
+              (search-patch "gstreamer-0.10-silly-test.patch")))))
+    (propagated-inputs
+     `(("libxml2" ,libxml2)))
+    (inputs
+     `(("bison" ,bison)
+       ("flex" ,flex)
+       ("glib" ,glib)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-2)))))
+
 (define-public gst-plugins-base
   (package
     (name "gst-plugins-base")
@@ -107,3 +133,20 @@ simple plugin with a clean, generic interface.
 
 This package provides an essential exemplary set of elements.")
     (license lgpl2.0+)))
+
+(define-public gst-plugins-base-0.10
+  (package (inherit gst-plugins-base)
+    (version "0.10.36")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-"
+                          version ".tar.xz"))
+      (sha256
+       (base32
+        "0jp6hjlra98cnkal4n6bdmr577q8mcyp3c08s3a02c4hjhw5rr0z"))))
+    (inputs
+     `(("glib" ,glib)
+       ("gstreamer" ,gstreamer-0.10)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-2)))))
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 5e27c151c2..dff98b9791 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -115,14 +115,14 @@ affine transformation (scale, rotation, shear, etc.)")
 (define-public harfbuzz
   (package
    (name "harfbuzz")
-   (version "0.9.21")
+   (version "0.9.22")
    (source (origin
             (method url-fetch)
             (uri (string-append "http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-"
                                 version ".tar.bz2"))
             (sha256
              (base32
-              "1s6sffgf6ndy12fyln2bdnkn3cb1qfkch0rakdgkgwlq7n46zlx0"))))
+              "1nkimwadri6v2kzrmz8y0crmy59gw0kg4i4f6cc786bngs0815lq"))))
    (build-system gnu-build-system)
    (inputs
     `(("cairo" ,cairo)
@@ -287,7 +287,7 @@ application suites.")
 
 (define-public gtk+
   (package (inherit gtk+-2)
-   (version "3.10.0")
+   (version "3.10.1")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/gtk+/"
@@ -295,7 +295,7 @@ application suites.")
                                 version ".tar.xz"))
             (sha256
              (base32
-              "1zjkbjvp6ay08107r6zfsrp39x7qfadbd86p3hs5v4ydc2rzwnb5"))))
+              "1f3a7r3z7i9xh5imlfpfcgyydzkj2fnd0v6ylvqxij0yzfbnhbn1"))))
    (propagated-inputs
     `(("at-spi2-atk" ,at-spi2-atk)
       ("atk" ,atk)
@@ -310,8 +310,7 @@ application suites.")
       ("python-wrapper" ,python-wrapper)
       ("xorg-server" ,xorg-server)))
    (arguments
-    `(#:configure-flags '("--enable-x11-backend") ; should not be needed in > 3.10.0
-      #:phases
+    `(#:phases
       (alist-replace
        'configure
        (lambda* (#:key #:allow-other-keys #:rest args)
diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
new file mode 100644
index 0000000000..3da261ccd1
--- /dev/null
+++ b/gnu/packages/kde.scm
@@ -0,0 +1,46 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 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 kde)
+  #:use-module ((guix licenses) #:select (bsd-2))
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system cmake)
+  #:use-module (gnu packages qt))
+
+(define-public automoc4
+  (package
+    (name "automoc4")
+    (version "0.9.88")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "http://download.kde.org/stable/" name
+                                "/" version "/" name "-"
+                                 version ".tar.bz2"))
+             (sha256
+              (base32
+               "0jackvg0bdjg797qlbbyf9syylm0qjs55mllhn11vqjsq3s1ch93"))))
+    (build-system cmake-build-system)
+    (inputs
+     `(("qt" ,qt-4)))
+    (arguments
+     `(#:tests? #f)) ; no check target
+    (home-page "http://techbase.kde.org/Development/Tools/Automoc4")
+    (synopsis "build tool for KDE")
+    (description "KDE desktop environment")
+    (license bsd-2)))
diff --git a/gnu/packages/linux-initrd.scm b/gnu/packages/linux-initrd.scm
index ed30fa56b1..0134e89da8 100644
--- a/gnu/packages/linux-initrd.scm
+++ b/gnu/packages/linux-initrd.scm
@@ -212,28 +212,27 @@ list of Guile module names to be embedded in the initrd."
                     (and (zero? (system* gzip "--best" "initrd"))
                          (rename-file "initrd.gz" "initrd")))))))))
 
-  (let ((name* name))
-    (package
-      (name name*)
-      (version "0")
-      (source #f)
-      (build-system trivial-build-system)
-      (arguments `(#:modules ((guix build utils))
-                   #:builder ,builder))
-      (inputs `(("guile" ,guile)
-                ("cpio" ,cpio)
-                ("gzip" ,gzip)
-                ("modules" ,(module-package modules))
-                ("modules/compiled" ,(compiled-module-package modules))
-                ,@(if linux
-                      `(("linux" ,linux))
-                      '())))
-      (synopsis "An initial RAM disk (initrd) for the Linux kernel")
-      (description
-       "An initial RAM disk (initrd), really a gzipped cpio archive, for use by
+  (package
+    (name name)
+    (version "0")
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments `(#:modules ((guix build utils))
+                           #:builder ,builder))
+    (inputs `(("guile" ,guile)
+              ("cpio" ,cpio)
+              ("gzip" ,gzip)
+              ("modules" ,(module-package modules))
+              ("modules/compiled" ,(compiled-module-package modules))
+              ,@(if linux
+                    `(("linux" ,linux))
+                    '())))
+    (synopsis "An initial RAM disk (initrd) for the Linux kernel")
+    (description
+     "An initial RAM disk (initrd), really a gzipped cpio archive, for use by
 the Linux kernel.")
-      (license gpl3+)
-      (home-page "http://www.gnu.org/software/guix/"))))
+    (license gpl3+)
+    (home-page "http://www.gnu.org/software/guix/")))
 
 (define-public qemu-initrd
   (expression->initrd
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 469ccc552c..cd1c921626 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -35,6 +35,7 @@
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages attr)
   #:use-module (gnu packages xml)
+  #:use-module (gnu packages autotools)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu))
@@ -65,7 +66,7 @@
          version "-gnu.tar.xz")))
 
 (define-public linux-libre-headers
-  (let* ((version* "3.3.8")
+  (let* ((version "3.3.8")
          (build-phase
           (lambda (arch)
             `(lambda _
@@ -85,10 +86,10 @@
                         (string-append out
                                        "/include/config/kernel.release")
                       (lambda (p)
-                        (format p "~a-default~%" ,version*))))))))
+                        (format p "~a-default~%" ,version))))))))
    (package
     (name "linux-libre-headers")
-    (version version*)
+    (version version)
     (source (origin
              (method url-fetch)
              (uri (linux-libre-urls version))
@@ -145,7 +146,7 @@
     (license gpl2+)))
 
 (define-public linux-libre
-  (let* ((version* "3.11")
+  (let* ((version "3.11")
          (build-phase
           '(lambda* (#:key system #:allow-other-keys #:rest args)
              (let ((arch (car (string-split system #\-))))
@@ -185,7 +186,7 @@
                                "modules_install"))))))
    (package
     (name "linux-libre")
-    (version version*)
+    (version version)
     (source (origin
              (method url-fetch)
              (uri (linux-libre-urls version))
@@ -719,3 +720,38 @@ Linux-based operating systems.")
 
     ;; License is BSD-3 or GPLv2, at the user's choice.
     (license gpl2)))
+
+(define-public bridge-utils
+  (package
+    (name "bridge-utils")
+    (version "1.5")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://sourceforge/bridge/bridge-utils-"
+                                 version ".tar.gz"))
+             (sha256
+              (base32
+               "12367cwqmi0yqphi6j8rkx97q8hw52yq2fx4k0xfclkcizxybya2"))))
+    (build-system gnu-build-system)
+
+    ;; The tarball lacks all the generated files.
+    (native-inputs `(("autoconf" ,autoconf)
+                     ("automake" ,automake)))
+    (arguments
+     '(#:phases (alist-cons-before
+                 'configure 'bootstrap
+                 (lambda _
+                   (zero? (system* "autoreconf" "-vf")))
+                 %standard-phases)
+       #:tests? #f))                              ; no 'check' target
+
+    (home-page
+     "http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge")
+    (synopsis "Manipulate Ethernet bridges")
+    (description
+     "Utilities for Linux's Ethernet bridging facilities.  A bridge is a way
+to connect two Ethernet segments together in a protocol independent way.
+Packets are forwarded based on Ethernet address, rather than IP address (like
+a router).  Since forwarding is done at Layer 2, all protocols can go
+transparently through a bridge.")
+    (license gpl2+)))
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index 5dc7387e92..8c148f7086 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -451,15 +451,15 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
   ;; A statically-linked Guile that is relocatable--i.e., it can search
   ;; .scm and .go files relative to its installation directory, rather
   ;; than in hard-coded configure-time paths.
-  (let* ((patches* (cons* (search-patch "guile-relocatable.patch")
-                          (search-patch "guile-default-utf8.patch")
-                          (search-patch "guile-linux-syscalls.patch")
-                          (origin-patches (package-source guile-2.0))))
-         (source*  (origin (inherit (package-source guile-2.0))
-                     (patches patches*)))
+  (let* ((patches (cons* (search-patch "guile-relocatable.patch")
+                         (search-patch "guile-default-utf8.patch")
+                         (search-patch "guile-linux-syscalls.patch")
+                         (origin-patches (package-source guile-2.0))))
+         (source  (origin (inherit (package-source guile-2.0))
+                    (patches patches)))
          (guile (package (inherit guile-2.0)
                   (name (string-append (package-name guile-2.0) "-static"))
-                  (source source*)
+                  (source source)
                   (synopsis "Statically-linked and relocatable Guile")
                   (propagated-inputs
                    `(("bdw-gc" ,libgc)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 4ff7143f86..ccbb57b90f 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -26,6 +26,7 @@
   #:use-module (gnu packages compression)
   #:use-module ((gnu packages gettext)
                 #:renamer (symbol-prefix-proc 'gnu:))
+  #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages readline)
@@ -55,7 +56,7 @@ enough to be used effectively as a scientific calculator.")
 (define-public gsl
   (package
     (name "gsl")
-    (version "1.15")
+    (version "1.16")
     (source
      (origin
       (method url-fetch)
@@ -63,10 +64,11 @@ enough to be used effectively as a scientific calculator.")
                           version ".tar.gz"))
       (sha256
        (base32
-        "18qf6jzz1r3mzb5qynywv4xx3z9g61hgkbpkdrhbgqh2g7jhgfc5"))))
+        "0lrgipi0z6559jqh82yx8n4xgnxkhzj46v96dl77hahdp58jzg3k"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:phases
+     `(#:parallel-tests? #f
+       #:phases
         (alist-replace
          'configure
          (lambda* (#:key target system outputs #:allow-other-keys #:rest args)
@@ -88,6 +90,33 @@ differential equations, linear algebra, Fast Fourier Transforms and random
 numbers.")
     (license license:gpl3+)))
 
+(define-public glpk
+  (package
+    (name "glpk")
+    (version "4.52.1")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://gnu/glpk/glpk-"
+                          version ".tar.gz"))
+      (sha256
+       (base32
+        "0nz9ngmx23c8gbjr8l8ygnfaanxj2mwbl8awpg630bgrkxdnhc9j"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("gmp" ,gmp)))
+    (arguments
+     `(#:configure-flags '("--with-gmp")))
+    (home-page "http://www.gnu.org/software/glpk/")
+    (synopsis "NU Linear Programming Kit, supporting the MathProg language")
+    (description
+     "GLPK is a C library for solving large-scale linear programming (LP),
+mixed integer programming (MIP), and other related problems.  It supports the
+GNU MathProg modeling language, a subset of the AMPL language, and features a
+translator for the language.  In addition to the C library, a stand-alone
+LP/MIP solver is included in the package.")
+    (license license:gpl3+)))
+
 (define-public pspp
   (package
     (name "pspp")
diff --git a/gnu/packages/mit-krb5.scm b/gnu/packages/mit-krb5.scm
index fe1170721e..8222212d95 100644
--- a/gnu/packages/mit-krb5.scm
+++ b/gnu/packages/mit-krb5.scm
@@ -28,19 +28,17 @@
 (define-public mit-krb5
   (package
    (name "mit-krb5")
-   (version "1.11")
+   (version "1.11.3")
    (source (origin
             (method url-fetch)
             (uri (string-append "http://web.mit.edu/kerberos/www/dist/krb5/"
-                                version
-                                "/krb5-" version
-                                "-signed.tar"))
+                                (string-copy version 0 (string-rindex version #\.))
+                                "/krb5-" version "-signed.tar"))
             (sha256 (base32
-                     "0lc6lxb98qzg4x01lppq700vkr1ax9rld09znahrinwqnf9zndzy"))))
+                     "1daiaxgkxcryqs37w28v4x1vajqmay4l144d1zd9c2d7jjxr9gcs"))))
    (build-system gnu-build-system)
    (inputs `(("bison" ,bison)
-             ("perl" ,perl)
-             ))
+             ("perl" ,perl)))
    (arguments
     '(#:phases
       (alist-replace
diff --git a/gnu/packages/oggvorbis.scm b/gnu/packages/oggvorbis.scm
index 0652ec3bed..1b1630e1fb 100644
--- a/gnu/packages/oggvorbis.scm
+++ b/gnu/packages/oggvorbis.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
+;;; Copyright © 2013 David Thompson <dthompson2@worcester.edu>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -34,6 +35,7 @@
   #:use-module (guix build-system gnu)
   #:export (libogg
             libvorbis
+            libtheora
             speex
             ao
             flac
@@ -88,6 +90,29 @@ polyphonic) audio and music at fixed and variable bitrates from 16 to
                                "See COPYING in the distribution."))
    (home-page "http://xiph.org/vorbis/")))
 
+(define libtheora
+  (package
+    (name "libtheora")
+    (version "1.1.1")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "http://downloads.xiph.org/releases/theora/libtheora-"
+                                 version ".tar.xz"))
+             (sha256
+              (base32
+               "0q8wark9ribij57dciym5vdikg2464p8q2mgqvfb78ksjh4s8vgk"))))
+    (build-system gnu-build-system)
+    (inputs `(("libvorbis" ,libvorbis)))
+    ;; The .pc files refer to libogg.
+    (propagated-inputs `(("libogg" ,libogg)))
+    (synopsis "Library implementing the Theora video format")
+    (description
+     "The libtheora library implements the ogg theora video format,
+a fully open, non-proprietary, patent-and-royalty-free, general-purpose
+compressed video format.")
+    (license license:bsd-3)
+    (home-page "http://xiph.org/theora/")))
+
 (define speex
   (package
     (name "speex")
diff --git a/gnu/packages/patches/cmake-fix-tests.patch b/gnu/packages/patches/cmake-fix-tests.patch
index ae28ca336b..5327f3749a 100644
--- a/gnu/packages/patches/cmake-fix-tests.patch
+++ b/gnu/packages/patches/cmake-fix-tests.patch
@@ -1,5 +1,5 @@
---- Tests/CMakeLists.txt	2013-03-20 22:57:13.000000000 +0100
-+++ Tests/CMakeLists.txt	2013-03-20 22:58:02.000000000 +0100
+--- a/Tests/CMakeLists.txt	2013-03-20 22:57:13.000000000 +0100
++++ b/Tests/CMakeLists.txt	2013-03-20 22:58:02.000000000 +0100
 @@ -1706,16 +1706,17 @@
      PASS_REGULAR_EXPRESSION "Could not find executable"
      FAIL_REGULAR_EXPRESSION "SegFault")
@@ -28,8 +28,8 @@
  
    configure_file(
      "${CMake_SOURCE_DIR}/Tests/CTestTestConfigFileInBuildDir/test1.cmake.in"
---- Utilities/cmcurl/CMakeLists.txt	2013-03-20 22:57:13.000000000 +0100
-+++ Utilities/cmcurl/CMakeLists.txt	2013-03-20 23:08:41.000000000 +0100
+--- a/Utilities/cmcurl/CMakeLists.txt	2013-03-20 22:57:13.000000000 +0100
++++ b/Utilities/cmcurl/CMakeLists.txt	2013-03-20 23:08:41.000000000 +0100
 @@ -729,8 +729,9 @@
  ADD_EXECUTABLE(LIBCURL Testing/curltest.c)
  TARGET_LINK_LIBRARIES(LIBCURL cmcurl ${CMAKE_DL_LIBS})
diff --git a/gnu/packages/patches/glib-tests-newnet.patch b/gnu/packages/patches/glib-tests-newnet.patch
new file mode 100644
index 0000000000..324b8ae68f
--- /dev/null
+++ b/gnu/packages/patches/glib-tests-newnet.patch
@@ -0,0 +1,30 @@
+Since guix-daemon runs in a separate networking name space, the only
+interface available is "lo".  However its index is incremented by one
+at each build, so it can end up being greater than 255, leading to an
+assertion failure in 'find_ifname_and_index'.
+
+Work around that by directly querying the index of "lo".
+
+--- glib-2.38.0/gio/tests/network-address.c	2013-09-17 20:47:14.000000000 +0200
++++ glib-2.38.0/gio/tests/network-address.c	2013-10-16 21:52:42.000000000 +0200
+@@ -117,7 +117,7 @@ test_parse_host (gconstpointer d)
+ #define SCOPE_ID_TEST_PORT 99
+ 
+ #ifdef HAVE_IF_INDEXTONAME
+-static char SCOPE_ID_TEST_IFNAME[IF_NAMESIZE];
++static char SCOPE_ID_TEST_IFNAME[] = "lo";
+ static int SCOPE_ID_TEST_INDEX;
+ #else
+ #define SCOPE_ID_TEST_IFNAME "1"
+@@ -131,11 +131,7 @@ find_ifname_and_index (void)
+     return;
+ 
+ #ifdef HAVE_IF_INDEXTONAME
+-  for (SCOPE_ID_TEST_INDEX = 1; SCOPE_ID_TEST_INDEX < 255; SCOPE_ID_TEST_INDEX++) {
+-    if (if_indextoname (SCOPE_ID_TEST_INDEX, SCOPE_ID_TEST_IFNAME))
+-      break;
+-  }
+-  g_assert_cmpstr (SCOPE_ID_TEST_IFNAME, !=, "");
++  SCOPE_ID_TEST_INDEX = if_nametoindex (SCOPE_ID_TEST_IFNAME);
+ #endif
+ }
diff --git a/gnu/packages/patches/gstreamer-0.10-bison3.patch b/gnu/packages/patches/gstreamer-0.10-bison3.patch
new file mode 100644
index 0000000000..f6eb90cb02
--- /dev/null
+++ b/gnu/packages/patches/gstreamer-0.10-bison3.patch
@@ -0,0 +1,32 @@
+See https://bugzilla.gnome.org/show_bug.cgi?id=706462
+
+Subject: [PATCH] Make grammar.y work with Bison 3
+
+YYLEX_PARAM is no longer supported in Bison 3.
+---
+ gst/parse/grammar.y | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gst/parse/grammar.y b/gst/parse/grammar.y
+index 8a9019c..f533389 100644
+--- a/gst/parse/grammar.y
++++ b/gst/parse/grammar.y
+@@ -26,7 +26,6 @@
+  */
+ 
+ #define YYERROR_VERBOSE 1
+-#define YYLEX_PARAM scanner
+ 
+ #define YYENABLE_NLS 0
+ 
+@@ -659,6 +658,7 @@ static int yyerror (void *scanner, graph_t *graph, const char *s);
+ %right '.'
+ %left '!' '='
+ 
++%lex-param { void *scanner }
+ %parse-param { void *scanner }
+ %parse-param { graph_t *graph }
+ %pure-parser
+-- 
+1.8.3.4
+
diff --git a/gnu/packages/patches/gstreamer-0.10-silly-test.patch b/gnu/packages/patches/gstreamer-0.10-silly-test.patch
new file mode 100644
index 0000000000..678dd7b122
--- /dev/null
+++ b/gnu/packages/patches/gstreamer-0.10-silly-test.patch
@@ -0,0 +1,14 @@
+See http://lists.freedesktop.org/archives/gstreamer-bugs/2013-January/098461.html
+
+diff -ru gstreamer-0.10.36.orig/tests/check/Makefile.in gstreamer-0.10.36/tests/check/Makefile.in
+--- gstreamer-0.10.36.orig/tests/check/Makefile.in	2012-02-20 23:48:29.000000000 +0100
++++ gstreamer-0.10.36/tests/check/Makefile.in	2013-10-30 21:55:48.000000000 +0100
+@@ -42,7 +42,7 @@
+ 	gst/gstbus$(EXEEXT) gst/gstcaps$(EXEEXT) $(am__EXEEXT_2) \
+ 	gst/gstdatetime$(EXEEXT) gst/gstinfo$(EXEEXT) \
+ 	gst/gstiterator$(EXEEXT) gst/gstmessage$(EXEEXT) \
+-	gst/gstminiobject$(EXEEXT) gst/gstobject$(EXEEXT) \
++	gst/gstminiobject$(EXEEXT) \
+ 	gst/gstpad$(EXEEXT) gst/gstparamspecs$(EXEEXT) \
+ 	gst/gstpoll$(EXEEXT) gst/gstsegment$(EXEEXT) \
+ 	gst/gstsystemclock$(EXEEXT) gst/gstclock$(EXEEXT) \
diff --git a/gnu/packages/patches/pulseaudio-test-timeouts.patch b/gnu/packages/patches/pulseaudio-test-timeouts.patch
new file mode 100644
index 0000000000..ab818ad0aa
--- /dev/null
+++ b/gnu/packages/patches/pulseaudio-test-timeouts.patch
@@ -0,0 +1,19 @@
+Increase the timeout of the thread test.  Hydra was intermittedly
+failing this test due to premature timeout, and slower machines
+consistently fail.
+
+Patch by Mark H Weaver <mhw@netris.org>.
+
+--- pulseaudio/src/tests/thread-test.c.orig	2012-09-26 07:27:01.000000000 -0400
++++ pulseaudio/src/tests/thread-test.c	2013-10-31 22:53:23.224000184 -0400
+@@ -152,6 +152,10 @@
+     s = suite_create("Thread");
+     tc = tcase_create("thread");
+     tcase_add_test(tc, thread_test);
++    /* the default timeout is too small,
++     * set it to a reasonable large one.
++     */
++    tcase_set_timeout(tc, 60 * 60);
+     suite_add_tcase(s, tc);
+ 
+     sr = srunner_create(s);
diff --git a/gnu/packages/patches/qt4-tests.patch b/gnu/packages/patches/qt4-tests.patch
new file mode 100644
index 0000000000..eb499ec76a
--- /dev/null
+++ b/gnu/packages/patches/qt4-tests.patch
@@ -0,0 +1,22 @@
+Drop tests requiring a running X server, but not starting any.
+
+diff -ru qt-everywhere-opensource-src-4.8.5.orig/src/3rdparty/webkit/Source/WebKit/qt/tests/tests.pro qt-everywhere-opensource-src-4.8.5/src/3rdparty/webkit/Source/WebKit/qt/tests/tests.pro
+--- qt-everywhere-opensource-src-4.8.5.orig/src/3rdparty/webkit/Source/WebKit/qt/tests/tests.pro	2013-10-12 13:15:47.000000000 +0200
++++ qt-everywhere-opensource-src-4.8.5/src/3rdparty/webkit/Source/WebKit/qt/tests/tests.pro	2013-10-12 13:20:15.000000000 +0200
+@@ -1,15 +1,4 @@
+ 
+ TEMPLATE = subdirs
+-SUBDIRS = qwebframe qwebpage qwebelement qgraphicswebview qwebhistoryinterface qwebview qwebhistory qwebinspector hybridPixmap
++SUBDIRS =
+ 
+-linux-* {
+-    # This test bypasses the library and links the tested code's object itself.
+-    # This stresses the build system in some corners so we only run it on linux.
+-    SUBDIRS += MIMESniffing
+-}
+-
+-contains(QT_CONFIG, declarative): SUBDIRS += qdeclarativewebview
+-SUBDIRS += benchmarks/painting benchmarks/loading
+-contains(DEFINES, ENABLE_WEBGL=1) {
+-    SUBDIRS += benchmarks/webgl
+-}
diff --git a/gnu/packages/patches/valgrind-glibc.patch b/gnu/packages/patches/valgrind-glibc.patch
index bee1abe71f..0279e37118 100644
--- a/gnu/packages/patches/valgrind-glibc.patch
+++ b/gnu/packages/patches/valgrind-glibc.patch
@@ -1,64 +1,15 @@
-commit 3781ac11ff374b3517011c1710ec517d52f25cd2
-Author: tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9>
-Date:   Mon Jan 14 09:48:49 2013 +0000
-
-    Accept glibc 2.17 as valid.
-    
-    
-    git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13228 a5019735-40e9-0310-863c-91ae7b9d1cf9
-
-diff --git a/configure.in b/configure.in
-index e0fb12d..0f3b3df 100644
---- a/configure.in
-+++ b/configure.in
-@@ -906,6 +906,13 @@ case "${GLIBC_VERSION}" in
+Accept glibc 2.18 as valid.
+--- a/configure	2013-10-10 22:27:20.331223000 +0200
++++ b/configure	2013-10-10 22:27:55.055223000 +0200
+@@ -6604,6 +6604,16 @@
  	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
  	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
  	;;
-+     2.17)
-+	AC_MSG_RESULT(2.17 family)
-+	AC_DEFINE([GLIBC_2_17], 1, [Define to 1 if you're using glibc 2.17.x])
-+	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
-+	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
-+	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
-+	;;
-      darwin)
- 	AC_MSG_RESULT(Darwin)
- 	AC_DEFINE([DARWIN_LIBC], 1, [Define to 1 if you're using Darwin])
-@@ -919,7 +926,7 @@ case "${GLIBC_VERSION}" in
- 
-      *)
- 	AC_MSG_RESULT([unsupported version ${GLIBC_VERSION}])
--	AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.16])
-+	AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.17])
- 	AC_MSG_ERROR([or Darwin libc])
- 	;;
- esac
-diff -ur valgrind-3.8.1/config.h.in valgrind-3.8.1/config.h.in
---- valgrind-3.8.1/config.h.in	2013-01-16 17:15:33.531018561 +0100
-+++ valgrind-3.8.1/config.h.in	2013-01-16 17:19:21.000000000 +0100
-@@ -48,6 +48,9 @@
- /* Define to 1 if you're using glibc 2.16.x */
- #undef GLIBC_2_16
- 
-+/* Define to 1 if you're using glibc 2.17.x */
-+#undef GLIBC_2_17
++     2.18)
++	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.18 family" >&5
++$as_echo "2.18 family" >&6; }
 +
- /* Define to 1 if you're using glibc 2.2.x */
- #undef GLIBC_2_2
- 
-diff -ur valgrind-3.8.1/configure valgrind-3.8.1/configure
---- valgrind-3.8.1/configure	2013-01-16 17:15:33.563018480 +0100
-+++ valgrind-3.8.1/configure	2013-01-16 17:19:21.373643238 +0100
-@@ -6610,6 +6610,16 @@
- 	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
- 	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
- 	;;
-+     2.17)
-+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.17 family" >&5
-+$as_echo "2.17 family" >&6; }
-+
-+$as_echo "#define GLIBC_2_17 1" >>confdefs.h
++$as_echo "#define GLIBC_2_18 1" >>confdefs.h
 +
 +	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
 +	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
@@ -67,12 +18,3 @@ diff -ur valgrind-3.8.1/configure valgrind-3.8.1/configure
       darwin)
  	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Darwin" >&5
  $as_echo "Darwin" >&6; }
-@@ -6630,7 +6640,7 @@
-      *)
- 	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported version ${GLIBC_VERSION}" >&5
- $as_echo "unsupported version ${GLIBC_VERSION}" >&6; }
--	as_fn_error "Valgrind requires glibc version 2.2 - 2.16" "$LINENO" 5
-+	as_fn_error "Valgrind requires glibc version 2.2 - 2.17" "$LINENO" 5
- 	as_fn_error "or Darwin libc" "$LINENO" 5
- 	;;
- esac
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 2dd3c9e32c..701eb586eb 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -31,7 +31,10 @@
   #:use-module (gnu packages libpng)
   #:use-module (gnu packages libtiff)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages xorg))
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gtk)
+  #:use-module (srfi srfi-1))
 
 (define-public poppler
   (package
@@ -47,7 +50,6 @@
    ;; FIXME: more dependencies could  be added
    ;;  cairo output:       no (requires cairo >= 1.10.0)
    ;;  qt4 wrapper:        no
-   ;;  glib wrapper:       no (requires cairo output)
    ;;    introspection:    no
    ;;  use gtk-doc:        no
    ;;  use libcurl:        no
@@ -58,7 +60,14 @@
              ("libpng" ,libpng)
              ("libtiff" ,libtiff)
              ("pkg-config" ,pkg-config)
-             ("zlib" ,zlib)))
+             ("zlib" ,zlib)
+
+             ;; To build poppler-glib (as needed by Evince), we need Cairo and
+             ;; GLib.  But of course, that Cairo must not depend on Poppler.
+             ("cairo" ,(package (inherit cairo)
+                         (inputs (alist-delete "poppler"
+                                               (package-inputs cairo)))))
+             ("glib" ,glib)))
    (arguments
     `(#:tests? #f ; no test data provided with the tarball
       #:configure-flags
diff --git a/gnu/packages/pem.scm b/gnu/packages/pem.scm
new file mode 100644
index 0000000000..324ed607c7
--- /dev/null
+++ b/gnu/packages/pem.scm
@@ -0,0 +1,48 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 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 pem)
+  #:use-module (guix packages)
+  #:use-module (guix licenses)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages perl))
+
+(define-public pem
+  (package
+    (name "pem")
+    (version "0.7.9")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://gnu/pem/pem-"
+                          version ".tar.gz"))
+      (sha256
+       (base32
+        "03iqcki1lakkck1akdyvljjapgqda3l0rh38id7jhrac9kcxqgg2"))))
+    (build-system gnu-build-system)
+    (inputs `(("perl" ,perl)))
+    (home-page "http://www.gnu.org/software/pem/")
+    (synopsis "Personal expenses manager")
+    (description
+     "GNU Pem is a simple tool for tracking personal income and
+expenses.  It operates from the command line and it stores its data
+in a basic text format in your home directory.  It can easily print
+reports of your spending on different expenses via a basic search
+feature.")
+    (license gpl3+)))
diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm
index 6318ca5882..1c579bfb2c 100644
--- a/gnu/packages/pulseaudio.scm
+++ b/gnu/packages/pulseaudio.scm
@@ -22,6 +22,7 @@
   #:use-module ((guix licenses)
                 #:renamer (symbol-prefix-proc 'l:))
   #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages oggvorbis)
   #:use-module (gnu packages pkg-config)
@@ -141,7 +142,8 @@ parse JSON formatted strings back into the C representation of JSON objects.")
                    version ".tar.xz"))
              (sha256
               (base32
-               "1bndz4l8jxyq3zq128gzp3gryxl6yjs66j2y1d7yabw2n5mv7kim"))))
+               "1bndz4l8jxyq3zq128gzp3gryxl6yjs66j2y1d7yabw2n5mv7kim"))
+             (patches (list (search-patch "pulseaudio-test-timeouts.patch")))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--localstatedir=/var" ;"--sysconfdir=/etc"
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index d64ed1a131..6d2c940773 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -19,7 +19,8 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages python)
-  #:use-module ((guix licenses) #:select (bsd-3 bsd-style psfl x11))
+  #:use-module ((guix licenses)
+                #:select (bsd-3 bsd-style psfl x11 gpl2+ lgpl2.1+))
   #:use-module ((guix licenses) #:select (zlib)
                                 #:renamer (symbol-prefix-proc 'license:))
   #:use-module (gnu packages)
@@ -399,7 +400,7 @@ after Andy Lester’s Perl module WWW::Mechanize.")
      "Json library for Python")
     (description
      "JSON (JavaScript Object Notation) is a subset of JavaScript syntax
-(ECMA-262 3rd edition) used as a lightweight data interchange format.
+ (ECMA-262 3rd edition) used as a lightweight data interchange format.
 
 Simplejson exposes an API familiar to users of the standard library marshal
 and pickle modules.  It is the externally maintained version of the json
@@ -438,3 +439,91 @@ Python 3.3+.")
     (description
      "PyICU is a python extension wrapping the ICU C++ API.")
     (license x11)))
+
+(define-public python2-dogtail
+  ;; Python 2 only, as it leads to "TabError: inconsistent use of tabs and
+  ;; spaces in indentation" with Python 3.
+  (package
+    (name "python2-dogtail")
+    (version "0.8.2")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "https://fedorahosted.org/released/dogtail/dogtail-"
+                   version ".tar.gz"))
+             (sha256
+              (base32
+               "1yc4cg7ip87z15gyd4wy2vzbywrjc52a3m8r8gqy2b50d65llcg1"))))
+    (build-system python-build-system)
+    (arguments `(#:python ,python-2
+                 #:tests? #f))                    ; invalid command "test"
+    (home-page "https://fedorahosted.org/dogtail/")
+    (synopsis "GUI test tool and automation framework written in ​Python")
+    (description
+     "dogtail is a GUI test tool and automation framework written in Python.
+It uses Accessibility (a11y) technologies to communicate with desktop
+applications. dogtail scripts are written in Python and executed like any
+other Python program.")
+    (license gpl2+)))
+
+(define-public python2-empy
+  (package
+    (name "python2-empy")
+    (version "3.3")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "http://www.alcyone.com/software/empy/empy-"
+                                 version ".tar.gz"))
+             (sha256
+              (base32
+               "01g8mmkfnvjdmlhsihwyx56lrg7r5m5d2fg6mnxsvy6g0dnl69f6"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2
+       #:phases (alist-replace
+                 'check
+                 (lambda _
+                   (zero? (system* "./test.sh")))
+                 %standard-phases)))
+    (home-page "http://www.alcyone.com/software/empy/")
+    (synopsis "Templating system for Python")
+    (description
+     "EmPy is a system for embedding Python expressions and statements in
+template text; it takes an EmPy source file, processes it, and produces
+output.  This is accomplished via expansions, which are special signals to the
+EmPy system and are set off by a special prefix (by default the at sign, @).
+EmPy can expand arbitrary Python expressions and statements in this way, as
+well as a variety of special forms.  Textual data not explicitly delimited in
+this way is sent unaffected to the output, allowing Python to be used in
+effect as a markup language.  Also supported are callbacks via hooks,
+recording and playback via diversions, and dynamic, chainable filters.  The
+system is highly configurable via command line options and embedded
+commands.")
+    (license lgpl2.1+)))
+
+(define-public scons
+  (package
+    (name "scons")
+    (version "2.1.0")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://sourceforge/scons/scons-"
+                                 version ".tar.gz"))
+             (sha256
+              (base32
+               "07cjn4afb2cljjrd3cr7xf062qq58z8q96f58z6yplhdyqafsfa1"))))
+    (build-system python-build-system)
+    (arguments
+     ;; With Python 3.x, fails to build with a syntax error.
+     `(#:python ,python-2
+       #:tests? #f))                       ; no 'python setup.py test' command
+    (home-page "http://scons.org/")
+    (synopsis "Software construction tool written in Python")
+    (description
+     "SCons is a software construction tool.  Think of SCons as an improved,
+cross-platform substitute for the classic Make utility with integrated
+functionality similar to autoconf/automake and compiler caches such as ccache.
+In short, SCons is an easier, more reliable and faster way to build
+software.")
+    (license x11)))
+
diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm
index 791aa715c8..8efde67595 100644
--- a/gnu/packages/qemu.scm
+++ b/gnu/packages/qemu.scm
@@ -135,4 +135,5 @@ server and embedded PowerPC, and S390 guests.")
   (package (inherit qemu)
     (name "qemu-with-multiple-smb-shares")
     (source (origin (inherit (package-source qemu))
-              (patches (search-patch "qemu-multiple-smb-shares.patch"))))))
+              (patches
+               (list (search-patch "qemu-multiple-smb-shares.patch")))))))
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index be953e2452..2a0872bcdc 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -21,6 +21,7 @@
   #: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 compression)
   #:use-module (gnu packages fontutils)
@@ -139,3 +140,45 @@ X11 (yet).")
     (description "Qt is a cross-platform application and UI framework for
 developers using C++ or QML, a CSS & JavaScript like language.")
     (license lgpl2.1)))
+
+(define-public qt-4
+  (package (inherit qt)
+    (version "4.8.5")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "http://download.qt-project.org/official_releases/qt/"
+                                 (string-copy version 0 (string-rindex version #\.))
+                                 "/" version
+                                 "/qt-everywhere-opensource-src-"
+                                 version ".tar.gz"))
+             (sha256
+              (base32
+               "0f51dbgn1dcck8pqimls2qyf1pfmsmyknh767cvw87c3d218ywpb"))
+             (patches (list (search-patch "qt4-tests.patch")))))
+    (arguments
+     `(#:phases
+         (alist-replace
+          'configure
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let ((out (assoc-ref outputs "out")))
+              (substitute* '("configure")
+                           (("/bin/pwd") (which "pwd")))
+              ;; do not pass "--enable-fast-install", which makes the
+              ;; configure process fail
+              (zero? (system* "./configure"
+                              "-verbose"
+                              "-prefix" out
+                              "-opensource"
+                              "-confirm-license"
+                              ;; drop all special machine instructions
+                              "-no-mmx"
+                              "-no-3dnow"
+                              "-no-sse"
+                              "-no-sse2"
+                              "-no-sse3"
+                              "-no-ssse3"
+                              "-no-sse4.1"
+                              "-no-sse4.2"
+                              "-no-avx"
+                              "-no-neon"))))
+          %standard-phases)))))
diff --git a/gnu/packages/rsync.scm b/gnu/packages/rsync.scm
index 16e1a53cb2..c51d65c33e 100644
--- a/gnu/packages/rsync.scm
+++ b/gnu/packages/rsync.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2012, 2013 Andreas Enge <andreas@enge.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -29,14 +29,14 @@
 (define-public rsync
   (package
    (name "rsync")
-   (version "3.0.9")
+   (version "3.1.0")
    (source (origin
             (method url-fetch)
-            (uri (string-append "http://rsync.samba.org/ftp/rsync/rsync-"
+            (uri (string-append "http://rsync.samba.org/ftp/rsync/src/rsync-"
                                 version ".tar.gz"))
             (sha256
              (base32
-              "01bw4klqsrlhh3i9lazd485sd9qx5djvnwa21lj2h3a9sn6hzw9h"))))
+              "0kirw8wglqvwi1v8bwxp373g03xg857h59j5k3mmgff9gzvj7jl1"))))
    (build-system gnu-build-system)
    (inputs `(("perl" ,perl)
              ("acl" ,acl)))
diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm
new file mode 100644
index 0000000000..ceb21735bc
--- /dev/null
+++ b/gnu/packages/sdl.scm
@@ -0,0 +1,49 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 David Thompson <dthompson2@worcester.edu>
+;;;
+;;; 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 sdl)
+  #:use-module (gnu packages)
+  #:use-module (guix licenses)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages xorg)
+  #:export (libmikmod))
+
+(define libmikmod
+  (package
+    (name "libmikmod")
+    (version "3.3.3")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://sourceforge/mikmod/libmikmod/"
+                                 version "/libmikmod-" version ".tar.gz"))
+             (sha256
+              (base32
+               "0dr4kgvhq9wf2riibh178c2al996spwwak6zffpv5n5bqmw29w3r"))))
+    (build-system gnu-build-system)
+    (inputs `(("alsa-lib" ,alsa-lib)
+              ("libx11" ,libx11)))
+    (synopsis "Library for module sound formats.")
+    (description
+     "MikMod is able to play a wide range of module formats, as well as
+digital sound files. It can take advantage of particular features of your
+system, such as sound redirection over the network.")
+    (license lgpl2.1)
+    (home-page "http://mikmod.sourceforge.net/")))
diff --git a/gnu/packages/system.scm b/gnu/packages/system.scm
index a5d2e67585..9c06e6b61e 100644
--- a/gnu/packages/system.scm
+++ b/gnu/packages/system.scm
@@ -28,6 +28,8 @@
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages guile)
+  #:use-module ((gnu packages gettext)
+                #:renamer (symbol-prefix-proc 'g:))
   #:use-module ((gnu packages base)
                 #:select (tar))
   #:use-module ((gnu packages compression)
@@ -74,6 +76,7 @@ is based on GNU Guile.")
         "1b4hfqv23l87cb37fxwzfk2sgspkyxpr3ig2hsd23hr6mm982j7z"))))
    (build-system cmake-build-system)
    (arguments '(#:tests? #f)) ; There are no tests.
+   (native-inputs `(("gettext" ,g:gettext)))
    (home-page "http://projects.gw-computing.net/projects/dfc")
    (synopsis "Display file system space usage using graphs and colors")
    (description
@@ -318,3 +321,25 @@ programs and scripts. At the same time, it is a feature-rich network debugging
 and exploration tool, since it can create almost any kind of connection you
 would need and has several interesting built-in capabilities.")
     (license gpl2+)))
+
+(define-public alive
+  (package
+    (name "alive")
+    (version "2.0.2")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://gnu/alive/alive-"
+                                 version ".tar.xz"))
+             (sha256
+              (base32
+               "1vrzg51ai68x9yld7vbgl58sxaw5qpx8rbakwcxn4cqq6vpxj38j"))))
+    (build-system gnu-build-system)
+    (arguments '(#:configure-flags '("alive_cv_nice_ping=yes")))
+    (inputs `(("guile" ,guile-2.0)
+              ("inetutils" ,inetutils)))
+    (home-page "http://www.gnu.org/software/alive/")
+    (synopsis "Autologin and keep-alive daemon")
+    (description
+     "GNU Alive sends periodic pings to a server, generally to keep a
+connection alive.")
+    (license gpl3+)))
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 30660e830f..cc6e3d3111 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -180,6 +180,33 @@ everything from small to very large projects with speed and efficiency.")
    (license gpl2)
    (home-page "http://git-scm.com/")))
 
+(define-public mercurial
+  (package
+    (name "mercurial")
+    (version "2.7.1")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "http://mercurial.selenic.com/release/mercurial-"
+                                 version ".tar.gz"))
+             (sha256
+              (base32
+               "121m8f7vmipmdg00cnzdz2rjkgydh28mwfirqkrbs5fv089vywl4"))))
+    (build-system python-build-system)
+    (arguments
+     `(;; Restrict to Python 2, as Python 3 would require
+       ;; the argument --c2to3.
+       #:python ,python-2
+       ;; FIXME: Disabled tests because they require the nose unit
+       ;; testing framework: https://nose.readthedocs.org/en/latest/ .
+       #:tests? #f))
+    (home-page "http://mercurial.selenic.com")
+    (synopsis "Decentralized version control system")
+    (description
+     "Mercurial is a free, distributed source control management tool.
+It efficiently handles projects of any size
+and offers an easy and intuitive interface.")
+    (license gpl2+)))
+
 (define-public subversion
   (package
     (name "subversion")
@@ -226,8 +253,8 @@ everything from small to very large projects with speed and efficiency.")
     (home-page "http://subversion.apache.org/")
     (synopsis "Subversion, a revision control system")
     (description
-     "Subversion exists to be universally recognized and adopted as an
-open-source, centralized version control system characterized by its
+     "Subversion exists to be universally recognized and adopted as a
+centralized version control system characterized by its
 reliability as a safe haven for valuable data; the simplicity of its model and
 usage; and its ability to support the needs of a wide variety of users and
 projects, from individuals to large-scale enterprise operations.")
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 42f2d18b83..8ff1532879 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -4180,7 +4180,8 @@ tracking.")
       (origin
         (method url-fetch)
         (uri (string-append
-               "ftp://ftp.freedesktop.org/pub/mesa/" version
+               "ftp://ftp.freedesktop.org/pub/mesa/older-versions/8.x/"
+               version
                "/MesaLib-" version
                ".tar.bz2"))
         (sha256