summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-03-10 23:54:17 +0100
committerLudovic Courtès <ludo@gnu.org>2014-03-10 23:54:17 +0100
commite06f7865e2630494a522ac32b9c0a0311be3e1e2 (patch)
tree1a547ad3a2e4c1b98a67845a9de0dfc798227b5f /gnu
parentff3c0c1b805453990a42f690f148b41b9dff382a (diff)
parentc9c88118a12b0e22b7369b1dc6b0e2f9db894986 (diff)
downloadguix-e06f7865e2630494a522ac32b9c0a0311be3e1e2.tar.gz
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/admin.scm53
-rw-r--r--gnu/packages/bdw-gc.scm19
-rw-r--r--gnu/packages/gnupg.scm26
-rw-r--r--gnu/packages/gnutls.scm10
-rw-r--r--gnu/packages/hurd.scm44
-rw-r--r--gnu/packages/linux.scm25
-rw-r--r--gnu/packages/lynx.scm86
-rw-r--r--gnu/packages/messaging.scm123
-rw-r--r--gnu/packages/mpd.scm28
-rw-r--r--gnu/packages/patches/bitlbee-fix-tests.patch33
-rw-r--r--gnu/packages/patches/bitlbee-memset-fix.patch15
-rw-r--r--gnu/packages/patches/source-highlight-regexrange-test.patch15
-rw-r--r--gnu/packages/pretty-print.scm224
-rw-r--r--gnu/packages/python.scm52
-rw-r--r--gnu/packages/rdf.scm11
-rw-r--r--gnu/packages/ssh.scm16
-rw-r--r--gnu/packages/version-control.scm76
-rw-r--r--gnu/system/vm.scm8
18 files changed, 832 insertions, 32 deletions
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 6998996523..ffedfd3f44 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -36,6 +36,9 @@
                 #:select (tar))
   #:use-module ((gnu packages compression)
                 #:select (gzip))
+  #:use-module (gnu packages bison)
+  #:use-module (gnu packages flex)
+  #:use-module (gnu packages glib)
   #:use-module (gnu packages pkg-config))
 
 (define-public dmd
@@ -429,3 +432,53 @@ connection alive.")
 reference implementation of all aspects of DHCP, through a suite of DHCP
 tools: server, client, and relay agent.")
     (license isc)))
+
+(define-public libpcap
+  (package
+    (name "libpcap")
+    (version "1.5.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.tcpdump.org/release/libpcap-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "14wyjywrdi1ikaj6yc9c72m6m2r64z94lb0gm7k1a3q6q5cj3scs"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("bison" ,bison) ("flex" ,flex)))
+    (arguments '(#:tests? #f))                    ; no 'check' target
+    (home-page "http://www.tcpdump.org")
+    (synopsis "Network packet capture library")
+    (description
+     "libpcap is an interface for user-level packet capture.  It provides a
+portable framework for low-level network monitoring.  Applications include
+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 jnettop
+  (package
+    (name "jnettop")
+    (version "0.13.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://jnettop.kubs.info/dist/jnettop-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "1855np7c4b0bqzhf1l1dyzxb90fpnvrirdisajhci5am6als31z9"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glib" ,glib)
+       ("ncurses" ,ncurses)
+       ("libpcap" ,libpcap)))
+    (home-page "http://jnettop.kubs.info/")
+    (synopsis "Visualize network traffic by bandwidth use")
+    (description
+     "Jnettop is a traffic visualiser, which captures traffic going
+through the host it is running from and displays streams sorted
+by bandwidth they use.")
+    (license gpl2+)))
diff --git a/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm
index b223721520..1955cd3ee1 100644
--- a/gnu/packages/bdw-gc.scm
+++ b/gnu/packages/bdw-gc.scm
@@ -29,9 +29,8 @@
    (version "7.2d")
    (source (origin
             (method url-fetch)
-            (uri (string-append
-                  "http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-"
-                  version ".tar.gz"))
+            (uri (string-append "http://www.hboehm.info/gc/gc_source/gc-"
+                                version ".tar.gz"))
             (sha256
              (base32
               "0phwa5driahnpn79zqff14w9yc8sn3599cxz91m78hqdcpl0mznr"))))
@@ -58,10 +57,9 @@ simple collector interface.
 
 Alternatively, the garbage collector may be used as a leak detector for
 C or C++ programs, though that is not its primary goal.")
-   (home-page "http://www.hpl.hp.com/personal/Hans_Boehm/gc/")
+   (home-page "http://www.hboehm.info/gc/")
 
-   (license
-    (x11-style "http://www.hpl.hp.com/personal/Hans_Boehm/gc/license.txt"))))
+   (license (x11-style (string-append home-page "license.txt")))))
 
 (define-public libatomic-ops
   (package
@@ -70,7 +68,7 @@ C or C++ programs, though that is not its primary goal.")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/libatomic_ops-"
+                    "http://www.hboehm.info/gc/gc_source/libatomic_ops-"
                     version ".tar.gz"))
               (sha256
                (base32
@@ -83,7 +81,7 @@ C or C++ programs, though that is not its primary goal.")
 memory update operations on a number architectures.  These might allow you to
 write code that does more interesting things in signal handlers, write
 lock-free code, experiment with thread programming paradigms, etc.")
-    (home-page "http://www.hpl.hp.com/research/linux/atomic_ops/")
+    (home-page "https://github.com/ivmai/libatomic_ops/")
 
     ;; Some source files are X11-style, others are GPLv2+.
     (license gpl2+)))
