summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/admin.scm38
-rw-r--r--gnu/packages/backup.scm214
-rw-r--r--gnu/packages/base.scm1
-rw-r--r--gnu/packages/bdb.scm10
-rw-r--r--gnu/packages/compression.scm1
-rw-r--r--gnu/packages/ddrescue.scm47
-rw-r--r--gnu/packages/disk.scm (renamed from gnu/packages/parted.scm)58
-rw-r--r--gnu/packages/elf.scm9
-rw-r--r--gnu/packages/fdisk.scm53
-rw-r--r--gnu/packages/gnome.scm5
-rw-r--r--gnu/packages/gnutls.scm4
-rw-r--r--gnu/packages/linux.scm62
-rw-r--r--gnu/packages/maths.scm3
-rw-r--r--gnu/packages/openssl.scm7
-rw-r--r--gnu/packages/package-management.scm1
-rw-r--r--gnu/packages/patches/cssc-gets-undeclared.patch17
-rw-r--r--gnu/packages/patches/cssc-missing-include.patch12
-rw-r--r--gnu/packages/patches/gtkglext-remove-pangox-dependency.patch132
-rw-r--r--gnu/packages/patches/module-init-tools-moduledir.patch168
-rw-r--r--gnu/packages/patches/openssl-CVE-2010-5298.patch27
-rw-r--r--gnu/packages/patches/openssl-extension-checking-fixes.patch40
-rw-r--r--gnu/packages/patches/util-linux-perl.patch15
-rw-r--r--gnu/packages/version-control.scm46
23 files changed, 638 insertions, 332 deletions
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index fded33c60b..a3d600d7be 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -722,3 +722,41 @@ This package provides the 'wpa_supplicant' daemon and the 'wpa_cli' command.")
 
     ;; In practice, this is linked against Readline, which makes it GPLv3+.
     (license bsd-3)))
