summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2017-06-10 02:57:50 +0200
committerMarius Bakke <mbakke@fastmail.com>2017-06-10 02:57:50 +0200
commitea45e2c500c7ed5b22ea5c21516db40dfd8fbd0b (patch)
treec743e4905419232e6a342694760bf446cd41b5d4 /gnu
parent202342fdda708d8e4554e0514a58849584eddbd0 (diff)
parent8caf5bac4c89512793276054770386c343c73e7b (diff)
downloadguix-ea45e2c500c7ed5b22ea5c21516db40dfd8fbd0b.tar.gz
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu')
-rw-r--r--gnu/artwork.scm20
-rw-r--r--gnu/bootloader.scm26
-rw-r--r--gnu/bootloader/extlinux.scm3
-rw-r--r--gnu/bootloader/grub.scm77
-rw-r--r--gnu/build/file-systems.scm22
-rw-r--r--gnu/local.mk4
-rw-r--r--gnu/packages/astronomy.scm6
-rw-r--r--gnu/packages/bioinformatics.scm313
-rw-r--r--gnu/packages/code.scm5
-rw-r--r--gnu/packages/emacs.scm3
-rw-r--r--gnu/packages/games.scm12
-rw-r--r--gnu/packages/gnome.scm5
-rw-r--r--gnu/packages/guile.scm32
-rw-r--r--gnu/packages/kde-frameworks.scm170
-rw-r--r--gnu/packages/kde.scm2
-rw-r--r--gnu/packages/linux.scm43
-rw-r--r--gnu/packages/markup.scm (renamed from gnu/packages/markdown.scm)39
-rw-r--r--gnu/packages/patches/artanis-fix-Makefile.in.patch70
-rw-r--r--gnu/packages/patches/raptor2-heap-overflow.patch51
-rw-r--r--gnu/packages/php.scm4
-rw-r--r--gnu/packages/python.scm20
-rw-r--r--gnu/packages/rdf.scm2
-rw-r--r--gnu/packages/serialization.scm4
-rw-r--r--gnu/packages/shells.scm4
-rw-r--r--gnu/packages/statistics.scm54
-rw-r--r--gnu/packages/tls.scm30
-rw-r--r--gnu/packages/video.scm6
-rw-r--r--gnu/packages/xdisorg.scm28
-rw-r--r--gnu/packages/xorg.scm8
-rw-r--r--gnu/system.scm14
-rw-r--r--gnu/system/mapped-devices.scm12
31 files changed, 808 insertions, 281 deletions
diff --git a/gnu/artwork.scm b/gnu/artwork.scm
index 94c89143a6..92498b8b23 100644
--- a/gnu/artwork.scm
+++ b/gnu/artwork.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,13 +29,16 @@
 ;;; Code:
 
 (define %artwork-repository
-  (origin
-    (method git-fetch)
-    (uri (git-reference
-          (url "git://git.savannah.gnu.org/guix/guix-artwork.git")
-          (commit "6998d30")))
-    (sha256
-     (base32
-      "0k7j3pj9s3zqiqmfkapypssvzx3f12yr0cc2rbzxqfii0b4clp1j"))))
+  (let ((commit "6998d30425289b087c64f63e7415df2241e591db"))
+    (origin
+      (method git-fetch)
+      (uri (git-reference
+             (url "git://git.savannah.gnu.org/guix/guix-artwork.git")
+             (commit commit)))
+      (file-name (string-append "guix-artwork-" (string-take commit 7)
+                                "-checkout"))
+      (sha256
+       (base32
+        "0k7j3pj9s3zqiqmfkapypssvzx3f12yr0cc2rbzxqfii0b4clp1j")))))
 
 ;;; artwork.scm ends here
diff --git a/gnu/bootloader.scm b/gnu/bootloader.scm
index 4e77974d31..d5fcf30f05 100644
--- a/gnu/bootloader.scm
+++ b/gnu/bootloader.scm
@@ -23,7 +23,15 @@
   #:use-module (guix records)
   #:use-module (guix ui)
   #:use-module (srfi srfi-1)
-  #:export (bootloader
+  #:export (menu-entry
+            menu-entry?
+            menu-entry-label
+            menu-entry-device
+            menu-entry-linux
+            menu-entry-linux-arguments
+            menu-entry-initrd
+
+            bootloader
             bootloader?
             bootloader-name
             bootloader-package
@@ -50,6 +58,22 @@
 
 
 ;;;
