summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2016-10-27 20:21:26 -0400
committerMark H Weaver <mhw@netris.org>2016-10-27 20:21:26 -0400
commit3d82676919b952d0a7e205fa5da6320b1cf21e21 (patch)
tree02586fee407b667fc9e082f98ad70356eedd7864 /gnu
parentf9a65318ddc34a84fea128b756d23ad619f519dc (diff)
parent7500e42b3e51fa9ba5fb2ba552f168081b7f044a (diff)
downloadguix-3d82676919b952d0a7e205fa5da6320b1cf21e21.tar.gz
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu')
-rw-r--r--gnu/build/file-systems.scm35
-rw-r--r--gnu/packages/bioinformatics.scm33
-rw-r--r--gnu/packages/dav.scm4
-rw-r--r--gnu/packages/gnome.scm7
-rw-r--r--gnu/packages/gnupg.scm11
-rw-r--r--gnu/packages/gnustep.scm5
-rw-r--r--gnu/packages/image.scm4
-rw-r--r--gnu/packages/linux.scm33
-rw-r--r--gnu/packages/python.scm9
-rw-r--r--gnu/packages/sdl.scm35
-rw-r--r--gnu/packages/security-token.scm38
-rw-r--r--gnu/packages/statistics.scm8
-rw-r--r--gnu/packages/textutils.scm86
-rw-r--r--gnu/packages/valgrind.scm29
-rw-r--r--gnu/system/mapped-devices.scm8
-rw-r--r--gnu/tests/install.scm172
16 files changed, 447 insertions, 70 deletions
diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm
index f1fccbdf2e..bfc353ae6b 100644
--- a/gnu/build/file-systems.scm
+++ b/gnu/build/file-systems.scm
@@ -192,15 +192,15 @@ not valid header was found."
 
 (define (disk-partitions)
   "Return the list of device names corresponding to valid disk partitions."
-  (define (partition? major minor)
-    (let ((marker (format #f "/sys/dev/block/~a:~a/partition" major minor)))
-      (catch 'system-error
-        (lambda ()
-          (not (zero? (call-with-input-file marker read))))
-        (lambda args
-          (if (= ENOENT (system-error-errno args))
-              #f
-              (apply throw args))))))
+  (define (last-character str)
+    (string-ref str (- (string-length str) 1)))
+
+  (define (partition? name major minor)
+    ;; Select device names that end in a digit, like libblkid's 'probe_all'
+    ;; function does.  Checking for "/sys/dev/block/MAJOR:MINOR/partition"
+    ;; doesn't work for partitions coming from mapped devices.
+    (and (char-set-contains? char-set:digit (last-character name))
+         (> major 2)))                      ;ignore RAM disks and floppy disks
 
   (call-with-input-file "/proc/partitions"
     (lambda (port)
@@ -217,7 +217,7 @@ not valid header was found."
               (match (string-tokenize line)
                 (((= string->number major) (= string->number minor)
                   blocks name)
-                 (if (partition? major minor)
+                 (if (partition? name major minor)
                      (loop (cons name parts))
                      (loop parts))))))))))
 
@@ -232,12 +232,15 @@ warning and #f as the result."
         ;; When running on the hand-made /dev,
         ;; 'disk-partitions' could return partitions for which
         ;; we have no /dev node.  Handle that gracefully.
-        (if (= ENOENT (system-error-errno args))
-            (begin
-              (format (current-error-port)
-                      "warning: device '~a' not found~%" device)
-              #f)
-            (apply throw args))))))
+        (let ((errno (system-error-errno args)))
+          (cond ((= ENOENT errno)
+                 (format (current-error-port)
+                         "warning: device '~a' not found~%" device)
+                 #f)
+                ((= ENOMEDIUM errno)              ;for removable media
+                 #f)
+                (else
+                 (apply throw args))))))))
 
 (define (partition-predicate read field =)
   "Return a predicate that returns true if the FIELD of partition header that
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index fa35531868..4e9397e14e 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -7394,6 +7394,39 @@ library implementing most of the pipeline's features.")
 @dfn{RNA-centric annotation system} (RCAS).")
     (license license:agpl3+)))
 