+
+(define-public wakelan
+  (package
+    (name "wakelan")
+    (version "1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "ftp://ftp.gwdg.de/pub/linux/metalab/system/network/misc/wakelan-"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "0vydqpf44146ir6k87gmqaq6xy66xhc1gkr3nsd7jj3nhy7ypx9x"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases (alist-replace
+                 'configure
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   (let ((out (assoc-ref outputs "out")))
+                     (mkdir-p (string-append out "/bin"))
+                     (mkdir-p (string-append out "/share/man/man1"))
+
+                     ;; It's an old configure script that doesn't understand
+                     ;; the extra options we pass.
+                     (setenv "CONFIG_SHELL" (which "bash"))
+                     (zero?
+                      (system* "./configure"
+                               (string-append "--prefix=" out)
+                               (string-append "--mandir=" out
+                                              "/share/man")))))
+                 %standard-phases)
+       #:tests? #f))
+    (home-page "http://kernel.org")               ; really, no home page
+    (synopsis "Send a wake-on-LAN packet")
+    (description
+     "WakeLan broadcasts a properly formatted UDP packet across the local area
+network, which causes enabled computers to power on.")
+    (license gpl2+)))
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 574bb11816..069baa88da 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -18,13 +18,25 @@
 
 (define-module (gnu packages backup)
   #:use-module (guix packages)
-  #:use-module (guix licenses)
+  #:use-module ((guix licenses)
+                #:renamer (symbol-prefix-proc 'license:))
   #:use-module (guix download)
+  #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
-  #:use-module (gnu packages python)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages dejagnu)
+  #:use-module (gnu packages glib)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages mcrypt)
+  #:use-module (gnu packages nettle)
+  #:use-module (gnu packages pcre)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages rsync)
+  #:use-module (gnu packages ssh)
+  #:use-module (gnu packages xml)
   #:use-module (srfi srfi-1))
 
 (define-public duplicity
@@ -68,4 +80,200 @@ librsync, the incremental archives are space efficient and only record the
 parts of files that have changed since the last backup.  Because duplicity
 uses GnuPG to encrypt and/or sign these archives, they will be safe from
 spying and/or modification by the server.")
-    (license gpl2+)))
+    (license license:gpl2+)))
+
+(define-public hdup
+  (package
+    (name "hdup")
+    (version "2.0.14")
+    (source
+     (origin
+      (method url-fetch)
+      ;; Source tarballs are not versioned
+      (uri "http://archive.miek.nl/projects/hdup2/hdup.tar.bz2")
+      (sha256
+       (base32
+        "02bnczg01cyhajmm4rhbnc0ja0dd9ikv9fwv28asxh1rlx9yr0b7"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glib" ,glib)
+       ("tar" ,tar)
+       ("lzop" ,lzop)
+       ("mcrypt" ,mcrypt)
+       ("openssh" ,openssh)
+       ("gnupg" ,gnupg-1)))
+    (arguments
+     `(#:configure-flags
+       `(,(string-append "--sbindir=" (assoc-ref %outputs "out") "/bin"))
+       #:tests? #f))
+    (home-page "http://archive.miek.nl/projects/hdup/index.html")
+    (synopsis "Simple incremental backup tool")
+    (description
+     "Hdup2 is a backup utilty, its aim is to make backup really simple.  The
+backup scheduling is done by means of a cron job.  It supports an
+include/exclude mechanism, remote backups, encrypted backups and split
+backups (called chunks) to allow easy burning to CD/DVD.")
+    (license license:gpl2)))
+
+(define-public libarchive
+  (package
+    (name "libarchive")
+    (version "3.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://libarchive.org/downloads/libarchive-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "0pixqnrcf35dnqgv0lp7qlcw7k13620qkhgxr288v7p4iz6ym1zb"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("zlib" ,zlib)
+       ("nettle" ,nettle)
+       ("lzo" ,lzo)
+       ("bzip2" ,bzip2)
+       ("libxml2" ,libxml2)
+       ("xz" ,xz)))
+    (arguments
+     `(#:phases
+       (alist-cons-before
+        'build 'patch-pwd
+        (lambda _
+          (substitute* "Makefile"
+            (("/bin/pwd") (which "pwd"))))
+        (alist-replace
+         'check
+         (lambda _
+           ;; XXX: The test_owner_parse, test_read_disk, and
+           ;; test_write_disk_lookup tests expect user 'root' to exist, but
+           ;; the chroot's /etc/passwd doesn't have it.  Turn off those tests.
+           ;;
+           ;; The tests allow one to disable tests matching a globbing pattern.
+           (and (zero? (system* "make"
+                                "libarchive_test" "bsdcpio_test" "bsdtar_test"))
+                ;; XXX: This glob disables too much.
+                (zero? (system* "./libarchive_test" "^test_*_disk*"))
+                (zero? (system* "./bsdcpio_test" "^test_owner_parse"))
+                (zero? (system* "./bsdtar_test"))))
+         %standard-phases))))
+    (home-page "http://libarchive.org/")
+    (synopsis "Multi-format archive and compression library")
+    (description
+     "Libarchive provides a flexible interface for reading and writing
+archives in various formats such as tar and cpio.  Libarchive also supports
+reading and writing archives compressed using various compression filters such
+as gzip and bzip2.  The library is inherently stream-oriented; readers
+serially iterate through the archive, writers serially add things to the
+archive. In particular, note that there is currently no built-in support for
+random access nor for in-place modification.")
+    (license license:bsd-2)))
+
+(define-public rdup
+  (package
+    (name "rdup")
+    (version "1.1.14")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://archive.miek.nl/projects/rdup/rdup-"
+                           version ".tar.bz2"))
+       (sha256
+        (base32
+         "0aklwd9v7ix0m4ayl762sil685f42cwljzx3jz5skrnjaq32npmj"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("dejagnu" ,dejagnu)))
+    (inputs
+     `(("glib" ,glib)
+       ("pcre" ,pcre)
+       ("libarchive" ,libarchive)
+       ("nettle" ,nettle)))
+    (arguments
+     `(#:parallel-build? #f             ;race conditions
+       #:phases (alist-cons-before
+                 'build 'remove-Werror
+                 ;; rdup uses a deprecated function from libarchive
+                 (lambda _
+                   (substitute* "GNUmakefile"
+                     (("^(CFLAGS=.*)-Werror" _ front) front)))
+                 %standard-phases)))
+    (home-page "http://archive.miek.nl/projects/rdup/index.html")
+    (synopsis "Provide a list of files to backup")
+    (description
+     "Rdup is a utility inspired by rsync and the plan9 way of doing backups.
+Rdup itself does not backup anything, it only print a list of absolute
+filenames to standard output.  Auxiliary scripts are needed that act on this
+list and implement the backup strategy.")
+    (license license:gpl3+)))
+
+(define-public btar
+  (package
+    (name "btar")
+    (version "1.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://vicerveza.homeunix.net/~viric/soft/btar/"
+                           "btar-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0miklk4bqblpyzh1bni4x6lqn88fa8fjn15x1k1n8bxkx60nlymd"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("librsync" ,librsync)))
+    (arguments
+     `(#:make-flags `(,(string-append "PREFIX=" (assoc-ref %outputs "out"))
+                      "CC=gcc")
+       #:tests? #f                      ;test input not distributed
+       #:phases
+       (alist-delete
+        'configure                      ;no configure phase
+        %standard-phases)))
+    (home-page "http://viric.name/cgi-bin/btar/doc/trunk/doc/home.wiki")
+    (synopsis "Tar-compatible archiver")
+    (description
+     "Btar is a tar-compatible archiver which allows arbitrary compression and
+ciphering, redundancy, differential backup, indexed extraction, multicore
+compression, input and output serialisation, and tolerance to partial archive
+errors.")
+    (license license:gpl3+)))
+
+(define-public rdiff-backup
+  (package
+    (name "rdiff-backup")
+    (version "1.2.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://savannah/rdiff-backup/rdiff-backup-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "1nwmmh816f96h0ff1jxk95ad38ilbhbdl5dgibx1d4cl81dsi48d"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python2-setuptools" ,python2-setuptools)))
+    (inputs
+     `(("python" ,python-2)
+       ("librsync" ,librsync)))
+    (arguments
+     `(#:python ,python-2
+       #:tests? #f))
+    (home-page "http://www.nongnu.org/rdiff-backup/")
+    (synopsis "Local/remote mirroring+incremental backup")
+    (description
+     "Rdiff-backup backs up one directory to another, possibly over a network.
+The target directory ends up a copy of the source directory, but extra reverse
+diffs are stored in a special subdirectory of that target directory, so you
+can still recover files lost some time ago.  The idea is to combine the best
+features of a mirror and an incremental backup.  Rdiff-backup also preserves
+subdirectories, hard links, dev files, permissions, uid/gid ownership,
+modification times, extended attributes, acls, and resource forks.  Also,
+rdiff-backup can operate in a bandwidth efficient manner over a pipe, like
+rsync.  Thus you can use rdiff-backup and ssh to securely back a hard drive up
+to a remote location, and only the differences will be transmitted.  Finally,
+rdiff-backup is easy to use and settings have sensical defaults.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 3f83ed8d49..ce95559ba5 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -976,6 +976,7 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
   ;; The final GCC.
   (package (inherit gcc-boot0)
     (name "gcc")
+    (location (source-properties->location (current-source-location)))
     (arguments
      `(#:guile ,%bootstrap-guile
        #:implicit-inputs? #f
diff --git a/gnu/packages/bdb.scm b/gnu/packages/bdb.scm
index 75a2b72b44..e82a683332 100644
--- a/gnu/packages/bdb.scm
+++ b/gnu/packages/bdb.scm
@@ -34,13 +34,21 @@
             (sha256 (base32
                      "1f2g2612lf8djbwbwhxsvmffmf9d7693kh2l20195pqp0f9jmnfx"))))
    (build-system gnu-build-system)
+   (outputs '("out"                             ; programs, libraries, headers
+              "doc"))                           ; 94 MiB of HTML docs
    (arguments
     '(#:tests? #f                            ; no check target available
       #:phases
       (alist-replace
        'configure
        (lambda* (#:key outputs #:allow-other-keys)
-         (let ((out (assoc-ref outputs "out")))
+         (let ((out (assoc-ref outputs "out"))
+               (doc (assoc-ref outputs "doc")))
+           ;; '--docdir' is not honored, so we need to patch.
+           (substitute* "dist/Makefile.in"
+             (("docdir[[:blank:]]*=.*")
+              (string-append "docdir = " doc "/share/doc/bdb")))
+
            (zero?
             (system* "./dist/configure"
                      (string-append "--prefix=" out)
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index c8328076cf..6887ba6167 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -315,3 +315,4 @@ archives that can be readily emailed.  A shell archive is a file that can be
 processed by a Bourne-type shell to unpack the original collection of files. 
 This package is mostly for compatibility and historical interest.")
     (license license:gpl3+)))
+
diff --git a/gnu/packages/ddrescue.scm b/gnu/packages/ddrescue.scm
deleted file mode 100644
index dd5bf0e552..0000000000
--- a/gnu/packages/ddrescue.scm
+++ /dev/null
@@ -1,47 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 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 ddrescue)
-  #:use-module (guix licenses)
-  #:use-module (guix packages)
-  #:use-module (guix download)
-  #:use-module (guix build-system gnu)
-  #:use-module ((gnu packages compression) #:select (lzip)))
-
-(define-public ddrescue
-  (package
-    (name "ddrescue")
-    (version "1.17")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnu/ddrescue/ddrescue-"
-                          version ".tar.lz"))
-      (sha256
-       (base32
-        "0bvmsbzli2j4czwkabzs978n1y6vx31axh02kpgcf7033cc6rydy"))))
-    (build-system gnu-build-system)
-    (home-page "http://www.gnu.org/software/ddrescue/ddrescue.html")
-    (synopsis "Data recovery utility")
-    (native-inputs `(("lzip" ,lzip)))
-    (description
-     "GNU ddrescue is a fully automated data recovery tool.  It copies data
-from one file to another, working to rescue data in case of read errors.  The
-program also includes a tool for manipulating its log files, which are used
-to recover data more efficiently by only reading the necessary blocks.")
-    (license gpl3+)))
diff --git a/gnu/packages/parted.scm b/gnu/packages/disk.scm
index 5d5d38a515..a5404b2749 100644
--- a/gnu/packages/parted.scm
+++ b/gnu/packages/disk.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
+;;; Copyright © 2012, 2013 Nikita Karetnikov <nikita@karetnikov.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -16,7 +16,7 @@
 ;;; You should have received a copy of the GNU General Public License
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
-(define-module (gnu packages parted)
+(define-module (gnu packages disk)
   #:use-module (guix licenses)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -24,7 +24,10 @@
   #:use-module (gnu packages check)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages linux)
-  #:use-module (gnu packages readline))
+  #:use-module (gnu packages readline)
+  #:use-module (gnu packages guile)
+  #:use-module ((gnu packages compression)
+                #:select (lzip)))
 
 (define-public parted
   (package
@@ -67,3 +70,52 @@
      "GNU Parted is a package for creating and manipulating disk partition
 tables.  It includes a library and command-line utility.")
     (license gpl3+)))
+
+(define-public fdisk
+  (package
+    (name "fdisk")
+    (version "2.0.0a")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://gnu/fdisk/gnufdisk-"
+                          version ".tar.gz"))
+      (sha256
+       (base32
+        "04nd7civ561x2lwcmxhsqbprml3178jfc58fy1v7hzqg5k4nbhy3"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("gettext" ,gnu-gettext)
+       ("guile" ,guile-1.8)
+       ("util-linux" ,util-linux)
+       ("parted" ,parted)))
+    (home-page "https://www.gnu.org/software/fdisk/")
+    (synopsis "Low-level disk partitioning and formatting")
+    (description
+     "GNU fdisk provides a GNU version of the common disk partitioning tool
+fdisk.  fdisk is used for the creation and manipulation of disk partition
+tables, and it understands a variety of different formats.")
+    (license gpl3+)))
+
+(define-public ddrescue
+  (package
+    (name "ddrescue")
+    (version "1.17")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://gnu/ddrescue/ddrescue-"
+                          version ".tar.lz"))
+      (sha256
+       (base32
+        "0bvmsbzli2j4czwkabzs978n1y6vx31axh02kpgcf7033cc6rydy"))))
+    (build-system gnu-build-system)
+    (home-page "http://www.gnu.org/software/ddrescue/ddrescue.html")
+    (synopsis "Data recovery utility")
+    (native-inputs `(("lzip" ,lzip)))
+    (description
+     "GNU ddrescue is a fully automated data recovery tool.  It copies data
+from one file to another, working to rescue data in case of read errors.  The
+program also includes a tool for manipulating its log files, which are used
+to recover data more efficiently by only reading the necessary blocks.")
+    (license gpl3+)))
diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm
index 45714be70e..a9f2ab5351 100644
--- a/gnu/packages/elf.scm
+++ b/gnu/packages/elf.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -47,8 +47,11 @@
     (native-inputs `(("m4" ,m4)))
     (inputs `(("zlib" ,zlib)))
     (home-page "https://fedorahosted.org/elfutils/")
-    (synopsis #f)
-    (description #f)
+    (synopsis "Linker and ELF manipulation tools")
+    (description
+     "This package provides command-line tools to manipulate binaries in the
+Executable and Linkable Format (ELF).  This includes ld, ar, objdump,
+addr2line, and more.")
 
     ;; Libraries are dual-licensed LGPLv3.0+ | GPLv2, and programs are GPLv3+.
     (license lgpl3+)))
diff --git a/gnu/packages/fdisk.scm b/gnu/packages/fdisk.scm
deleted file mode 100644
index 8272c45aab..0000000000
--- a/gnu/packages/fdisk.scm
+++ /dev/null
@@ -1,53 +0,0 @@
-;;; 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 fdisk)
-  #:use-module ((guix licenses) #:select (gpl3+))
-  #:use-module (gnu packages gettext)
-  #:use-module (gnu packages guile)
-  #:use-module (gnu packages linux)
-  #:use-module (gnu packages parted)
-  #:use-module (guix packages)
-  #:use-module (guix download)
-  #:use-module (guix build-system gnu))
-
-(define-public fdisk
-  (package
-    (name "fdisk")
-    (version "2.0.0a")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnu/fdisk/gnufdisk-"
-                          version ".tar.gz"))
-      (sha256
-       (base32
-        "04nd7civ561x2lwcmxhsqbprml3178jfc58fy1v7hzqg5k4nbhy3"))))
-    (build-system gnu-build-system)
-    (inputs
-     `(("gettext" ,gnu-gettext)
-       ("guile" ,guile-1.8)
-       ("util-linux" ,util-linux)
-       ("parted" ,parted)))
-    (home-page "https://www.gnu.org/software/fdisk/")
-    (synopsis "Low-level disk partitioning and formatting")
-    (description
-     "GNU fdisk provides a GNU version of the common disk partitioning tool
-fdisk.  fdisk is used for the creation and manipulation of disk partition
-tables, and it understands a variety of different formats.")
-    (license gpl3+)))
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 232afc6e44..b10f2a6646 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -460,7 +460,6 @@ the API")
               (sha256
                (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
               (patches (list
-                        (search-patch "gtkglext-remove-pangox-dependency.patch")
                         (search-patch "gtkglext-disable-disable-deprecated.patch")))))
     (build-system gnu-build-system)
     (inputs `(("gtk+" ,gtk+-2)
@@ -468,6 +467,7 @@ the API")
               ("libx11" ,libx11)
               ("libxt" ,libxt)))
     (native-inputs `(("pkg-config" ,pkg-config)))
+    (propagated-inputs `(("pangox-compat" ,pangox-compat)))
     (home-page "https://projects.gnome.org/gtkglext")
     (synopsis "OpenGL extension to GTK+.")
     (description "GtkGLExt is an OpenGL extension to GTK+. It provides
@@ -837,7 +837,8 @@ allows applications to access local and remote files with a single consistent AP
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "mirror://gnome/sources/" name "/" (string-take version 3)  "/" name "-"
+                    "mirror://gnome/sources/" name "/"
+                    (string-take version 4)  "/" name "-"
                     version
                     ".tar.bz2"))
               (sha256
diff --git a/gnu/packages/gnutls.scm b/gnu/packages/gnutls.scm
index 0391f54126..e136ed8b26 100644
--- a/gnu/packages/gnutls.scm
+++ b/gnu/packages/gnutls.scm
@@ -63,7 +63,7 @@ specifications.")
 (define-public gnutls
   (package
     (name "gnutls")
-    (version "3.2.12")
+    (version "3.2.15")
     (source (origin
              (method url-fetch)
              (uri
@@ -75,7 +75,7 @@ specifications.")
                              "/gnutls-" version ".tar.xz"))
              (sha256
               (base32
-               "0195nliarszq5mginli6d2f5z7ljnd7mwa46iy9z8pkcgy56khbl"))))
+               "1fbpr9r1r2y803s3avwjpy1higqsz85dyb302kvmh0i29frwgg9h"))))
     (build-system gnu-build-system)
     (arguments
      ;; Work around build issue reported at
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 130a0f2a9a..518b0e41b9 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -34,6 +34,7 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages glib)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages attr)
   #:use-module (gnu packages xml)
@@ -132,7 +133,9 @@
                    version ".tar.bz2"))
              (sha256
               (base32
-               "0jxnz9ahfic79rp93l5wxcbgh4pkv85mwnjlbv1gz3jawv5cvwp1"))))
+               "0jxnz9ahfic79rp93l5wxcbgh4pkv85mwnjlbv1gz3jawv5cvwp1"))
+             (patches
+              (list (search-patch "module-init-tools-moduledir.patch")))))
     (build-system gnu-build-system)
     (arguments
      ;; FIXME: The upstream tarball lacks man pages, and building them would
@@ -181,7 +184,8 @@
                                                 "CONFIG_VIRTIO_MMIO=m\n"
                                                 "CONFIG_FUSE_FS=m\n"
                                                 "CONFIG_CIFS=m\n"
-                                                "CONFIG_9P_FS=m\n")
+                                                "CONFIG_9P_FS=m\n"
+                                                "CONFIG_E1000E=m\n")
                                  port)
                         (close-port port))
 
@@ -316,15 +320,15 @@ providing the system administrator with some help in common tasks.")
   (package
     (name "util-linux")
     (version "2.21")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (string-append "mirror://kernel.org/linux/utils/"
-                          name "/v" version "/"
-                          name "-" version ".2" ".tar.xz"))
-      (sha256
-       (base32
-        "1rpgghf7n0zx0cdy8hibr41wvkm2qp1yvd8ab1rxr193l1jmgcir"))))
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kernel.org/linux/utils/"
+                                  name "/v" version "/"
+                                  name "-" version ".2" ".tar.xz"))
+              (sha256
+               (base32
+                "1rpgghf7n0zx0cdy8hibr41wvkm2qp1yvd8ab1rxr193l1jmgcir"))
+              (patches (list (search-patch "util-linux-perl.patch")))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--disable-use-tty-group"
@@ -961,7 +965,15 @@ processes currently causing I/O.")
                                     "/bin/" maybe-u "mount")))
                   (substitute* '("util/mount.fuse.c")
                     (("/bin/sh")
-                     (which "sh"))))
+                     (which "sh")))
+
+                  ;; This hack leads libfuse to search for 'fusermount' in
+                  ;; $PATH, where it may find a setuid-root binary, instead of
+                  ;; trying solely $out/sbin/fusermount and failing because
+                  ;; it's not setuid.
+                  (substitute* "lib/Makefile"
+                    (("-DFUSERMOUNT_DIR=[[:graph:]]+")
+                     "-DFUSERMOUNT_DIR=\\\"/var/empty\\\"")))
                 %standard-phases)))
     (home-page "http://fuse.sourceforge.net/")
     (synopsis "Support file systems implemented in user space")
@@ -1033,6 +1045,32 @@ UnionFS-FUSE additionally supports copy-on-write.")
        #:configure-flags '("-DCMAKE_EXE_LINKER_FLAGS=-static")))
     (inputs `(("fuse" ,fuse-static)))))
 
+(define-public sshfs-fuse
+  (package
+    (name "sshfs-fuse")
+    (version "2.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/fuse/sshfs-fuse-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0gp6qr33l2p0964j0kds0dfmvyyf5lpgsn11daf0n5fhwm9185z9"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("fuse" ,fuse)
+       ("glib" ,glib)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "http://fuse.sourceforge.net/sshfs.html")
+    (synopsis "Mount remote file systems over SSH")
+    (description
+     "This is a file system client based on the SSH File Transfer Protocol.
+Since most SSH servers already support this protocol it is very easy to set
+up: on the server side there's nothing to do; on the client side mounting the
+file system is as easy as logging into the server with an SSH client.")
+    (license gpl2+)))
+
 (define-public numactl
   (package
     (name "numactl")
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 8ef4f44f5a..d1860dfa97 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -253,7 +253,8 @@ plotting engine by third-party applications like Octave.")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-"
+      (uri (string-append "http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-"
+                          version "/src/hdf5-"
                           version ".tar.bz2"))
       (sha256
        (base32 "0f9n0v3p3lwc7564791a39c6cn1d3dbrn7d1j3ikqsi27a8hy23d"))))
diff --git a/gnu/packages/openssl.scm b/gnu/packages/openssl.scm
index eb03bb99c3..51caa00e68 100644
--- a/gnu/packages/openssl.scm
+++ b/gnu/packages/openssl.scm
@@ -28,17 +28,14 @@
 (define-public openssl
   (package
    (name "openssl")
-   (version "1.0.1g")
+   (version "1.0.1h")
    (source (origin
             (method url-fetch)
             (uri (string-append "ftp://ftp.openssl.org/source/openssl-" version
                                 ".tar.gz"))
             (sha256
              (base32
-              "0a70qdqccg16nw4bbawa6pjvzn05vfp5wkwg6jl0grch7f683jsk"))
-            (patches
-             (list (search-patch "openssl-CVE-2010-5298.patch")
-                   (search-patch "openssl-extension-checking-fixes.patch")))))
+              "14yhsgag5as7nhxnw7f0vklwjwa3pmn1i15nmp3f4qxa6sc8l74x"))))
    (build-system gnu-build-system)
    (native-inputs `(("perl" ,perl)))
    (arguments
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index e74491a827..672ae9ad6b 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -43,6 +43,7 @@
     (arguments
      `(#:configure-flags (list
                           "--localstatedir=/var"
+                          "--sysconfdir=/etc"
                           (string-append "--with-libgcrypt-prefix="
                                          (assoc-ref %build-inputs
                                                     "libgcrypt")))
diff --git a/gnu/packages/patches/cssc-gets-undeclared.patch b/gnu/packages/patches/cssc-gets-undeclared.patch
new file mode 100644
index 0000000000..68c607cf58
--- /dev/null
+++ b/gnu/packages/patches/cssc-gets-undeclared.patch
@@ -0,0 +1,17 @@
+CSSC uses a gets in a couple of places.  For security reasons, modern gnulib
+does not allow this.  This patch allows it again.
+--- CSSC-1.3.0/gl/lib/stdio.in.h	2010-05-15 00:15:35.000000000 +0200
++++ CSSC-1.3.0/gl/lib/stdio.in.h	2014-02-03 21:27:10.000000000 +0100
+@@ -135,12 +135,6 @@
+                  "use gnulib module fflush for portable POSIX compliance");
+ #endif
+ 
+-/* It is very rare that the developer ever has full control of stdin,
+-   so any use of gets warrants an unconditional warning.  Assume it is
+-   always declared, since it is required by C89.  */
+-#undef gets
+-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+-
+ #if @GNULIB_FOPEN@
+ # if @REPLACE_FOPEN@
+ #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
diff --git a/gnu/packages/patches/cssc-missing-include.patch b/gnu/packages/patches/cssc-missing-include.patch
new file mode 100644
index 0000000000..3cef9c15f1
--- /dev/null
+++ b/gnu/packages/patches/cssc-missing-include.patch
@@ -0,0 +1,12 @@
+Added a missing include file (necessary for gid_t and others).
+So far as I am aware, this has not been added upstream yet.
+--- CSSC-1.3.0/src/file.h	2010-05-16 19:31:33.000000000 +0200
++++ CSSC-1.3.0/src/file.h	2014-02-03 21:48:30.000000000 +0100
+@@ -30,6 +30,7 @@
+ #ifndef CSSC__FILE_H__
+ #define CSSC__FILE_H__
+ 
++#include <sys/types.h>
+ #include "filelock.h"
+ 
+ enum create_mode {
diff --git a/gnu/packages/patches/gtkglext-remove-pangox-dependency.patch b/gnu/packages/patches/gtkglext-remove-pangox-dependency.patch
deleted file mode 100644
index 4f03785322..0000000000
--- a/gnu/packages/patches/gtkglext-remove-pangox-dependency.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-This patch removes the dependency on pangox which has been deprecated.  It
-achieves the same result as the upstream patch at 
-https://git.gnome.org/browse/gtkglext/commit/?id=df7a7b35b80b395d7ba411c7f727970a46fb0588
-Like the upstream patch, it removes the functions gdk_gl_font_use_pango_font,
-and gdk_gl_font_use_pango_font_for_display from the API.
-
-diff -r -U 3 a/configure b/configure
---- a/configure	2006-02-05 04:17:47.000000000 +0100
-+++ b/configure	2013-12-26 12:55:21.000000000 +0100
-@@ -19880,14 +19880,12 @@
- gtk+-2.0 >= 2.0.0 \\
- gdk-2.0 >= 2.0.0 \\
- pango >= 1.0.0 \\
--pangox >= 1.0.0 \\
- gmodule-2.0 >= 2.0.0 \\
- \"") >&5
-   ($PKG_CONFIG --exists --print-errors "\
- gtk+-2.0 >= 2.0.0 \
- gdk-2.0 >= 2.0.0 \
- pango >= 1.0.0 \
--pangox >= 1.0.0 \
- gmodule-2.0 >= 2.0.0 \
- ") 2>&5
-   ac_status=$?
-@@ -19897,7 +19895,6 @@
- gtk+-2.0 >= 2.0.0 \
- gdk-2.0 >= 2.0.0 \
- pango >= 1.0.0 \
--pangox >= 1.0.0 \
- gmodule-2.0 >= 2.0.0 \
- " 2>/dev/null`
- else
-@@ -19916,14 +19913,12 @@
- gtk+-2.0 >= 2.0.0 \\
- gdk-2.0 >= 2.0.0 \\
- pango >= 1.0.0 \\
--pangox >= 1.0.0 \\
- gmodule-2.0 >= 2.0.0 \\
- \"") >&5
-   ($PKG_CONFIG --exists --print-errors "\
- gtk+-2.0 >= 2.0.0 \
- gdk-2.0 >= 2.0.0 \
- pango >= 1.0.0 \
--pangox >= 1.0.0 \
- gmodule-2.0 >= 2.0.0 \
- ") 2>&5
-   ac_status=$?
-@@ -19933,7 +19928,6 @@
- gtk+-2.0 >= 2.0.0 \
- gdk-2.0 >= 2.0.0 \
- pango >= 1.0.0 \
--pangox >= 1.0.0 \
- gmodule-2.0 >= 2.0.0 \
- " 2>/dev/null`
- else
-@@ -19958,7 +19952,6 @@
- gtk+-2.0 >= 2.0.0 \
- gdk-2.0 >= 2.0.0 \
- pango >= 1.0.0 \
--pangox >= 1.0.0 \
- gmodule-2.0 >= 2.0.0 \
- "`
-         else
-@@ -19966,7 +19959,6 @@
- gtk+-2.0 >= 2.0.0 \
- gdk-2.0 >= 2.0.0 \
- pango >= 1.0.0 \
--pangox >= 1.0.0 \
- gmodule-2.0 >= 2.0.0 \
- "`
-         fi
-@@ -19977,7 +19969,6 @@
- gtk+-2.0 >= 2.0.0 \
- gdk-2.0 >= 2.0.0 \
- pango >= 1.0.0 \
--pangox >= 1.0.0 \
- gmodule-2.0 >= 2.0.0 \
- ) were not met:
- 
-@@ -19994,7 +19985,6 @@
- gtk+-2.0 >= 2.0.0 \
- gdk-2.0 >= 2.0.0 \
- pango >= 1.0.0 \
--pangox >= 1.0.0 \
- gmodule-2.0 >= 2.0.0 \
- ) were not met:
- 
-@@ -25420,7 +25410,7 @@
- # CFLAGS and LIBS
- ##################################################
- 
--GDKGLEXT_PACKAGES="gdk-2.0 pango pangox gmodule-2.0"
-+GDKGLEXT_PACKAGES="gdk-2.0 pango gmodule-2.0"
- GDKGLEXT_EXTRA_CFLAGS="$GL_CFLAGS $GDKGLEXT_WIN_CFLAGS"
- GDKGLEXT_EXTRA_LIBS="$GL_LIBS $GDKGLEXT_WIN_LIBS"
- GDKGLEXT_DEP_CFLAGS="$GDKGLEXT_EXTRA_CFLAGS `$PKG_CONFIG --cflags $GDKGLEXT_PACKAGES`"
-diff -r -U 3 a/gdk/x11/Makefile.in b/gdk/x11/Makefile.in
---- a/gdk/x11/Makefile.in	2006-02-05 04:17:42.000000000 +0100
-+++ b/gdk/x11/Makefile.in	2013-12-26 13:12:04.000000000 +0100
-@@ -257,7 +257,6 @@
- 	gdkgldrawable-x11.c	\
- 	gdkglpixmap-x11.c	\
- 	gdkglwindow-x11.c	\
--	gdkglfont-x11.c		\
- 	gdkglglxext.c
- 
- 
-@@ -288,7 +287,7 @@
- am__objects_1 =
- am__objects_2 = gdkglquery-x11.lo gdkglconfig-x11.lo gdkgloverlay-x11.lo \
- 	gdkglcontext-x11.lo gdkgldrawable-x11.lo gdkglpixmap-x11.lo \
--	gdkglwindow-x11.lo gdkglfont-x11.lo gdkglglxext.lo
-+	gdkglwindow-x11.lo gdkglglxext.lo
- am__objects_3 = $(am__objects_1) $(am__objects_2)
- am_libgdkglext_x11_la_OBJECTS = $(am__objects_3)
- libgdkglext_x11_la_OBJECTS = $(am_libgdkglext_x11_la_OBJECTS)
-@@ -299,7 +298,6 @@
- @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/gdkglconfig-x11.Plo \
- @AMDEP_TRUE@	./$(DEPDIR)/gdkglcontext-x11.Plo \
- @AMDEP_TRUE@	./$(DEPDIR)/gdkgldrawable-x11.Plo \
--@AMDEP_TRUE@	./$(DEPDIR)/gdkglfont-x11.Plo \
- @AMDEP_TRUE@	./$(DEPDIR)/gdkglglxext.Plo \
- @AMDEP_TRUE@	./$(DEPDIR)/gdkgloverlay-x11.Plo \
- @AMDEP_TRUE@	./$(DEPDIR)/gdkglpixmap-x11.Plo \
-@@ -349,7 +347,6 @@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gdkglconfig-x11.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gdkglcontext-x11.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gdkgldrawable-x11.Plo@am__quote@
--@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gdkglfont-x11.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gdkglglxext.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gdkgloverlay-x11.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gdkglpixmap-x11.Plo@am__quote@
diff --git a/gnu/packages/patches/module-init-tools-moduledir.patch b/gnu/packages/patches/module-init-tools-moduledir.patch
new file mode 100644
index 0000000000..68d7988f53
--- /dev/null
+++ b/gnu/packages/patches/module-init-tools-moduledir.patch
@@ -0,0 +1,168 @@
+This patch changes 'modprobe' & co. so they honor the 'LINUX_MODULE_DIRECTORY'
+environment variable, rather than looking for modules exclusively in
+/lib/modules.
+
+Patch by David Guibert, from Nixpkgs; adjusted to use 'LINUX_MODULE_DIRECTORY'
+rather than 'MODULE_DIR' as the variable name.
+
+commit cf2c95edb7918bc658f6cae93793c1949fc9cb6e
+Author: David Guibert <david.guibert@gmail.com>
+Date:   Fri Aug 5 14:20:12 2011 +0200
+
+    introduce module-dir
+
+diff --git a/depmod.c b/depmod.c
+index a1d2f8c..9362a35 100644
+--- a/depmod.c
++++ b/depmod.c
+@@ -48,9 +48,6 @@
+ 
+ #include "testing.h"
+ 
+-#ifndef MODULE_DIR
+-#define MODULE_DIR "/lib/modules/"
+-#endif
+ 
+ #ifndef MODULE_BUILTIN_KEY
+ #define MODULE_BUILTIN_KEY "built-in"
+@@ -1516,6 +1513,7 @@ static int parse_config_file(const char *filename,
+ 	char *line;
+ 	unsigned int linenum = 0;
+ 	FILE *cfile;
++ 	char *module_dir;
+ 
+ 	cfile = fopen(filename, "r");
+ 	if (!cfile) {
+@@ -1525,6 +1523,10 @@ static int parse_config_file(const char *filename,
+ 		return 0;
+ 	}
+ 
++        if((module_dir = getenv("LINUX_MODULE_DIRECTORY")) == NULL) {
++                module_dir = "/lib/modules/";
++        }
++
+ 	while ((line = getline_wrapped(cfile, &linenum)) != NULL) {
+ 		char *ptr = line;
+ 		char *cmd, *modname;
+@@ -1550,7 +1552,7 @@ static int parse_config_file(const char *filename,
+ 					continue;
+ 				}
+ 				nofail_asprintf(&dirname, "%s%s%s/%s", basedir,
+-					MODULE_DIR, kernelversion, search_path);
++					module_dir, kernelversion, search_path);
+ 				len = strlen(dirname);
+ 				*search = add_search(dirname, len, *search);
+ 				free(dirname);
+@@ -1565,7 +1567,7 @@ static int parse_config_file(const char *filename,
+ 				continue;
+ 
+ 			nofail_asprintf(&pathname, "%s%s%s/%s/%s.ko", basedir,
+-				MODULE_DIR, kernelversion, subdir, modname);
++				module_dir, kernelversion, subdir, modname);
+ 
+ 			*overrides = add_override(pathname, *overrides);
+ 			free(pathname);
+@@ -1737,6 +1739,7 @@ int main(int argc, char *argv[])
+ 	char *basedir = "", *dirname, *version;
+ 	char *system_map = NULL, *module_symvers = NULL;
+ 	int i;
++ 	char *module_dir;
+ 	const char *config = NULL;
+ 
+ 	if (native_endianness() == 0)
+@@ -1832,7 +1835,11 @@ int main(int argc, char *argv[])
+ 	if (optind == argc)
+ 		all = 1;
+ 
+-	nofail_asprintf(&dirname, "%s%s%s", basedir, MODULE_DIR, version);
++        if((module_dir = getenv("LINUX_MODULE_DIRECTORY")) == NULL) {
++                module_dir = "/lib/modules/";
++        }
++
++	nofail_asprintf(&dirname, "%s%s%s", basedir, module_dir, version);
+ 
+ 	if (maybe_all) {
+ 		if (!doing_stdout && !depfile_out_of_date(dirname))
+@@ -1850,7 +1857,7 @@ int main(int argc, char *argv[])
+ 		size_t len;
+ 
+ 		nofail_asprintf(&dirname, "%s%s%s/updates", basedir,
+-				MODULE_DIR, version);
++				module_dir, version);
+ 		len = strlen(dirname);
+ 		search = add_search(dirname, len, search);
+ 	}
+diff --git a/modinfo.c b/modinfo.c
+index 1dd8469..67b1041 100644
+--- a/modinfo.c
++++ b/modinfo.c
+@@ -19,9 +19,6 @@
+ #include "zlibsupport.h"
+ #include "testing.h"
+ 
+-#ifndef MODULE_DIR
+-#define MODULE_DIR "/lib/modules"
+-#endif
+ 
+ struct param
+ {
+@@ -193,6 +190,11 @@ static struct elf_file *grab_module(const char *name,
+ 	struct utsname buf;
+ 	char *depname, *p, *moddir;
+ 	struct elf_file *module;
++ 	char *module_dir;
++
++        if((module_dir = getenv("LINUX_MODULE_DIRECTORY")) == NULL) {
++                module_dir = "/lib/modules/";
++        }
+ 
+ 	if (strchr(name, '.') || strchr(name, '/')) {
+ 		module = grab_elf_file(name);
+@@ -207,9 +209,9 @@ static struct elf_file *grab_module(const char *name,
+ 		kernel = buf.release;
+ 	}
+ 	if (strlen(basedir))
+-		nofail_asprintf(&moddir, "%s/%s/%s", basedir, MODULE_DIR, kernel);
++		nofail_asprintf(&moddir, "%s/%s/%s", basedir, module_dir, kernel);
+ 	else
+-		nofail_asprintf(&moddir, "%s/%s", MODULE_DIR, kernel);
++		nofail_asprintf(&moddir, "%s/%s", module_dir, kernel);
+ 
+ 	/* Search for it in modules.dep. */
+ 	nofail_asprintf(&depname, "%s/%s", moddir, "modules.dep");
+diff --git a/modprobe.c b/modprobe.c
+index 5464f45..d9fbf9d 100644
+--- a/modprobe.c
++++ b/modprobe.c
+@@ -86,10 +86,6 @@ typedef enum
+ 
+ } modprobe_flags_t;
+ 
+-#ifndef MODULE_DIR
+-#define MODULE_DIR "/lib/modules"
+-#endif
+-
+ /**
+  * print_usage - output the prefered program usage
+  *
+@@ -2136,6 +2132,7 @@ int main(int argc, char *argv[])
+ 	struct modprobe_conf conf = {};
+ 
+ 	recursion_depth = 0;
++ 	char *module_dir = NULL;
+ 
+ 	/* Prepend options from environment. */
+ 	argv = merge_args(getenv("MODPROBE_OPTIONS"), argv, &argc);
+@@ -2233,7 +2230,11 @@ int main(int argc, char *argv[])
+ 	if (argc < optind + 1 && !dump_config && !list_only)
+ 		print_usage(argv[0]);
+ 
+-	nofail_asprintf(&dirname, "%s%s/%s", basedir, MODULE_DIR, buf.release);
++	if((module_dir = getenv("LINUX_MODULE_DIRECTORY")) == NULL) {
++		module_dir = "/lib/modules";
++	}
++
++	nofail_asprintf(&dirname, "%s%s/%s", basedir, module_dir, buf.release);
+ 
+ 	/* Old-style -t xxx wildcard?  Only with -l. */
+ 	if (list_only) {
diff --git a/gnu/packages/patches/openssl-CVE-2010-5298.patch b/gnu/packages/patches/openssl-CVE-2010-5298.patch
deleted file mode 100644
index 707a24dff0..0000000000
--- a/gnu/packages/patches/openssl-CVE-2010-5298.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From db978be7388852059cf54e42539a363d549c5bfd Mon Sep 17 00:00:00 2001
-From: Kurt Roeckx <kurt@roeckx.be>
-Date: Sun, 13 Apr 2014 15:05:30 +0200
-Subject: [PATCH] Don't release the buffer when there still is data in it
-
-RT: 2167, 3265
----
- ssl/s3_pkt.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/ssl/s3_pkt.c b/ssl/s3_pkt.c
-index b9e45c7..32e9207 100644
---- a/ssl/s3_pkt.c
-+++ b/ssl/s3_pkt.c
-@@ -1055,7 +1055,8 @@ int ssl3_read_bytes(SSL *s, int type, unsigned char *buf, int len, int peek)
- 				{
- 				s->rstate=SSL_ST_READ_HEADER;
- 				rr->off=0;
--				if (s->mode & SSL_MODE_RELEASE_BUFFERS)
-+				if (s->mode & SSL_MODE_RELEASE_BUFFERS &&
-+					s->s3->rbuf.left == 0)
- 					ssl3_release_read_buffer(s);
- 				}
- 			}
--- 
-1.9.1
-
diff --git a/gnu/packages/patches/openssl-extension-checking-fixes.patch b/gnu/packages/patches/openssl-extension-checking-fixes.patch
deleted file mode 100644
index 3fdd893563..0000000000
--- a/gnu/packages/patches/openssl-extension-checking-fixes.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 300b9f0b704048f60776881f1d378c74d9c32fbd Mon Sep 17 00:00:00 2001
-From: "Dr. Stephen Henson" <steve@openssl.org>
-Date: Tue, 15 Apr 2014 18:48:54 +0100
-Subject: [PATCH] Extension checking fixes.
-
-When looking for an extension we need to set the last found
-position to -1 to properly search all extensions.
-
-PR#3309.
----
- crypto/x509v3/v3_purp.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/crypto/x509v3/v3_purp.c b/crypto/x509v3/v3_purp.c
-index 6c40c7d..5f931db 100644
---- a/crypto/x509v3/v3_purp.c
-+++ b/crypto/x509v3/v3_purp.c
-@@ -389,8 +389,8 @@ static void x509v3_cache_extensions(X509 *x)
- 	/* Handle proxy certificates */
- 	if((pci=X509_get_ext_d2i(x, NID_proxyCertInfo, NULL, NULL))) {
- 		if (x->ex_flags & EXFLAG_CA
--		    || X509_get_ext_by_NID(x, NID_subject_alt_name, 0) >= 0
--		    || X509_get_ext_by_NID(x, NID_issuer_alt_name, 0) >= 0) {
-+		    || X509_get_ext_by_NID(x, NID_subject_alt_name, -1) >= 0
-+		    || X509_get_ext_by_NID(x, NID_issuer_alt_name, -1) >= 0) {
- 			x->ex_flags |= EXFLAG_INVALID;
- 		}
- 		if (pci->pcPathLengthConstraint) {
-@@ -670,7 +670,7 @@ static int check_purpose_timestamp_sign(const X509_PURPOSE *xp, const X509 *x,
- 		return 0;
- 
- 	/* Extended Key Usage MUST be critical */
--	i_ext = X509_get_ext_by_NID((X509 *) x, NID_ext_key_usage, 0);
-+	i_ext = X509_get_ext_by_NID((X509 *) x, NID_ext_key_usage, -1);
- 	if (i_ext >= 0)
- 		{
- 		X509_EXTENSION *ext = X509_get_ext((X509 *) x, i_ext);
--- 
-1.9.1
-
diff --git a/gnu/packages/patches/util-linux-perl.patch b/gnu/packages/patches/util-linux-perl.patch
new file mode 100644
index 0000000000..c657a1b5ae
--- /dev/null
+++ b/gnu/packages/patches/util-linux-perl.patch
@@ -0,0 +1,15 @@
+Use this common trick that exploits similarities between sh and Perl syntax
+to avoid a hard dependency on Perl.  Instead, this script will work only
+when 'perl' is available in $PATH.
+
+--- util-linux-2.21.2/misc-utils/chkdupexe.pl	2012-05-15 13:51:45.000000000 +0200
++++ util-linux-2.21.2/misc-utils/chkdupexe.pl	2014-06-01 22:46:06.000000000 +0200
+@@ -1,5 +1,6 @@
+-#!@PERL@ -w
+-#
++eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'
++  & eval 'exec perl -wS "$0" $argv:q'
++    if 0;
+ # chkdupexe version 2.1.1
+ #
+ # Simple script to look for and list duplicate executables and dangling
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index ed7d6f61ad..3903b971ad 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -44,7 +44,8 @@
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages swig)
-  #:use-module (gnu packages tcl))
+  #:use-module (gnu packages tcl)
+  #:use-module (gnu packages))
 
 (define-public bazaar
   (package
@@ -435,3 +436,46 @@ standards-compliant ChangeLog entries based on the changes that it detects.")
 insertions, deletions, and modifications per-file.  It is useful for reviewing
 large, complex patch files.")
     (license (x11-style "file://COPYING"))))
+
+
+(define-public cssc
+  (package
+    (name "cssc")
+    (version "1.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnu/" name "/CSSC-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0bkw6fjh20ppvn54smv05461lm1vcwvn02avx941c4acafmkl1cm"))
+              (patches (list (search-patch "cssc-gets-undeclared.patch")
+                             (search-patch "cssc-missing-include.patch")))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases (alist-cons-before
+                 'check 'precheck
+                 (lambda _
+                   (begin
+                     (substitute* "tests/common/test-common"
+                       (("/bin/pwd") (which "pwd")))
+
+                     (substitute* "tests/prt/all-512.sh"
+                       (("/bin/sh") (which "sh")))
+
+                     ;; XXX: This test has no hope of passing until there is a "nogroup"
+                     ;; entry (or at least some group to which the guix builder does
+                     ;; not belong) in the /etc/group file of the build environment.
+                     ;; Currently we do not have such a group.  Disable this test for now.
+                     (substitute* "tests/Makefile"
+                       (("test-delta ") ""))))
+                 %standard-phases)))
+    ;; These are needed for the tests
+    (native-inputs `(("git" ,git)
+                     ("cvs" ,cvs)))
+    (home-page "http://www.gnu.org/software/cssc/")
+    (synopsis "File-based version control like SCCS")
+    (description  "GNU CSSC provides a replacement for the legacy Unix source
+code control system SCCS.  This allows old code still under that system to be
+accessed and migrated on modern systems.")
+    (license gpl3+)))