@@ -93,9 +91,8 @@ lock-free code, experiment with thread programming paradigms, etc.")
     (version "7.4.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append
-                    "http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-"
-                    version ".tar.gz"))
+              (uri (string-append "http://www.hboehm.info/gc/gc_source/gc-"
+                                  version ".tar.gz"))
               (sha256
                (base32
                 "10z2nph62ilab063wygg2lv0jxlsbcf2az9w1lx01jzqj5lzry31"))))
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index e06865d196..16ca8ae661 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -209,6 +210,31 @@ components), libgpg-error (centralized GnuPG error values), and libskba
 (working with X.509 certificates and CMS data).")
     (license gpl3+)))
 
+(define-public gnupg-1
+  (package (inherit gnupg)
+    (version "1.4.16")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
+                          ".tar.bz2"))
+      (sha256
+       (base32
+        "0bsa1yqa3ybhvmc4ys73amdpcmckrlq1fsxjl2980cxada778fvv"))))
+    (inputs
+     `(("zlib" ,guix:zlib)
+       ("bzip2" ,guix:bzip2)
+       ("curl" ,curl)
+       ("readline" ,readline)
+       ("libgpg-error" ,libgpg-error)))
+    (arguments
+     `(#:phases (alist-cons-after
+                 'unpack 'patch-check-sh
+                 (lambda _
+                   (substitute* "checks/Makefile.in"
+                     (("/bin/sh") (which "bash"))))
+                 %standard-phases)))))
+
 (define-public gpgme
   (package
     (name "gpgme")
diff --git a/gnu/packages/gnutls.scm b/gnu/packages/gnutls.scm
index 915f6f8c8f..0391f54126 100644
--- a/gnu/packages/gnutls.scm
+++ b/gnu/packages/gnutls.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>
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -63,7 +63,7 @@ specifications.")
 (define-public gnutls
   (package
     (name "gnutls")
-    (version "3.2.11")
+    (version "3.2.12")
     (source (origin
              (method url-fetch)
              (uri
@@ -75,8 +75,12 @@ specifications.")
                              "/gnutls-" version ".tar.xz"))
              (sha256
               (base32
-               "1hgk3k8f6wqijca3bsjbfn8pzyfva509y4j2vaxhm4ynfa5cai5q"))))
+               "0195nliarszq5mginli6d2f5z7ljnd7mwa46iy9z8pkcgy56khbl"))))
     (build-system gnu-build-system)
+    (arguments
+     ;; Work around build issue reported at
+     ;; <https://lists.gnu.org/archive/html/guix-devel/2014-03/msg00027.html>.
+     '(#:make-flags '("CPPFLAGS=-DENABLE_RSA_EXPORT")))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index 3edccbdd1c..f1e7dbc9dc 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -22,7 +22,9 @@
   #:use-module (guix packages)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages flex)
-  #:use-module (gnu packages bison))
+  #:use-module (gnu packages bison)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages autotools))
 
 (define-public gnumach-headers
   (package
@@ -86,3 +88,43 @@ and to compile the GNU C library for the Hurd. Also,you will need it
 for other software in the GNU system that uses Mach-based inter-process
 communication.")
     (license gpl2+)))