+(define-public r-mutationalpatterns
+  (package
+    (name "r-mutationalpatterns")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "MutationalPatterns" version))
+       (sha256
+        (base32
+         "1a3c2bm0xx0q4gf98jiw74msmdf2fr8rbsdysd5ww9kqlzmsbr17"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biocgenerics" ,r-biocgenerics)
+       ("r-biostrings" ,r-biostrings)
+       ("r-genomicranges" ,r-genomicranges)
+       ("r-genomeinfodb" ,r-genomeinfodb)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-gridextra" ,r-gridextra)
+       ("r-iranges" ,r-iranges)
+       ("r-nmf" ,r-nmf)
+       ("r-plyr" ,r-plyr)
+       ("r-pracma" ,r-pracma)
+       ("r-reshape2" ,r-reshape2)
+       ("r-summarizedexperiment" ,r-summarizedexperiment)
+       ("r-variantannotation" ,r-variantannotation)))
+    (home-page "http://bioconductor.org/packages/MutationalPatterns/")
+    (synopsis "Extract and visualize mutational patterns in genomic data")
+    (description "This package provides an extensive toolset for the
+characterization and visualization of a wide range of mutational patterns
+in SNV base substitution data.")
+    (license license:expat)))
+
 (define-public emboss
   (package
     (name "emboss")
diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm
index ba56d0d852..835b8fcf39 100644
--- a/gnu/packages/dav.scm
+++ b/gnu/packages/dav.scm
@@ -60,13 +60,13 @@ clients.")
 (define-public vdirsyncer
   (package
     (name "vdirsyncer")
-    (version "0.13.1")
+    (version "0.14.0")
     (source (origin
              (method url-fetch)
              (uri (pypi-uri name version))
              (sha256
               (base32
-               "1c4kipcc7dx1rn5j1a1x7wckz09mm9ihwakf3ramwn1y78q5zanb"))))
+               "1mbh2gykx9sqsnyfa962ifxksx4afl2lb9rcsbd6rsh3gj2il898"))))
     (build-system python-build-system)
     (arguments
       `(#:phases (modify-phases %standard-phases
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index a4ae777383..8b7da30152 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3868,7 +3868,7 @@ metadata in photo and video files of various formats.")
 (define-public shotwell
   (package
     (name "shotwell")
-    (version "0.23.5")
+    (version "0.25.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -3876,7 +3876,7 @@ metadata in photo and video files of various formats.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0fgs1rgvkmy79bmpxrsvm5w8rvqml4l1vnwma0xqx5zzm02p8a07"))))
+                "0f3ly7nxy3kqwgs40avsqkxcz98bfmlhlk30n0d7j7ndk67zz57h"))))
     (build-system glib-or-gtk-build-system)
     (propagated-inputs
      `(("dconf" ,dconf)))
@@ -3899,7 +3899,8 @@ metadata in photo and video files of various formats.")
        ("libsoup" ,libsoup)
        ("libxml2" ,libxml2)
        ("libgudev" ,libgudev)
-       ("libgphoto2" ,libgphoto2)))
+       ("libgphoto2" ,libgphoto2)
+       ("gcr" ,gcr)))
     (home-page "https://wiki.gnome.org/Apps/Shotwell")
     (synopsis "Photo manager for GNOME 3")
     (description
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index dd75ea5c34..a3a42cc2f2 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2016 Nils Gillmann <ng0@libertad.pw>
 ;;; Copyright © 2016 Christopher Baines <mail@cbaines.net>
+;;; Copyright © 2016 Mike Gerwitz <mtg@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -43,6 +44,7 @@
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages security-token)
   #:use-module (gnu packages tls)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -233,6 +235,7 @@ compatible to GNU Pth.")
        ("libksba" ,libksba)
        ("npth" ,npth)
        ("openldap" ,openldap)
+       ("pcsc-lite" ,pcsc-lite)
        ("readline" ,readline)
        ("sqlite" ,sqlite)
        ("zlib" ,zlib)))