+;;; Menu-entry record.
+;;;
+
+(define-record-type* <menu-entry>
+  menu-entry make-menu-entry
+  menu-entry?
+  (label           menu-entry-label)
+  (device          menu-entry-device       ; file system uuid, label, or #f
+                   (default #f))
+  (linux           menu-entry-linux)
+  (linux-arguments menu-entry-linux-arguments
+                   (default '()))          ; list of string-valued gexps
+  (initrd          menu-entry-initrd))     ; file name of the initrd as a gexp
+
+
+;;;
 ;;; Bootloader record.
 ;;;
 
diff --git a/gnu/bootloader/extlinux.scm b/gnu/bootloader/extlinux.scm
index 67b8815d40..0a1263aed7 100644
--- a/gnu/bootloader/extlinux.scm
+++ b/gnu/bootloader/extlinux.scm
@@ -37,7 +37,8 @@
 corresponding to old generations of the system."
 
   (define all-entries
-    (append entries (bootloader-configuration-menu-entries config)))
+    (append entries (map menu-entry->boot-parameters
+                         (bootloader-configuration-menu-entries config))))
 
   (define (boot-parameters->gexp params)
     (let ((label (boot-parameters-label params))
diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm
index 49616b7164..f1cc3324db 100644
--- a/gnu/bootloader/grub.scm
+++ b/gnu/bootloader/grub.scm
@@ -66,12 +66,15 @@
 (define (strip-mount-point mount-point file)
   "Strip MOUNT-POINT from FILE, which is a gexp or other lowerable object
 denoting a file name."
-  (if (string=? mount-point "/")
-      file
-      #~(let ((file #$file))
-          (if (string-prefix? #$mount-point file)
-              (substring #$file #$(string-length mount-point))
-              file))))
+  (match mount-point
+    ((? string? mount-point)
+     (if (string=? mount-point "/")
+         file
+         #~(let ((file #$file))
+             (if (string-prefix? #$mount-point file)
+                 (substring #$file #$(string-length mount-point))
+                 file))))
+    (#f file)))
 
 (define-record-type* <grub-image>
   grub-image make-grub-image
@@ -103,19 +106,6 @@ denoting a file name."
    (color-highlight '((fg . yellow) (bg . black)))
    (color-normal    '((fg . light-gray) (bg . black))))) ;XXX: #x303030
 
-(define-record-type* <menu-entry>
-  menu-entry make-menu-entry
-  menu-entry?
-  (label           menu-entry-label)
-  (device          menu-entry-device       ; file system uuid, label, or #f
-                   (default #f))
-  (device-mount-point menu-entry-device-mount-point
-                      (default "/"))
-  (linux           menu-entry-linux)
-  (linux-arguments menu-entry-linux-arguments
-                   (default '()))          ; list of string-valued gexps
-  (initrd          menu-entry-initrd))     ; file name of the initrd as a gexp
-
 
 ;;;
 ;;; Background image & themes.
@@ -312,16 +302,6 @@ code."
         (#f
          #~(format #f "search --file --set ~a" #$file)))))
 
-(define (boot-parameters->menu-entry conf)
-  "Convert a <boot-parameters> instance to a corresponding <menu-entry>."
-  (menu-entry
-   (label (boot-parameters-label conf))
-   (device (boot-parameters-store-device conf))
-   (device-mount-point (boot-parameters-store-mount-point conf))
-   (linux (boot-parameters-kernel conf))
-   (linux-arguments (boot-parameters-kernel-arguments conf))
-   (initrd (boot-parameters-initrd conf))))
-
 (define* (grub-configuration-file config entries
                                   #:key
                                   (system (%current-system))
@@ -331,33 +311,36 @@ code."
 STORE-FS, a <file-system> object.  OLD-ENTRIES is taken to be a list of menu
 entries corresponding to old generations of the system."
   (define all-entries
-    (map boot-parameters->menu-entry
-         (append entries
-                 (bootloader-configuration-menu-entries config))))
-
-  (define entry->gexp
-    (match-lambda
-     (($ <menu-entry> label device device-mount-point
-                      linux arguments initrd)
+    (append entries (map menu-entry->boot-parameters
+                         (bootloader-configuration-menu-entries config))))
+
+  (define (boot-parameters->gexp params)
+    (let ((device (boot-parameters-store-device params))
+          (device-mount-point (boot-parameters-store-mount-point params))
+          (label (boot-parameters-label params))
+          (kernel (boot-parameters-kernel params))
+          (arguments (boot-parameters-kernel-arguments params))
+          (initrd (boot-parameters-initrd params)))
       ;; Here DEVICE is the store and DEVICE-MOUNT-POINT is its mount point.
-      ;; Use the right file names for LINUX and INITRD in case
+      ;; Use the right file names for KERNEL and INITRD in case
       ;; DEVICE-MOUNT-POINT is not "/", meaning that the store is on a
       ;; separate partition.
-      (let ((linux  (strip-mount-point device-mount-point linux))
-            (initrd (strip-mount-point device-mount-point initrd)))
+      (let ((kernel  (strip-mount-point device-mount-point kernel))
+            (initrd  (strip-mount-point device-mount-point initrd)))
         #~(format port "menuentry ~s {
   ~a
   linux ~a ~a
   initrd ~a
 }~%"
                   #$label
-                  #$(grub-root-search device linux)
-                  #$linux (string-join (list #$@arguments))
-                  #$initrd)))))
+                  #$(grub-root-search device kernel)
+                  #$kernel (string-join (list #$@arguments))
+                  #$initrd))))
 
   (mlet %store-monad ((sugar (eye-candy config
-                                        (menu-entry-device (first all-entries))
-                                        (menu-entry-device-mount-point
+                                        (boot-parameters-store-device
+                                         (first all-entries))
+                                        (boot-parameters-store-mount-point
                                          (first all-entries))
                                         #:system system
                                         #:port #~port)))
@@ -374,12 +357,12 @@ set default=~a
 set timeout=~a~%"
                     #$(bootloader-configuration-default-entry config)
                     #$(bootloader-configuration-timeout config))
-            #$@(map entry->gexp all-entries)
+            #$@(map boot-parameters->gexp all-entries)
 
             #$@(if (pair? old-entries)
                    #~((format port "
 submenu \"GNU system, old configurations...\" {~%")
-                      #$@(map entry->gexp (map boot-parameters->menu-entry old-entries))
+                      #$@(map boot-parameters->gexp old-entries)
                       (format port "}~%"))
                    #~()))))
 
diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm
index 7737de3d03..1c733f43b4 100644
--- a/gnu/build/file-systems.scm
+++ b/gnu/build/file-systems.scm
@@ -43,6 +43,7 @@
 
             uuid->string
             string->uuid
+            string->iso9660-uuid
 
             bind-mount
 
@@ -235,6 +236,27 @@ Trailing spaces are trimmed."
 
 ;; <http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-119.pdf>.
 
+(define %iso9660-uuid-rx
+  ;;                   Y                m                d                H                M                S                ss
+  (make-regexp "^([[:digit:]]{4})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})$"))
+
+(define (string->iso9660-uuid str)
+  "Parse STR as a ISO9660 UUID (which is really a timestamp - see /dev/disk/by-uuid).
+Return its contents as a 16-byte bytevector.  Return #f if STR is not a valid
+ISO9660 UUID representation."
+  (and=> (regexp-exec %iso9660-uuid-rx str)
+         (lambda (match)
+           (letrec-syntax ((match-numerals
+                            (syntax-rules ()
+                              ((_ index (name rest ...) body)
+                               (let ((name (match:substring match index)))
+                                 (match-numerals (+ 1 index) (rest ...) body)))
+                              ((_ index () body)
+                               body))))
+            (match-numerals 1 (year month day hour minute second hundredths)
+              (string->utf8 (string-append year month day
+                                           hour minute second hundredths)))))))
+
 (define (iso9660-superblock? sblock)
   "Return #t when SBLOCK is an iso9660 volume descriptor."
   (bytevector=? (sub-bytevector sblock 1 6)
diff --git a/gnu/local.mk b/gnu/local.mk
index d99c4d215b..ae64f244f0 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -256,7 +256,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/man.scm				\
   %D%/packages/mail.scm				\
   %D%/packages/make-bootstrap.scm		\
-  %D%/packages/markdown.scm			\
+  %D%/packages/markup.scm			\
   %D%/packages/marst.scm			\
   %D%/packages/mate.scm             \
   %D%/packages/maths.scm			\
@@ -504,7 +504,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/agg-am_c_prototype.patch			\
   %D%/packages/patches/antiword-CVE-2014-8123.patch			\
   %D%/packages/patches/apr-skip-getservbyname-test.patch	\
-  %D%/packages/patches/artanis-fix-Makefile.in.patch		\
   %D%/packages/patches/aspell-default-dict-dir.patch		\
   %D%/packages/patches/ath9k-htc-firmware-binutils.patch	\
   %D%/packages/patches/ath9k-htc-firmware-gcc.patch		\
@@ -945,6 +944,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/qtscript-disable-tests.patch		\
   %D%/packages/patches/quickswitch-fix-dmenu-check.patch	\
   %D%/packages/patches/rapicorn-isnan.patch			\
+  %D%/packages/patches/raptor2-heap-overflow.patch		\
   %D%/packages/patches/ratpoison-shell.patch			\
   %D%/packages/patches/rcs-5.9.4-noreturn.patch			\
   %D%/packages/patches/readline-link-ncurses.patch		\
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 6984f10742..2aa65d5880 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -93,7 +93,7 @@ systems in a FITS image header.")
 (define-public gnuastro
   (package
     (name "gnuastro")
-    (version "0.2")
+    (version "0.3")
     (source
      (origin
        (method url-fetch)
@@ -101,7 +101,7 @@ systems in a FITS image header.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "0099g7zqg1gr9y94ybhyjgx9pkn9zv4rj1xb00fkybfw8w6ij9iv"))))
+         "109xjwbs36gbkx5sd5yzf6ailfcldc5d28vl1n19z0ylfzww4nwa"))))
     (inputs
      `(("cfitsio" ,cfitsio)
        ("gsl" ,gsl)
@@ -109,7 +109,7 @@ systems in a FITS image header.")
        ("wcslib" ,wcslib)))
     (build-system gnu-build-system)
     (home-page "https://www.gnu.org/software/gnuastro/")
-    (synopsis "Astronomical data manipulation programs")
+    (synopsis "Astronomy utilities")
     (description "The GNU Astronomy Utilities (Gnuastro) is a suite of
 programs for the manipulation and analysis of astronomical data.")
     (license license:gpl3+)))
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index a5c28afc6e..b47f136935 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -85,6 +85,7 @@
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages statistics)
+  #:use-module (gnu packages swig)
   #:use-module (gnu packages tbb)
   #:use-module (gnu packages tex)
   #:use-module (gnu packages texinfo)
@@ -2093,7 +2094,7 @@ identify enrichments with functional annotations of the genome.")
 (define-public diamond
   (package
     (name "diamond")
-    (version "0.9.3")
+    (version "0.9.6")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2102,7 +2103,7 @@ identify enrichments with functional annotations of the genome.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1fs5ilvda50vfdg9wll35w8hcpq3jlkp8q2kim4llkwljkj8bls3"))))
+                "1y8a10b695pvgn7kk2s87jdwbdf7iszpnr6139pw8ina1ajs4w8y"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f ; no "check" target
@@ -9223,3 +9224,311 @@ working with SAM and BAM files.  Current parallelised functionality is
 an important subset of samtools functionality, including view, index,
 sort, markdup, and depth.")
     (license license:gpl2+)))
+
+(define-public ritornello
+  (package
+    (name "ritornello")
+    (version "1.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/KlugerLab/"
+                                  "Ritornello/archive/v"
+                                  version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "02nik86gq9ljjriv6pamwlmqnfky3ads1fpklx6mc3hx6k40pg38"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; there are no tests
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-samtools-references
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* '("src/SamStream.h"
+                            "src/BufferedGenomeReader.h")
+               (("<sam.h>") "<samtools/sam.h>"))
+             #t))
+         (delete 'configure)
+         (replace 'install
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out    (assoc-ref outputs "out"))
+                    (bin    (string-append out "/bin/")))
+               (mkdir-p bin)
+               (install-file "bin/Ritornello" bin)
+               #t))))))
+    (inputs
+     `(("samtools" ,samtools-0.1)
+       ("fftw" ,fftw)
+       ("boost" ,boost)
+       ("zlib" ,zlib)))
+    (home-page "https://github.com/KlugerLab/Ritornello")
+    (synopsis "Control-free peak caller for ChIP-seq data")
+    (description "Ritornello is a ChIP-seq peak calling algorithm based on
+signal processing that can accurately call binding events without the need to
+do a pair total DNA input or IgG control sample.  It has been tested for use
+with narrow binding events such as transcription factor ChIP-seq.")
+    (license license:gpl3+)))
+
+(define-public trim-galore
+  (package
+    (name "trim-galore")
+    (version "0.4.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://www.bioinformatics.babraham.ac.uk/"
+                           "projects/trim_galore/trim_galore_v"
+                           version ".zip"))
+       (sha256
+        (base32
+         "0b9qdxi4521gsrjvbhgky8g7kry9b5nx3byzaxkgxz7p4k8bn1mn"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; no tests
+       #:phases
+       (modify-phases %standard-phases
+         ;; The archive contains plain files.
+         (replace 'unpack
+           (lambda* (#:key source #:allow-other-keys)
+             (zero? (system* "unzip" source))))
+         (delete 'configure)
+         (delete 'build)
+         (add-after 'unpack 'hardcode-tool-references
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "trim_galore"
+               (("\\$path_to_cutadapt = 'cutadapt'")
+                (string-append "$path_to_cutadapt = '"
+                               (assoc-ref inputs "cutadapt")
+                               "/bin/cutadapt'"))
+               (("\\| gzip")
+                (string-append "| "
+                               (assoc-ref inputs "gzip")
+                               "/bin/gzip"))
+               (("\"gunzip")
+                (string-append "\""
+                               (assoc-ref inputs "gzip")
+                               "/bin/gunzip")))
+             #t))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((bin (string-append (assoc-ref outputs "out")
+                                       "/bin")))
+               (mkdir-p bin)
+               (install-file "trim_galore" bin)
+               #t))))))
+    (inputs
+     `(("gzip" ,gzip)
+       ("perl" ,perl)
+       ("cutadapt" ,cutadapt)))
+    (native-inputs
+     `(("unzip" ,unzip)))
+    (home-page "http://www.bioinformatics.babraham.ac.uk/projects/trim_galore/")
+    (synopsis "Wrapper around Cutadapt and FastQC")
+    (description "Trim Galore! is a wrapper script to automate quality and
+adapter trimming as well as quality control, with some added functionality to
+remove biased methylation positions for RRBS sequence files.")
+    (license license:gpl3+)))
+
+(define-public gess
+  (package
+    (name "gess")
+    (version "1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://compbio.uthscsa.edu/"
+                                  "GESS_Web/files/"
+                                  "gess-" version ".src.tar.gz"))
+              (sha256
+               (base32
+                "0hyk403kxscclzfs24pvdgiv0wm03kjcziqdrp5w46cb049gz0d7"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; no tests
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (delete 'build)
+         (replace 'install
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((python (assoc-ref inputs "python"))
+                    (out    (assoc-ref outputs "out"))
+                    (bin    (string-append out "/bin/"))
+                    (target (string-append
+                             out "/lib/python2.7/site-packages/gess/")))
+               (mkdir-p target)
+               (copy-recursively "." target)
+               ;; Make GESS.py executable
+               (chmod (string-append target "GESS.py") #o555)
+               ;; Add Python shebang to the top and make Matplotlib
+               ;; usable.
+               (substitute* (string-append target "GESS.py")
+                 (("\"\"\"Description:" line)
+                  (string-append "#!" (which "python") "
+import matplotlib
+matplotlib.use('Agg')
+" line)))
+               ;; Make sure GESS has all modules in its path
+               (wrap-program (string-append target "GESS.py")
+                 `("PYTHONPATH" ":" prefix (,target ,(getenv "PYTHONPATH"))))
+               (mkdir-p bin)
+               (symlink (string-append target "GESS.py")
+                        (string-append bin "GESS.py"))
+               #t))))))
+    (inputs
+     `(("python" ,python-2)
+       ("python2-pysam" ,python2-pysam)
+       ("python2-scipy" ,python2-scipy)
+       ("python2-numpy" ,python2-numpy)
+       ("python2-networkx" ,python2-networkx)
+       ("python2-biopython" ,python2-biopython)))
+    (home-page "http://compbio.uthscsa.edu/GESS_Web/")
+    (synopsis "Detect exon-skipping events from raw RNA-seq data")
+    (description
+     "GESS is an implementation of a novel computational method to detect de
+novo exon-skipping events directly from raw RNA-seq data without the prior
+knowledge of gene annotation information.  GESS stands for the graph-based
+exon-skipping scanner detection scheme.")
+    (license license:bsd-3)))
+
+(define-public phylip
+  (package
+    (name "phylip")
+    (version "3.696")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://evolution.gs.washington.edu/phylip/"
+                           "download/phylip-" version ".tar.gz"))
+       (sha256
+        (base32
+         "01jar1rayhr2gba2pgbw49m56rc5z4p5wn3ds0m188hrlln4a2nd"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; no check target
+       #:make-flags (list "-f" "Makefile.unx" "install")
+       #:parallel-build? #f             ; not supported
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'enter-dir
+           (lambda _ (chdir "src") #t))
+         (delete 'configure)
+         (replace 'install
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((target (string-append (assoc-ref outputs "out")
+                                          "/bin")))
+               (mkdir-p target)
+               (for-each (lambda (file)
+                           (install-file file target))
+                         (find-files "../exe" ".*")))
+             #t)))))
+    (home-page "http://evolution.genetics.washington.edu/phylip/")
+    (synopsis "Tools for inferring phylogenies")
+    (description "PHYLIP (the PHYLogeny Inference Package) is a package of
+programs for inferring phylogenies (evolutionary trees).")
+    (license license:bsd-2)))
+
+(define-public imp
+  (package
+    (name "imp")
+    (version "2.6.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://integrativemodeling.org/"
+                           version "/download/imp-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0lxqx7vh79d771svr611dkilp6sn30qrbw8zvscbrm37v38d2j6h"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(;; FIXME: Some tests fail because they produce warnings, others fail
+       ;; because the PYTHONPATH does not include the modeller's directory.
+       #:tests? #f
+       ;; Do not place libraries in an architecture-specific directory.
+       #:configure-flags
+       (list "-DCMAKE_INSTALL_LIBDIR=lib")))
+    (inputs
+     `(("boost" ,boost)
+       ("gsl" ,gsl)
+       ("swig" ,swig)
+       ("hdf5" ,hdf5)
+       ("fftw" ,fftw)
+       ("python" ,python-2)))
+    (propagated-inputs
+     `(("python2-numpy" ,python2-numpy)
+       ("python2-scipy" ,python2-scipy)
+       ("python2-pandas" ,python2-pandas)
+       ("python2-scikit-learn" ,python2-scikit-learn)
+       ("python2-networkx" ,python2-networkx)))
+    (home-page "https://integrativemodeling.org")
+    (synopsis "Integrative modeling platform")
+    (description "IMP's broad goal is to contribute to a comprehensive
+structural characterization of biomolecules ranging in size and complexity
+from small peptides to large macromolecular assemblies, by integrating data
+from diverse biochemical and biophysical experiments.  IMP provides a C++ and
+Python toolbox for solving complex modeling problems, and a number of
+applications for tackling some common problems in a user-friendly way.")
+    ;; IMP is largely available under the GNU Lesser GPL; see the file
+    ;; COPYING.LGPL for the full text of this license. Some IMP modules are
+    ;; available under the GNU GPL (see the file COPYING.GPL).
+    (license (list license:lgpl2.1+
+                   license:gpl3+))))
+
+(define-public tadbit
+  (package
+    (name "tadbit")
+    (version "0.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/3DGenomes/TADbit/"
+                                  "archive/v" version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1cnfqrl4685zar4nnw94j94nhvl2h29jm448nadqi1h05z6fdk4f"))))
+    (build-system python-build-system)
+    (arguments
+     `(;; Tests are included and must be run after installation, but
+       ;; they are incomplete and thus cannot be run.
+       #:tests? #f
+       #:python ,python-2
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-problems-with-setup.py
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; setup.py opens these files for writing
+             (chmod "_pytadbit/_version.py" #o664)
+             (chmod "README.rst" #o664)
+
+             ;; Don't attempt to install the bash completions to
+             ;; the home directory.
+             (rename-file "extras/.bash_completion"
+                          "extras/tadbit")
+             (substitute* "setup.py"
+               (("\\(path.expanduser\\('~'\\)")
+                (string-append "(\""
+                               (assoc-ref outputs "out")
+                               "/etc/bash_completion.d\""))
+               (("extras/\\.bash_completion")
+                "extras/tadbit"))
+             #t)))))
+    (inputs
+     ;; TODO: add Chimera for visualization
+     `(("imp" ,imp)
+       ("mcl" ,mcl)
+       ("python2-scipy" ,python2-scipy)
+       ("python2-numpy" ,python2-numpy)
+       ("python2-matplotlib" ,python2-matplotlib)
+       ("python2-pysam" ,python2-pysam)))
+    (home-page "http://3dgenomes.github.io/TADbit/")
+    (synopsis "Analyze, model, and explore 3C-based data")
+    (description
+     "TADbit is a complete Python library to deal with all steps to analyze,
+model, and explore 3C-based data.  With TADbit the user can map FASTQ files to
+obtain raw interaction binned matrices (Hi-C like matrices), normalize and
+correct interaction matrices, identify adn compare the so-called
+@dfn{Topologically Associating Domains} (TADs), build 3D models from the
+interaction matrices, and finally, extract structural properties from the
+models.  TADbit is complemented by TADkit for visualizing 3D models.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index 1576c23b35..6f25b7cd82 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -191,7 +192,7 @@ COCOMO model or user-provided parameters.")
 (define-public the-silver-searcher
   (package
     (name "the-silver-searcher")
-    (version "1.0.2")
+    (version "2.0.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -199,7 +200,7 @@ COCOMO model or user-provided parameters.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "0v54himv65w294l0k4lhdyc6kvpgijn8b9g5356479fzy7hphjkg"))))
+                "04wm3r5p2mgv8mdkvysak0d5199h5y0yzl032624brfxpzmqfcq0"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 987aaf4226..a4cb4a0b3a 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -4814,7 +4814,8 @@ Emacs.")
                           ;; determined by emacs' standard initialization
                           ;; procedure
                           (list ""))))
-                 #t))))))
+                 #t))))
+         #:include (cons* "^reporters/.*\\.el$" %default-include)))
       (home-page "https://github.com/rejeep/ert-runner.el")
       (synopsis "Opinionated Ert testing workflow")
       (description "@code{ert-runner} is a tool for Emacs projects tested
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 9153a2b5cf..a76ab1ddc2 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -959,7 +959,7 @@ match, cannon keep, and grave-itation pit.")
 (define minetest-data
   (package
     (name "minetest-data")
-    (version "0.4.15")
+    (version "0.4.16")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -968,7 +968,7 @@ match, cannon keep, and grave-itation pit.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "12kxklcd1b5n0f369zf3xxhvkrizxj4d9xv0dh8crfqiymaym0zm"))))
+                "0nibpm600rbv9dg1zgcsl5grlbqx0b5l6cg1lp6sqkwvjialb4ga"))))
     (build-system trivial-build-system)
     (native-inputs
      `(("source" ,source)
@@ -1000,7 +1000,7 @@ match, cannon keep, and grave-itation pit.")
 (define-public minetest
   (package
     (name "minetest")
-    (version "0.4.15")
+    (version "0.4.16")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1009,7 +1009,7 @@ match, cannon keep, and grave-itation pit.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1ag3jcj7kpq3ph12zirk1c0mj9i0g50wmw932f8gi11liq8yd12n"))))
+                "0mbnf1ma4gsw9ah68ply04059xkfx5psdxwalxp78sgmx4ypkwqf"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags
@@ -4035,7 +4035,7 @@ fish.  The whole game is accompanied by quiet, comforting music.")
 (define-public crawl
   (package
     (name "crawl")
-    (version "0.19.5")
+    (version "0.20.0")
     (source
      (origin
        (method url-fetch)
@@ -4049,7 +4049,7 @@ fish.  The whole game is accompanied by quiet, comforting music.")
                             version "-nodeps.tar.xz")))
        (sha256
         (base32
-         "00yl2lb2shglxlxzpyk99zvglfx4amjybqwnzdcasvbiggb4cj18"))))
+         "0127dgldij2h4m7cf32yy9ndv4vcz03g4km71lmxrsi5mw7ljgpd"))))
     (build-system gnu-build-system)
     (inputs
      `(("lua51" ,lua-5.1)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index ebf598d9c7..7dca113fe0 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2634,6 +2634,7 @@ output devices.")
                          (("/bin/true") (which "true"))))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
+       ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)))
     (inputs
      `(("avahi" ,avahi)
@@ -5110,6 +5111,10 @@ properties, screen resolution, and other GNOME parameters.")
        ("startup-notification" ,startup-notification)
        ("telepathy-logger" ,telepathy-logger)
        ("upower" ,upower)
+       ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
+       ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
+       ("librsvg" ,librsvg)
+       ("geoclue" ,geoclue)
        ;; XXX: required by libgjs.la.
        ("readline" ,readline)))
     (synopsis "Desktop shell for GNOME")
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index bcfbe65aec..e4629d90d6 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -239,7 +239,8 @@ without requiring the source code to be rewritten.")
               (snippet '(for-each delete-file
                                   (find-files "prebuilt" "\\.go$")))))
     (properties '((timeout . 72000)               ;20 hours
-                  (max-silent-time . 10800)))     ;3 hours (needed on ARM)
+                  (max-silent-time . 21600)))     ;6 hours (needed on ARM
+                                                  ;  when heavily loaded)
     (native-search-paths
      (list (search-path-specification
             (variable "GUILE_LOAD_PATH")
@@ -393,18 +394,17 @@ program can be installed in one go.")
 (define-public artanis
   (package
     (name "artanis")
-    (version "0.1.2")
+    (version "0.2.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "ftp://alpha.gnu.org/gnu/artanis/artanis-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "19m3ak12cqk8js9d2mdg11kh4fjsq8frfpd10qw75h0zpr5cywpp"))
-              (patches (search-patches "artanis-fix-Makefile.in.patch"))))
+                "041ajcg2pz918kd9iqcj4inpzddc3impvz3r2nhlpbv8zrz011hn"))))
     (build-system gnu-build-system)
     ;; TODO: Add guile-dbi and guile-dbd optional dependencies.
-    (inputs `(("guile" ,guile-2.0)))
+    (inputs `(("guile" ,guile-2.2)))
     (native-inputs `(("bash"       ,bash)         ;for the `source' builtin
                      ("pkgconfig"  ,pkg-config)
                      ("util-linux" ,util-linux))) ;for the `script' command
@@ -412,15 +412,15 @@ program can be installed in one go.")
      '(#:make-flags
        ;; TODO: The documentation must be built with the `docs' target.
        (let* ((out (assoc-ref %outputs "out"))
-              (dir (string-append out "/share/guile/site/2.0")))
+              (scm (string-append out "/share/guile/site/2.2"))
+              (go  (string-append out "/lib/guile/2.2/site-ccache")))
          ;; Don't use (%site-dir) for site paths.
-         (list (string-append "MOD_PATH=" dir)
-               (string-append "MOD_COMPILED_PATH=" dir)))
+         (list (string-append "MOD_PATH=" scm)
+               (string-append "MOD_COMPILED_PATH=" go)))
        #:test-target "test"
        #:phases
        (modify-phases %standard-phases
-         (add-before
-          'install 'substitute-root-dir
+         (add-before 'install 'substitute-root-dir
           (lambda* (#:key outputs #:allow-other-keys)
             (let ((out  (assoc-ref outputs "out")))
               (substitute* "Makefile"   ;ignore the execution of bash.bashrc
@@ -428,7 +428,17 @@ program can be installed in one go.")
               (substitute* "Makefile"   ;set the root of config files to OUT
                 ((" /etc") (string-append " " out "/etc")))
               (mkdir-p (string-append out "/bin")) ;for the `art' executable
-              #t))))))
+              #t)))
+         (add-after 'install 'wrap-art
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (scm (string-append out "/share/guile/site/2.2"))
+                    (go  (string-append out "/lib/guile/2.2/site-ccache")))
+               (wrap-program (string-append bin "/art")
+                 `("GUILE_LOAD_PATH" ":" prefix (,scm))
+                 `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,go)))
+               #t))))))
     (synopsis "Web application framework written in Guile")
     (description "GNU Artanis is a web application framework written in Guile
 Scheme.  A web application framework (WAF) is a software framework that is
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 07943e1e5e..8fe71d5b5d 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -43,8 +43,11 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages graphics)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages kerberos)
+  #:use-module (gnu packages libreoffice)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages mp3)
   #:use-module (gnu packages pdf)
@@ -120,6 +123,8 @@ common build settings used in software produced by the KDE community.")
                 "177647r2jqfm32hqcz2nqfqv6v48hn5ab2vc31svba2wz23fkgk7"))))
     (build-system cmake-build-system)
     (native-inputs
+     ;; TODO: Add qttools to build the Qt Designer plugin.
+     ;; TODO: Think about adding pulseaudio. Is it required for sound?
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
      `(("qtbase" ,qtbase)))
@@ -202,7 +207,8 @@ Phonon-GStreamer is a backend based on the GStreamer multimedia library.")
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "C++ bindings/wrapper for gpgme")
     (description "C++ bindings/wrapper for gpgme.")
-    (license license:lgpl2.1+)))
+    (license license:lgpl2.1+)
+    (properties `((superseded . ,gpgme)))))
 
 (define-public kpmcore
   (package
@@ -292,6 +298,7 @@ http://freedesktop.org/wiki/Specifications/open-collaboration-services/")
      `(("dbus" ,dbus)
        ("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
+     ;; TODO: qtdeclarative (yields one failing test)
      `(("qtbase" ,qtbase)))
     (arguments
      `(#:configure-flags
@@ -639,11 +646,16 @@ infrastructure.")
                (base32
                 "1nmlwvy2jdmh0m6bmahvk68vl2rs9s28c10dkncpi6gvhsdkigqx"))))
     (build-system cmake-build-system)
+    ;; TODO: Build packages for the Python bindings.  Ideally this will be
+    ;; done for all versions of python guix supports.  Requires python,
+    ;; python-sip, clang-python, libclang.  Requires python-2 in all cases for
+    ;; clang-python.
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("xorg-server" ,xorg-server)))
+       ("pkg-config" ,pkg-config)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase)
+       ("qtx11extras" ,qtx11extras)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -743,19 +755,17 @@ or user activity.")
                 "1liq1ppa7xb1dcncv25c2a0xy3l9bvb2a56cff90c0b0vwr239q5"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("xorg-server" ,xorg-server)))
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase)
+       ("qtdeclarative" ,qtdeclarative)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-before 'check 'start-xorg-server
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; The test suite requires a running X server.
-             (system (string-append (assoc-ref inputs "xorg-server")
-                                    "/bin/Xvfb :1 &"))
-             (setenv "DISPLAY" ":1")
+         (add-before 'check 'check-setup
+           (lambda _
+             ;; make Qt render "offscreen", required for tests
+             (setenv "QT_QPA_PLATFORM" "offscreen")
              #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Set of item models extending the Qt model-view framework")
@@ -805,8 +815,7 @@ model to observers
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)
-       ("xorg-server" ,xorg-server)))
+       ("qttools" ,qttools)))
     (inputs
      `(("qtbase" ,qtbase)))
     (arguments
@@ -815,13 +824,8 @@ model to observers
          (add-before 'check 'check-setup
            (lambda _
              (setenv "DBUS_FATAL_WARNINGS" "0")
-             #t))
-         (add-before 'check 'start-xorg-server
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; The test suite requires a running X server.
-             (system (string-append (assoc-ref inputs "xorg-server")
-                                    "/bin/Xvfb :1 &"))
-             (setenv "DISPLAY" ":1")
+             ;; make Qt render "offscreen", required for tests
+             (setenv "QT_QPA_PLATFORM" "offscreen")
              #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Set of item views extending the Qt model-view framework")
@@ -845,19 +849,16 @@ to flat and hierarchical lists.")
                 "1ffy9b08128ym024wlfgnzk52vpy0mbaa91dhndpr40qcz0i67sh"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("xorg-server" ,xorg-server)))
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
      `(("qtbase" ,qtbase)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-before 'check 'start-xorg-server
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; The test suite requires a running X server.
-             (system (string-append (assoc-ref inputs "xorg-server")
-                                    "/bin/Xvfb :1 &"))
-             (setenv "DISPLAY" ":1")
+         (add-before 'check 'check-setup
+           (lambda _ ; kplotting
+             ;; make Qt render "offscreen", required for tests
+             (setenv "QT_QPA_PLATFORM" "offscreen")
              #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Data plotting library")
@@ -976,8 +977,7 @@ represented by a QPoint or a QSize.")
     (inputs
      `(("qtbase" ,qtbase)))
     (arguments
-     `(#:tests? #f ; FIXME: Regression after update to qt 5.7
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-before 'check 'check-setup
            (lambda _
@@ -1020,6 +1020,7 @@ configuration pages, message boxes, and password requests.")
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("pkg-config" ,pkg-config)
+       ("dbus" ,dbus) ; for the tests
        ("qttools" ,qttools)
        ("xorg-server" ,xorg-server))) ; for the tests
     (inputs
@@ -1028,7 +1029,31 @@ configuration pages, message boxes, and password requests.")
        ("qtx11extras" ,qtx11extras)
        ("xcb-utils-keysyms" ,xcb-util-keysyms)))
     (arguments
-     `(#:tests? #f)) ; FIXME: 8/10 tests fail.
+     `(#:tests? #f ; FIXME: 3/12 tests fail.
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'check)
+         (add-after 'install 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             ;; TODO: Simplify and use "common" phases when test-suite passes
+             (if tests?
+                 (begin
+                   (let ((out (assoc-ref outputs "out")))
+                     (setenv "QT_PLUGIN_PATH"
+                             (string-append out "/lib/plugins:"
+                                            (getenv "QT_PLUGIN_PATH"))))
+                   ;; The test suite requires a running X server, setting
+                   ;; QT_QPA_PLATFORM=offscreen does not suffice and even make
+                   ;; some tests fail.
+                   (system (string-append (assoc-ref inputs "xorg-server")
+                                          "/bin/Xvfb :1 -screen 0 640x480x24 &"))
+                   (setenv "DISPLAY" ":1")
+                   (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
+                   (setenv "DBUS_FATAL_WARNINGS" "0")
+                   (zero? (system* "dbus-launch" "ctest" ".")))
+                 (begin
+                   (format #t "test suite not run~%")
+                   #t)))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "KDE access to the windowing system")
     (description "KWindowSystem provides information about and allows
@@ -1175,6 +1200,7 @@ which are used in DBus communication.")
     (inputs
      `(("qtbase" ,qtbase)
        ("udev" ,eudev)))
+    ;; TODO: Add runtime-only dependency MediaPlayerInfo
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Desktop hardware abstraction")
     (description "Solid is a device integration framework.  It provides a way of
@@ -1200,7 +1226,9 @@ system.")
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("qttools" ,qttools)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("hunspell" ,hunspell)
+       ;; TODO: hspell (for Hebrew), Voikko (for Finish)
+       ("qtbase" ,qtbase)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Multi-language spell checker")
     (description "Sonnet is a plugin-based spell checking library for Qt-based
@@ -1301,8 +1329,7 @@ utilities.")
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("qttools" ,qttools)
-       ("xorg-server" ,xorg-server)))
+       ("qttools" ,qttools)))
     (inputs
      `(("kconfig" ,kconfig)
        ("kwidgetsaddons" ,kwidgetsaddons)
@@ -1337,8 +1364,7 @@ integrated it into your application's other widgets.")
                 "1cshay7dhbqgh62nq85vd9sm20gq9s9f70mdnzjjh1q7cajybkp3"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("xorg-server" ,xorg-server)))
+     `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
      `(("kcoreaddons" ,kcoreaddons)
        ("kwindowsystem" ,kwindowsystem)
@@ -1347,12 +1373,10 @@ integrated it into your application's other widgets.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-before 'check 'start-xorg-server
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; The test suite requires a running X server.
-             (system "Xvfb :1 &")
-             (sleep 2)              ;XXX: give the server enough time to start
-             (setenv "DISPLAY" ":1")
+         (add-before 'check 'check-setup
+           (lambda _
+             ;; make Qt render "offscreen", required for tests
+             (setenv "QT_QPA_PLATFORM" "offscreen")
              #t)))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Graceful handling of application crashes")
@@ -1476,19 +1500,26 @@ by applications to write metadata.")
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("xorg-server" ,xorg-server)))
+       ("pkg-config" ,pkg-config)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("karchive" ,karchive) ; for Krita and OpenRaster images
+       ("openexr" ,openexr) ; for OpenEXR high dynamic-range images
+       ("qtbase" ,qtbase)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-before 'check 'start-xorg-server
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; The test suite requires a running X server.
-             (system (string-append (assoc-ref inputs "xorg-server")
-                                    "/bin/Xvfb :1 &"))
-             (setenv "DISPLAY" ":1")
-             #t)))))
+         (add-before 'check 'check-setup
+           (lambda _
+             ;; make Qt render "offscreen", required for tests
+             (setenv "QT_QPA_PLATFORM" "offscreen")
+             #t)))
+       ;; FIXME: The header files of ilmbase (propagated by openexr) are not
+       ;; found when included by the header files of openexr, and an explicit
+       ;; flag needs to be set.
+       #:configure-flags
+       (list (string-append "-DCMAKE_CXX_FLAGS=-I"
+                            (assoc-ref %build-inputs "ilmbase")
+                            "/include/OpenEXR"))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Plugins to allow QImage to support extra file formats")
     (description "This framework provides additional image format plugins for
@@ -1550,6 +1581,9 @@ asynchronous jobs.")
        ("kwindowsystem" ,kwindowsystem)
        ("phonon" ,phonon)
        ("qtbase" ,qtbase)
+       ;; TODO: qtspeech (new in Qt 5.9)
+       ;; TODO: Think about adding dbusmenu-qt5 from
+       ;; https://launchpad.net/libdbusmenu-qt
        ("qtx11extras" ,qtx11extras)))
     (arguments
      `(#:phases
@@ -1588,10 +1622,11 @@ covers feedback and persistent events.")
      `(("karchive" ,karchive)
        ("kconfig" ,kconfig)
        ("kcoreaddons" ,kcoreaddons)
+       ("kdoctools" ,kdoctools)
        ("ki18n" ,ki18n)
        ("qtbase" ,qtbase)))
     (arguments
-     `(#:tests? #f ; FIXME: 1/4 tests fail.
+     `(#:tests? #f ; FIXME: 3/9 tests fail.
        #:phases
        (modify-phases %standard-phases
          (add-before 'check 'check-setup
@@ -1624,6 +1659,7 @@ were traditional plugins.")
     (inputs
      `(("kcoreaddons" ,kcoreaddons)
        ("ki18n" ,ki18n)
+       ;; TODO: utempter, for managing UTMP entries
        ("qtbase" ,qtbase)))
     (arguments
      `(#:tests? #f ; FIXME: 1/1 tests fail.
@@ -1989,7 +2025,8 @@ their settings.")
        (modify-phases %standard-phases
          (add-before 'check 'start-xorg-server
            (lambda* (#:key inputs #:allow-other-keys)
-             ;; The test suite requires a running X server.
+             ;; The test suite requires a running X server, setting
+             ;; QT_QPA_PLATFORM=offscreen does not suffice.
              (system (string-append (assoc-ref inputs "xorg-server")
                                     "/bin/Xvfb :1 -screen 0 640x480x24 &"))
              (setenv "DISPLAY" ":1")
@@ -2219,8 +2256,7 @@ window does not need focus for them to be activated.")
        ("qtbase" ,qtbase)
        ("qtsvg" ,qtsvg)))
     (arguments
-     `(#:tests? #f ; FIXME: Test failure
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-before 'check 'check-setup
            (lambda* (#:key inputs #:allow-other-keys)
@@ -2252,7 +2288,8 @@ in applications using the KDE Frameworks.")
                 "08429kjihpaip73wszr3rsii8sdlwgm3kxx7g0hpjhkj9d2jq3m1"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("kauth" ,kauth)
        ("kbookmarks" ,kbookmarks)
@@ -2262,6 +2299,7 @@ in applications using the KDE Frameworks.")
        ("kconfigwidgets" ,kconfigwidgets)
        ("kcoreaddons" ,kcoreaddons)
        ("kcrash" ,kcrash)
+       ("kdoctools" ,kdoctools)
        ("kio" ,kio)
        ("kitemviews" ,kitemviews)
        ("ki18n" ,ki18n)
@@ -2270,6 +2308,7 @@ in applications using the KDE Frameworks.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kwindowsystem" ,kwindowsystem)
        ("kxmlgui" ,kxmlgui)
+       ("libcap" ,libcap) ; to install start_kdeinit with CAP_SYS_RESOURCE
        ("qtbase" ,qtbase)
        ("solid" ,solid)))
     (home-page "https://community.kde.org/Frameworks")
@@ -2310,6 +2349,7 @@ makes starting KDE applications faster and reduces memory consumption.")
        ("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
      `(("acl" ,acl)
+       ("krb5" ,mit-krb5)
        ("karchive" ,karchive)
        ("kauth" ,kauth)
        ("kcodecs" ,kcodecs)
@@ -2326,6 +2366,7 @@ makes starting KDE applications faster and reduces memory consumption.")
        ("libxml2" ,libxml2)
        ("libxslt" ,libxslt)
        ("qtbase" ,qtbase)
+       ("qtscript" ,qtscript)
        ("qtx11extras" ,qtx11extras)
        ("sonnet" ,sonnet)))
     (arguments
@@ -2664,9 +2705,11 @@ types or handled by application specific code.")
     (propagated-inputs
      `(("kparts" ,kparts)))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("pkg-config" ,pkg-config)))
     (inputs
-     `(("karchive" ,karchive)
+     `(;; TODO: editor-config
+       ("karchive" ,karchive)
        ("kauth" ,kauth)
        ("kbookmarks" ,kbookmarks)
        ("kcodecs" ,kcodecs)
@@ -2745,6 +2788,7 @@ library.")
        ("kservice" ,kservice)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kwindowsystem" ,kwindowsystem)
+       ;; TODO: qtspeech (new in Qt 5.9)
        ("qtbase" ,qtbase)))
     (arguments
      `(#:phases
@@ -2778,7 +2822,7 @@ It supports rich text as well as plain text.")
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
-     `(("gpgmepp" ,gpgmepp)
+     `(("gpgme" ,gpgme) ;; TODO: Add gpgme Qt-bindings
        ("kauth" ,kauth)
        ("kcodecs" ,kcodecs)
        ("kconfig" ,kconfig)
@@ -2915,7 +2959,8 @@ setUrl, setUserAgent and call.")
      `(("kpackage" ,kpackage)
        ("kservice" ,kservice)))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)))
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("kactivities" ,kactivities)
        ("karchive" ,karchive)
@@ -2937,6 +2982,7 @@ setUrl, setUserAgent and call.")
        ("ki18n" ,ki18n)
        ("kjobwidgets" ,kjobwidgets)
        ("knotificantions" ,knotifications)
+       ("kwayland" ,kwayland)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kwindowsystem" ,kwindowsystem)
        ("kxmlgui" ,kxmlgui)
@@ -2947,7 +2993,7 @@ setUrl, setUserAgent and call.")
        ("qtx11extras" ,qtx11extras)
        ("solid" ,solid)))
     (arguments
-     `(#:tests? #f ; FIXME: 13/14 tests fail.
+     `(#:tests? #f ; FIXME: 9/15 tests fail.
        #:phases
        (modify-phases %standard-phases
          (add-before 'check 'check-setup
diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index b481bb98db..a5ad8da062 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -293,6 +293,8 @@ used in KDE development tools Kompare and KDevelop.")
        (modify-phases %standard-phases
          (add-before 'configure 'patch-cmakelists
            (lambda _
+             ;; TODO: Verify: This should no longer be necessary, since
+             ;; KF5AuthConfig.cmake.in contains this already.
              (substitute* "processcore/CMakeLists.txt"
                (("KAUTH_HELPER_INSTALL_DIR") "KDE_INSTALL_LIBEXECDIR"))))
          (replace 'check
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 1a4e25d12a..afddc8ed7a 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -72,6 +72,7 @@
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages man)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ninja)
@@ -357,8 +358,8 @@ It has been modified to remove all non-free binary blobs.")
 
 (define %intel-compatible-systems '("x86_64-linux" "i686-linux"))
 
-(define %linux-libre-version "4.11.3")
-(define %linux-libre-hash "14fbn9s7n86p5yivr4vmh4axdavny6xw1qk63cfwlcma7426wmva")
+(define %linux-libre-version "4.11.4")
+(define %linux-libre-hash "11nd9pv18vz3g82ja71dkz9mbs0ffb8yamsd44d381szmmm2kpj8")
 
 (define-public linux-libre
   (make-linux-libre %linux-libre-version
@@ -367,14 +368,14 @@ It has been modified to remove all non-free binary blobs.")
                     #:configuration-file kernel-config))
 
 (define-public linux-libre-4.9
-  (make-linux-libre "4.9.30"
-                    "1m1ii9n65lwkbwx0ifj13vgdfr0mnx8n7sfvhf5mn4r8krhxi77a"
+  (make-linux-libre "4.9.31"
+                    "0amc35c9f2rym6grb277yscnx8ybn8d4fbc2a59sgkg1lsdv7n4q"
                     %intel-compatible-systems
                     #:configuration-file kernel-config))
 
 (define-public linux-libre-4.4
-  (make-linux-libre "4.4.70"
-                    "1dvcj3mk42m91y1x41yh52frjdcwip1wj57qwlkmrpg02icr0b3s"
+  (make-linux-libre "4.4.71"
+                    "0nrd165crx9m9s1px98if6q5dcdqwmas9kh8i4rw51gz2xinh0gx"
                     %intel-compatible-systems
                     #:configuration-file kernel-config))
 
@@ -3850,6 +3851,36 @@ libnftnl has been previously known as libnftables.  This library is currently
 used by nftables.")
     (license license:gpl2+)))
 
+(define-public nftables
+  (package
+    (name "nftables")
+    (version "0.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://www.nftables.org/projects/nftables"
+                           "/files/nftables-" version ".tar.bz2"))
+       (sha256
+        (base32
+         "0hzdqigdx4i6jbpxbdyq4zy4p4waqn8l6vvz7685ikh1v0wr4qzy"))))
+    (build-system gnu-build-system)
+    (inputs `(("bison", bison)
+              ("flex", flex)
+              ("gmp", gmp)
+              ("libmnl", libmnl)
+              ("libnftnl", libnftnl)
+              ("readline", readline)))
+    (native-inputs `(("pkg-config", pkg-config)))
+    (home-page "http://www.nftables.org")
+    (synopsis "Userspace utility for Linux packet filtering")
+    (description "nftables is the project that aims to replace the existing
+{ip,ip6,arp,eb}tables framework.  Basically, this project provides a new packet
+filtering framework, a new userspace utility and also a compatibility layer for
+{ip,ip6}tables.  nftables is built upon the building blocks of the Netfilter
+infrastructure such as the existing hooks, the connection tracking system, the
+userspace queueing component and the logging subsystem.")
+    (license license:gpl2)))
+
 (define-public proot
   (package
     (name "proot")
diff --git a/gnu/packages/markdown.scm b/gnu/packages/markup.scm
index 4a020198e4..cd883b23ec 100644
--- a/gnu/packages/markdown.scm
+++ b/gnu/packages/markup.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017 ng0 <ng0@no-reply.pragmatique.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -18,7 +19,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 markdown)
+(define-module (gnu packages markup)
   #:use-module (guix licenses)
   #:use-module (guix download)
   #:use-module (guix packages)
@@ -130,3 +131,39 @@ for parsing and rendering CommonMark.")
     ;; licensed. The CommonMark specification is Creative Commons CC-BY-SA 4.0
     ;; licensed. See 'COPYING' in the source distribution for more information.
     (license (list bsd-2 expat cc-by-sa4.0))))
+
+(define-public smu
+  (package
+    (name "smu")
+    (version "1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/Gottox/smu/archive/v"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0iazl45rkz8ngsb5hpykl76w0ngvdvqqhym1qz5wykgmrzk293rp"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags (list "CC=gcc"
+                          (string-append "PREFIX="
+                                         (assoc-ref %outputs "out")))
+       #:tests? #f ;No tests included
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (home-page "https://github.com/Gottox/smu")
+    (synopsis "Simple markup")
+    (description
+     "Smu is a very simple and minimal markup language.  It is
+designed for using in wiki-like environments.  Smu makes it very
+easy to write your documents on the fly and convert them into HTML.
+Smu is capable to parse very large documents.  As long as you avoid an huge
+amount of indents it scales just great.
+
+Smu was started as a rewrite of Markdown but became something more
+lightweight and consistent.  The biggest difference between Markdown
+and smu is that smu doesn't support reference style links.")
+    (license x11)))
diff --git a/gnu/packages/patches/artanis-fix-Makefile.in.patch b/gnu/packages/patches/artanis-fix-Makefile.in.patch
deleted file mode 100644
index 7e4800d364..0000000000
--- a/gnu/packages/patches/artanis-fix-Makefile.in.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-Applies until an Artanis release comes with the following patches
-applied:
-* <https://savannah.gnu.org/patch/?func=detailitem&item_id=9130>
-* <https://savannah.gnu.org/patch/?func=detailitem&item_id=9131>
-diff -ru artanis-0.1.2/Makefile.in artanis-0.1.2.1/Makefile.in
---- artanis-0.1.2/Makefile.in	2016-02-10 12:35:18.800490571 -0200
-+++ artanis-0.1.2.1/Makefile.in	2016-10-15 19:44:35.140907367 -0300
-@@ -19,9 +19,18 @@
- MOD_OBJ := $(OBJ)/artanis
- BIN := bin
- TEMP_LIB_PATH := $(OBJ)
--MOD_PATH := $(shell guile -c "(display (%site-dir))")
- MOD_COMPILED_PATH := $(shell guile -c "(display (%site-ccache-dir))")
-+
-+ifdef DESTDIR
-+INFO_DIR := $(DESTDIR)/share/info/
-+MOD_PATH := $(DESTDIR)/$(shell guile -c "(display (%site-dir))")
- MOD_TARGET_PATH := $(DESTDIR)/$(MOD_COMPILED_PATH)
-+else
-+INFO_DIR := $(PREFIX)/share/info/
-+MOD_PATH := $(shell guile -c "(display (%site-dir))")
-+MOD_TARGET_PATH := $(MOD_COMPILED_PATH)
-+endif
-+
- GUILE_CFLAGS := -Wunsupported-warning -Wunbound-variable -Warity-mismatch -Wduplicate-case-datum -Wbad-case-datum -Wformat
- GUILEC := GUILE_LOAD_COMPILED_PATH=$(TEMP_LIB_PATH) guild compile $(GUILE_CFLAGS)
- ARTANIS_ETC := $(SRC)/etc/artanis
-@@ -36,7 +45,6 @@
- GENDOCS :=$(BUILD_AUX)/gendocs.sh
- CHK_TEXINFO := $(BUILD_AUX)/check_texinfo.scm
- CP := cp -frd -P
--INFO_DIR := $(PREFIX)/share/info/
- TARBALL_NAME := artanis-$(VERSION)
- TMP_DIR := $(shell mktemp -d)
- ANN_GEN := $(BUILD_AUX)/announce-gen
-@@ -124,18 +132,29 @@
- 	-rm -f config.{h,log}
- 
- install: $(ALL_TARGETS)
--	mkdir -p $(DESTDIR)/$(MOD_PATH)
--	$(CP) $(MOD) $(DESTDIR)/$(MOD_PATH)/
-+	mkdir -p $(MOD_PATH)
-+	$(CP) $(MOD) $(MOD_PATH)/
- 	mkdir -p $(MOD_TARGET_PATH)/
- 	$(CP) $(MOD_OBJ) $(MOD_TARGET_PATH)/
-+
-+ifdef DESTDIR
- 	$(CP) $(ARTANIS_ETC) $(DESTDIR)/etc/
- 	$(CP) $(ARTANIS_PAGES) $(DESTDIR)/etc/artanis/
--	mkdir -p $(DESTDIR)/$(PREFIX)/bin/
--	$(CP) $(BIN)/art $(DESTDIR)/$(PREFIX)/bin/
-+	mkdir -p $(DESTDIR)/bin/
-+	$(CP) $(BIN)/art $(DESTDIR)/bin/
- 	mkdir -p $(DESTDIR)/etc/bash_completion.d/
- 	$(CP) $(CMDCOMP) $(DESTDIR)/etc/bash_completion.d/
-+else
-+	$(CP) $(ARTANIS_ETC) $(PREFIX)/etc/
-+	$(CP) $(ARTANIS_PAGES) $(PREFIX)/etc/artanis/
-+	mkdir -p $(PREFIX)/bin/
-+	$(CP) $(BIN)/art $(PREFIX)/bin/
-+	mkdir -p $(PREFIX)/etc/bash_completion.d/
-+	$(CP) $(CMDCOMP) $(PREFIX)/etc/bash_completion.d/
-+endif
-+
- 	if [ -e /etc/bash.bashrc ]; then source /etc/bash.bashrc; fi
--	if [ -e artanis.info ]; then mkdir -p $(DESTDIR)/$(INFO_DIR); $(CP) artanis.info $(DESTDIR)/$(INFO_DIR)/; fi
-+	if [ -e artanis.info ]; then mkdir -p $(INFO_DIR); $(CP) artanis.info $(INFO_DIR)/; fi
- 
- distclean: distclean-mk clean clean-config clean-tarball
- 	-rm -f $(BIN)/art
diff --git a/gnu/packages/patches/raptor2-heap-overflow.patch b/gnu/packages/patches/raptor2-heap-overflow.patch
new file mode 100644
index 0000000000..ce2a4516f8
--- /dev/null
+++ b/gnu/packages/patches/raptor2-heap-overflow.patch
@@ -0,0 +1,51 @@
+This patch addresses two heap overflow bugs in raptor2:
+
+http://seclists.org/oss-sec/2017/q2/424
+
+Patch copied from libreoffice:
+
+https://github.com/LibreOffice/core/blob/master/external/redland/raptor/0001-Calcualte-max-nspace-declarations-correctly-for-XML-.patch.1
+
+From 590681e546cd9aa18d57dc2ea1858cb734a3863f Mon Sep 17 00:00:00 2001
+From: Dave Beckett <dave@dajobe.org>
+Date: Sun, 16 Apr 2017 23:15:12 +0100
+Subject: [PATCH] Calcualte max nspace declarations correctly for XML writer
+
+(raptor_xml_writer_start_element_common): Calculate max including for
+each attribute a potential name and value.
+
+Fixes Issues #0000617 http://bugs.librdf.org/mantis/view.php?id=617
+and #0000618 http://bugs.librdf.org/mantis/view.php?id=618
+---
+ src/raptor_xml_writer.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/src/raptor_xml_writer.c b/src/raptor_xml_writer.c
+index 693b946..0d3a36a 100644
+--- a/src/raptor_xml_writer.c
++++ b/src/raptor_xml_writer.c
+@@ -181,9 +181,10 @@ raptor_xml_writer_start_element_common(raptor_xml_writer* xml_writer,
+   size_t nspace_declarations_count = 0;  
+   unsigned int i;
+ 
+-  /* max is 1 per element and 1 for each attribute + size of declared */
+   if(nstack) {
+-    int nspace_max_count = element->attribute_count+1;
++    int nspace_max_count = element->attribute_count * 2; /* attr and value */
++    if(element->name->nspace)
++      nspace_max_count++;
+     if(element->declared_nspaces)
+       nspace_max_count += raptor_sequence_size(element->declared_nspaces);
+     if(element->xml_language)
+@@ -237,7 +238,7 @@ raptor_xml_writer_start_element_common(raptor_xml_writer* xml_writer,
+         }
+       }
+ 
+-      /* Add the attribute + value */
++      /* Add the attribute's value */
+       nspace_declarations[nspace_declarations_count].declaration=
+         raptor_qname_format_as_xml(element->attributes[i],
+                                    &nspace_declarations[nspace_declarations_count].length);
+-- 
+2.9.3
+
diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm
index 1b55cd4eb9..b6f64bc0ef 100644
--- a/gnu/packages/php.scm
+++ b/gnu/packages/php.scm
@@ -53,7 +53,7 @@
 (define-public php
   (package
     (name "php")
-    (version "7.1.5")
+    (version "7.1.6")
     (home-page "https://secure.php.net/")
     (source (origin
               (method url-fetch)
@@ -61,7 +61,7 @@
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1b7njiqgy66ga5c8wsm78mqqjr7lj3hlpwbbvksi2mn4jv1s6jfi"))
+                "0nr49gqhk4pv8kcdc60cl1mgwlinawpraq9ba15whzmb472lsn01"))
               (modules '((guix build utils)))
               (snippet
                '(with-directory-excursion "ext"
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 45fdca211c..88bcb9723e 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -533,26 +533,24 @@ John the Ripper).")
 (define-public python-paramiko
   (package
     (name "python-paramiko")
-    (version "1.17.4")
+    (version "2.1.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "paramiko" version))
        (sha256
         (base32
-         "1rs2qcmskcmq66q6g5al08wa41l9am0fad5r719m8wf91msyylqw"))))
+         "04734n0wy3hxk6rij4fr29in5jmr70nxpc7pqi2ksbjysfz4kbjz"))))
     (build-system python-build-system)
     (arguments
-     '(;; FIXME: One test fails with "EOFError not raised by connect".
-       #:tests? #f))
-       ;; #:phases
-       ;; (modify-phases %standard-phases
-       ;;   (replace 'check
-       ;;     (lambda _
-       ;;       (zero? (system* "python" "test.py")))))))
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             (zero? (system* "python" "test.py")))))))
     (propagated-inputs
-     `(("python-pycrypto" ,python-pycrypto)
-       ("python-ecdsa" ,python-ecdsa)))
+     `(("python-pyasn1" ,python-pyasn1)
+       ("python-cryptography" ,python-cryptography)))
     (home-page "http://www.paramiko.org/")
     (synopsis "SSHv2 protocol library")
     (description "Paramiko is a python implementation of the SSHv2 protocol,
diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm
index 7b7fe60855..6b5cfb013c 100644
--- a/gnu/packages/rdf.scm
+++ b/gnu/packages/rdf.scm
@@ -53,6 +53,8 @@
              (method url-fetch)
              (uri (string-append "http://download.librdf.org/source/" name
                                  "-" version ".tar.gz"))
+             (patches
+              (search-patches "raptor2-heap-overflow.patch"))
              (sha256
               (base32
                "1vc02im4mpc28zxzgli68k6j0dakh0k3s389bm436yvqajxg19xd"))))
diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index a6b5270199..6a3d8f900d 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -282,7 +282,7 @@ it a convenient format to store user input files.")
 (define-public capnproto
   (package
     (name "capnproto")
-    (version "0.6.0")
+    (version "0.6.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -290,7 +290,7 @@ it a convenient format to store user input files.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "0gpp1cxsb9nfd7qkjjykzknx03y0z0n4bq5q0fmxci7w38ci22g5"))))
+                "010s9yhq4531wvdfrdf2477zswhck6cjfby79w73rff3v06090l0"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 5e04e86539..41d1758250 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -503,11 +503,11 @@ Its features include:
 @end enumerate\n")
     (license bsd-2)))
 
-(define-public s
+(define-public s-shell
   (let ((commit "6604341edb3a775ff94415762af3ee9bd86bfb3c")
         (revision "1"))
     (package
-      (name "s")
+      (name "s-shell")
       (version (string-append "0.0.0-" revision "." (string-take commit 7)))
       (source
        (origin
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index b81bb42073..ae44bfb01f 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -5231,3 +5231,57 @@ devices that don't have Cairo's capabilities such as alpha support or
 anti-aliasing.  Backends are modular such that any subset of backends
 is supported.")
     (license license:gpl2)))
+
+(define-public r-lubridate
+  (package
+    (name "r-lubridate")
+    (version "1.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "lubridate" version))
+       (sha256
+        (base32
+         "0ci6rwij9i1inn840m0mlh1nqgh6vm2lada9kdnjpcjp5kyfv1qs"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-stringr" ,r-stringr)))
+    (home-page
+     "http://cran.r-project.org/web/packages/lubridate")
+    (synopsis "Make dealing with dates a little easier")
+    (description
+     "This package provides functions to work with date-times and time-spans:
+fast and user friendly parsing of date-time data, extraction and updating of
+components of a date-time (years, months, days, hours, minutes, and seconds),
+algebraic manipulation on date-time and time-span objects.  The 'lubridate'
+package has a consistent and memorable syntax that makes working with dates
+easy and fun.")
+    (license license:gpl2)))
+
+(define-public r-fdrtool
+  (package
+    (name "r-fdrtool")
+    (version "1.2.15")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "fdrtool" version))
+       (sha256
+        (base32
+         "1h46frlk7d9f4qx0bg6p55nrm9wwwz2sv6d1nz7061wdfsm69yb5"))))
+    (build-system r-build-system)
+    (home-page "http://strimmerlab.org/software/fdrtool/")
+    (synopsis "Estimation of false discovery rates and higher criticism")
+    (description
+     "This package provides tools to estimate both tail area-based false
+discovery rates (Fdr) as well as local false discovery rates (fdr) for a
+variety of null models (p-values, z-scores, correlation coefficients,
+t-scores).  The proportion of null values and the parameters of the null
+distribution are adaptively estimated from the data.  In addition, the package
+contains functions for non-parametric density estimation (Grenander
+estimator), for monotone regression (isotonic regression and antitonic
+regression with weights), for computing the greatest convex minorant (GCM) and
+the least concave majorant (LCM), for the half-normal and correlation
+distributions, and for computing empirical higher criticism (HC) scores and
+the corresponding decision threshold.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 23b04bad29..17cb2ac939 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -103,23 +103,15 @@ in intelligent transportation networks.")
 (define-public p11-kit
   (package
     (name "p11-kit")
-    (version "0.23.2")
+    (version "0.23.7")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "https://p11-glue.freedesktop.org/releases/p11-kit-"
-                          version ".tar.gz"))
+      (uri (string-append "https://github.com/p11-glue/p11-kit/releases/"
+                          "download/" version "/p11-kit-" version ".tar.gz"))
       (sha256
        (base32
-        "1w7szm190phlkg7qx05ychlj2dbvkgkhx9gw6dx4d5rw62l6wwms"))
-      (modules '((guix build utils))) ; for substitute*
-      (snippet
-        '(begin
-           ;; Drop one test that fails, also when trying to compile manually.
-           ;; Reported upstream at
-           ;; https://bugs.freedesktop.org/show_bug.cgi?id=89027
-           (substitute* "Makefile.in"
-             (("test-module\\$\\(EXEEXT\\) ") ""))))))
+        "0hdy4h8byvcvd4av504xqfqyd1h6xy914j034mq3c6v4ya37r3lq"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -478,25 +470,17 @@ security, and applying best practice development processes.")
   (package
     (name "python-acme")
     ;; Remember to update the hash of certbot when updating python-acme.
-    (version "0.14.2")
+    (version "0.15.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "acme" version))
       (sha256
        (base32
-        "1kbgpjabbly7r757vyr1050ixnm9hyvrbf9n6aq49cgmb147ysqn"))))
+        "11zwgj663vr575pbqw74ia10wxaw16i8rnkcivsrbsx148rxdbcz"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'patch-dependency
-           ;; This module is part of the Python standard library, so we don't
-           ;; need to use an external package.
-           ;; https://github.com/certbot/certbot/pull/2249
-           (lambda _
-             (substitute* "setup.py"
-               (("'argparse',") ""))
-             #t))
          (add-after 'build 'build-documentation
            (lambda _
              (zero? (system* "make" "-C" "docs" "man" "info"))))
@@ -543,7 +527,7 @@ security, and applying best practice development processes.")
               (uri (pypi-uri name version))
               (sha256
                (base32
-                "1b39hybswzm8mkarg1mwpx47wffqg57jcgi52mz5iz60rxym9j2v"))))
+                "1srvmjxz75dbafx7xfg1w3n9h3srr9p2ljnfsih9dwwd5cxh9i5q"))))
     (build-system python-build-system)
     (arguments
      `(#:python ,python-2
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 4b3d83df28..8a91a97017 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -461,14 +461,14 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
 (define-public ffmpeg
   (package
     (name "ffmpeg")
-    (version "3.3.1")
+    (version "3.3.2")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0bwgm6z6k3khb91qh9xv15inykkfchpkm0lcdckkxhkacpyaf0mp"))))
+               "11974vcfsy8w0i6f4lfwqmg80xkfybqw7vw6zzrcn5i6ncddx60r"))))
     (build-system gnu-build-system)
     (inputs
      `(("fontconfig" ,fontconfig)
@@ -2176,7 +2176,7 @@ many codecs and formats supported by libmediainfo.")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://www.live555.com/liveMedia/public/live."
+                    "https://download.videolan.org/contrib/live555/live."
                     version ".tar.gz"))
               (sha256
                (base32
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 3b06fbeb6b..d3f387e150 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -14,7 +14,7 @@
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
-;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2016 Petter <petter@mykolab.ch>
 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
 ;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
@@ -47,6 +47,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages algebra)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages image)
   #:use-module (gnu packages pkg-config)
@@ -117,22 +118,29 @@ program.")
 (define-public xclip
   (package
     (name "xclip")
-    (version "0.12")
+    (version "0.13")
     (source
       (origin
         (method url-fetch)
-        (uri (string-append
-              "mirror://sourceforge/" name "/" name "/" version "/"
-              name "-" version ".tar.gz"))
+        (uri (string-append "https://github.com/astrand/xclip"
+                            "/archive/" version ".tar.gz"))
         (sha256
           (base32
-           "0ibcf46rldnv0r424qcnai1fa5iq3lm5q5rdd7snsi5sb78gmixp"))))
+           "0n7pczk9vv30zf8qfln8ba3hnif9yfdxg0m84djac469wc28hnya"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:tests? #f))   ; There is no test suite
+     '(#:tests? #f     ; There is no test suite
+       #:phases
+       (modify-phases %standard-phases
+         ;; Since version 0.13, bootstrapped releases are no longer available.
+         (add-after 'unpack 'bootstrap
+           (lambda _ (zero? (system* "autoreconf" "-v")))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)))
     (inputs `(("libxmu" ,libxmu)
               ("libxt" ,libxt)))
-    (home-page "http://xclip.sourceforge.net/")
+    (home-page "https://github.com/astrand/xclip")
     (synopsis "Command line interface to X11 clipboard")
     (description "Xclip is a command line interface to the X11 clipboard.  It
 can also be used for copying files, as an alternative to sftp/scp, thus
@@ -441,7 +449,7 @@ of the screen selected by mouse.")
 (define-public slop
   (package
     (name "slop")
-    (version "6.3.41")
+    (version "6.3.43")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -450,7 +458,7 @@ of the screen selected by mouse.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1yiv0ak1z7zbmcdw0dwx2gpblrh7l7s3l7y7sgpx071dy8s4rqpb"))))
+                "0kazcnnarc61d3rjysaym9vadf31wisfd3sn076rsjnsldm4y66h"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f)) ; no "check" target
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 78717cc203..8ed608b216 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -2621,7 +2621,7 @@ as USB mice.")
 (define-public xf86-video-ati
   (package
     (name "xf86-video-ati")
-    (version "7.8.0")
+    (version "7.9.0")
     (source
       (origin
         (method url-fetch)
@@ -2631,7 +2631,7 @@ as USB mice.")
                ".tar.bz2"))
         (sha256
           (base32
-            "1ynnm4v4261xmg94b7jam9hjyym4n2nqba23rv23v3wjfbkms7s0"))))
+            "0xcq0lncb5p4sas5866qpkjyp1v8ksalw7m1gmqb3brhccp8gb9w"))))
     (build-system gnu-build-system)
     (inputs `(("mesa" ,mesa)
               ("xxf86driproto" ,xf86driproto)
@@ -3019,7 +3019,7 @@ graphics cards.")
 (define-public xf86-video-openchrome
   (package
     (name "xf86-video-openchrome")
-    (version "0.5.0")
+    (version "0.6.0")
     (source
       (origin
         (method url-fetch)
@@ -3029,7 +3029,7 @@ graphics cards.")
                ".tar.bz2"))
         (sha256
          (base32
-          "1fsmr455lk89zl795d6b5ypyqjim40j3h2vjch52lcssjw9xdza9"))))
+          "0x9gq3hw6k661k82ikd1y2kkk4dmgv310xr5q59dwn4k6z37aafs"))))
     (build-system gnu-build-system)
     (inputs `(("libx11" ,libx11)
               ("libxext" ,libxext)
diff --git a/gnu/system.scm b/gnu/system.scm
index 8e44ee85b3..b197abcdcc 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -112,6 +112,7 @@
             boot-parameters-initrd
             read-boot-parameters
             read-boot-parameters-file
+            menu-entry->boot-parameters
 
             local-host-aliases
             %setuid-programs
@@ -299,6 +300,19 @@ The object has its kernel-arguments extended in order to make it bootable."
                                                      system
                                                      root-device)))
       #f)))
+
+(define (menu-entry->boot-parameters menu-entry)
+  "Convert a <menu-entry> instance to a corresponding <boot-parameters>."
+  (boot-parameters
+   (label (menu-entry-label menu-entry))
+   (root-device #f)
+   (boot-name 'custom)
+   (store-device #f)
+   (store-mount-point #f)
+   (kernel (menu-entry-linux menu-entry))
+   (kernel-arguments (menu-entry-linux-arguments menu-entry))
+   (initrd (menu-entry-initrd menu-entry))))
+
 
 ;;;
 ;;; Services.
diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm
index 2959802c96..18b9f5b4b6 100644
--- a/gnu/system/mapped-devices.scm
+++ b/gnu/system/mapped-devices.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2017 Mark H Weaver <mhw@netris.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -114,7 +115,16 @@
                         ;; udev-populated /dev/disk/by-id directory but udev may
                         ;; be unavailable at the time we run this.
                         (if (bytevector? source)
-                            (or (find-partition-by-luks-uuid source)
+                            (or (let loop ((tries-left 10))
+                                  (and (positive? tries-left)
+                                       (or (find-partition-by-luks-uuid source)
+                                           ;; If the underlying partition is
+                                           ;; not found, try again after
+                                           ;; waiting a second, up to ten
+                                           ;; times.  FIXME: This should be
+                                           ;; dealt with in a more robust way.
+                                           (begin (sleep 1)
+                                                  (loop (- tries-left 1))))))
                                 (error "LUKS partition not found" source))
                             source)