+
+(define-public hurd-headers
+  (package
+    (name "hurd-headers")
+    (version "0.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnu/hurd/hurd-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0lvkz3r0ngb4bsn2hzdc9vjpyrfa3ls36jivrvy1n7f7f55zan7q"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(;; Autoconf shouldn't be necessary but there seems to be a bug in the
+       ;; build system triggering its use.
+       ("autoconf" ,autoconf)
+
+       ("mig" ,mig)))
+    (arguments
+     `(#:phases (alist-replace
+                 'install
+                 (lambda _
+                   (zero? (system* "make" "install-headers" "no_deps=t")))
+                 (alist-delete 'build %standard-phases))
+
+       #:configure-flags '(;; Pretend we're on GNU/Hurd; 'configure' wants
+                           ;; that.
+                           "--host=i686-pc-gnu"
+
+                           ;; Reduce set of dependencies.
+                           "--without-parted")
+
+       #:tests? #f))
+    (home-page "http://www.gnu.org/software/hurd/hurd.html")
+    (synopsis "GNU Hurd headers")
+    (description
+     "This package provides C headers of the GNU Hurd, used to build the GNU C
+Library and other user programs.")
+    (license gpl2+)))
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 3fca5dfaf9..e1668b1d6b 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -40,6 +40,7 @@
   #: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))
 
 (define-public (system->linux-architecture arch)
@@ -920,3 +921,27 @@ part of this problem by allowing users to run file system implementations as
 user-space processes.")
     (license (list lgpl2.1                        ; library
                    gpl2+))))                      ; command-line utilities
+
+(define-public unionfs-fuse
+  (package
+    (name "unionfs-fuse")
+    (version "0.26")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://podgorny.cz/unionfs-fuse/releases/unionfs-fuse-"
+                    version ".tar.xz"))
+              (sha256
+               (base32
+                "0qpnr4czgc62vsfnmv933w62nq3xwcbnvqch72qakfgca75rsp4d"))))
+    (build-system cmake-build-system)
+    (inputs `(("fuse" ,fuse)))
+    (arguments '(#:tests? #f))                    ; no tests
+    (home-page "http://podgorny.cz/moin/UnionFsFuse")
+    (synopsis "User-space union file system")
+    (description
+     "UnionFS-FUSE is a flexible union file system implementation in user
+space, using the FUSE library.  Mounting a union file system allows you to
+\"aggregate\" the contents of several directories into a single mount point.
+UnionFS-FUSE additionally supports copy-on-write.")
+    (license bsd-3)))
diff --git a/gnu/packages/lynx.scm b/gnu/packages/lynx.scm
new file mode 100644
index 0000000000..a87316643d
--- /dev/null
+++ b/gnu/packages/lynx.scm
@@ -0,0 +1,86 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Mark H Weaver <mhw@netris.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 lynx)
+  #:use-module ((guix licenses) #:select (gpl2))
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages libidn)
+  #:use-module (gnu packages gnutls)
+  #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages zip)
+  #:use-module (gnu packages compression))
+
+(define-public lynx
+  (package
+    (name "lynx")
+    (version "2.8.8")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://lynx.isc.org/lynx" version
+                                  "/lynx" version ".tar.bz2"))
+              (sha256
+               (base32 "00jcfmx4bxnrzywzzlllz3z45a2mc4fl91ca5lrzz1pyr1s1qnm2"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("pkg-config" ,pkg-config)
+                     ("perl" ,perl)))
+    (inputs `(("ncurses" ,ncurses)
+              ("libidn" ,libidn)
+              ("gnutls" ,gnutls)
+              ("libgcrypt" ,libgcrypt)
+              ("unzip" ,unzip)
+              ("zlib" ,zlib)
+              ("gzip" ,gzip)
+              ("bzip2" ,bzip2)))
+    (arguments
+     `(#:configure-flags '("--with-pkg-config"
+                           "--with-screen=ncurses"
+                           "--with-zlib"
+                           "--with-bzlib"
+                           "--with-gnutls"
+                           ;; "--with-socks5"    ; XXX TODO
+                           "--enable-widec"
+                           "--enable-ascii-ctypes"
+                           "--enable-local-docs"
+                           "--enable-htmlized-cfg"
+                           "--enable-gzip-help"
+                           "--enable-nls"
+                           "--enable-ipv6")
+       #:tests? #f  ; no check target
+       #:phases (alist-replace
+                 'install
+                 (lambda* (#:key (make-flags '()) #:allow-other-keys)
+                   (zero? (apply system* "make" "install-full" make-flags)))
+                 %standard-phases)))
+    (synopsis "Text Web Browser")
+    (description
+     "Lynx is a fully-featured World Wide Web (WWW) client for users running
+cursor-addressable, character-cell display devices.  It will display Hypertext
+Markup Language (HTML) documents containing links to files on the local
+system, as well as files on remote systems running http, gopher, ftp, wais,
+nntp, finger, or cso/ph/qi servers.  Lynx can be used to access information on
+the WWW, or to build information systems intended primarily for local
+access.")
+    (home-page "http://lynx.isc.org/")
+    (license gpl2)))
+
+;;; lynx.scm ends here
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
new file mode 100644
index 0000000000..c1a755ef84
--- /dev/null
+++ b/gnu/packages/messaging.scm
@@ -0,0 +1,123 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Mark H Weaver <mhw@netris.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 messaging)
+  #:use-module ((guix licenses)
+                #:select (gpl2+ gpl2 lgpl2.1 bsd-2))
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnutls)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages check))
+
+(define-public libotr
+  (package
+    (name "libotr")
+    (version "4.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://otr.cypherpunks.ca/libotr-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32 "1d4k0b7v4d3scwm858cmqr9c6xgd6ppla1vk4x2yg64q82a1k49z"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+     `(("libgcrypt" ,libgcrypt)))  ; libotr headers include gcrypt.h
+    (inputs `(("libgpg-error" ,libgpg-error)))
+    (arguments
+     `(#:configure-flags '("--with-pic")))
+    (synopsis "Off-the-Record (OTR) Messaging Library and Toolkit")
+    (description
+     "OTR allows you to have private conversations over instant messaging by
+providing:
+* Encryption: No one else can read your instant messages.
+* Authentication: You are assured the correspondent is who you think it is.
+* Deniability: The messages you send do not have digital signatures that are
+  checkable by a third party.  Anyone can forge messages after a conversation
+  to make them look like they came from you.  However, during a conversation,
+  your correspondent is assured the messages he sees are authentic and
+  unmodified.
+* Perfect forward secrecy: If you lose control of your private keys, no
+  previous conversation is compromised.")
+    (home-page "https://otr.cypherpunks.ca/")
+    (license (list lgpl2.1 gpl2))))
+
+(define-public libotr-3
+  (package (inherit libotr)
+    (version "3.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://otr.cypherpunks.ca/libotr-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32 "1x6dd4rh499hdraiqfhz81igrj0a5rs0gjhc8l4sljwqhjjyla6l"))))))
+
+(define-public bitlbee
+  (package
+    (name "bitlbee")
+    (version "3.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://get.bitlbee.org/src/bitlbee-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32 "0n8g5452i5qap43zxb83gxp01d48psf6rr3k1q7z6a3dgpfi3x00"))
+              (patches (list (search-patch "bitlbee-memset-fix.patch")
+                             (search-patch "bitlbee-fix-tests.patch")))))
+    (build-system gnu-build-system)
+    (native-inputs `(("pkg-config" ,pkg-config)
+                     ("check" ,check)))
+    (inputs `(("glib" ,glib)
+              ("libotr" ,libotr-3)
+              ("gnutls" ,gnutls)
+              ("zlib" ,zlib)  ; Needed to satisfy "pkg-config --exists gnutls"
+              ("python" ,python-2)
+              ("perl" ,perl)))
+    (arguments
+     `(#:phases (alist-cons-after
+                 'install 'install-etc
+                 (lambda* (#:key (make-flags '()) #:allow-other-keys)
+                   (zero? (apply system* "make" "install-etc" make-flags)))
+                 (alist-replace
+                  'configure
+                  ;; bitlbee's configure script does not tolerate many of the
+                  ;; variable settings that Guix would pass to it.
+                  (lambda* (#:key outputs #:allow-other-keys)
+                    (zero? (system* "./configure"
+                                    (string-append "--prefix="
+                                                   (assoc-ref outputs "out"))
+                                    "--otr=1")))
+                  %standard-phases))))
+    (synopsis "IRC to instant messaging gateway")
+    (description "BitlBee brings IM (instant messaging) to IRC clients, for
+people who have an IRC client running all the time and don't want to run an
+additional IM client.  BitlBee currently supports XMPP/Jabber (including
+Google Talk), MSN Messenger, Yahoo!  Messenger, AIM and ICQ, and the Twitter
+microblogging network (plus all other Twitter API compatible services like
+identi.ca and status.net).")
+    (home-page "http://www.bitlbee.org/")
+    (license (list gpl2+ bsd-2))))
+
+;;; messaging.scm ends here
diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm
index b2c5dec15b..04b34eaf87 100644
--- a/gnu/packages/mpd.scm
+++ b/gnu/packages/mpd.scm
@@ -29,13 +29,15 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages mp3)
+  #:use-module (gnu packages ncurses)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xiph)
   #:export (libmpdclient
-            mpd))
+            mpd
+            ncmpc))
 
 (define libmpdclient
   (package
@@ -121,3 +123,27 @@ can play a variety of sound files while being controlled by its network
 protocol.")
     (home-page "http://www.musicpd.org/")
     (license license:gpl2)))
+
+(define ncmpc
+  (package
+    (name "ncmpc")
+    (version "0.21")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append "http://musicpd.org/download/ncmpc/"
+                              (car (string-split version #\.))
+                              "/ncmpc-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1gpy6rr0awl6xgkswmr8rdvqfkrz83rmwk441c00a9d4z3zb1a16"))))
+    (build-system gnu-build-system)
+    (inputs `(("glib" ,glib)
+              ("libmpdclient" ,libmpdclient)
+              ("ncurses" ,ncurses)))
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    (synopsis "A curses Music Player Daemon client")
+    (description "ncmpc is a fully featured MPD client, which runs in a
+terminal using ncurses.")
+    (home-page "http://www.musicpd.org/clients/ncmpc/")
+    (license license:gpl2)))
diff --git a/gnu/packages/patches/bitlbee-fix-tests.patch b/gnu/packages/patches/bitlbee-fix-tests.patch
new file mode 100644
index 0000000000..52bb6c605d
--- /dev/null
+++ b/gnu/packages/patches/bitlbee-fix-tests.patch
@@ -0,0 +1,33 @@
+Pass the correct number of arguments to 'nick_strip' and 'nick_ok' in tests.
+
+Patch by Mark H Weaver <mhw@netris.org>.
+
+--- bitlbee/tests/check_nick.c.orig	2013-11-27 17:54:54.000000000 -0500
++++ bitlbee/tests/check_nick.c	2014-03-05 23:41:45.761230468 -0500
+@@ -30,7 +30,7 @@ START_TEST(test_nick_strip)
+ 	for (i = 0; get[i]; i++) {
+ 		char copy[60];
+ 		strcpy(copy, get[i]);
+-		nick_strip(copy);
++		nick_strip(NULL, copy);
+ 		fail_unless (strcmp(copy, expected[i]) == 0, 
+ 					 "(%d) nick_strip broken: %s -> %s (expected: %s)", 
+ 					 i, get[i], copy, expected[i]);
+@@ -45,7 +45,7 @@ START_TEST(test_nick_ok_ok)
+ 	int i;
+ 
+ 	for (i = 0; nicks[i]; i++) {
+-		fail_unless (nick_ok(nicks[i]) == 1,
++		fail_unless (nick_ok(NULL, nicks[i]) == 1,
+ 					 "nick_ok() failed: %s", nicks[i]);
+ 	}
+ }
+@@ -58,7 +58,7 @@ START_TEST(test_nick_ok_notok)
+ 	int i;
+ 
+ 	for (i = 0; nicks[i]; i++) {
+-		fail_unless (nick_ok(nicks[i]) == 0,
++		fail_unless (nick_ok(NULL, nicks[i]) == 0,
+ 					 "nick_ok() succeeded for invalid: %s", nicks[i]);
+ 	}
+ }
diff --git a/gnu/packages/patches/bitlbee-memset-fix.patch b/gnu/packages/patches/bitlbee-memset-fix.patch
new file mode 100644
index 0000000000..1d801e0070
--- /dev/null
+++ b/gnu/packages/patches/bitlbee-memset-fix.patch
@@ -0,0 +1,15 @@
+Fix the size argument to 'memset'.
+
+Patch by Mark H Weaver <mhw@netris.org>.
+
+--- bitlbee/lib/md5.c.orig	2013-11-27 17:54:54.000000000 -0500
++++ bitlbee/lib/md5.c	2014-03-05 21:39:04.739746093 -0500
+@@ -159,7 +159,7 @@ void md5_finish(struct MD5Context *ctx,
+ 	ctx->buf[2] = cvt32(ctx->buf[2]);
+ 	ctx->buf[3] = cvt32(ctx->buf[3]);
+ 	memcpy(digest, ctx->buf, 16);
+-	memset(ctx, 0, sizeof(ctx));	/* In case it's sensitive */
++	memset(ctx, 0, sizeof(*ctx));	/* In case it's sensitive */
+ }
+ 
+ void md5_finish_ascii(struct MD5Context *context, char *ascii)
diff --git a/gnu/packages/patches/source-highlight-regexrange-test.patch b/gnu/packages/patches/source-highlight-regexrange-test.patch
new file mode 100644
index 0000000000..298c831b35
--- /dev/null
+++ b/gnu/packages/patches/source-highlight-regexrange-test.patch
@@ -0,0 +1,15 @@
+Disable a single check.  The failure is discussed at:
+
+  https://savannah.gnu.org/bugs/index.php?41786
+
+--- a/lib/tests/test_regexranges_main.cpp	2012-04-14 08:58:25.000000000 -0500
++++ b/lib/tests/test_regexranges_main.cpp	2014-03-05 23:49:23.520402043 -0600
+@@ -52,7 +52,7 @@
+     check_range_regex("simple regex");
+     check_range_regex("[[:alpha:]]+");
+     // test with a wrong regular expression
+-    check_range_regex("{notclosed", false);
++    // check_range_regex("{notclosed", false);
+ 
+     // reset regular expressions
+     ranges.clear();
diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm
new file mode 100644
index 0000000000..0bfbeb7229
--- /dev/null
+++ b/gnu/packages/pretty-print.scm
@@ -0,0 +1,224 @@
+;;; 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 pretty-print)
+  #: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 ghostscript)
+  #:use-module (gnu packages groff)
+  #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages gv)
+  #:use-module (gnu packages boost)
+  #:use-module (gnu packages bison)
+  #:use-module (gnu packages flex)
+  #:use-module (gnu packages gperf)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages file))
+
+(define-public a2ps
+  (package
+    (name "a2ps")
+    (version "4.14")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://gnu/a2ps/a2ps-"
+                          version ".tar.gz"))
+      (sha256
+       (base32
+        "195k78m1h03m961qn7jr120z815iyb93gwi159p1p9348lyqvbpk"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("psutils" ,psutils)
+       ("groff" ,groff)
+       ("gv" ,gv)
+       ("imagemagick" ,imagemagick)))
+    (native-inputs
+     `(("gperf" ,gperf)
+       ("perl" ,perl)
+       ("file" ,file)))
+    (arguments
+     '(#:phases (alist-replace
+                 'configure
+                 (lambda* (#:key #:allow-other-keys #:rest args)
+                   (let ((configure (assoc-ref %standard-phases 'configure)))
+                     (substitute* "configure"
+                       (("/usr/bin/file") (which "file")))
+                     (apply configure args)))
+                 (alist-cons-before
+                  'build 'patch-scripts
+                  (lambda _
+                    (substitute*
+                        '("afm/make_fonts_map.sh"
+                          "tests/defs"
+                          "tests/backup.tst"
+                          "tests/styles.tst")
+                      (("/bin/rm") (which "rm"))))
+                  (alist-cons-before
+                   'check 'patch-test-files
+                   ;; Alternatively, we could unpatch the shebangs in tstfiles
+                   (lambda* (#:key inputs #:allow-other-keys)
+                     (let ((perl (assoc-ref inputs "perl")))
+                       (substitute* '("tests/ps-ref/includeres.ps"
+                                      "tests/gps-ref/includeres.ps")
+                         (("/usr/local/bin/perl")
+                          (string-append perl "/bin/perl"))))
+                     ;; Some of the reference postscript contain a 'version 3'
+                     ;; string that in inconsistent with the source text in the
+                     ;; tstfiles directory.  Erroneous search-and-replace?
+                     (substitute* '("tests/ps-ref/InsertBlock.ps"
+                                    "tests/gps-ref/InsertBlock.ps"
+                                    "tests/ps-ref/bookie.ps"
+                                    "tests/gps-ref/bookie.ps")
+                       (("version 3") "version 2"))
+                     (substitute* '("tests/ps-ref/psmandup.ps"
+                                    "tests/gps-ref/psmandup.ps")
+                       (("#! */bin/sh") (string-append
+                                         "#!" (which "sh")))))
+                   %standard-phases)))))
+    (home-page "http://www.gnu.org/software/a2ps")
+    (synopsis "Any file to PostScript, including pretty-printing")
+    (description
+     "GNU a2ps converts almost anything to a PostScript file, ready for
+printing. It accomplishes this by being able to delegate files to external
+handlers, such as Groff and Gzip.  It handles as many steps as is necessary to
+produce a pretty-printed file.  It also includes some extra abilities for
+special cases, such as pretty-printing \"--help\" output.")
+    (license gpl3+)))
+
+(define-public trueprint
+  (package
+    (name "trueprint")
+    (version "5.4")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://gnu/trueprint/trueprint-"
+                          version ".tar.gz"))
+      (sha256
+       (base32
+        "13rkc0fga10xyf56yy9dnq95zndnfadkhxflnp24skszj21y8jqh"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("file" ,file)))
+    (arguments
+     ;; Must define DIFF_CMD for tests to pass
+     '(#:configure-flags '("CPPFLAGS=-DDIFF_CMD=\\\"diff\\\"")
+       #:phases (alist-replace
+                 'configure
+                 (lambda* (#:key #:allow-other-keys #:rest args)
+                   (let ((configure (assoc-ref %standard-phases 'configure)))
+                     (substitute* "configure"
+                       (("/usr/bin/file") (which "file")))
+                     (apply configure args)))
+                 %standard-phases)))
+    (home-page "http://www.gnu.org/software/trueprint")
+    (synopsis "Pretty-print C sources and other plain text to PostScript")
+    (description
+     "GNU Trueprint translates C source code files as PostScript files.
+In addition to the basic source code output, it can also perform diff-marking,
+indentation counting, function and file indices and more.")
+    (license gpl2)))
+
+(define-public enscript
+  (package
+    (name "enscript")
+    (version "1.6.6")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://gnu/enscript/enscript-"
+                          version ".tar.gz"))
+      (sha256
+       (base32
+        "1fy0ymvzrrvs889zanxcaxjfcxarm2d3k43c9frmbl1ld7dblmkd"))))
+    (build-system gnu-build-system)
+    (home-page "http://www.gnu.org/software/enscript")
+    (synopsis "Generating PostScript, including pretty-printing")
+    (description
+     "GNU Enscript is a program to convert ASCII text files to PostScript,
+HTML or RTF formats, to be stored in files or sent immediately to a printer.
+It also includes the capability to perform syntax highlighting for several
+different programming languages.")
+    (license gpl3+)))
+
+(define-public source-highlight
+  (package
+    (name "source-highlight")
+    (version "3.1.7")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://gnu/src-highlite/source-highlight-"
+                          version ".tar.gz"))
+      (sha256
+       (base32
+        "1s49ld8cnpzhhwq0r7s0sfm3cg3nhhm0wla27lwraifrrl3y1cp1"))
+      (patches
+       (list (search-patch
+              ;; Patch submitted as Savannah item #41786
+              "source-highlight-regexrange-test.patch")))))
+    (build-system gnu-build-system)
+    ;; The ctags that comes with emacs does not support the --excmd options,
+    ;; so can't be used
+    (inputs
+     `(("boost" ,boost)))
+    (native-inputs
+     `(("bison" ,bison)
+       ("flex" ,flex)
+       ("file" ,file)))
+    (arguments
+     `(#:configure-flags
+       (list (string-append "--with-boost="
+                            (assoc-ref %build-inputs "boost")))
+       #:parallel-tests? #f             ;There appear to be race conditions
+       #:phases (alist-replace
+                 'configure
+                 (lambda* (#:key #:allow-other-keys #:rest args)
+                   (let ((configure (assoc-ref %standard-phases 'configure)))
+                     (substitute* "configure"
+                       (("/usr/bin/file") (which "file")))
+                     (apply configure args)))
+                 (alist-cons-before
+                  'check 'patch-test-files
+                  (lambda* (#:key inputs #:allow-other-keys)
+                    ;; Unpatch shebangs in test input so that source-highlight
+                    ;; is still able to infer input language
+                    (substitute* '("tests/test.sh"
+                                   "tests/test2.sh"
+                                   "tests/test.tcl")
+                      (((string-append "#! *" (which "sh"))) "#!/bin/sh"))
+                    ;; Initial patching unrecoverably removes whitespace, so
+                    ;; remove it also in the comparison output.
+                    (substitute* '("tests/test.sh.html"
+                                   "tests/test2.sh.html"
+                                   "tests/test.tcl.html")
+                      (("#! */bin/sh") "#!/bin/sh")))
+                  %standard-phases))))
+    (home-page "http://www.gnu.org/software/src-highlite")
+    (synopsis "Produce a document with syntax highlighting from a source file")
+    (description
+     "GNU source-highlight reads in a source code file and produces an output
+file in which the keywords are highlighted in different colors to designate
+their syntactic role.  It supports over 150 different languages and it can
+output to 8 different formats, including HTML, LaTeX and ODF.  It can also
+output to ANSI color escape sequences, so that highlighted source code can be
+seen in a terminal.")
+    (license gpl3+)))
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 44e3c14aa2..ad1ac5c8f7 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -20,7 +20,8 @@
 
 (define-module (gnu packages python)
   #:use-module ((guix licenses)
-                #:select (bsd-3 bsd-style psfl x11 gpl2+ lgpl2.1+))
+                #:select (bsd-3 bsd-style psfl x11 x11-style
+                          gpl2 gpl2+ lgpl2.1+))
   #:use-module ((guix licenses) #:select (zlib)
                                 #:renamer (symbol-prefix-proc 'license:))
   #:use-module (gnu packages)
@@ -505,6 +506,55 @@ system is highly configurable via command line options and embedded
 commands.")
     (license lgpl2.1+)))
 
+(define-public python2-element-tree
+  (package
+    (name "python2-element-tree")
+    (version "1.2.6")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://effbot.org/media/downloads/elementtree-"
+                    version "-20050316.tar.gz"))
+              (sha256
+               (base32
+                "016bphqnlg0l4vslahhw4r0aanw95bpypy65r1i1acyb2wj5z7dj"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2                       ; seems to be part of Python 3
+       #:tests? #f))                            ; no 'test' sub-command
+    (synopsis "Toolkit for XML processing in Python")
+    (description
+     "ElementTree is a Python library supporting lightweight XML processing.")
+    (home-page "http://effbot.org/zone/element-index.htm")
+    (license (x11-style "http://docs.python.org/2/license.html"
+                        "Like \"CWI LICENSE AGREEMENT FOR PYTHON \
+0.9.0 THROUGH 1.2\"."))))
+
+(define-public python2-pybugz
+  (package
+    (name "python2-pybugz")
+    (version "0.6.11")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://bits.liquidx.net/projects/pybugz/pybugz-"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "17ni00p08gp5lkxlrrcnvi3x09fmajnlbz4da03qcgl9q21ym4jd"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2                         ; SyntaxError with Python 3
+       #:tests? #f))                              ; no 'test' sub-command
+    (inputs `(("element-tree" ,python2-element-tree)))
+    (synopsis "Python and command-line interface to Bugzilla")
+    (description
+     "PyBugz is a Python library and command-line tool to query the Bugzilla
+bug tracking system.  It is meant as an aid to speed up interaction with the
+bug tracker.")
+    (home-page "http://www.liquidx.net/pybugz/")
+    (license gpl2)))
+
 (define-public scons
   (package
     (name "scons")
diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm
index 1f2bc7932d..22cfc2e257 100644
--- a/gnu/packages/rdf.scm
+++ b/gnu/packages/rdf.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.
 ;;;
@@ -45,6 +45,8 @@
        ("libxml2" ,libxml2)
        ("libxslt" ,libxslt)
        ("zlib" ,zlib)))
+    (arguments
+     `(#:parallel-tests? #f))
     (home-page "http://librdf.org/raptor/")
     (synopsis "RDF syntax library")
     (description "Raptor is a C library providing a set of parsers and
@@ -76,11 +78,12 @@ HTML and JSON.")
               (base32
                "08gb5d8bgy7vc6qd6r1kkmmc5rli67dlglpjqjlahpnvs26r1cwl"))))
     (build-system cmake-build-system)
-    ;; FIXME: Add optional dependencies: Raptor, Redland, odbci, clucene; doxygen
-    (inputs
-     `(("qt" ,qt-4)))
+    ;; FIXME: Add optional dependencies: Redland, odbci, clucene; doxygen
     (native-inputs
      `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("qt" ,qt-4)
+       ("raptor2" ,raptor2)))
     (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/ssh.scm b/gnu/packages/ssh.scm
index 41ceeb6cef..6bf68a916e 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -27,6 +27,7 @@
   #:use-module (gnu packages guile)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages texinfo)
   #:use-module (gnu packages which)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -185,7 +186,7 @@ Additionally, various channel-specific options can be negotiated.")
 (define-public guile-ssh
   (package
     (name "guile-ssh")
-    (version "0.4.0")
+    (version "0.5.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -193,13 +194,13 @@ Additionally, various channel-specific options can be negotiated.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "0vw02r261amkp6238cflww2y9y1v6vfx9ias6hvn8dlx0ghrd5dw"))))
+                "13wk2fj08b8zjylvf78l3d9pf8y3zqcd7h75jf15a46iprk00n7q"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (alist-cons-before
                  'configure 'autoreconf
                  (lambda* (#:key inputs #:allow-other-keys)
-                   (substitute* "src/Makefile.am"
+                   (substitute* "ssh/Makefile.am"
                      (("-lssh_threads" match)
                       (string-append "-L" (assoc-ref inputs "libssh")
                                      "/lib " match)))
@@ -223,10 +224,17 @@ Additionally, various channel-specific options can be negotiated.")
                   %standard-phases))
        #:configure-flags (list (string-append "--with-guilesitedir="
                                               (assoc-ref %outputs "out")
-                                              "/share/guile/site/2.0"))))
+                                              "/share/guile/site/2.0"))
+
+       ;; Two client/server tests use the same port.
+       #:parallel-tests? #f
+
+       ;; XXX: There are test failures reported and being fixed.
+       #:tests? #f))
     (native-inputs `(("autoconf" ,autoconf)
                      ("automake" ,automake)
                      ("libtool" ,libtool "bin")
+                     ("texinfo" ,texinfo)
                      ("pkg-config" ,pkg-config)
                      ("which" ,which)))
     (inputs `(("guile" ,guile-2.0)
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 3d69eee5cd..41df90b8a7 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
 ;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,13 +26,15 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (guix build utils)
-  #:use-module (gnu packages gettext)
   #:use-module (gnu packages apr)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages ed)
+  #:use-module (gnu packages gettext)
+;;   #:use-module (gnu packages gnutls)
   #:use-module (gnu packages nano)
   #:use-module (gnu packages openssl)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages admin)
@@ -216,17 +218,77 @@ It efficiently handles projects of any size
 and offers an easy and intuitive interface.")
     (license gpl2+)))
 
+(define-public neon
+  (package
+    (name "neon")
+    (version "0.30.0")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "http://www.webdav.org/neon/neon-"
+                                 version ".tar.gz"))
+             (sha256
+              (base32
+               "1hlhg5w505jxdvaf7bq17057f6a48dry981g7lp2gwrhbp5wyqi9"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("perl" ,perl)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libxml2" ,libxml2)
+       ("openssl" ,openssl)
+       ("zlib" ,zlib)))
+    (arguments
+     `(;; FIXME: Add tests once reverse address lookup is fixed in glibc, see
+       ;; https://sourceware.org/bugzilla/show_bug.cgi?id=16475
+       #:tests? #f
+       #:configure-flags '("--enable-shared"
+                           ;; requires libgnutils-config, deprecated
+                           ;; in gnutls 2.8.
+                           ; "--with-ssl=gnutls")))
+                           "--with-ssl=openssl")))
+    (home-page "http://www.webdav.org/neon/")
+    (synopsis "HTTP and WebDAV client library")
+    (description "Neon is an HTTP and WebDAV client library, with a
+C interface.  Features:
+High-level wrappers for common HTTP and WebDAV operations (GET, MOVE,
+DELETE, etc.);
+low-level interface to the HTTP request/response engine, allowing the use
+of arbitrary HTTP methods, headers, etc.;
+authentication support including Basic and Digest support, along with
+GSSAPI-based Negotiate on Unix, and SSPI-based Negotiate/NTLM on Win32;
+SSL/TLS support using OpenSSL or GnuTLS, exposing an abstraction layer for
+verifying server certificates, handling client certificates, and examining
+certificate properties, smartcard-based client certificates are also
+supported via a PKCS#11 wrapper interface;
+abstract interface to parsing XML using libxml2 or expat, and wrappers for
+simplifying handling XML HTTP response bodies;
+WebDAV metadata support, wrappers for PROPFIND and PROPPATCH to simplify
+property manipulation.")
+    (license gpl2+))) ; for documentation and tests; source under lgpl2.0+
+
+(define-public neon-0.29.6
+  (package (inherit neon)
+    (name "neon")
+    (version "0.29.6")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "http://www.webdav.org/neon/neon-"
+                                 version ".tar.gz"))
+             (sha256
+              (base32
+               "0hzbjqdx1z8zw0vmbknf159wjsxbcq8ii0wgwkqhxj3dimr0nr4w"))))))
+
 (define-public subversion
   (package
     (name "subversion")
-    (version "1.7.8")
+    (version "1.7.14")
     (source (origin
              (method url-fetch)
              (uri (string-append "http://archive.apache.org/dist/subversion/subversion-"
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "11inl9n1riahfnbk1fax0dysm2swakzhzhpmm2zvga6fikcx90zw"))))
+               "038jbcpwm083abp0rvk0fhnx65kp9mz1qvzs3f83ig8fxcvqzb64"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (alist-cons-after
@@ -250,11 +312,13 @@ and offers an easy and intuitive interface.")
                                   (system* "make" "install")))))))
                  %standard-phases)))
     (native-inputs
-      ;; For the Perl bindings.
-      `(("swig" ,swig)))
+      `(("pkg-config" ,pkg-config)
+        ;; For the Perl bindings.
+        ("swig" ,swig)))
     (inputs
       `(("apr" ,apr)
         ("apr-util" ,apr-util)
+        ("neon" ,neon-0.29.6)
         ("perl" ,perl)
         ("python" ,python-2) ; incompatible with Python 3 (print syntax)
         ("sqlite" ,sqlite)
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index b8b0274f1f..b6a777353f 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -383,7 +383,13 @@ such as /etc files."
                              (system* grub "--no-floppy"
                                       "--boot-directory" "/fs/boot"
                                       "/dev/sda"))
-                            (zero? (system* umount "/fs"))
+                            (begin
+                              (when (file-exists? "/fs/dev/pts")
+                                ;; Unmount devpts so /fs itself can be
+                                ;; unmounted (failing to do that leads to
+                                ;; EBUSY.)
+                                (system* umount "/fs/dev/pts"))
+                              (zero? (system* umount "/fs")))
                             (reboot))))))))
     #:system system
     #:inputs `(("parted" ,parted)