@@ -240,10 +243,14 @@ compatible to GNU Pth.")
     `(#:configure-flags '("--enable-gpg2-is-gpg")
       #:phases
       (modify-phases %standard-phases
-        (add-before 'configure 'patch-config-files
-          (lambda _
+        (add-before 'configure 'patch-paths
+          (lambda* (#:key inputs #:allow-other-keys)
             (substitute* "tests/openpgp/defs.inc"
               (("/bin/pwd") (which "pwd")))
+            (substitute* "scd/scdaemon.c"
+              (("\"(libpcsclite\\.so[^\"]*)\"" _ name)
+               (string-append "\"" (assoc-ref inputs "pcsc-lite")
+                              "/lib/" name "\"")))
             #t))
         (add-after 'build 'patch-scheme-tests
           (lambda _
diff --git a/gnu/packages/gnustep.scm b/gnu/packages/gnustep.scm
index f49b25492e..6c365cbbc4 100644
--- a/gnu/packages/gnustep.scm
+++ b/gnu/packages/gnustep.scm
@@ -76,7 +76,10 @@
        ("libxft" ,libxft)
        ("libx11" ,libx11)
        ("fontconfig" ,fontconfig)
-       ("libjpeg" ,libjpeg)))
+       ("libjpeg" ,libjpeg)
+       ("giflib" ,giflib)
+       ("libpng" ,libpng)
+       ("libtiff" ,libtiff)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (home-page "http://windowmaker.org/")
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 286708cb1d..d97e853828 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -770,14 +770,14 @@ convert, manipulate, filter and display a wide variety of image formats.")
 (define-public jasper
   (package
     (name "jasper")
-    (version "1.900.13")
+    (version "1.900.16")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.ece.uvic.ca/~frodo/jasper"
                                   "/software/jasper-" version ".tar.gz"))
               (sha256
                (base32
-                "0nmy5248gar057s94a30fssvq70m3jy4vdrfcispvn01ih33fa19"))))
+                "0wgrz6970sf8apyld35vrxamzx46fq15l0ipkvjsjlbwfrhj57rl"))))
     (build-system gnu-build-system)
     (arguments
      '(#:make-flags '("CFLAGS=-std=c99"))) ; 1.900.13 added c++ style comments
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 1a4b50359d..d9189b12a0 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -2396,6 +2396,35 @@ assemble, report on, and monitor arrays.  It can also move spares between raid
 arrays when needed.")
     (license license:gpl2+)))
 
+(define-public mdadm-static
+  (package
+    (inherit mdadm)
+    (name "mdadm-static")
+    (arguments
+     (substitute-keyword-arguments (package-arguments mdadm)
+       ((#:make-flags flags)
+        `(cons "LDFLAGS = -static" ,flags))
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'install 'remove-cruft
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out         (assoc-ref outputs "out"))
+                      (precious?   (lambda (file)
+                                     (member file '("." ".." "sbin"))))
+                      (directories (scandir out (negate precious?))))
+                 (with-directory-excursion out
+                   (for-each delete-file-recursively directories)
+                   (remove-store-references "sbin/mdadm")
+                   (delete-file "sbin/mdmon")
+                   #t))))))
+       ((#:modules modules %gnu-build-system-modules)
+        `((ice-9 ftw) ,@modules))
+       ((#:strip-flags _ '())
+        ''("--strip-all"))                        ;strip a few extra KiB
+       ((#:allowed-references _ '("out"))
+        '("out"))))                               ;refer only self
+    (synopsis "Statically-linked 'mdadm' command for use in an initrd")))
+
 (define-public libaio
   (package
     (name "libaio")
@@ -2975,14 +3004,14 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.")
 (define-public mcelog
   (package
     (name "mcelog")
-    (version "143")
+    (version "144")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://git.kernel.org/cgit/utils/cpu/mce/"
                                   "mcelog.git/snapshot/v" version ".tar.gz"))
               (sha256
                (base32
-                "1mn5i1d6ybfxqgr6smlpxcx1wb53h0r2rp90ild7919b9yqxpk0x"))
+                "03jyhsl0s59sfqykj5p6gkb03k4w1h9ay31yxym1dnzis5sq99pa"))
               (file-name (string-append name "-" version ".tar.gz"))
               (modules '((guix build utils)))
               (snippet
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 73cabe8228..9b25b3ff62 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -7773,14 +7773,14 @@ concurrent.futures package from Python 3.2")
 (define-public python-urllib3
   (package
     (name "python-urllib3")
-    (version "1.13.1")
+    (version "1.18.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "urllib3" version))
         (sha256
          (base32
-          "10rrbr6c6k7j5dvfsyj4b2gsgxg9gggnn708qixf6ll57xqivfkf"))))
+          "1wb8aqnq53vzh2amrv8kc66f3h6fx217y0q62y6n30a64p2yqmam"))))
     (build-system python-build-system)
     (arguments `(#:tests? #f))
     (native-inputs
@@ -7795,7 +7795,7 @@ concurrent.futures package from Python 3.2")
        ("python-ndg-httpsclient" ,python-ndg-httpsclient)
        ("python-pyasn1" ,python-pyasn1)
        ("python-pyopenssl" ,python-pyopenssl)))
-    (home-page "http://urllib3.readthedocs.org/")
+    (home-page "https://urllib3.readthedocs.org/")
     (synopsis "HTTP library with thread-safe connection pooling")
     (description
      "Urllib3 supports features left out of urllib and urllib2 libraries.  It
@@ -8984,6 +8984,9 @@ anymore.")
                (base32
                 "0p050msg5c8d0kadv702jnfshaxrb0il765cpkgnhn6mq5hakcyy"))))
     (build-system python-build-system)
+    ;; We only need the the Python 2 variant, since for Python 3 our minimum
+    ;; version is 3.4 which already includes this package as part of the
+    ;; standard library.
     (arguments
      `(#:python ,python-2))
     (native-inputs
diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm
index 161689bf24..bb4ad1c90b 100644
--- a/gnu/packages/sdl.scm
+++ b/gnu/packages/sdl.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
+;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -47,7 +48,7 @@
     (source (origin
              (method url-fetch)
              (uri
-              (string-append "http://libsdl.org/release/SDL-"
+              (string-append "https://libsdl.org/release/SDL-"
                              version ".tar.gz"))
              (sha256
               (base32
@@ -81,34 +82,34 @@
     (description "Simple DirectMedia Layer is a cross-platform development
 library designed to provide low level access to audio, keyboard, mouse,
 joystick, and graphics hardware.")
-    (home-page "http://libsdl.org/")
+    (home-page "https://libsdl.org/")
     (license lgpl2.1)))
 
 (define-public sdl2
   (package (inherit sdl)
     (name "sdl2")
-    (version "2.0.4")
+    (version "2.0.5")
     (source (origin
              (method url-fetch)
              (uri
-              (string-append "http://libsdl.org/release/SDL2-"
+              (string-append "https://libsdl.org/release/SDL2-"
                              version ".tar.gz"))
              (sha256
               (base32
-               "0jqp46mxxbh9lhpx1ih6sp93k752j2smhpc0ad0q4cb3px0famfs"))))
+               "11c75qj1qxmx67iwkvf9z4x69phk301pdn86zzr6jncnap7kh824"))))
     (license bsd-3)))
 
 (define-public libmikmod
   (package
     (name "libmikmod")
-    (version "3.3.7")
+    (version "3.3.10")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://sourceforge/mikmod/libmikmod/"
                                  version "/libmikmod-" version ".tar.gz"))
              (sha256
               (base32
-               "18nrkf5l50hfg0y50yxr7bvik9f002lhn8c00nbcp6dgm5011x2c"))))
+               "0j7g4jpa2zgzw7x6s3rldypa7zlwjvn97rwx0sylx1iihhlzbcq0"))))
     (build-system gnu-build-system)
     (arguments
      ;; By default, libmikmod tries to dlopen libasound etc., which won't work
@@ -154,7 +155,7 @@ other supporting functions for SDL.")
     (source (origin
              (method url-fetch)
              (uri
-              (string-append "http://www.libsdl.org/projects/SDL_image/release/SDL_image-"
+              (string-append "https://www.libsdl.org/projects/SDL_image/release/SDL_image-"
                              version ".tar.gz"))
              (sha256
               (base32
@@ -180,7 +181,7 @@ other supporting functions for SDL.")
     (description "SDL_image is an image file loading library for SDL that
 supports the following formats: BMP, GIF, JPEG, LBM, PCX, PNG, PNM, TGA, TIFF,
 WEBP, XCF, XPM, and XV.")
-    (home-page "http://www.libsdl.org/projects/SDL_image/")
+    (home-page "https://www.libsdl.org/projects/SDL_image/")
     (license zlib)))
 
 (define-public sdl-mixer
@@ -190,7 +191,7 @@ WEBP, XCF, XPM, and XV.")
     (source (origin
               (method url-fetch)
               (uri
-               (string-append "http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-"
+               (string-append "https://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-"
                               version ".tar.gz"))
               (sha256
                (base32
@@ -218,7 +219,7 @@ WEBP, XCF, XPM, and XV.")
 It supports any number of simultaneously playing channels of 16 bit stereo
 audio, plus a single channel of music.  Supported format include FLAC, MOD,
 MIDI, Ogg Vorbis, and MP3.")
-    (home-page "http://www.libsdl.org/projects/SDL_mixer/")
+    (home-page "https://www.libsdl.org/projects/SDL_mixer/")
     (license zlib)))
 
 (define-public sdl-net
@@ -228,7 +229,7 @@ MIDI, Ogg Vorbis, and MP3.")
     (source (origin
               (method url-fetch)
               (uri
-               (string-append "http://www.libsdl.org/projects/SDL_net/release/SDL_net-"
+               (string-append "https://www.libsdl.org/projects/SDL_net/release/SDL_net-"
                               version ".tar.gz"))
               (sha256
                (base32
@@ -239,7 +240,7 @@ MIDI, Ogg Vorbis, and MP3.")
     (synopsis "SDL networking library")
     (description "SDL_net is a small, cross-platform networking library for
 SDL.")
-    (home-page "http://www.libsdl.org/projects/SDL_net/")
+    (home-page "https://www.libsdl.org/projects/SDL_net/")
     (license zlib)))
 
 (define-public sdl-ttf
@@ -249,7 +250,7 @@ SDL.")
     (source (origin
              (method url-fetch)
              (uri
-              (string-append "http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-"
+              (string-append "https://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-"
                              version ".tar.gz"))
              (sha256
               (base32
@@ -261,7 +262,7 @@ SDL.")
     (native-inputs `(("pkg-config" ,pkg-config)))
     (synopsis "SDL TrueType font library")
     (description "SDL_ttf is a TrueType font rendering library for SDL.")
-    (home-page "http://www.libsdl.org/projects/SDL_ttf/")
+    (home-page "https://www.libsdl.org/projects/SDL_ttf/")
     (license zlib)))
 
 (define* (sdl-union #:optional (packages (list sdl sdl-gfx sdl-net sdl-ttf
@@ -308,7 +309,7 @@ directory.")
     (source (origin
               (method url-fetch)
               (uri
-               (string-append "http://www.libsdl.org/projects/SDL_image/release/SDL2_image-"
+               (string-append "https://www.libsdl.org/projects/SDL_image/release/SDL2_image-"
                               version ".tar.gz"))
               (sha256
                (base32
@@ -342,7 +343,7 @@ directory.")
     (source (origin
              (method url-fetch)
              (uri
-              (string-append "http://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-"
+              (string-append "https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-"
                              version ".tar.gz"))
              (modules '((guix build utils)))
              (snippet
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index 36ccaa5203..735b2fe0ec 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016 Mike Gerwitz <mtg@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,9 +24,11 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
-  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages curl)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages man)
-  #:use-module (gnu packages curl))
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config))
 
 (define-public libyubikey
   (package
@@ -47,6 +50,37 @@ the low-level development kit for the Yubico YubiKey authentication device.")
     (home-page "https://developers.yubico.com/yubico-c/")
     (license license:bsd-2)))
 
+(define-public pcsc-lite
+  (package
+    (name "pcsc-lite")
+    (version "1.8.18")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://alioth.debian.org/frs/download.php/file/4179/"
+                    "pcsc-lite-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "0189s10xsgcmdvc2sixakncwlv47cg6by6m9vdm038gn32q34bdj"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags '("--enable-usbdropdir=/var/lib/pcsc/drivers")))
+    (native-inputs
+     `(("perl" ,perl)                   ; for pod2man
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libudev" ,eudev)))
+    (home-page "https://pcsclite.alioth.debian.org/pcsclite.html")
+    (synopsis "Middleware to access a smart card using PC/SC")
+    (description
+     "pcsc-lite provides an interface to communicate with smartcards and
+readers using the SCard API.  pcsc-lite is used to connect to the PC/SC daemon
+from a client application and provide access to the desired reader.")
+    (license (list license:bsd-3                ; pcsc-lite
+                   license:expat                ; src/sd-daemon.[ch]
+                   license:isc                  ; src/strlcat.c src/strlcpy.c
+                   license:gpl3+))))            ; src/spy/*
+
 (define-public ykclient
   (package
     (name "ykclient")
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index ee6e69346a..4df1e2457a 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -118,6 +118,13 @@ be output in text, PostScript, PDF or HTML.")
                             "/lib/R/lib"))
        #:phases
        (modify-phases %standard-phases
+         (add-before 'configure 'patch-uname
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((uname-bin (string-append (assoc-ref inputs "coreutils")
+                                             "/bin/uname")))
+               (substitute* "src/scripts/R.sh.in"
+                 (("uname") uname-bin)))
+             #t))
          (add-before
           'configure 'set-default-pager
           ;; Set default pager to "cat", because otherwise it is "false",
@@ -170,6 +177,7 @@ be output in text, PostScript, PDF or HTML.")
      `(;; We need not only cairo here, but pango to ensure that tests for the
        ;; "cairo" bitmapType plotting backend succeed.
        ("pango" ,pango)
+       ("coreutils" ,coreutils)
        ("curl" ,curl)
        ("tzdata" ,tzdata)
        ("openblas" ,openblas)
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index a9725b47d3..2259a16c91 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -32,7 +33,12 @@
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages readline)
+  #:use-module (gnu packages slang)
   #:use-module (gnu packages zip))
 
 (define-public recode
@@ -373,3 +379,83 @@ runs Word\".")
     (description "UTF8-CPP is a C++ library for handling UTF-8 encoded text
 in a portable way.")
     (license license:boost1.0)))
+
+(define-public dbacl
+  (package
+    (name "dbacl")
+    (version "1.14")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://www.lbreyer.com/gpl/"
+                           name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0224g6x71hyvy7jikfxmgcwww1r5lvk0jx36cva319cb9nmrbrq7"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list
+        (string-append "-I" (assoc-ref %build-inputs "slang")
+                       "/include/slang")
+        (string-append "-I" (assoc-ref %build-inputs "ncurses")
+                       "/include/ncurses"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'delete-sample6-and-japanese
+           (lambda _
+             (substitute* "doc/Makefile.am"
+               (("sample6.txt") "")
+               (("japanese.txt") ""))
+             (delete-file "doc/sample6.txt")
+             (delete-file "doc/japanese.txt")
+             (substitute* (list "src/tests/Makefile.am"
+                                "src/tests/Makefile.in")
+               (("dbacl-jap.shin") "")
+               (("dbacl-jap.sh") ""))
+             #t))
+         (add-after 'unpack 'delete-test
+           ;; See comments about the license.
+           (lambda _
+             (delete-file "src/tests/dbacl-jap.shin")))
+         (add-after 'delete-sample6-and-japanese 'autoreconf
+           (lambda _
+             (zero? (system* "autoreconf" "-vif"))))
+         (add-after 'unpack 'fix-test-files
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin")))
+               (substitute* (find-files "src/tests/" "\\.shin$")
+                 (("PATH=/bin:/usr/bin")
+                  "#PATH=/bin:/usr/bin")
+                 (("diff") (string-append (which "diff")))
+                 (("tr") (string-append (which "tr"))))
+               #t))))))
+    (inputs
+     `(("ncurses" ,ncurses)
+       ("perl" ,perl)
+       ("readline" ,readline)
+       ("slang" ,slang)))
+    (native-inputs
+     `(("libtool" ,libtool)
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("pkg-config" ,pkg-config)))
+    (home-page "http://www.lbreyer.com/dbacl.html")
+    (synopsis "Bayesian text and email classifier")
+    (description
+     "dbacl is a fast Bayesian text and email classifier.  It builds a variety
+of language models using maximum entropy (minimum divergence) principles, and
+these can then be used to categorize input data automatically among multiple
+categories.")
+    ;; The software is licensed as GPLv3 or later, but
+    ;; includes various sample texts in the doc dir:
+    ;; - sample1.txt, sample3 and sampe5.txt are in the public domain,
+    ;;   by Mark Twain.
+    ;; - sample2.txt, sample4.txt are in the public domain, by Aristotle.
+    ;; - sample6.txt is a forwarded email, copyright unknown.
+    ;;   Guix does exclude sample6.txt.
+    ;; - japanese.txt is a Japanese unoffical translation of the
+    ;;   GNU General Public License, (c) by the Free Software Foundation.
+    ;;   Guix excludes this file.
+    (license (list license:gpl3+ license:public-domain))))
diff --git a/gnu/packages/valgrind.scm b/gnu/packages/valgrind.scm
index ed847c2def..5f2bef16df 100644
--- a/gnu/packages/valgrind.scm
+++ b/gnu/packages/valgrind.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,29 +31,29 @@
 (define-public valgrind
   (package
     (name "valgrind")
-    (version "3.11.0")
+    (version "3.12.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "http://valgrind.org/downloads/valgrind-"
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "0hiv871b9bk689mv42mkhp76za78l5773glszfkdbpf1m1qn4fbc"))
+               "18bnrw9b1d55wi1wnl68n25achsp9w48n51n1xw4fwjjnaal7jk7"))
              (patches (search-patches "valgrind-enable-arm.patch"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases (alist-cons-after
-                 'install 'patch-suppression-files
-                 (lambda* (#:key outputs #:allow-other-keys)
-                   ;; Don't assume the FHS.
-                   (let* ((out (assoc-ref outputs "out"))
-                          (dir (string-append out "/lib/valgrind")))
-                     (substitute* (find-files dir "\\.supp$")
-                       (("obj:/lib") "obj:*/lib")
-                       (("obj:/usr/X11R6/lib") "obj:*/lib")
-                       (("obj:/usr/lib") "obj:*/lib"))
-                     #t))
-                 %standard-phases)))
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'patch-suppression-files
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; Don't assume the FHS.
+             (let* ((out (assoc-ref outputs "out"))
+                    (dir (string-append out "/lib/valgrind")))
+               (substitute* (find-files dir "\\.supp$")
+                 (("obj:/lib") "obj:*/lib")
+                 (("obj:/usr/X11R6/lib") "obj:*/lib")
+                 (("obj:/usr/lib") "obj:*/lib"))
+               #t))))))
     (inputs `(;; GDB is needed to provide a sane default for `--db-command'.
               ("gdb" ,gdb)))
     (native-inputs `(("perl" ,perl)))
diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm
index 2487638c52..e44f2693a7 100644
--- a/gnu/system/mapped-devices.scm
+++ b/gnu/system/mapped-devices.scm
@@ -24,7 +24,7 @@
   #:use-module (gnu services)
   #:use-module (gnu services shepherd)
   #:autoload   (gnu packages cryptsetup) (cryptsetup)
-  #:autoload   (gnu packages linux) (mdadm)
+  #:autoload   (gnu packages linux) (mdadm-static)
   #:use-module (srfi srfi-1)
   #:use-module (ice-9 match)
   #:export (mapped-device
@@ -150,12 +150,14 @@ TARGET (e.g., \"/dev/md0\"), using 'mdadm'."
           (sleep 1)
           (loop (+ 1 attempts))))
 
-      (zero? (apply system* (string-append #$mdadm "/sbin/mdadm")
+      ;; Use 'mdadm-static' rather than 'mdadm' to avoid pulling its whole
+      ;; closure (80 MiB) in the initrd when a RAID device is needed for boot.
+      (zero? (apply system* #$(file-append mdadm-static "/sbin/mdadm")
                     "--assemble" #$target sources))))
 
 (define (close-raid-device sources target)
   "Return a gexp that stops the RAID device TARGET."
-  #~(zero? (system* (string-append #$mdadm "/sbin/mdadm")
+  #~(zero? (system* #$(file-append mdadm-static "/sbin/mdadm")
                     "--stop" #$target)))
 
 (define raid-device-mapping
diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm
index 4e79fdb294..98f8649af8 100644
--- a/gnu/tests/install.scm
+++ b/gnu/tests/install.scm
@@ -33,6 +33,8 @@
   #:use-module (guix gexp)
   #:use-module (guix utils)
   #:export (%test-installed-os
+            %test-separate-store-os
+            %test-raid-root-os
             %test-encrypted-os))
 
 ;;; Commentary:
@@ -190,9 +192,9 @@ the installed system."
 
     (gexp->derivation "installation" install)))
 
-(define (qemu-command/writable-image image)
+(define* (qemu-command/writable-image image #:key (memory-size 256))
   "Return as a monadic value the command to run QEMU on a writable copy of
-IMAGE, a disk image."
+IMAGE, a disk image.  The QEMU VM is has access to MEMORY-SIZE MiB of RAM."
   (mlet %store-monad ((system (current-system)))
     (return #~(let ((image #$image))
                 ;; First we need a writable copy of the image.
@@ -204,7 +206,7 @@ IMAGE, a disk image."
                   ,@(if (file-exists? "/dev/kvm")
                         '("-enable-kvm")
                         '())
-                  "-no-reboot" "-m" "256"
+                  "-no-reboot" "-m" #$(number->string memory-size)
                   "-drive" "file=disk.img,if=virtio")))))
 
 
@@ -222,6 +224,170 @@ build (current-guix) and then store a couple of full system images.")
                       "installed-os")))))
 
 
+;;;
+;;; Separate /gnu/store partition.
+;;;
+
+(define-os-with-source (%separate-store-os %separate-store-os-source)
+  ;; The OS we want to install.
+  (use-modules (gnu) (gnu tests) (srfi srfi-1))
+
+  (operating-system
+    (host-name "liberigilo")
+    (timezone "Europe/Paris")
+    (locale "en_US.UTF-8")
+
+    (bootloader (grub-configuration (device "/dev/vdb")))
+    (kernel-arguments '("console=ttyS0"))
+    (file-systems (cons* (file-system
+                           (device "root-fs")
+                           (title 'label)
+                           (mount-point "/")
+                           (type "ext4"))
+                         (file-system
+                           (device "store-fs")
+                           (title 'label)
+                           (mount-point "/gnu")
+                           (type "ext4")
+                           (needed-for-boot? #t)) ;definitely!
+                         %base-file-systems))
+    (users %base-user-accounts)
+    (services (cons (service marionette-service-type
+                             (marionette-configuration
+                              (imported-modules '((gnu services herd)
+                                                  (guix combinators)))))
+                    %base-services))))
+
+(define %separate-store-installation-script
+  ;; Installation with a separate /gnu partition.
+  "\
+. /etc/profile
+set -e -x
+guix --version
+
+export GUIX_BUILD_OPTIONS=--no-grafts
+guix build isc-dhcp
+parted --script /dev/vdb mklabel gpt \\
+  mkpart primary ext2 1M 3M \\
+  mkpart primary ext2 3M 100M \\
+  mkpart primary ext2 100M 1G \\
+  set 1 boot on \\
+  set 1 bios_grub on
+mkfs.ext4 -L root-fs /dev/vdb2
+mkfs.ext4 -L store-fs /dev/vdb3
+mount /dev/vdb2 /mnt
+mkdir /mnt/gnu
+mount /dev/vdb3 /mnt/gnu
+df -h /mnt
+herd start cow-store /mnt
+mkdir /mnt/etc
+cp /etc/target-config.scm /mnt/etc/config.scm
+guix system init /mnt/etc/config.scm /mnt --no-substitutes
+sync
+reboot\n")
+
+(define %test-separate-store-os
+  (system-test
+   (name "separate-store-os")
+   (description
+    "Test basic functionality of an OS installed like one would do by hand,
+where /gnu lives on a separate partition.")
+   (value
+    (mlet* %store-monad ((image   (run-install %separate-store-os
+                                               %separate-store-os-source
+                                               #:script
+                                               %separate-store-installation-script))
+                         (command (qemu-command/writable-image image)))
+      (run-basic-test %separate-store-os command "separate-store-os")))))
+
+
+;;;
+;;; RAID root device.
+;;;
+
+(define-os-with-source (%raid-root-os %raid-root-os-source)
+  ;; An OS whose root partition is a RAID partition.
+  (use-modules (gnu) (gnu tests))
+
+  (operating-system
+    (host-name "raidified")
+    (timezone "Europe/Paris")
+    (locale "en_US.utf8")
+
+    (bootloader (grub-configuration (device "/dev/vdb")))
+    (kernel-arguments '("console=ttyS0"))
+    (initrd (lambda (file-systems . rest)
+              ;; Add a kernel module for RAID-0 (aka. "stripe").
+              (apply base-initrd file-systems
+                     #:extra-modules '("raid0")
+                     rest)))
+    (mapped-devices (list (mapped-device
+                           (source (list "/dev/vda2" "/dev/vda3"))
+                           (target "/dev/md0")
+                           (type raid-device-mapping))))
+    (file-systems (cons (file-system
+                          (device "root-fs")
+                          (title 'label)
+                          (mount-point "/")
+                          (type "ext4")
+                          (dependencies mapped-devices))
+                        %base-file-systems))
+    (users %base-user-accounts)
+    (services (cons (service marionette-service-type
+                             (marionette-configuration
+                              (imported-modules '((gnu services herd)
+                                                  (guix combinators)))))
+                    %base-services))))
+
+(define %raid-root-installation-script
+  ;; Installation with a separate /gnu partition.  See
+  ;; <https://raid.wiki.kernel.org/index.php/RAID_setup> for more on RAID and
+  ;; mdadm.
+  "\
+. /etc/profile
+set -e -x
+guix --version
+
+export GUIX_BUILD_OPTIONS=--no-grafts
+parted --script /dev/vdb mklabel gpt \\
+  mkpart primary ext2 1M 3M \\
+  mkpart primary ext2 3M 600M \\
+  mkpart primary ext2 600M 1200M \\
+  set 1 boot on \\
+  set 1 bios_grub on
+mdadm --create /dev/md0 --verbose --level=stripe --raid-devices=2 \\
+  /dev/vdb2 /dev/vdb3
+mkfs.ext4 -L root-fs /dev/md0
+mount /dev/md0 /mnt
+df -h /mnt
+herd start cow-store /mnt
+mkdir /mnt/etc
+cp /etc/target-config.scm /mnt/etc/config.scm
+guix system init /mnt/etc/config.scm /mnt --no-substitutes
+sync
+reboot\n")
+
+(define %test-raid-root-os
+  (system-test
+   (name "raid-root-os")
+   (description
+    "Test functionality of an OS installed with a RAID root partition managed
+by 'mdadm'.")
+   (value
+    (mlet* %store-monad ((image   (run-install %raid-root-os
+                                               %raid-root-os-source
+                                               #:script
+                                               %raid-root-installation-script
+                                               #:target-size (* 1300 MiB)))
+                         (command (qemu-command/writable-image image)))
+      (run-basic-test %raid-root-os
+                      `(,@command) "raid-root-os")))))
+
+
+;;;
+;;; LUKS-encrypted root file system.
+;;;
+
 (define-os-with-source (%encrypted-root-os %encrypted-root-os-source)
   ;; The OS we want to install.
   (use-modules (gnu) (gnu tests) (srfi srfi-1))