summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2019-03-14 15:06:06 +0100
committerMarius Bakke <mbakke@fastmail.com>2019-03-14 15:06:06 +0100
commitebfe259f6682b43d7f0d3b57b525e25f97410052 (patch)
treee3f09eb6159168e1736f8a629286eb3d148917a9 /gnu
parent47b3eed821cf86c350dc4b0fdbe75647cdc275b0 (diff)
parent8cc3983a4d02a15ad4a863671c1a5a8b2b542625 (diff)
downloadguix-ebfe259f6682b43d7f0d3b57b525e25f97410052.tar.gz
Merge branch 'master' into staging
Diffstat (limited to 'gnu')
-rw-r--r--gnu/bootloader/extlinux.scm4
-rw-r--r--gnu/bootloader/grub.scm8
-rw-r--r--gnu/build/linux-modules.scm27
-rw-r--r--gnu/build/vm.scm6
-rw-r--r--gnu/ci.scm4
-rw-r--r--gnu/installer/newt/network.scm6
-rw-r--r--gnu/installer/newt/welcome.scm4
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages.scm17
-rw-r--r--gnu/packages/admin.scm29
-rw-r--r--gnu/packages/aspell.scm26
-rw-r--r--gnu/packages/audio.scm27
-rw-r--r--gnu/packages/bioconductor.scm789
-rw-r--r--gnu/packages/bioinformatics.scm160
-rw-r--r--gnu/packages/bootloaders.scm6
-rw-r--r--gnu/packages/compression.scm6
-rw-r--r--gnu/packages/cran.scm900
-rw-r--r--gnu/packages/curl.scm2
-rw-r--r--gnu/packages/databases.scm42
-rw-r--r--gnu/packages/education.scm23
-rw-r--r--gnu/packages/emacs-xyz.scm305
-rw-r--r--gnu/packages/emacs.scm2
-rw-r--r--gnu/packages/emulators.scm2
-rw-r--r--gnu/packages/engineering.scm12
-rw-r--r--gnu/packages/fpga.scm4
-rw-r--r--gnu/packages/freedesktop.scm32
-rw-r--r--gnu/packages/ftp.scm6
-rw-r--r--gnu/packages/games.scm20
-rw-r--r--gnu/packages/geo.scm4
-rw-r--r--gnu/packages/gnome.scm74
-rw-r--r--gnu/packages/guile-xyz.scm125
-rw-r--r--gnu/packages/guile.scm2
-rw-r--r--gnu/packages/image.scm4
-rw-r--r--gnu/packages/julia.scm2
-rw-r--r--gnu/packages/kde-frameworks.scm2
-rw-r--r--gnu/packages/kodi.scm20
-rw-r--r--gnu/packages/libevent.scm6
-rw-r--r--gnu/packages/linux.scm14
-rw-r--r--gnu/packages/llvm.scm8
-rw-r--r--gnu/packages/machine-learning.scm103
-rw-r--r--gnu/packages/music.scm10
-rw-r--r--gnu/packages/networking.scm101
-rw-r--r--gnu/packages/package-management.scm4
-rw-r--r--gnu/packages/patches/pugixml-versioned-libdir.patch61
-rw-r--r--gnu/packages/photo.scm21
-rw-r--r--gnu/packages/polkit.scm2
-rw-r--r--gnu/packages/python-xyz.scm44
-rw-r--r--gnu/packages/samba.scm4
-rw-r--r--gnu/packages/shells.scm4
-rw-r--r--gnu/packages/skarnet.scm45
-rw-r--r--gnu/packages/statistics.scm4
-rw-r--r--gnu/packages/terminals.scm72
-rw-r--r--gnu/packages/tex.scm8
-rw-r--r--gnu/packages/tls.scm11
-rw-r--r--gnu/packages/tmux.scm50
-rw-r--r--gnu/packages/video.scm155
-rw-r--r--gnu/packages/w3m.scm4
-rw-r--r--gnu/packages/web-browsers.scm2
-rw-r--r--gnu/packages/web.scm32
-rw-r--r--gnu/packages/webkit.scm9
-rw-r--r--gnu/packages/wm.scm148
-rw-r--r--gnu/packages/xml.scm8
-rw-r--r--gnu/packages/xorg.scm38
-rw-r--r--gnu/services/base.scm77
-rw-r--r--gnu/services/configuration.scm5
-rw-r--r--gnu/services/cups.scm2
-rw-r--r--gnu/services/desktop.scm6
-rw-r--r--gnu/services/mail.scm2
-rw-r--r--gnu/services/messaging.scm2
-rw-r--r--gnu/services/monitoring.scm57
-rw-r--r--gnu/system/examples/vm-image.tmpl2
-rw-r--r--gnu/system/install.scm2
-rw-r--r--gnu/system/linux-container.scm14
-rw-r--r--gnu/system/mapped-devices.scm57
-rw-r--r--gnu/system/vm.scm6
-rw-r--r--gnu/tests/install.scm4
76 files changed, 3312 insertions, 595 deletions
diff --git a/gnu/bootloader/extlinux.scm b/gnu/bootloader/extlinux.scm
index b48596c496..2bb711eed1 100644
--- a/gnu/bootloader/extlinux.scm
+++ b/gnu/bootloader/extlinux.scm
@@ -57,10 +57,10 @@ corresponding to old generations of the system."
     #~(call-with-output-file #$output
         (lambda (port)
           (let ((timeout #$(bootloader-configuration-timeout config)))
-            (format port "# This file was generated from your GuixSD configuration.  Any changes
+            (format port "# This file was generated from your Guix configuration.  Any changes
 # will be lost upon reconfiguration.
 UI menu.c32
-MENU TITLE GuixSD Boot Options
+MENU TITLE GNU Guix Boot Options
 PROMPT ~a
 TIMEOUT ~a~%"
                     (if (> timeout 0) 1 0)
diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm
index 161e8b3d02..51d5787364 100644
--- a/gnu/bootloader/grub.scm
+++ b/gnu/bootloader/grub.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
@@ -334,7 +334,7 @@ entries corresponding to old generations of the system."
     #~(call-with-output-file #$output
         (lambda (port)
           (format port
-                  "# This file was generated from your GuixSD configuration.  Any changes
+                  "# This file was generated from your Guix configuration.  Any changes
 # will be lost upon reconfiguration.
 ")
           #$sugar
@@ -380,7 +380,7 @@ submenu \"GNU system, old configurations...\" {~%")
       ;; system whose root is mounted at MOUNT-POINT.
       (let ((grub-install (string-append bootloader "/sbin/grub-install"))
             (install-dir (string-append mount-point "/boot"))
-            ;; When installing GuixSD, it's common to mount EFI-DIR below
+            ;; When installing Guix, it's common to mount EFI-DIR below
             ;; MOUNT-POINT rather than /boot/efi on the live image.
             (target-esp (if (file-exists? (string-append mount-point efi-dir))
                             (string-append mount-point efi-dir)
@@ -389,7 +389,7 @@ submenu \"GNU system, old configurations...\" {~%")
         ;; root partition.
         (setenv "GRUB_ENABLE_CRYPTODISK" "y")
         (unless (zero? (system* grub-install "--boot-directory" install-dir
-                                "--bootloader-id=GuixSD"
+                                "--bootloader-id=Guix"
                                 "--efi-directory" target-esp))
           (error "failed to install GRUB (EFI)")))))
 
diff --git a/gnu/build/linux-modules.scm b/gnu/build/linux-modules.scm
index d99d1f01a4..c66ef97012 100644
--- a/gnu/build/linux-modules.scm
+++ b/gnu/build/linux-modules.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2016, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -47,7 +47,8 @@
 
             device-module-aliases
             known-module-aliases
-            matching-modules))
+            matching-modules
+            missing-modules))
 
 ;;; Commentary:
 ;;;
@@ -463,4 +464,26 @@ ALIAS is a string like \"scsi:t-0x00\" as returned by
                       module)))
               known-aliases))
 
+(define* (missing-modules device modules-provided)
+  "Assuming MODULES-PROVIDED lists kernel modules that are already
+provided--e.g., in the initrd, return the list of missing kernel modules that
+are required to access DEVICE."
+  (define aliases
+    ;; Attempt to load 'modules.alias' from the current kernel, assuming we're
+    ;; on Guix System, and assuming that corresponds to the kernel we'll be
+    ;; installing.
+    (known-module-aliases))
+
+  (if aliases
+      (let* ((modules  (delete-duplicates
+                        (append-map (cut matching-modules <> aliases)
+                                    (device-module-aliases device))))
+
+             ;; Module names (not file names) are supposed to use underscores
+             ;; instead of hyphens.  MODULES is a list of module names, whereas
+             ;; LINUX-MODULES is file names without '.ko', so normalize them.
+             (provided (map file-name->module-name modules-provided)))
+        (remove (cut member <> provided) modules))
+      '()))
+
 ;;; linux-modules.scm ends here
diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index 0aef73d26d..6d6a0c4cb4 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
@@ -422,7 +422,7 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation."
             (string-append "boot/grub/grub.cfg=" config-file))))
 
 (define* (make-iso9660-image grub config-file os-drv target
-                             #:key (volume-id "GuixSD_image") (volume-uuid #f)
+                             #:key (volume-id "Guix_image") (volume-uuid #f)
                              register-closures? (closures '()))
   "Given a GRUB package, creates an iso image as TARGET, using CONFIG-FILE as
 GRUB configuration and OS-DRV as the stuff in it."
@@ -550,7 +550,7 @@ passing it a directory name where it is mounted."
           (lambda (port)
             (format port
                     "insmod part_msdos~@
-                    search --set=root --label GuixSD_image~@
+                    search --set=root --label Guix_image~@
                     configfile /boot/grub/grub.cfg~%")))
 
         (display "creating EFI firmware image...")
diff --git a/gnu/ci.scm b/gnu/ci.scm
index 2c04b7189d..e108b4b15b 100644
--- a/gnu/ci.scm
+++ b/gnu/ci.scm
@@ -235,7 +235,7 @@ system.")
             (system-test-value test))))
 
       `((derivation . ,(derivation-file-name drv))
-        (description . ,(format #f "GuixSD '~a' system test"
+        (description . ,(format #f "Guix '~a' system test"
                                 (system-test-name test)))
         (long-description . ,(system-test-description test))
         (license . ,(license-name gpl3+))
@@ -270,7 +270,7 @@ system.")
     `((derivation . ,(derivation-file-name drv))
       (description . "Stand-alone binary Guix tarball")
       (long-description . "This is a tarball containing binaries of Guix and
-all its dependencies, and ready to be installed on non-GuixSD distributions.")
+all its dependencies, and ready to be installed on \"foreign\" distributions.")
       (license . ,(license-name gpl3+))
       (home-page . ,%guix-home-page-url)
       (maintainers . ("bug-guix@gnu.org"))))
diff --git a/gnu/installer/newt/network.scm b/gnu/installer/newt/network.scm
index f263b7df9d..f13176dc61 100644
--- a/gnu/installer/newt/network.scm
+++ b/gnu/installer/newt/network.scm
@@ -113,7 +113,7 @@ FULL-VALUE tentatives, spaced by 1 second."
   (let* ((full-value 5))
     (run-scale-page
      #:title (G_ "Checking connectivity")
-     #:info-text (G_ "Waiting internet access is established.")
+     #:info-text (G_ "Waiting for Internet access establishment...")
      #:scale-full-value full-value
      #:scale-update-proc
      (lambda (value)
@@ -123,8 +123,8 @@ FULL-VALUE tentatives, spaced by 1 second."
            (+ value 1))))
     (unless (connman-online?)
       (run-error-page
-       (G_ "The selected network does not provide an Internet \
-access, please try again.")
+       (G_ "The selected network does not provide access to the \
+Internet, please try again.")
        (G_ "Connection error"))
       (raise
        (condition
diff --git a/gnu/installer/newt/welcome.scm b/gnu/installer/newt/welcome.scm
index eec98e291a..b0b5429c0f 100644
--- a/gnu/installer/newt/welcome.scm
+++ b/gnu/installer/newt/welcome.scm
@@ -92,8 +92,8 @@ we want this page to occupy all the screen space available."
 the page. Ask the user to choose between manual installation, graphical
 installation and reboot."
   (run-menu-page
-   (G_ "GNU GuixSD install")
-   (G_ "Welcome to GNU GuixSD installer!
+   (G_ "GNU Guix install")
+   (G_ "Welcome to GNU Guix system installer!
 
 Please note that the present graphical installer is still under heavy \
 development, so you might want to prefer using the shell based process. \
diff --git a/gnu/local.mk b/gnu/local.mk
index 7da2e1ff0f..eb1b5d223d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1152,6 +1152,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/psm-arch.patch				\
   %D%/packages/patches/psm-ldflags.patch			\
   %D%/packages/patches/psm-repro.patch				\
+  %D%/packages/patches/pugixml-versioned-libdir.patch		\
   %D%/packages/patches/pulseaudio-fix-mult-test.patch		\
   %D%/packages/patches/pulseaudio-longer-test-timeout.patch	\
   %D%/packages/patches/pybugz-encode-error.patch		\
diff --git a/gnu/packages.scm b/gnu/packages.scm
index 7b17e70c53..9f211ae23c 100644
--- a/gnu/packages.scm
+++ b/gnu/packages.scm
@@ -155,23 +155,26 @@ flags."
   ;; Search path for package modules.  Each item must be either a directory
   ;; name or a pair whose car is a directory and whose cdr is a sub-directory
   ;; to narrow the search.
-  (let* ((not-colon   (char-set-complement (char-set #\:)))
-         (environment (string-tokenize (or (getenv "GUIX_PACKAGE_PATH") "")
-                                       not-colon))
-         (channels    (package-path-entries)))
+  (let*-values (((not-colon)
+                 (char-set-complement (char-set #\:)))
+                ((environment)
+                 (string-tokenize (or (getenv "GUIX_PACKAGE_PATH") "")
+                                  not-colon))
+                ((channels-scm channels-go)
+                 (package-path-entries)))
     ;; Automatically add channels and items from $GUIX_PACKAGE_PATH to Guile's
     ;; search path.  For historical reasons, $GUIX_PACKAGE_PATH goes to the
     ;; front; channels go to the back so that they don't override Guix' own
     ;; modules.
     (set! %load-path
-      (append environment %load-path channels))
+      (append environment %load-path channels-scm))
     (set! %load-compiled-path
-      (append environment %load-compiled-path channels))
+      (append environment %load-compiled-path channels-go))
 
     (make-parameter
      (append environment
              %default-package-module-path
-             channels))))
+             channels-scm))))
 
 (define %patch-path
   ;; Define it after '%package-module-path' so that '%load-path' contains user
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index e26bf030cc..f3052953cf 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -113,14 +113,14 @@
 (define-public aide
   (package
     (name "aide")
-    (version "0.16")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://sourceforge/aide/aide/"
-                                  version "/aide-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0ibkv4z2gk14fn014kq13rp2ysiq6nn2cflv2q5i7zf466hm6758"))))
+    (version "0.16.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/aide/aide/releases/download/v"
+                           version "/aide-" version ".tar.gz"))
+       (sha256
+        (base32 "1dqhc0c24wa4zid06pfy61k357yvzh28ij86bk9jf6hcqzn7qaqg"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("bison" ,bison)
@@ -141,7 +141,7 @@ that it finds from its configuration files.  Once this database is initialized
 it can be used to verify the integrity of the files.  It has several message
 digest algorithms that are used to check the integrity of files.  All of the
 usual file attributes can be checked for inconsistencies.")
-    (home-page "http://aide.sourceforge.net/")
+    (home-page "https://aide.github.io/")
     (license license:gpl2+)))
 
 (define-public progress
@@ -1598,14 +1598,13 @@ of supported upstream metrics systems simultaneously.")
 (define-public ansible
   (package
     (name "ansible")
-    (version "2.7.7")
+    (version "2.7.8")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "ansible" version))
        (sha256
-        (base32
-         "0l4id24jqi578xmybvwrz10sm2jhs90gk9gs1y04gfarz4vcj304"))))
+        (base32 "11yx7vd0mp5gkq428af141dwnrwf8f9cp3f65243qbs9icjxnrrx"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-bcrypt" ,python-bcrypt)
@@ -2700,16 +2699,16 @@ Python loading in HPC environments.")
   (let ((real-name "inxi"))
     (package
       (name "inxi-minimal")
-      (version "3.0.20-1")
+      (version "3.0.22-1")
       (source
        (origin
          (method git-fetch)
          (uri (git-reference
                (url "https://github.com/smxi/inxi")
                (commit version)))
+         (file-name (git-file-name real-name version))
          (sha256
-          (base32
-           "1k9148xnfznch1443niaa3w1kmsw4vp0xpwna6npgmi7zqg06ymy"))))
+          (base32 "1br392s3xc2nwqmfx4nwb3i97wjwasvkq8ayr8jq72mi5qzsgizn"))))
       (build-system trivial-build-system)
       (inputs
        `(("bash" ,bash-minimal)
diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm
index ca9fc8eda5..dd006e8184 100644
--- a/gnu/packages/aspell.scm
+++ b/gnu/packages/aspell.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Christopher Andersson <christopher@8bits.nu>
 ;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org>
-;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -197,11 +197,25 @@ dictionaries, including personal ones.")
                       "13bhbghx5b8g0119g3wxd4n8mlf707y41vlf59irxjj0kynankfn")))
 
 (define-public aspell-dict-it
-  (aspell-dictionary "it" "Italian"
-                     #:version "2.2_20050523-0"
-                     #:sha256
-                     (base32
-                      "1gdf7bc1a0kmxsmphdqq8pl01h667mjsj6hihy6kqy14k5qdq69v")))
+  (let ((version "2.4-20070901-0")
+        (sha256
+         (base32 "0d6ypii3jblprpibazb6ypady536jz62rwxlss1x1raq07rhvvqn")))
+    (package
+      (inherit (aspell-dictionary "it" "Italian"
+                                  #:version version
+                                  #:sha256 sha256))
+
+      ;; The version hosted at <https://ftp.gnu.org/gnu/aspell/dict> is even
+      ;; more out of date.
+      (source
+       (origin
+         (method url-fetch)
+         (uri (string-append "mirror://sourceforge/linguistico/"
+                             "Dizionario%20italiano%20per%20Aspell/" version "/"
+                             "aspell6-it-" version ".tar.bz2"))
+         (sha256 sha256)))
+       (home-page
+        "http://linguistico.sourceforge.net/pages/dizionario_italiano.html"))))
 
 (define-public aspell-dict-nl
   (aspell-dictionary "nl" "Dutch"
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 395cdfed0d..8bcd3c4b85 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -2270,7 +2270,7 @@ for experimenting with sound synthesis and algorithmic composition.
 SuperCollider requires jackd to be installed in your user profile and your
 user must be allowed to access the realtime features of the kernel.  Search
 for \"realtime\" in the index of the Guix manual to learn how to achieve this
-using GuixSD.")
+using Guix System.")
     (license license:gpl2+)))
 
 (define-public raul
@@ -2834,7 +2834,26 @@ portions of LAME.")
        ("automake" ,automake)
        ("libtool" ,libtool)
        ("pkg-config" ,pkg-config)))
-    (arguments '(#:tests? #f))                    ;no 'check' target
+    (arguments
+     '(#:tests? #f                    ;no 'check' target
+       #:configure-flags '("--with-pic")
+       #:phases
+       (modify-phases %standard-phases
+         ;; This is needed for linking the static libraries
+         (add-after 'unpack 'build-only-position-independent-code
+           (lambda _
+             (substitute* "configure.in"
+               (("AC_PROG_LIBTOOL" m)
+                (string-append m "\nAM_PROG_AR\nLT_INIT([pic-only])")))
+             (delete-file "configure")
+             #t))
+         ;; Some headers are not installed by default, but are needed by
+         ;; packages like Kaldi.
+         (add-after 'install 'install-missing-headers
+           (lambda* (#:key outputs #:allow-other-keys)
+             (install-file "src/common/pa_ringbuffer.h"
+                           (string-append (assoc-ref outputs "out") "/include"))
+             #t)))))
     (home-page "http://www.portaudio.com/")
     (synopsis "Audio I/O library")
     (description
@@ -3361,14 +3380,14 @@ on the ALSA software PCM plugin.")
 (define-public snd
   (package
     (name "snd")
-    (version "17.7")
+    (version "19.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
                                   "snd-" version ".tar.gz"))
               (sha256
                (base32
-                "1vm0dy5qlycqkima7y5ajzvazyjybifa803fabjcpncjz08c26vp"))))
+                "1a6ls2hyvggss12idca22hq5vsq4jw2xkwrx22dx29i9926gdr6h"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index 8df065a60c..251ad1e1ac 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -30,9 +30,13 @@
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages graph)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages statistics)
   #:use-module (gnu packages web))
 
+
+;;; Annotations
+
 (define-public r-bsgenome-celegans-ucsc-ce6
   (package
     (name "r-bsgenome-celegans-ucsc-ce6")
@@ -646,7 +650,103 @@ the TxDb object of Mouse data as provided by UCSC (mm10, December 2011)
 based on the knownGene track.")
     (license license:artistic2.0)))
 
+(define-public r-fdb-infiniummethylation-hg19
+  (package
+    (name "r-fdb-infiniummethylation-hg19")
+    (version "2.2.0")
+    (source (origin
+              (method url-fetch)
+              ;; We cannot use bioconductor-uri here because this tarball is
+              ;; located under "data/annotation/" instead of "bioc/".
+              (uri (string-append "https://www.bioconductor.org/packages/"
+                                  "release/data/annotation/src/contrib/"
+                                  "FDb.InfiniumMethylation.hg19_"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0gq90fvph6kgrpjb89nvzq6hl1k24swn19rgjh5g98l86mja6nk0"))))
+    (properties
+     `((upstream-name . "FDb.InfiniumMethylation.hg19")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biostrings" ,r-biostrings)
+       ("r-genomicfeatures" ,r-genomicfeatures)
+       ("r-annotationdbi" ,r-annotationdbi)
+       ("r-org-hs-eg-db" ,r-org-hs-eg-db)
+       ("r-txdb-hsapiens-ucsc-hg19-knowngene" ,r-txdb-hsapiens-ucsc-hg19-knowngene)))
+    (home-page "https://bioconductor.org/packages/FDb.InfiniumMethylation.hg19/")
+    (synopsis "Compiled HumanMethylation27 and HumanMethylation450 annotations")
+    (description
+     "This is an annotation package for Illumina Infinium DNA methylation
+probes.  It contains the compiled HumanMethylation27 and HumanMethylation450
+annotations.")
+    (license license:artistic2.0)))
+
+(define-public r-illuminahumanmethylationepicmanifest
+  (package
+    (name "r-illuminahumanmethylationepicmanifest")
+    (version "0.3.0")
+    (source (origin
+              (method url-fetch)
+              ;; We cannot use bioconductor-uri here because this tarball is
+              ;; located under "data/annotation/" instead of "bioc/".
+              (uri (string-append "https://www.bioconductor.org/packages/"
+                                  "release/data/annotation/src/contrib/"
+                                  "IlluminaHumanMethylationEPICmanifest_"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0alhjda5g186z8b1nsmnpfswrlj7prdz8mkwx60wkkl6hkcnk6p3"))))
+    (properties
+     `((upstream-name . "IlluminaHumanMethylationEPICmanifest")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-minfi" ,r-minfi)))
+    (home-page "https://bioconductor.org/packages/IlluminaHumanMethylationEPICmanifest/")
+    (synopsis "Manifest for Illumina's EPIC methylation arrays")
+    (description
+     "This is a manifest package for Illumina's EPIC methylation arrays.")
+    (license license:artistic2.0)))
+
+
+;;; Experiment data
+
+(define-public r-hsmmsinglecell
+  (package
+    (name "r-hsmmsinglecell")
+    (version "1.2.0")
+    (source (origin
+              (method url-fetch)
+              ;; We cannot use bioconductor-uri here because this tarball is
+              ;; located under "data/experiment/" instead of "bioc/".
+              (uri (string-append "https://www.bioconductor.org/packages/"
+                                  "release/data/experiment/src/contrib/"
+                                  "HSMMSingleCell_" version ".tar.gz"))
+              (sha256
+               (base32
+                "1vxnr8gr6md85g39csy7g2sqqajiqgyvznys2qa9yixd2b01yph9"))))
+    (properties
+     `((upstream-name . "HSMMSingleCell")))
+    (build-system r-build-system)
+    (home-page "https://www.bioconductor.org/packages/HSMMSingleCell/")
+    (synopsis "Single-cell RNA-Seq for differentiating human skeletal muscle myoblasts (HSMM)")
+    (description
+     "Skeletal myoblasts undergo a well-characterized sequence of
+morphological and transcriptional changes during differentiation.  In this
+experiment, primary @dfn{human skeletal muscle myoblasts} (HSMM) were expanded
+under high mitogen conditions (GM) and then differentiated by switching to
+low-mitogen media (DM).  RNA-Seq libraries were sequenced from each of several
+hundred cells taken over a time-course of serum-induced differentiation.
+Between 49 and 77 cells were captured at each of four time points (0, 24, 48,
+72 hours) following serum switch using the Fluidigm C1 microfluidic system.
+RNA from each cell was isolated and used to construct mRNA-Seq libraries,
+which were then sequenced to a depth of ~4 million reads per library,
+resulting in a complete gene expression profile for each cell.")
+    (license license:artistic2.0)))
+
 
+;;; Packages
+
 (define-public r-biocgenerics
   (package
     (name "r-biocgenerics")
@@ -766,6 +866,35 @@ region sets and other genomic features.")
      "This package provides functions for plotting genomic data.")
     (license license:artistic2.0)))
 
+(define-public r-qvalue
+  (package
+    (name "r-qvalue")
+    (version "2.14.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "qvalue" version))
+       (sha256
+        (base32
+         "0kxavzm1j2mk26qicmjm90nxx4w5h3dxighzks7wzihay3k8cysc"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-ggplot2" ,r-ggplot2)
+       ("r-reshape2" ,r-reshape2)))
+    (home-page "http://github.com/jdstorey/qvalue")
+    (synopsis "Q-value estimation for false discovery rate control")
+    (description
+     "This package takes a list of p-values resulting from the simultaneous
+testing of many hypotheses and estimates their q-values and local @dfn{false
+discovery rate} (FDR) values.  The q-value of a test measures the proportion
+of false positives incurred when that particular test is called significant.
+The local FDR measures the posterior probability the null hypothesis is true
+given the test's p-value.  Various plots are automatically generated, allowing
+one to make sensible significance cut-offs.  The software can be applied to
+problems in genomics, brain imaging, astrophysics, and data mining.")
+    ;; Any version of the LGPL.
+    (license license:lgpl3+)))
+
 (define-public r-diffbind
   (package
     (name "r-diffbind")
@@ -1694,3 +1823,663 @@ estimation is performed using either the EM or CEM algorithm, and the slope
 heuristics are used for model selection (i.e., to choose the number of
 clusters).")
     (license license:gpl3+)))
+
+(define-public r-deds
+  (package
+    (name "r-deds")
+    (version "1.56.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "DEDS" version))
+       (sha256
+        (base32
+         "1zfgaar3bpss49zhs81mwlfzkx5lv92j8a64xd12ig88is24cw2c"))))
+    (properties `((upstream-name . "DEDS")))
+    (build-system r-build-system)
+    (home-page "https://bioconductor.org/packages/DEDS/")
+    (synopsis "Differential expression via distance summary for microarray data")
+    (description
+     "This library contains functions that calculate various statistics of
+differential expression for microarray data, including t statistics, fold
+change, F statistics, SAM, moderated t and F statistics and B statistics.  It
+also implements a new methodology called DEDS (Differential Expression via
+Distance Summary), which selects differentially expressed genes by integrating
+and summarizing a set of statistics using a weighted distance approach.")
+    ;; Any version of the LGPL.
+    (license license:lgpl3+)))
+
+;; This is a CRAN package, but since it depends on a Bioconductor package we
+;; put it here.
+(define-public r-nbpseq
+  (package
+    (name "r-nbpseq")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "NBPSeq" version))
+       (sha256
+        (base32
+         "0l4ylxhs2k9ww21jjqs67fygk92avdchhx2y1ixzl7yr2yh1y9by"))))
+    (properties `((upstream-name . "NBPSeq")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-qvalue" ,r-qvalue)))
+    (home-page "https://cran.r-project.org/web/packages/NBPSeq")
+    (synopsis "Negative binomial models for RNA-Seq data")
+    (description
+     "This package provides negative binomial models for two-group comparisons
+and regression inferences from RNA-sequencing data.")
+    (license license:gpl2)))
+
+(define-public r-ebseq
+  (package
+    (name "r-ebseq")
+    (version "1.22.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "EBSeq" version))
+       (sha256
+        (base32
+         "1gzbk1hbwdan0j131ah88yryfvsiq0wqjnb09qbr4qaczpgvbad0"))))
+    (properties `((upstream-name . "EBSeq")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-blockmodeling" ,r-blockmodeling)
+       ("r-gplots" ,r-gplots)
+       ("r-testthat" ,r-testthat)))
+    (home-page "https://bioconductor.org/packages/EBSeq")
+    (synopsis "Differential expression analysis of RNA-seq data")
+    (description
+     "This package provides tools for differential expression analysis at both
+gene and isoform level using RNA-seq data")
+    (license license:artistic2.0)))
+
+(define-public r-lpsymphony
+  (package
+    (name "r-lpsymphony")
+    (version "1.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "lpsymphony" version))
+       (sha256
+        (base32
+         "0vnsf5x6gvd1k8h89al7r6xbgbxsjbxphr675czzwggz79zbvq7y"))))
+    (build-system r-build-system)
+    (inputs
+     `(("gfortran" ,gfortran)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "http://r-forge.r-project.org/projects/rsymphony")
+    (synopsis "Symphony integer linear programming solver in R")
+    (description
+     "This package was derived from Rsymphony.  The package provides an R
+interface to SYMPHONY, a linear programming solver written in C++.  The main
+difference between this package and Rsymphony is that it includes the solver
+source code, while Rsymphony expects to find header and library files on the
+users' system.  Thus the intention of @code{lpsymphony} is to provide an easy
+to install interface to SYMPHONY.")
+    ;; Symphony 5.4 or later is distributed under the terms of the EPL 1.0.
+    ;; lpsimphony is released under the same terms.
+    (license license:epl1.0)))
+
+(define-public r-ihw
+  (package
+    (name "r-ihw")
+    (version "1.10.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "IHW" version))
+       (sha256
+        (base32
+         "10wqasl8k2j3y5qvak3xr2xj6symk656xww1y5n2l22nz832j19n"))))
+    (properties `((upstream-name . "IHW")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biocgenerics" ,r-biocgenerics)
+       ("r-fdrtool" ,r-fdrtool)
+       ("r-lpsymphony" ,r-lpsymphony)
+       ("r-slam" ,r-slam)))
+    (home-page "https://bioconductor.org/packages/IHW")
+    (synopsis "Independent hypothesis weighting")
+    (description
+     "@dfn{Independent hypothesis weighting} (IHW) is a multiple testing
+procedure that increases power compared to the method of Benjamini and
+Hochberg by assigning data-driven weights to each hypothesis.  The input to
+IHW is a two-column table of p-values and covariates.  The covariate can be
+any continuous-valued or categorical variable that is thought to be
+informative on the statistical properties of each hypothesis test, while it is
+independent of the p-value under the null hypothesis.")
+    (license license:artistic2.0)))
+
+(define-public r-icobra
+  (package
+    (name "r-icobra")
+    (version "1.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "iCOBRA" version))
+       (sha256
+        (base32
+         "0i1swrm31g0zffi5pm48bfvdfqpd32d0zdchkbyipz96al46jnld"))))
+    (properties `((upstream-name . "iCOBRA")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-dplyr" ,r-dplyr)
+       ("r-dt" ,r-dt)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-limma" ,r-limma)
+       ("r-reshape2" ,r-reshape2)
+       ("r-rocr" ,r-rocr)
+       ("r-scales" ,r-scales)
+       ("r-shiny" ,r-shiny)
+       ("r-shinybs" ,r-shinybs)
+       ("r-shinydashboard" ,r-shinydashboard)
+       ("r-upsetr" ,r-upsetr)))
+    (home-page "https://bioconductor.org/packages/iCOBRA")
+    (synopsis "Comparison and visualization of ranking and assignment methods")
+    (description
+     "This package provides functions for calculation and visualization of
+performance metrics for evaluation of ranking and binary
+classification (assignment) methods.  It also contains a Shiny application for
+interactive exploration of results.")
+    (license license:gpl2+)))
+
+(define-public r-mast
+  (package
+    (name "r-mast")
+    (version "1.8.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "MAST" version))
+       (sha256
+        (base32
+         "0rhx655dza0m6yg9jcfz2nmxqahvxx2l91kqgyp7qai0bzz9d9ix"))))
+    (properties `((upstream-name . "MAST")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-abind" ,r-abind)
+       ("r-biobase" ,r-biobase)
+       ("r-biocgenerics" ,r-biocgenerics)
+       ("r-data-table" ,r-data-table)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-plyr" ,r-plyr)
+       ("r-progress" ,r-progress)
+       ("r-reshape2" ,r-reshape2)
+       ("r-s4vectors" ,r-s4vectors)
+       ("r-singlecellexperiment" ,r-singlecellexperiment)
+       ("r-stringr" ,r-stringr)
+       ("r-summarizedexperiment" ,r-summarizedexperiment)))
+    (home-page "https://github.com/RGLab/MAST/")
+    (synopsis "Model-based analysis of single cell transcriptomics")
+    (description
+     "This package provides methods and models for handling zero-inflated
+single cell assay data.")
+    (license license:gpl2+)))
+
+(define-public r-monocle
+  (package
+    (name "r-monocle")
+    (version "2.10.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "monocle" version))
+       (sha256
+        (base32
+         "0shwkgqs93j2l5h36yyvb1lf724107cfjrmzp5fxfj1lqc0y61lf"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biobase" ,r-biobase)
+       ("r-biocgenerics" ,r-biocgenerics)
+       ("r-biocviews" ,r-biocviews)
+       ("r-cluster" ,r-cluster)
+       ("r-combinat" ,r-combinat)
+       ("r-ddrtree" ,r-ddrtree)
+       ("r-densityclust" ,r-densityclust)
+       ("r-dplyr" ,r-dplyr)
+       ("r-fastica" ,r-fastica)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-hsmmsinglecell" ,r-hsmmsinglecell)
+       ("r-igraph" ,r-igraph)
+       ("r-irlba" ,r-irlba)
+       ("r-limma" ,r-limma)
+       ("r-mass" ,r-mass)
+       ("r-matrix" ,r-matrix)
+       ("r-matrixstats" ,r-matrixstats)
+       ("r-pheatmap" ,r-pheatmap)
+       ("r-plyr" ,r-plyr)
+       ("r-proxy" ,r-proxy)
+       ("r-qlcmatrix" ,r-qlcmatrix)
+       ("r-rann" ,r-rann)
+       ("r-rcpp" ,r-rcpp)
+       ("r-reshape2" ,r-reshape2)
+       ("r-rtsne" ,r-rtsne)
+       ("r-slam" ,r-slam)
+       ("r-stringr" ,r-stringr)
+       ("r-tibble" ,r-tibble)
+       ("r-vgam" ,r-vgam)
+       ("r-viridis" ,r-viridis)))
+    (home-page "https://bioconductor.org/packages/monocle")
+    (synopsis "Clustering, differential expression, and trajectory analysis for single-cell RNA-Seq")
+    (description
+     "Monocle performs differential expression and time-series analysis for
+single-cell expression experiments.  It orders individual cells according to
+progress through a biological process, without knowing ahead of time which
+genes define progress through that process.  Monocle also performs
+differential expression analysis, clustering, visualization, and other useful
+tasks on single cell expression data.  It is designed to work with RNA-Seq and
+qPCR data, but could be used with other types as well.")
+    (license license:artistic2.0)))
+
+(define-public r-noiseq
+  (package
+    (name "r-noiseq")
+    (version "2.26.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "NOISeq" version))
+       (sha256
+        (base32
+         "1wyhhi9ydlbjlz427093mdp5ppby77n37w5c2iyxlpsdk2m2nqsn"))))
+    (properties `((upstream-name . "NOISeq")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biobase" ,r-biobase)
+       ("r-matrix" ,r-matrix)))
+    (home-page "https://bioconductor.org/packages/NOISeq")
+    (synopsis "Exploratory analysis and differential expression for RNA-seq data")
+    (description
+     "This package provides tools to support the analysis of RNA-seq
+expression data or other similar kind of data.  It provides exploratory plots
+to evaluate saturation, count distribution, expression per chromosome, type of
+detected features, features length, etc.  It also supports the analysis of
+differential expression between two experimental conditions with no parametric
+assumptions.")
+    (license license:artistic2.0)))
+
+(define-public r-scdd
+  (package
+    (name "r-scdd")
+    (version "1.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "scDD" version))
+       (sha256
+        (base32
+         "0dp2awajd5281dwpbs0wb8ij2pq9l60p0b80xhxrb41m5qybcri8"))))
+    (properties `((upstream-name . "scDD")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-arm" ,r-arm)
+       ("r-biocparallel" ,r-biocparallel)
+       ("r-ebseq" ,r-ebseq)
+       ("r-fields" ,r-fields)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-mclust" ,r-mclust)
+       ("r-outliers" ,r-outliers)
+       ("r-s4vectors" ,r-s4vectors)
+       ("r-scran" ,r-scran)
+       ("r-singlecellexperiment" ,r-singlecellexperiment)
+       ("r-summarizedexperiment" ,r-summarizedexperiment)))
+    (home-page "https://github.com/kdkorthauer/scDD")
+    (synopsis "Mixture modeling of single-cell RNA-seq data")
+    (description
+     "This package implements a method to analyze single-cell RNA-seq data
+utilizing flexible Dirichlet Process mixture models.  Genes with differential
+distributions of expression are classified into several interesting patterns
+of differences between two conditions.  The package also includes functions
+for simulating data with these patterns from negative binomial
+distributions.")
+    (license license:gpl2)))
+
+(define-public r-scone
+  (package
+    (name "r-scone")
+    (version "1.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "scone" version))
+       (sha256
+        (base32
+         "0l1x4cjnfjbpx6k55sjqx03555daa6v63rq0rg6b7jpz8xxzwa7p"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-aroma-light" ,r-aroma-light)
+       ("r-biocparallel" ,r-biocparallel)
+       ("r-boot" ,r-boot)
+       ("r-class" ,r-class)
+       ("r-cluster" ,r-cluster)
+       ("r-compositions" ,r-compositions)
+       ("r-diptest" ,r-diptest)
+       ("r-edger" ,r-edger)
+       ("r-fpc" ,r-fpc)
+       ("r-gplots" ,r-gplots)
+       ("r-hexbin" ,r-hexbin)
+       ("r-limma" ,r-limma)
+       ("r-matrixstats" ,r-matrixstats)
+       ("r-mixtools" ,r-mixtools)
+       ("r-rarpack" ,r-rarpack)
+       ("r-rcolorbrewer" ,r-rcolorbrewer)
+       ("r-rhdf5" ,r-rhdf5)
+       ("r-ruvseq" ,r-ruvseq)
+       ("r-summarizedexperiment" ,r-summarizedexperiment)))
+    (home-page "https://bioconductor.org/packages/scone")
+    (synopsis "Single cell overview of normalized expression data")
+    (description
+     "SCONE is an R package for comparing and ranking the performance of
+different normalization schemes for single-cell RNA-seq and other
+high-throughput analyses.")
+    (license license:artistic2.0)))
+
+(define-public r-geoquery
+  (package
+    (name "r-geoquery")
+    (version "2.50.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "GEOquery" version))
+       (sha256
+        (base32
+         "074dl00c8yi1ihpjkw7vl9vy2hggvipib0jn0hli0wrw7x1h9hg6"))))
+    (properties `((upstream-name . "GEOquery")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biobase" ,r-biobase)
+       ("r-dplyr" ,r-dplyr)
+       ("r-httr" ,r-httr)
+       ("r-limma" ,r-limma)
+       ("r-magrittr" ,r-magrittr)
+       ("r-readr" ,r-readr)
+       ("r-tidyr" ,r-tidyr)
+       ("r-xml2" ,r-xml2)))
+    (home-page "https://github.com/seandavi/GEOquery/")
+    (synopsis "Get data from NCBI Gene Expression Omnibus (GEO)")
+    (description
+     "The NCBI Gene Expression Omnibus (GEO) is a public repository of
+microarray data.  Given the rich and varied nature of this resource, it is
+only natural to want to apply BioConductor tools to these data.  GEOquery is
+the bridge between GEO and BioConductor.")
+    (license license:gpl2)))
+
+(define-public r-illuminaio
+  (package
+    (name "r-illuminaio")
+    (version "0.24.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "illuminaio" version))
+       (sha256
+        (base32
+         "1rdp9b4xlv91yzba7pd7k50s3nkljfxmdmyz5jl0j8ybhmpl6rns"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-base64" ,r-base64)))
+    (home-page "https://github.com/HenrikBengtsson/illuminaio/")
+    (synopsis "Parse Illumina microarray output files")
+    (description
+     "This package provides tools for parsing Illumina's microarray output
+files, including IDAT.")
+    (license license:gpl2)))
+
+(define-public r-siggenes
+  (package
+    (name "r-siggenes")
+    (version "1.56.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "siggenes" version))
+       (sha256
+        (base32
+         "0cjlb5r04x15xkhk00i3wvpx21kj0k29pn0mj3whwqk31zznnk1b"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biobase" ,r-biobase)
+       ("r-multtest" ,r-multtest)))
+    (home-page "https://bioconductor.org/packages/siggenes/")
+    (synopsis
+     "Multiple testing using SAM and Efron's empirical Bayes approaches")
+    (description
+     "This package provides tools for the identification of differentially
+expressed genes and estimation of the @dfn{False Discovery Rate} (FDR) using
+both the Significance Analysis of Microarrays (SAM) and the @dfn{Empirical
+Bayes Analyses of Microarrays} (EBAM).")
+    (license license:lgpl2.0+)))
+
+(define-public r-bumphunter
+  (package
+    (name "r-bumphunter")
+    (version "1.24.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "bumphunter" version))
+       (sha256
+        (base32
+         "1f9vk3srffbx8jpza40nd18a4y0p0z8q40mx55dlcnddkwrqi19b"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-annotationdbi" ,r-annotationdbi)
+       ("r-biocgenerics" ,r-biocgenerics)
+       ("r-dorng" ,r-dorng)
+       ("r-foreach" ,r-foreach)
+       ("r-genomeinfodb" ,r-genomeinfodb)
+       ("r-genomicfeatures" ,r-genomicfeatures)
+       ("r-genomicranges" ,r-genomicranges)
+       ("r-iranges" ,r-iranges)
+       ("r-iterators" ,r-iterators)
+       ("r-limma" ,r-limma)
+       ("r-locfit" ,r-locfit)
+       ("r-matrixstats" ,r-matrixstats)
+       ("r-s4vectors" ,r-s4vectors)))
+    (home-page "https://github.com/ririzarr/bumphunter")
+    (synopsis "Find bumps in genomic data")
+    (description
+     "This package provides tools for finding bumps in genomic data in order
+to identify differentially methylated regions in epigenetic epidemiology
+studies.")
+    (license license:artistic2.0)))
+
+(define-public r-minfi
+  (package
+    (name "r-minfi")
+    (version "1.28.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "minfi" version))
+       (sha256
+        (base32
+         "1sjwwqb0syngvj75saaky9y06hbxsawhhcmfvavzkhicxipafv7r"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-beanplot" ,r-beanplot)
+       ("r-biobase" ,r-biobase)
+       ("r-biocgenerics" ,r-biocgenerics)
+       ("r-biocparallel" ,r-biocparallel)
+       ("r-biostrings" ,r-biostrings)
+       ("r-bumphunter" ,r-bumphunter)
+       ("r-data-table" ,r-data-table)
+       ("r-delayedarray" ,r-delayedarray)
+       ("r-delayedmatrixstats" ,r-delayedmatrixstats)
+       ("r-genefilter" ,r-genefilter)
+       ("r-genomeinfodb" ,r-genomeinfodb)
+       ("r-genomicranges" ,r-genomicranges)
+       ("r-geoquery" ,r-geoquery)
+       ("r-hdf5array" ,r-hdf5array)
+       ("r-illuminaio" ,r-illuminaio)
+       ("r-iranges" ,r-iranges)
+       ("r-lattice" ,r-lattice)
+       ("r-limma" ,r-limma)
+       ("r-mass" ,r-mass)
+       ("r-mclust" ,r-mclust)
+       ("r-nlme" ,r-nlme)
+       ("r-nor1mix" ,r-nor1mix)
+       ("r-preprocesscore" ,r-preprocesscore)
+       ("r-quadprog" ,r-quadprog)
+       ("r-rcolorbrewer" ,r-rcolorbrewer)
+       ("r-reshape" ,r-reshape)
+       ("r-s4vectors" ,r-s4vectors)
+       ("r-siggenes" ,r-siggenes)
+       ("r-summarizedexperiment" ,r-summarizedexperiment)))
+    (home-page "https://github.com/hansenlab/minfi")
+    (synopsis "Analyze Illumina Infinium DNA methylation arrays")
+    (description
+     "This package provides tools to analyze and visualize Illumina Infinium
+methylation arrays.")
+    (license license:artistic2.0)))
+
+(define-public r-methylumi
+  (package
+    (name "r-methylumi")
+    (version "2.28.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "methylumi" version))
+       (sha256
+        (base32
+         "14p2qi18cprfvb2gxng1vm48c7zwh23h88q9qjgipj9xl5axsgw2"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-annotate" ,r-annotate)
+       ("r-annotationdbi" ,r-annotationdbi)
+       ("r-biobase" ,r-biobase)
+       ("r-biocgenerics" ,r-biocgenerics)
+       ("r-fdb-infiniummethylation-hg19" ,r-fdb-infiniummethylation-hg19)
+       ("r-genefilter" ,r-genefilter)
+       ("r-genomeinfodb" ,r-genomeinfodb)
+       ("r-genomicranges" ,r-genomicranges)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-illuminaio" ,r-illuminaio)
+       ("r-iranges" ,r-iranges)
+       ("r-lattice" ,r-lattice)
+       ("r-matrixstats" ,r-matrixstats)
+       ("r-minfi" ,r-minfi)
+       ("r-reshape2" ,r-reshape2)
+       ("r-s4vectors" ,r-s4vectors)
+       ("r-scales" ,r-scales)
+       ("r-summarizedexperiment" ,r-summarizedexperiment)))
+    (home-page "https://bioconductor.org/packages/methylumi")
+    (synopsis "Handle Illumina methylation data")
+    (description
+     "This package provides classes for holding and manipulating Illumina
+methylation data.  Based on eSet, it can contain MIAME information, sample
+information, feature information, and multiple matrices of data.  An
+\"intelligent\" import function, methylumiR can read the Illumina text files
+and create a MethyLumiSet.  methylumIDAT can directly read raw IDAT files from
+HumanMethylation27 and HumanMethylation450 microarrays.  Normalization,
+background correction, and quality control features for GoldenGate, Infinium,
+and Infinium HD arrays are also included.")
+    (license license:gpl2)))
+
+(define-public r-lumi
+  (package
+    (name "r-lumi")
+    (version "2.34.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "lumi" version))
+       (sha256
+        (base32
+         "1fpmjpgcy5n0hx9whn9m3jhjmciqq0l59nvy5addbq0a4wnjhx8q"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-affy" ,r-affy)
+       ("r-annotate" ,r-annotate)
+       ("r-annotationdbi" ,r-annotationdbi)
+       ("r-biobase" ,r-biobase)
+       ("r-dbi" ,r-dbi)
+       ("r-genomicfeatures" ,r-genomicfeatures)
+       ("r-genomicranges" ,r-genomicranges)
+       ("r-kernsmooth" ,r-kernsmooth)
+       ("r-lattice" ,r-lattice)
+       ("r-mass" ,r-mass)
+       ("r-methylumi" ,r-methylumi)
+       ("r-mgcv" ,r-mgcv)
+       ("r-nleqslv" ,r-nleqslv)
+       ("r-preprocesscore" ,r-preprocesscore)
+       ("r-rsqlite" ,r-rsqlite)))
+    (home-page "https://bioconductor.org/packages/lumi")
+    (synopsis "BeadArray-specific methods for Illumina methylation and expression microarrays")
+    (description
+     "The lumi package provides an integrated solution for the Illumina
+microarray data analysis.  It includes functions of Illumina
+BeadStudio (GenomeStudio) data input, quality control, BeadArray-specific
+variance stabilization, normalization and gene annotation at the probe level.
+It also includes the functions of processing Illumina methylation microarrays,
+especially Illumina Infinium methylation microarrays.")
+    (license license:lgpl2.0+)))
+
+(define-public r-linnorm
+  (package
+    (name "r-linnorm")
+    (version "2.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "Linnorm" version))
+       (sha256
+        (base32
+         "1qgk8m5kc409flqxs3vnf228v3z0112q8py9hgfgyiwvi6yzdbp6"))))
+    (properties `((upstream-name . "Linnorm")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-amap" ,r-amap)
+       ("r-apcluster" ,r-apcluster)
+       ("r-ellipse" ,r-ellipse)
+       ("r-fastcluster" ,r-fastcluster)
+       ("r-fpc" ,r-fpc)
+       ("r-ggdendro" ,r-ggdendro)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-gmodels" ,r-gmodels)
+       ("r-igraph" ,r-igraph)
+       ("r-limma" ,r-limma)
+       ("r-mass" ,r-mass)
+       ("r-mclust" ,r-mclust)
+       ("r-rcpp" ,r-rcpp)
+       ("r-rcpparmadillo" ,r-rcpparmadillo)
+       ("r-rtsne" ,r-rtsne)
+       ("r-statmod" ,r-statmod)
+       ("r-vegan" ,r-vegan)
+       ("r-zoo" ,r-zoo)))
+    (home-page "http://www.jjwanglab.org/Linnorm/")
+    (synopsis "Linear model and normality based transformation method")
+    (description
+     "Linnorm is an R package for the analysis of RNA-seq, scRNA-seq, ChIP-seq
+count data or any large scale count data.  It transforms such datasets for
+parametric tests.  In addition to the transformtion function (@code{Linnorm}),
+the following pipelines are implemented:
+
+@enumerate
+@item Library size/batch effect normalization (@code{Linnorm.Norm})
+@item Cell subpopluation analysis and visualization using t-SNE or PCA K-means
+  clustering or hierarchical clustering (@code{Linnorm.tSNE},
+  @code{Linnorm.PCA}, @code{Linnorm.HClust})
+@item Differential expression analysis or differential peak detection using
+  limma (@code{Linnorm.limma})
+@item Highly variable gene discovery and visualization (@code{Linnorm.HVar})
+@item Gene correlation network analysis and visualization (@code{Linnorm.Cor})
+@item Stable gene selection for scRNA-seq data; for users without or who do
+  not want to rely on spike-in genes (@code{Linnorm.SGenes})
+@item Data imputation (@code{Linnorm.DataImput}).
+@end enumerate
+
+Linnorm can work with raw count, CPM, RPKM, FPKM and TPM.  Additionally, the
+@code{RnaXSim} function is included for simulating RNA-seq data for the
+evaluation of DEG analysis methods.")
+    (license license:expat)))
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 26fcc3a41a..9b0a4314b9 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -1752,6 +1752,72 @@ high-throughput sequencing data – with an emphasis on simplicity.")
 (define-public python2-plastid
   (package-with-python2 python-plastid))
 
+(define-public tetoolkit
+  (package
+    (name "tetoolkit")
+    (version "2.0.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/mhammell-laboratory/tetoolkit.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1yzi0kfpzip8zpjb82x1ik6h22yzfyjiz2dv85v6as2awwqvk807"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2               ; not guaranteed to work with Python 3
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'make-writable
+           (lambda _
+             (for-each make-file-writable (find-files "."))
+             #t))
+         (add-after 'unpack 'patch-invocations
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* '("bin/TEtranscripts"
+                            "bin/TEcount")
+               (("'sort ")
+                (string-append "'" (which "sort") " "))
+               (("'rm -f ")
+                (string-append "'" (which "rm") " -f "))
+               (("'Rscript'") (string-append "'" (which "Rscript") "'")))
+             (substitute* "TEToolkit/IO/ReadInputs.py"
+               (("BamToBED") (which "bamToBed")))
+             (substitute* "TEToolkit/Normalization.py"
+               (("\"Rscript\"")
+                (string-append "\"" (which "Rscript") "\"")))
+             #t))
+         (add-after 'install 'wrap-program
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; Make sure the executables find R packages.
+             (let ((out (assoc-ref outputs "out")))
+               (for-each
+                (lambda (script)
+                  (wrap-program (string-append out "/bin/" script)
+                    `("R_LIBS_SITE" ":" = (,(getenv "R_LIBS_SITE")))))
+                '("TEtranscripts"
+                  "TEcount")))
+             #t)))))
+    (inputs
+     `(("coreutils" ,coreutils)
+       ("bedtools" ,bedtools)
+       ("python-argparse" ,python2-argparse)
+       ("python-pysam" ,python2-pysam)
+       ("r-minimal" ,r-minimal)
+       ("r-deseq2" ,r-deseq2)))
+    (home-page "https://github.com/mhammell-laboratory/tetoolkit")
+    (synopsis "Transposable elements in differential enrichment analysis")
+    (description
+     "This is package for including transposable elements in differential
+enrichment analysis of sequencing datasets.  TEtranscripts and TEcount take
+RNA-seq (and similar data) and annotates reads to both genes and transposable
+elements.  TEtranscripts then performs differential analysis using DESeq2.
+Note that TEtranscripts and TEcount rely on specially curated GTF files, which
+are not included due to their size.")
+    (license license:gpl3+)))
+
 (define-public cd-hit
   (package
     (name "cd-hit")
@@ -10293,35 +10359,6 @@ quality controls, normalization, visualization, and further analysis are also
 provided.")
     (license license:artistic2.0)))
 
-(define-public r-qvalue
-  (package
-    (name "r-qvalue")
-    (version "2.14.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (bioconductor-uri "qvalue" version))
-       (sha256
-        (base32
-         "0kxavzm1j2mk26qicmjm90nxx4w5h3dxighzks7wzihay3k8cysc"))))
-    (build-system r-build-system)
-    (propagated-inputs
-     `(("r-ggplot2" ,r-ggplot2)
-       ("r-reshape2" ,r-reshape2)))
-    (home-page "http://github.com/jdstorey/qvalue")
-    (synopsis "Q-value estimation for false discovery rate control")
-    (description
-     "This package takes a list of p-values resulting from the simultaneous
-testing of many hypotheses and estimates their q-values and local @dfn{false
-discovery rate} (FDR) values.  The q-value of a test measures the proportion
-of false positives incurred when that particular test is called significant.
-The local FDR measures the posterior probability the null hypothesis is true
-given the test's p-value.  Various plots are automatically generated, allowing
-one to make sensible significance cut-offs.  The software can be applied to
-problems in genomics, brain imaging, astrophysics, and data mining.")
-    ;; Any version of the LGPL.
-    (license license:lgpl3+)))
-
 (define-public r-hdf5array
   (package
     (name "r-hdf5array")
@@ -11908,21 +11945,35 @@ variational inference.")
 (define-public python-loompy
   (package
     (name "python-loompy")
-    (version "2.0.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "loompy" version))
-       (sha256
-        (base32
-         "1drgv8j1hxqzzpnfg272x9djb6j8qr798w1pc2x8ikmfgyd9gh51"))))
+    (version "2.0.17")
+    ;; The tarball on Pypi does not include the tests.
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/linnarsson-lab/loompy.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "12a5kjgiikapv93wahfw0frszx1lblnppyz3vs5gy8fgmgngra07"))))
     (build-system python-build-system)
-    ;; There are no tests
-    (arguments '(#:tests? #f))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             (setenv "PYTHONPATH"
+                     (string-append (getcwd) ":"
+                                    (getenv "PYTHONPATH")))
+             (invoke "pytest" "tests")
+             #t)))))
     (propagated-inputs
      `(("python-h5py" ,python-h5py)
        ("python-numpy" ,python-numpy)
+       ("python-pandas" ,python-pandas)
        ("python-scipy" ,python-scipy)))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)))
     (home-page "https://github.com/linnarsson-lab/loompy")
     (synopsis "Work with .loom files for single-cell RNA-seq data")
     (description "The loom file format is an efficient format for very large
@@ -14158,3 +14209,34 @@ short read sequences, removes errors then produces high quality unique
 contigs.  It then uses paired read information, if available, to retrieve the
 repeated areas between contigs.")
     (license license:gpl2+)))
+
+(define-public python-velocyto
+  (package
+    (name "python-velocyto")
+    (version "0.17.17")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "velocyto" version))
+       (sha256
+        (base32
+         "0fgygyzqgrq32dv6a00biq1p1cwi6kbl5iqblxq1kklj6b2mzmhs"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-click" ,python-click)
+       ("python-cython" ,python-cython)
+       ("python-h5py" ,python-h5py)
+       ("python-loompy" ,python-loompy)
+       ("python-matplotlib" ,python-matplotlib)
+       ("python-numba" ,python-numba)
+       ("python-numpy" ,python-numpy)
+       ("python-pandas" ,python-pandas)
+       ("python-pysam" ,python-pysam)
+       ("python-scikit-learn" ,python-scikit-learn)
+       ("python-scipy" ,python-scipy)))
+    (home-page "https://github.com/velocyto-team/velocyto.py")
+    (synopsis "RNA velocity analysis for single cell RNA-seq data")
+    (description
+     "Velocyto is a library for the analysis of RNA velocity.  Velocyto
+includes a command line tool and an analysis pipeline.")
+    (license license:bsd-2)))
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 15953ab75e..d6ef7d52b5 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -340,7 +340,7 @@ menu to select one of the installed operating systems.")
 (define-public dtc
   (package
     (name "dtc")
-    (version "1.4.7")
+    (version "1.5.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -348,11 +348,13 @@ menu to select one of the installed operating systems.")
                     "dtc-" version ".tar.xz"))
               (sha256
                (base32
-                "1rydi5jvhlhsr110h6n0pavv3daqa0cb4m5vcps50qzq1zqfhhv6"))))
+                "0wh10p42hf5403ipvs0dsxddb6kzfyk2sq4fgid9zqzpr51y8wn6"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("bison" ,bison)
        ("flex" ,flex)
+       ("libyaml" ,libyaml)
+       ("pkg-config" ,pkg-config)
        ("swig" ,swig)
        ("valgrind" ,valgrind)))
     (inputs
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 090c164e18..23a8f997f0 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -1563,14 +1563,14 @@ recreates the stored directory structure by default.")
 (define-public libzip
   (package
     (name "libzip")
-    (version "1.5.1")
+    (version "1.5.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "https://libzip.org/download/" name "-" version ".tar.xz"))
+                    "https://libzip.org/download/libzip-" version ".tar.xz"))
               (sha256
                (base32
-                "0wnkkvkq90wyawj9221i77sf3nix1vj3ygzdy59k8yvcjnv3bsh4"))))
+                "1d53shcy7nvls5db573bbdlm25lfz1iw2zshng5f00cssi5lvpmk"))))
     (native-inputs
      `(("perl" ,perl)))
     (inputs
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 5bd5c60d49..eac6293fc9 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018, 2019 Brett Gilio <brettg@posteo.net>
+;;; Copyright © 2019 Nicolò Balzarotti <anothersms@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -58,9 +59,11 @@
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mpi)
   #:use-module (gnu packages multiprecision)
+  #:use-module (gnu packages networking)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages statistics)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages web)
@@ -10839,3 +10842,900 @@ using @code{S3}.")
 for model selection.  The calibration methods available are based on the slope
 heuristics.")
     (license license:gpl2+)))
+
+(define-public r-dorng
+  (package
+    (name "r-dorng")
+    (version "1.7.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "doRNG" version))
+       (sha256
+        (base32
+         "1sb75aqkliprglfxc4x4wds6alqgzhvl2n812g1d32a88ra3slr7"))))
+    (properties `((upstream-name . "doRNG")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-foreach" ,r-foreach)
+       ("r-iterators" ,r-iterators)
+       ("r-pkgmaker" ,r-pkgmaker)
+       ("r-rngtools" ,r-rngtools)))
+    (home-page "https://renozao.github.io/doRNG/")
+    (synopsis "Generic reproducible parallel backend for foreach loops")
+    (description
+     "This package provides functions to perform reproducible parallel
+@code{foreach} loops, using independent random streams as generated by
+L'Ecuyer's combined multiple-recursive generator.  It enables to easily
+convert standard @code{%dopar%} loops into fully reproducible loops,
+independently of the number of workers, the task scheduling strategy, or the
+chosen parallel environment and associated foreach backend.")
+    (license license:gpl2+)))
+
+(define-public r-blockmodeling
+  (package
+    (name "r-blockmodeling")
+    (version "0.3.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "blockmodeling" version))
+       (sha256
+        (base32
+         "11v9903y9dwlzaqp8sx0fsibcg82phvappddy37r8lnxd4vchsd2"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-doparallel" ,r-doparallel)
+       ("r-dorng" ,r-dorng)
+       ("r-foreach" ,r-foreach)
+       ("r-matrix" ,r-matrix)))
+    (native-inputs `(("gfortran" ,gfortran)))
+    (home-page "https://cran.r-project.org/web/packages/blockmodeling")
+    (synopsis "Generalized and classical blockmodeling of valued networks")
+    (description
+     "This package is primarily meant as an implementation of generalized
+blockmodeling for valued networks.  In addition, measures of similarity or
+dissimilarity based on structural equivalence and regular equivalence (REGE
+algorithms) can be computed and partitioned matrices can be plotted.")
+    (license license:gpl2+)))
+
+(define-public r-upsetr
+  (package
+    (name "r-upsetr")
+    (version "1.3.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "UpSetR" version))
+       (sha256
+        (base32
+         "08vj7l92b8fpqyqwxshll2mhk3yhgyr74axvr2lf29z78bapymhz"))))
+    (properties `((upstream-name . "UpSetR")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-ggplot2" ,r-ggplot2)
+       ("r-gridextra" ,r-gridextra)
+       ("r-plyr" ,r-plyr)
+       ("r-scales" ,r-scales)))
+    (home-page "https://github.com/hms-dbmi/UpSetR")
+    (synopsis "Visualize intersecting sets")
+    (description
+     "This package provides a more scalable alternative to Venn and Euler
+diagrams for visualizing intersecting sets.  Create visualizations of
+intersecting sets using a novel matrix design, along with visualizations of
+several common set, element and attribute related tasks.")
+    (license license:expat)))
+
+;; This package includes a JavaScript file, which is not minified.  When
+;; upgrading please check that there are no new minified JavaScript files.
+(define-public r-shinybs
+  (package
+    (name "r-shinybs")
+    (version "0.61")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "shinyBS" version))
+       (sha256
+        (base32
+         "0rhim4mbp4x9vvm7xkmpl7mhb9qd1gr96cr4dv330v863ra2kgji"))))
+    (properties `((upstream-name . "shinyBS")))
+    (build-system r-build-system)
+    ;; The tests spawn Shiny browser apps.  They cannot be run
+    ;; non-interactively.
+    (arguments '(#:tests? #f))
+    (propagated-inputs
+     `(("r-htmltools" ,r-htmltools)
+       ("r-shiny" ,r-shiny)))
+    (home-page "https://ebailey78.github.io/shinyBS/")
+    (synopsis "Twitter Bootstrap components for Shiny")
+    (description
+     "This package adds additional Twitter Bootstrap components to Shiny.")
+    (license license:gpl3)))
+
+(define-public r-outliers
+  (package
+    (name "r-outliers")
+    (version "0.14")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "outliers" version))
+       (sha256
+        (base32
+         "0vcqfqmmv4yblyp3s6bd25r49pxb7hjzipiic5a82924nqfqzkmn"))))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/web/packages/outliers/index.html")
+    (synopsis "Tests for outliers")
+    (description
+     "This package provides a collection of some tests commonly used for
+identifying outliers.")
+    (license license:gpl2+)))
+
+(define-public r-bayesm
+  (package
+    (name "r-bayesm")
+    (version "3.1-1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "bayesm" version))
+       (sha256
+        (base32
+         "0y30cza92s6kgvmxjpr6f5g0qbcck7hslqp89ncprarhxiym2m28"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-rcpp" ,r-rcpp)
+       ("r-rcpparmadillo" ,r-rcpparmadillo)))
+    (home-page "http://www.perossi.org/home/bsm-1")
+    (synopsis "Bayesian inference for marketing/micro-econometrics")
+    (description
+     "This package covers many important models used in marketing and
+micro-econometrics applications, including Bayes Regression (univariate or
+multivariate dep var), Bayes Seemingly Unrelated Regression (SUR), Binary and
+Ordinal Probit, Multinomial Logit (MNL) and Multinomial Probit (MNP),
+Multivariate Probit, Negative Binomial (Poisson) Regression, Multivariate
+Mixtures of Normals (including clustering), Dirichlet Process Prior Density
+Estimation with normal base, Hierarchical Linear Models with normal prior and
+covariates, Hierarchical Linear Models with a mixture of normals prior and
+covariates, Hierarchical Multinomial Logits with a mixture of normals prior
+and covariates, Hierarchical Multinomial Logits with a Dirichlet Process prior
+and covariates, Hierarchical Negative Binomial Regression Models, Bayesian
+analysis of choice-based conjoint data, Bayesian treatment of linear
+instrumental variables models, Analysis of Multivariate Ordinal survey data
+with scale usage heterogeneity, and Bayesian Analysis of Aggregate Random
+Coefficient Logit Models.")
+    (license license:gpl2+)))
+
+(define-public r-tensora
+  (package
+    (name "r-tensora")
+    (version "0.36.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "tensorA" version))
+       (sha256
+        (base32
+         "176hjy3bvg3in62r97wxbhq187sjz6c1gwy9x6spaxl6k4my3zy7"))))
+    (properties `((upstream-name . "tensorA")))
+    (build-system r-build-system)
+    (home-page "http://www.stat.boogaart.de/tensorA")
+    (synopsis "Advanced tensor arithmetic with named indices")
+    (description
+     "This package provides convenience functions for advanced linear algebra
+with tensors and computation with datasets of tensors on a higher level
+abstraction.  It includes Einstein and Riemann summing conventions, dragging,
+co- and contravariate indices, and parallel computations on sequences of
+tensors.")
+    (license license:gpl2+)))
+
+(define-public r-rarpack
+  (package
+    (name "r-rarpack")
+    (version "0.11-0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "rARPACK" version))
+       (sha256
+        (base32
+         "12h2y46xcfldhjdmm960swgn9b23zvkj5vg2bi42s9qxwgi02d63"))))
+    (properties `((upstream-name . "rARPACK")))
+    (build-system r-build-system)
+    (propagated-inputs `(("r-rspectra" ,r-rspectra)))
+    (home-page "https://github.com/yixuan/rARPACK")
+    (synopsis "Solvers for large scale eigenvalue and SVD problems")
+    (description
+     "This package was previously an R wrapper of the ARPACK library, and now
+a shell of the R package RSpectra, an R interface to the Spectra library for
+solving large scale eigenvalue/vector problems.  The current version of
+rARPACK simply imports and exports the functions provided by RSpectra.  New
+users of rARPACK are advised to switch to the RSpectra package.")
+    (license license:bsd-3)))
+
+(define-public r-compositions
+  (package
+    (name "r-compositions")
+    (version "1.40-2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "compositions" version))
+       (sha256
+        (base32
+         "12mp05yi7jkdqg9iwh6bc9sx6sdxagcnrirznxy9hq8502p7238i"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-bayesm" ,r-bayesm)
+       ("r-energy" ,r-energy)
+       ("r-robustbase" ,r-robustbase)
+       ("r-tensora" ,r-tensora)))
+    (home-page "http://www.stat.boogaart.de/compositions")
+    (synopsis "Compositional data analysis")
+    (description
+     "This package provides functions for the consistent analysis of
+compositional data (e.g. portions of substances) and positive
+numbers (e.g. concentrations).")
+    (license license:gpl2+)))
+
+(define-public r-cobs
+  (package
+    (name "r-cobs")
+    (version "1.3-3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "cobs" version))
+       (sha256
+        (base32
+         "1pqvz7czcchri4x79g78hbwyagb3bqzdqb047zkbdinyz067c7kb"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-quantreg" ,r-quantreg)
+       ("r-sparsem" ,r-sparsem)))
+    (home-page "https://cran.r-project.org/web/packages/cobs")
+    (synopsis "Constrained B-Splines (sparse matrix based)")
+    (description
+     "This package provides qualitatively constrained (regression) smoothing
+splines via linear programming and sparse matrices.")
+    (license license:gpl2+)))
+
+(define-public r-drimpute
+  (package
+    (name "r-drimpute")
+    (version "1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "DrImpute" version))
+       (sha256
+        (base32
+         "1adzarrwqb282pqgx2yqswp9rpwd1naxsmar54kddr6qyd6b923b"))))
+    (properties `((upstream-name . "DrImpute")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-rcpp" ,r-rcpp)
+       ("r-rcpparmadillo" ,r-rcpparmadillo)))
+    (home-page "https://github.com/ikwak2/DrImpute")
+    (synopsis "Imputing dropout events in single-cell RNA-Seq data")
+    (description
+     "This is an R package for imputing dropout events.  Many statistical
+methods in cell type identification, visualization and lineage reconstruction
+do not account for dropout events.  DrImpute can improve the performance of
+such software by imputing dropout events.")
+    (license license:gpl3)))
+
+(define-public r-gamlss-dist
+  (package
+    (name "r-gamlss-dist")
+    (version "5.1-1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "gamlss.dist" version))
+       (sha256
+        (base32
+         "1cd0vl9klcb849i8xwyjm8ihb1da92631j1rxdbnflgffkzrkya4"))))
+    (properties `((upstream-name . "gamlss.dist")))
+    (build-system r-build-system)
+    (propagated-inputs `(("r-mass" ,r-mass)))
+    (home-page "http://www.gamlss.org/")
+    (synopsis "Distributions for Generalized Additive Models for location scale and shape")
+    (description
+     "This package provides a set of distributions which can be used for
+modelling the response variables in Generalized Additive Models for Location
+Scale and Shape.  The distributions can be continuous, discrete or mixed
+distributions.  Extra distributions can be created, by transforming, any
+continuous distribution defined on the real line, to a distribution defined on
+ranges 0 to infinity or 0 to 1, by using a @code{log} or a @code{logit}
+transformation, respectively.")
+    ;; Either version of the GPL.
+    (license (list license:gpl2 license:gpl3))))
+
+;; This package includes JavaScript files, which are not minified.  When
+;; upgrading please check that there are no new minified JavaScript files.
+(define-public r-shinyjs
+  (package
+    (name "r-shinyjs")
+    (version "1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "shinyjs" version))
+       (sha256
+        (base32
+         "113zpijri0l80rlgrvqn6bxk0sdqgl79h7yhja2p76f9dc9i2sr8"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-digest" ,r-digest)
+       ("r-htmltools" ,r-htmltools)
+       ("r-jsonlite" ,r-jsonlite)
+       ("r-shiny" ,r-shiny)))
+    (home-page "https://deanattali.com/shinyjs")
+    (synopsis "Improve the user experience of your Shiny apps")
+    (description
+     "Perform common useful JavaScript operations in Shiny apps that will
+greatly improve your apps without having to know any JavaScript.  Examples
+include: hiding an element, disabling an input, resetting an input back to its
+original value, delaying code execution by a few seconds, and many more useful
+functions for both the end user and the developer.  Shinyjs can also be used
+to easily call your own custom JavaScript functions from R.")
+    (license license:agpl3+)))
+
+;; This package includes minified JavaScript files.  When upgrading please
+;; check that there are no new minified JavaScript files.
+(define-public r-colourpicker
+  (package
+    (name "r-colourpicker")
+    (version "1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "colourpicker" version))
+       (sha256
+        (base32
+         "0z3v2083g7kwdp21x9s2n1crfh24agpdq3yxkcdzc2awn2pwpnpi"))))
+    (build-system r-build-system)
+    (arguments
+     `(#:modules ((guix build utils)
+                  (guix build r-build-system)
+                  (srfi srfi-1)
+                  (ice-9 popen))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'process-javascript
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "inst"
+               (call-with-values
+                   (lambda ()
+                     (unzip2
+                      `((,(assoc-ref inputs "js-salvattore")
+                         "examples/colourInput/www/salvattore.min.js")
+                        (,(assoc-ref inputs "js-jquery")
+                         "htmlwidgets/lib/jquery/jquery.min.js")
+                        ("www/shared/colourpicker/js/colourpicker.js"
+                         "www/shared/colourpicker/js/colourpicker.min.js"))))
+                 (lambda (sources targets)
+                   (for-each (lambda (source target)
+                               (format #t "Processing ~a --> ~a~%"
+                                       source target)
+                               (delete-file target)
+                               (let ((minified (open-pipe* OPEN_READ "uglify-js" source)))
+                                 (call-with-output-file target
+                                   (lambda (port)
+                                     (dump-port minified port)))))
+                             sources targets))))
+             #t)))))
+    (propagated-inputs
+     `(("r-ggplot2" ,r-ggplot2)
+       ("r-htmltools" ,r-htmltools)
+       ("r-htmlwidgets" ,r-htmlwidgets)
+       ("r-jsonlite" ,r-jsonlite)
+       ("r-miniui" ,r-miniui)
+       ("r-shiny" ,r-shiny)
+       ("r-shinyjs" ,r-shinyjs)))
+    (native-inputs
+     `(("uglify-js" ,uglify-js)
+       ("js-jquery"
+        ,(origin
+           (method url-fetch)
+           (uri "https://code.jquery.com/jquery-3.3.1.js")
+           (sha256
+            (base32
+             "1b8zxrp6xwzpw25apn8j4qws0f6sr7qr7h2va5h1mjyfqvn29anq"))))
+       ("js-salvattore"
+        ,(origin
+           (method url-fetch)
+           (uri "https://raw.githubusercontent.com/rnmp/salvattore/v1.0.9/dist/salvattore.js")
+           (sha256
+            (base32
+             "0lfrbx7l9w5x89jpc6njmd0pk7h8fpvg537vklai2vf7b1r2nnk5"))))))
+    (home-page "https://github.com/daattali/colourpicker")
+    (synopsis "Color picker tool for Shiny and for selecting colors in plots")
+    (description
+     "This package provides a color picker that can be used as an input in
+Shiny apps or Rmarkdown documents.  The color picker supports alpha opacity,
+custom color palettes, and many more options.  A plot color helper tool is
+available as an RStudio Addin, which helps you pick colors to use in your
+plots.  A more generic color picker RStudio Addin is also provided to let you
+select colors to use in your R code.")
+    (license license:expat)))
+
+(define-public r-ggextra
+  (package
+    (name "r-ggextra")
+    (version "0.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "ggExtra" version))
+       (sha256
+        (base32
+         "1m5zpn3l3p1y3d2692gyz50m63d58m2a3b7zb595kvcffdx2qr5b"))))
+    (properties `((upstream-name . "ggExtra")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-colourpicker" ,r-colourpicker)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-gtable" ,r-gtable)
+       ("r-miniui" ,r-miniui)
+       ("r-scales" ,r-scales)
+       ("r-shiny" ,r-shiny)
+       ("r-shinyjs" ,r-shinyjs)))
+    (home-page "https://github.com/daattali/ggExtra")
+    (synopsis "Marginal histograms for ggplot2 and other enhancements")
+    (description
+     "This package is a collection of functions and layers to enhance ggplot2.
+The flagship function is @code{ggMarginal()}, which can be used to add
+marginal histograms/boxplots/density plots to ggplot2 scatterplots.")
+    (license license:expat)))
+
+(define-public r-minpack-lm
+  (package
+    (name "r-minpack-lm")
+    (version "1.2-1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "minpack.lm" version))
+       (sha256
+        (base32
+         "18ym2pdql5vzngc7q5gn66d153hrfrnd8ilv8yh6vd7j7sx7vjql"))))
+    (properties `((upstream-name . "minpack.lm")))
+    (build-system r-build-system)
+    (native-inputs `(("gfortran" ,gfortran)))
+    (home-page "https://cran.r-project.org/web/packages/minpack.lm")
+    (synopsis "Levenberg-Marquardt Nonlinear Least-Squares algorithm")
+    (description
+     "The @code{nls.lm} function provides an R interface to @code{lmder} and
+@code{lmdif} from the MINPACK library, for solving nonlinear least-squares
+problems by a modification of the Levenberg-Marquardt algorithm, with support
+for lower and upper parameter bounds.  The implementation can be used via
+@code{nls}-like calls using the @code{nlsLM} function.")
+    (license license:gpl3)))
+
+(define-public r-moments
+  (package
+    (name "r-moments")
+    (version "0.14")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "moments" version))
+       (sha256
+        (base32
+         "0f9y58w1hxcz4bqivirx25ywlmc80gbi6dfx5cnhkpdg1pk82fra"))))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/web/packages/moments")
+    (synopsis "Moments, cumulants, skewness, kurtosis and related tests")
+    (description
+     "This package provides functions to calculate: moments, Pearson's
+kurtosis, Geary's kurtosis and skewness; it also includes tests related to
+them (Anscombe-Glynn, D'Agostino, Bonett-Seier).")
+    (license license:gpl2+)))
+
+(define-public r-msir
+  (package
+    (name "r-msir")
+    (version "1.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "msir" version))
+       (sha256
+        (base32
+         "1ipzgdffsqly3dp91pw7yp3h5cwn08l9qsj7cdmrykd42jc98950"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-mclust" ,r-mclust)
+       ("r-rgl" ,r-rgl)))
+    (home-page "https://cran.r-project.org/web/packages/msir")
+    (synopsis "Model-based sliced inverse regression")
+    (description
+     "This is an R package for dimension reduction based on finite Gaussian
+mixture modeling of inverse regression.")
+    (license license:gpl2+)))
+
+(define-public r-pbivnorm
+  (package
+    (name "r-pbivnorm")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "pbivnorm" version))
+       (sha256
+        (base32
+         "05jzrjqxzbcf6z245hlk7sjxiszv9paadaaimvcx5y5qgi87vhq7"))))
+    (build-system r-build-system)
+    (native-inputs `(("gfortran" ,gfortran)))
+    (home-page "https://github.com/brentonk/pbivnorm")
+    (synopsis "Vectorized bivariate normal CDF")
+    (description
+     "This package provides a vectorized R function for calculating
+probabilities from a standard bivariate normal CDF.")
+    (license license:gpl2+)))
+
+(define-public r-lavaan
+  (package
+    (name "r-lavaan")
+    (version "0.6-3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "lavaan" version))
+       (sha256
+        (base32
+         "0hw856kv11zqn6nd4216rh19i6xbnc1rh044r7jvvxkhzgbqkyxz"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-mass" ,r-mass)
+       ("r-mnormt" ,r-mnormt)
+       ("r-numderiv" ,r-numderiv)
+       ("r-pbivnorm" ,r-pbivnorm)))
+    (home-page "http://lavaan.ugent.be")
+    (synopsis "Latent variable analysis")
+    (description
+     "This package provides tools to fit a variety of latent variable models,
+including confirmatory factor analysis, structural equation modeling and
+latent growth curve models.")
+    (license license:gpl2+)))
+
+(define-public r-nonnest2
+  (package
+    (name "r-nonnest2")
+    (version "0.5-2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "nonnest2" version))
+       (sha256
+        (base32
+         "1bq44qqmm59j91m0sny4xnqmxqlga4cm48qdsw8xfs3x19xwmxk6"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-compquadform" ,r-compquadform)
+       ("r-lavaan" ,r-lavaan)
+       ("r-mvtnorm" ,r-mvtnorm)
+       ("r-sandwich" ,r-sandwich)))
+    (home-page "https://cran.r-project.org/web/packages/nonnest2/")
+    (synopsis "Tests of non-nested models")
+    (description
+     "This package allows for testing of non-nested models.  It includes tests
+of model distinguishability and of model fit that can be applied to both
+nested and non-nested models.  The package also includes functionality to
+obtain confidence intervals associated with AIC and BIC.")
+    ;; Either version of the GPL.
+    (license (list license:gpl2 license:gpl3))))
+
+(define-public r-penalized
+  (package
+    (name "r-penalized")
+    (version "0.9-51")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "penalized" version))
+       (sha256
+        (base32
+         "1zcrwa93mc27qj3g4ayc2k895r6g8q0g6qb2azmvj7wqk750va7a"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-rcpp" ,r-rcpp)
+       ("r-rcpparmadillo" ,r-rcpparmadillo)
+       ("r-survival" ,r-survival)))
+    (home-page "https://cran.r-project.org/web/packages/penalized/")
+    (synopsis "Penalized estimation in GLMs and in the Cox model")
+    (description
+     "This package provides tools for fitting possibly high dimensional
+penalized regression models.  The penalty structure can be any combination of
+an L1 penalty (lasso and fused lasso), an L2 penalty (ridge) and a positivity
+constraint on the regression coefficients.  The supported regression models
+are linear, logistic and Poisson regression and the Cox Proportional Hazards
+model.  Cross-validation routines allow optimization of the tuning
+parameters.")
+    (license license:gpl2+)))
+
+(define-public r-zim
+  (package
+    (name "r-zim")
+    (version "1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "ZIM" version))
+       (sha256
+        (base32
+         "0scyfjn4ilsvha3x41c3b8bcfi31hlhwm77wn2a8hj5dsvnnmzig"))))
+    (properties `((upstream-name . "ZIM")))
+    (build-system r-build-system)
+    (propagated-inputs `(("r-mass" ,r-mass)))
+    (home-page "https://github.com/biostatstudio/ZIM")
+    (synopsis "Zero-inflated models (ZIM) for count time series with excess zeros")
+    (description
+     "Analyze count time series with excess zeros.  Two types of statistical
+models are supported: Markov regression and state-space models.  They are also
+known as observation-driven and parameter-driven models respectively in the
+time series literature.  The functions used for Markov regression or
+observation-driven models can also be used to fit ordinary regression models
+with independent data under the zero-inflated Poisson (ZIP) or zero-inflated
+negative binomial (ZINB) assumption.  The package also contains miscellaneous
+functions to compute density, distribution, quantile, and generate random
+numbers from ZIP and ZINB distributions.")
+    (license license:gpl3)))
+
+(define-public r-nor1mix
+  (package
+    (name "r-nor1mix")
+    (version "1.2-3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "nor1mix" version))
+       (sha256
+        (base32
+         "1bvk888qml9qr7q703s7qzgm0sqfchcjdjqwqllm5vrjx0cnapj3"))))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/web/packages/nor1mix/")
+    (synopsis "Normal (1-d) mixture models")
+    (description
+     "This package provides S3 classes and methods for one-dimensional normal
+mixture models, for, e.g., density estimation or clustering algorithms
+research and teaching; it provides the widely used Marron-Wand densities.  It
+also provides tools for efficient random number generation and graphics.")
+    (license license:gpl2+)))
+
+(define-public r-beanplot
+  (package
+    (name "r-beanplot")
+    (version "1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "beanplot" version))
+       (sha256
+        (base32
+         "0wmkr704fl8kdxkjwmaxw2a2h5dwzfgsgpncnk2p2wd4768jknj9"))))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/web/packages/beanplot/")
+    (synopsis "Visualization via beanplots")
+    (description
+     "This package provides beanplots, an alternative to
+boxplot/stripchart/violin plots.  It can be used to plot univariate comparison
+graphs.")
+    (license license:gpl2)))
+
+(define-public r-pbdzmq
+  (package
+    (name "r-pbdzmq")
+    (version "0.3-3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "pbdZMQ" version))
+       (sha256
+        (base32
+         "1jkfcfhspvqra7vbllrvkz3jx8j7d0ang6zzcdjgpb7200sc29mf"))))
+    (properties `((upstream-name . "pbdZMQ")))
+    (build-system r-build-system)
+    (inputs
+     `(("zeromq" ,zeromq)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "https://pbdr.org/")
+    (synopsis "R interface to ZeroMQ")
+    (description
+     "ZeroMQ is a well-known library for high-performance asynchronous
+messaging in scalable, distributed applications.  This package provides high
+level R wrapper functions to easily utilize ZeroMQ.  The main focus is on
+interactive client/server programming frameworks.  A few wrapper functions
+compatible with @code{rzmq} are also provided.")
+    (license license:gpl3)))
+
+(define-public r-repr
+  (package
+    (name "r-repr")
+    (version "0.19.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "repr" version))
+       (sha256
+        (base32
+         "1mhhzakkagb8z568yx3p2ixs8fcifm7f8l2yq285zrz8jmnpckfx"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-base64enc" ,r-base64enc)
+       ("r-htmltools" ,r-htmltools)
+       ("r-jsonlite" ,r-jsonlite)))
+    (home-page "https://cran.r-project.org/web/packages/repr/")
+    (synopsis "Serializable representations")
+    (description
+     "This package provides string and binary representations of objects for
+several formats and MIME types.")
+    (license license:gpl3)))
+
+(define-public r-irdisplay
+  (package
+    (name "r-irdisplay")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "IRdisplay" version))
+       (sha256
+        (base32
+         "12chk53nf4zckgc4yl7gbvd7m5dvli52inp5b3f0zvcjvfncksli"))))
+    (properties `((upstream-name . "IRdisplay")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-repr" ,r-repr)))
+    (home-page "https://cran.r-project.org/web/packages/IRdisplay/")
+    (synopsis "Jupyter display machinery")
+    (description
+     "This package provides an interface to the rich display capabilities of
+Jupyter front-ends (e.g. Jupyter Notebook).  It is designed to be used from a
+running IRkernel session.")
+    (license license:expat)))
+
+(define-public r-irkernel
+  (package
+    (name "r-irkernel")
+    (version "0.8.15")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "IRkernel" version))
+       (sha256
+        (base32
+         "1n0nc3paij8fgbp7l2b4405zk9k4y3gdi2bz6z8x6j0h5mi6k6a6"))))
+    (properties `((upstream-name . "IRkernel")))
+    (build-system r-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-kernelspec
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (setenv "HOME" "/tmp")
+               (invoke "jupyter" "kernelspec" "install"
+                       "--name" "ir"
+                       "--prefix" out
+                       (string-append out "/site-library/IRkernel/kernelspec"))
+               #t))))))
+    (inputs
+     `(("jupyter" ,jupyter)))
+    (propagated-inputs
+     `(("r-crayon" ,r-crayon)
+       ("r-digest" ,r-digest)
+       ("r-evaluate" ,r-evaluate)
+       ("r-irdisplay" ,r-irdisplay)
+       ("r-jsonlite" ,r-jsonlite)
+       ("r-pbdzmq" ,r-pbdzmq)
+       ("r-repr" ,r-repr)
+       ("r-uuid" ,r-uuid)))
+    (home-page "https://cran.r-project.org/web/packages/IRkernel/")
+    (synopsis "Native R kernel for Jupyter")
+    (description
+     "The R kernel for the Jupyter environment executes R code which the
+front-end (Jupyter Notebook or other front-ends) submits to the kernel via the
+network.")
+    (license license:expat)))
+
+(define-public r-gmodels
+  (package
+    (name "r-gmodels")
+    (version "2.18.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "gmodels" version))
+       (sha256
+        (base32
+         "0s8kd8krqk4kwv2zqxpsfy3w8qdwf5naf4b5l383vidq9sil0qb2"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-gdata" ,r-gdata)
+       ("r-mass" ,r-mass)))
+    (home-page "https://cran.r-project.org/web/packages/gmodels/")
+    (synopsis "Various R programming tools for model fitting")
+    (description
+     "This package provides various R programming tools for model fitting.")
+    (license license:gpl2)))
+
+(define-public r-apcluster
+  (package
+    (name "r-apcluster")
+    (version "1.4.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "apcluster" version))
+       (sha256
+        (base32
+         "188hdfmwjjx3aic599nwmkzjqm9j9jighi5bly6qd43c1vj6ih2s"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-matrix" ,r-matrix)
+       ("r-rcpp" ,r-rcpp)))
+    (home-page "https://cran.r-project.org/web/packages/apcluster/")
+    (synopsis "Affinity propagation clustering")
+    (description
+     "This package implements affinity propagation clustering introduced by
+Frey and Dueck (2007).  The package further provides leveraged affinity
+propagation and an algorithm for exemplar-based agglomerative clustering that
+can also be used to join clusters obtained from affinity propagation.  Various
+plotting functions are available for analyzing clustering results.")
+    (license license:gpl2+)))
+
+(define-public r-valr
+  (package
+    (name "r-valr")
+    (version "0.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "valr" version))
+       (sha256
+        (base32
+         "14jhrwkiwmha3vlmm7b50n2xxyizj6ddmy89gb20mpzq7qhz1ika"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-broom" ,r-broom)
+       ("r-dplyr" ,r-dplyr)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-rcpp" ,r-rcpp)
+       ("r-readr" ,r-readr)
+       ("r-rlang" ,r-rlang)
+       ("r-stringr" ,r-stringr)
+       ("r-tibble" ,r-tibble)))
+    (home-page "http://github.com/rnabioco/valr")
+    (synopsis "Genome interval arithmetic in R")
+    (description
+     "This package enables you to read and manipulate genome intervals and
+signals.  It provides functionality similar to command-line tool suites within
+R, enabling interactive analysis and visualization of genome-scale data.")
+    (license license:expat)))
+
+(define-public r-rematch2
+  (package
+    (name "r-rematch2")
+    (version "2.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "rematch2" version))
+       (sha256
+        (base32
+         "16k0i5p7fa3qfxv59ijyn638wpz8n4jrkrnilqmh5g9l8f8bn4h6"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-tibble" ,r-tibble)))
+    (home-page "https://github.com/r-lib/rematch2")
+    (synopsis "Tidy output from regular expression matching")
+    (description
+     "This package provides wrappers on @code{regexpr} and @code{gregexpr} to
+return the match results in tidy data frames.")
+    (license license:expat)))
diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm
index 822fe17036..456a18012d 100644
--- a/gnu/packages/curl.scm
+++ b/gnu/packages/curl.scm
@@ -108,7 +108,7 @@
              (("/bin/sh") (which "sh")))
 
            ;; XXX FIXME: Test #1510 seems to work on some machines and not
-           ;; others, possibly based on the kernel version.  It works on GuixSD
+           ;; others, possibly based on the kernel version.  It works on Guix System
            ;; on x86_64 with linux-libre-4.1, but fails on Hydra for both i686
            ;; and x86_64 with the following error:
            ;;
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index f63257034f..762ca8f6f4 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -1275,15 +1275,14 @@ columns, primary keys, unique constraints and relationships.")
 (define-public perl-dbd-mysql
   (package
     (name "perl-dbd-mysql")
-    (version "4.048")
+    (version "4.050")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/M/MI/MICHIELB/"
+       (uri (string-append "mirror://cpan/authors/id/D/DV/DVEEDEN/"
                            "DBD-mysql-" version ".tar.gz"))
        (sha256
-        (base32
-         "1zqmch6c9gq06z90mkmk1skajk2kaggriw19ym5w04l7wv5gydqp"))))
+        (base32 "0y4djb048i09dk19av7mzfb3khr72vw11p3ayw2p82jsy4gm8j2g"))))
     (build-system perl-build-system)
     (arguments
      `(#:phases
@@ -1313,7 +1312,7 @@ columns, primary keys, unique constraints and relationships.")
 (define-public perl-dbd-sqlite
   (package
     (name "perl-dbd-sqlite")
-    (version "1.58")
+    (version "1.62")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1321,7 +1320,7 @@ columns, primary keys, unique constraints and relationships.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "0fqx386jgs9mmrknr7smmzapf07izgivza7x08lfm39ks2cxs83i"))))
+                "0p78ri1q6xpc1i98i6mlriv8n66iz8r5r11dlsknjm4y58rfz0mx"))))
     (build-system perl-build-system)
     (inputs `(("sqlite" ,sqlite)))
     (propagated-inputs `(("perl-dbi" ,perl-dbi)))
@@ -1336,15 +1335,14 @@ module, and nothing else.")
 (define-public perl-sql-abstract
   (package
     (name "perl-sql-abstract")
-    (version "1.85")
+    (version "1.86")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/I/IL/ILMARI/"
                            "SQL-Abstract-" version ".tar.gz"))
        (sha256
-        (base32
-         "1aycggrvppy2zgkwwn85jkdz93n5gsx4dambrjk67k5067hayi4z"))))
+        (base32 "1pwcm8hwxcgidyyrak37lx69d85q728jxsb0b14jz93gbvdgg9z7"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-install" ,perl-module-install)
@@ -1847,14 +1845,13 @@ for ODBC.")
 (define-public python-pyodbc
   (package
     (name "python-pyodbc")
-    (version "4.0.24")
+    (version "4.0.25")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pyodbc" version))
        (sha256
-        (base32
-         "1m311vi7vpay1j7rkq71fpsk0gb7454k4lldk5b63hyy6yvsn9j3"))
+        (base32 "1bbwrb812w5i0x56jfn0l86mxc2ck904hl8y87mziay96znwia0f"))
        (file-name (string-append name "-" version ".tar.gz"))))
     (build-system python-build-system)
     (inputs
@@ -2095,25 +2092,24 @@ Database API 2.0T.")
 (define-public python-sqlalchemy
   (package
     (name "python-sqlalchemy")
-    (version "1.2.11")
+    (version "1.3.1")
     (source
      (origin
       (method url-fetch)
       (uri (pypi-uri "SQLAlchemy" version))
       (sha256
-       (base32
-        "094mmbs4igrxplfyqd59j90jb83ixpbbzqc0w49yw81m82nnjrgg"))))
+       (base32 "12sr36646sipf9ac3n2xh8z0w5pz4d3dvw5qjv2kzvcls6wvf7vq"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python-cython" ,python-cython) ;for c extensions
+     `(("python-cython" ,python-cython) ; for C extensions
        ("python-pytest" ,python-pytest)
-       ("python-mock"   ,python-mock))) ;for tests
+       ("python-mock"   ,python-mock))) ; for tests
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
            (lambda _ (invoke "py.test"))))))
-    (home-page "http://www.sqlalchemy.org")
+    (home-page "https://www.sqlalchemy.org")
     (synopsis "Database abstraction library")
     (description
      "SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that
@@ -2335,14 +2331,13 @@ designed to be easy and intuitive to use.")
 (define-public python-psycopg2
   (package
     (name "python-psycopg2")
-    (version "2.7.5")
+    (version "2.7.7")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "psycopg2" version))
        (sha256
-        (base32
-         "17klx964gw8z0znl0raz3by8vdc7cq5gxj4pdcrfcina84nrdkzc"))))
+        (base32 "0zjbabb4qjx9dm07imhf8y5a9rpa06d5zah80myiimgdi83nslpl"))))
     (build-system python-build-system)
     (arguments
      ;; Tests would require a postgresql database "psycopg2_test"
@@ -2580,14 +2575,13 @@ provides support for parsing, splitting and formatting SQL statements.")
 (define-public python-sql
   (package
     (name "python-sql")
-    (version "0.9")
+    (version "1.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "python-sql" version))
        (sha256
-        (base32
-         "0p6kaqj02vz0habmdx37zjk6hjxdfm8aw737zs059vvpr70ird87"))))
+        (base32 "05ni936y0ia9xmryl7mlhbj9i80nnvq1bi4zxhb96rv7yvpb3fqb"))))
     (build-system python-build-system)
     (home-page "https://python-sql.tryton.org/")
     (synopsis "Library to write SQL queries in a pythonic way")
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 5b899f4e78..c54005ccf9 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -41,6 +41,7 @@
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages texinfo)
+  #:use-module (gnu packages tls)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xml)
   #:use-module ((guix licenses) #:prefix license:)
@@ -116,16 +117,15 @@ of categories with some of the activities available in that category.
 (define-public gcompris-qt
   (package
     (name "gcompris-qt")
-    (version "0.95")
+    (version "0.96")
     (source
-      (origin
-        (method url-fetch)
-        (uri (string-append
-               "https://gcompris.net/download/qt/src/gcompris-qt-"
-               version ".tar.xz"))
-        (sha256
-         (base32
-          "1aaijjx2b7k1cyx59jhs64hlp1sppw1faa81qxl5lxc79vifrlrl"))))
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://gcompris.net/download/qt/src/gcompris-qt-"
+             version ".tar.xz"))
+       (sha256
+        (base32 "06483il59l46ny2w771sg45dgzjwv1ph7vidzzbj0wb8wbk2rg52"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
@@ -162,7 +162,8 @@ of categories with some of the activities available in that category.
        ("qttools" ,qttools)
        ("xorg-server" ,xorg-server)))
     (inputs
-     `(("python-2" ,python-2)
+     `(("openssl" ,openssl)
+       ("python-2" ,python-2)
        ("qtbase" ,qtbase)
        ("qtdeclarative" ,qtdeclarative)
        ("qtgraphicaleffects" ,qtgraphicaleffects)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 30248f673a..e998ded897 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -26,7 +26,7 @@
 ;;; Copyright © 2017 George Clemmer <myglc2@gmail.com>
 ;;; Copyright © 2017, 2018 Feng Shu <tumashu@163.com>
 ;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
-;;; Copyright © 2017, 2018 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2017, 2018, 2019 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
 ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -278,7 +278,12 @@ on stdout instead of using a socket as the Emacsclient does.")
        ("magit-popup" ,emacs-magit-popup)
        ("with-editor" ,emacs-with-editor)))
     (arguments
-     `(#:test-target "test"
+     `(#:modules ((guix build gnu-build-system)
+                  (guix build utils)
+                  (guix build emacs-utils))
+       #:imported-modules (,@%gnu-build-system-modules
+                           (guix build emacs-utils))
+       #:test-target "test"
        #:tests? #f               ; tests are not included in the release
 
        #:make-flags
@@ -317,8 +322,9 @@ on stdout instead of using a socket as the Emacsclient does.")
           'build 'patch-exec-paths
           (lambda* (#:key inputs #:allow-other-keys)
             (let ((perl (assoc-ref inputs "perl")))
-              (substitute* "lisp/magit-sequence.el"
-                (("perl") (string-append perl "/bin/perl")))
+              (make-file-writable "lisp/magit-sequence.el")
+              (emacs-substitute-variables "lisp/magit-sequence.el"
+                ("magit-perl-executable" (string-append perl "/bin/perl")))
               #t))))))
     (home-page "https://magit.vc/")
     (synopsis "Emacs interface for the Git version control system")
@@ -1610,7 +1616,7 @@ and stored in memory.")
 (define-public emacs-dash
   (package
     (name "emacs-dash")
-    (version "2.14.1")
+    (version "2.15.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1619,7 +1625,7 @@ and stored in memory.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1kzijmjxjxgr7p8clphzvmm47vczckbs8mza9an77c25bn627ywl"))))
+                "0dx8q3jr8fh73cfl7mqi5dq0012ambpvc74d2c71fsv9rfw85693"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #t
@@ -4951,7 +4957,7 @@ ack, ag, helm and pt.")
 (define-public emacs-helm
   (package
     (name "emacs-helm")
-    (version "3.0")
+    (version "3.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -4960,7 +4966,7 @@ ack, ag, helm and pt.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0k2r0ccppaqfjvyszaxa16vf7g2qzj1clhfr6v646ncsy17laciw"))))
+                "0ymykcsbcgq2kskqc0ddigg0kfznxx3j02mkd5r3c3n8gn3kgz84"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-async" ,emacs-async)
@@ -7032,7 +7038,19 @@ running a customisable handler command (@code{ignore} by default). ")
        ("ert-runner" ,emacs-ert-runner)))
     (arguments
      `(#:tests? #t
-       #:test-command '("ert-runner")))
+       #:test-command '("ert-runner")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'delete-json-objects-order-test
+           (lambda _
+             (emacs-batch-edit-file "test/json-reformat-test.el"
+               `(progn (progn (goto-char (point-min))
+                              (re-search-forward
+                               "ert-deftest json-reformat-test:json-reformat-region")
+                              (beginning-of-line)
+                              (kill-sexp))
+                       (basic-save-buffer)))
+             #t)))))
     (home-page "https://github.com/gongo/json-reformat")
     (synopsis "Reformatting tool for JSON")
     (description "@code{json-reformat} provides a reformatting tool for
@@ -10143,23 +10161,26 @@ and doesn't require memorisation of commands.
 (define-public emacs-suggest
   (package
     (name "emacs-suggest")
-    (version "0.4")
+    (version "0.7")
+    (home-page "https://github.com/Wilfred/suggest.el")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/Wilfred/suggest.el/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "1760fm3j19w8xxcawq6s859h86q1rdg69pg9yz48n76kwfk3vlgp"))))
+         "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-loop" ,emacs-loop)
        ("emacs-dash" ,emacs-dash)
        ("emacs-s" ,emacs-s)
-       ("emacs-f" ,emacs-f)))
-    (home-page "https://github.com/Wilfred/suggest.el")
+       ("emacs-f" ,emacs-f)
+       ("emacs-spinner" ,emacs-spinner)
+       ("emacs-shut-up" ,emacs-shut-up)))
     (synopsis "Suggest Elisp functions that give the output requested")
     (description "Suggest.el will find functions that give the output
 requested.  It's a great way of exploring list, string and arithmetic
@@ -11155,6 +11176,29 @@ systems.")
 filters, highlighting of regexp group levels, and more.")
       (license license:gpl2+))))
 
+(define-public emacs-eshell-bookmark
+  (package
+    (name "emacs-eshell-bookmark")
+    (version "2.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Fuco1/eshell-bookmark")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/Fuco1/eshell-bookmark")
+    (synopsis "Provide @file{bookmark.el} integration for @code{eshell}")
+    (description
+     "This package allows for bookmarking @code{eshell} buffers.  Upon
+visiting the bookmark, a new @code{eshell} session will be opened in the
+appropriate directory if no @code{eshell} session is active.")
+    (license license:gpl3+)))
+
 (define-public emacs-esh-autosuggest
   (package
     (name "emacs-esh-autosuggest")
@@ -11358,6 +11402,56 @@ Org-mode.  It features:
 @end itemize\n")
       (license license:gpl3+))))
 
+(define-public emacs-debpaste
+  (package
+    (name "emacs-debpaste")
+    (version "0.1.5")
+    (home-page "https://github.com/alezost/debpaste.el")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference (url home-page)
+                           (commit (string-append "v" version))))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-xml-rpc" ,emacs-xml-rpc)))
+    (synopsis "Manipulate pastes from the Debian Pastezone")
+    (description "Debpaste is an Emacs interface for the Debian Pastezone,
+allowing you to receive, post, and delete pastes.  It communicates with the
+server using XML-RPC.")
+    (license license:gpl3+)))
+
+(define-public emacs-xml-rpc
+  (let ((commit "8f624f8b964e9145acb504e4457c9510e87dd93c")
+        (revision "1"))
+    (package
+      (name "emacs-xml-rpc")
+      (version (git-version "1.6.12" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/hexmode/xml-rpc-el")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0xa54z52rsfl3n0xgmbycj4zazp8ksgdwcq56swzs6wp72zlalmj"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/hexmode/xml-rpc-el")
+      (synopsis "XML-RPC client for Emacs")
+      (description "This package provides an XML-RPC client for Emacs capable
+of both synchronous and asynchronous method calls using the @code{url}
+package's async retrieval functionality.  @file{xml-rpc.el} represents XML-RPC
+datatypes as Lisp values, automatically converting to and from the XML
+datastructures as needed, both for method parameters and return values, making
+using XML-RPC methods fairly transparent to the Lisp code.")
+      (license license:gpl3+))))
+
 (define-public emacs-fish-completion
   (package
     (name "emacs-fish-completion")
@@ -13235,3 +13329,180 @@ provides several enhancements over the ordinary
 in the completion list and showing keyboard shortcuts, and it supports several
 completion systems for selecting commands, such as ido and ivy.")
     (license license:gpl3+)))
+
+(define-public emacs-lorem-ipsum
+  (let ((commit "4b39f6fed455d67f635b3837cf5668bf74d0f6cd"))
+    (package
+      (name "emacs-lorem-ipsum")
+      (version (git-version "0.2" "1" commit))
+      (home-page "https://github.com/jschaf/emacs-lorem-ipsum/")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url home-page)
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0a3b18p3vdjci89prsgdzjnfxsl8p67vjhf8ai4qdng7zvh50lir"))))
+      (build-system emacs-build-system)
+      (synopsis "Insert dummy pseudo Latin text in Emacs")
+      (description "This package provides convenience functions to insert
+dummy Latin text into a buffer.  This can be useful if you need to produce
+paragraphs or pages of text for testing purposes.")
+      (license license:gpl3+))))
+
+(define-public emacs-lisp-extra-font-lock
+  (let ((commit "4605eccbe1a7fcbd3cacf5b71249435413b4db4f"))
+    (package
+      (name "emacs-lisp-extra-font-lock")
+      (version (git-version "0.0.6" "1" commit))
+      (home-page "https://github.com/Lindydancer/lisp-extra-font-lock")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url home-page)
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w"))))
+      (build-system emacs-build-system)
+      (synopsis "Highlight bound variables and quoted expressions in Emacs")
+      (description "This package highlight the location where local variables
+is created (bound, for example, by let) as well as quoted and backquoted
+constant expressions.")
+      (license license:gpl3+))))
+
+(define-public emacs-docker-tramp
+  (package
+    (name "emacs-docker-tramp")
+    (version "0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/emacs-pe/docker-tramp.el")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0lxvzmfg52fhxrhbvp92zwp7cv4i1rlxnkyyzgngj3sjm7y60yvg"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/emacs-pe/docker-tramp.el")
+    (synopsis "TRAMP integration for docker containers")
+    (description
+     "This package provides a TRAMP method for Docker containers.")
+    (license license:gpl3+)))
+
+(define-public emacs-docker
+  (package
+    (name "emacs-docker")
+    (version "1.2.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Silex/docker.el")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "15kd86kaq1x6giz855q9w6zvnyc742j309j0pmm86rwx398g4rq1"))))
+    (inputs
+     `(("emacs-undercover" ,emacs-undercover)))
+    (propagated-inputs
+     `(("emacs-dash" ,emacs-dash)
+       ("emacs-docker-tramp" ,emacs-docker-tramp)
+       ("emacs-magit-popup" ,emacs-magit-popup)
+       ("emacs-s" ,emacs-s)
+       ("emacs-tablist" ,emacs-tablist)
+       ("emacs-json-mode" ,emacs-json-mode)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'check)))) ;no tests
+    (build-system emacs-build-system)
+    (home-page "https://github.com/Silex/docker.el")
+    (synopsis "Manage docker from Emacs")
+    (description "This package provides an Emacs interface for Docker.")
+    (license license:gpl3+)))
+
+(define-public emacs-dockerfile-mode
+  ;; Latest upstream release is too old.
+  (let ((commit "7223d92718f78fa3ab15667cdb2ed90cfeb579e7"))
+    (package
+      (name "emacs-dockerfile-mode")
+      (version (git-version "1.2" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/spotify/dockerfile-mode.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0hmipgl4rk6aih11i8mnspwdijjiwk2y0wns6lzs8bgkvy3c064r"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-s" ,emacs-s)))
+      (home-page "https://github.com/spotify/dockerfile-mode")
+      (synopsis "Major mode for editing Dockerfile")
+      (description
+       "This package provides a major mode @code{dockerfile-mode} for use with
+the standard @code{Dockerfile} file format.")
+      (license license:asl2.0))))
+
+(define-public emacs-lsp-mode
+  (package
+    (name "emacs-lsp-mode")
+    (version "6.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/emacs-lsp/lsp-mode.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1v1mq6ixzlgiazj8fmg4xaqhsqn3l89iqy74yndhvzh2rdf0pbkl"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-dash" ,emacs-dash)
+       ("emacs-f" ,emacs-f)
+       ("emacs-ht" ,emacs-ht)
+       ("emacs-spinner" ,emacs-spinner)))
+    (home-page "https://github.com/emacs-lsp/lsp-mode")
+    (synopsis "Emacs client and library for the Language Server Protocol")
+    (description "@code{LSP-mode} is a client and library implmentation for
+the Language Server Protocol.  This mode aims to provide an IDE-like
+experience by providing optional integration with other popular Emacs packages
+like @code{company}, @code{flycheck}, and @code{projectile}.")
+    (license license:gpl3+)))
+
+(define-public emacs-lsp-ui
+  (package
+    (name "emacs-lsp-ui")
+    (version "6.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/emacs-lsp/lsp-ui.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1r4327fd8cvjxfwkddp5c4bdskyncbs4sx9m3z2w4d773y2jrakc"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-dash" ,emacs-dash)
+       ("emacs-lsp-mode" ,emacs-lsp-mode)
+       ("emacs-markdown-mode" ,emacs-markdown-mode)
+       ("emacs-flycheck" ,emacs-flycheck)))
+    (home-page "https://github.com/emacs-lsp/lsp-ui")
+    (synopsis "User interface extensions for @code{lsp-mode}")
+    (description
+     "@code{LSP-ui} contains several enhancements and integrations for
+@code{lsp-mode}, such as visual flychecking, displaying references in-line,
+and code peeking.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 1e76f0821c..74005972db 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -92,7 +92,7 @@
                                    '("eshell/esh-groups.el")))
 
                  ;; Make sure Tramp looks for binaries in the right places on
-                 ;; remote GuixSD machines, where 'getconf PATH' returns
+                 ;; remote Guix System machines, where 'getconf PATH' returns
                  ;; something bogus.
                  (substitute* "net/tramp-sh.el"
                    ;; Patch the line after "(defcustom tramp-remote-path".
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 53d4662588..04a510cdcf 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -1339,7 +1339,6 @@ play them on systems for which they were never designed!")
                #t))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("pugixml" ,pugixml)
        ("python-sphinx" ,python-sphinx)
        ("texinfo" ,texinfo)))
     (inputs
@@ -1354,6 +1353,7 @@ play them on systems for which they were never designed!")
        ("lua" ,lua)
        ("portaudio" ,portaudio)
        ("portmidi" ,portmidi)
+       ("pugixml" ,pugixml)
        ("python-wrapper" ,python-wrapper)
        ("qtbase" ,qtbase)
        ("rapidjson" ,rapidjson)
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 6b7dc3f595..8bed5795a0 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -734,16 +734,16 @@ language.")
 (define-public kicad
     (package
       (name "kicad")
-      (version "5.0.0")
+      (version "5.0.2")
       (source
        (origin
          (method url-fetch)
          (file-name (string-append name "-" version ".tar.xz"))
          (uri (string-append
                 "https://launchpad.net/kicad/" (version-major+minor version)
-                "/" version "/+download/" name "-" version ".tar.xz"))
+                "/" version "/+download/kicad-" version ".tar.xz"))
          (sha256
-          (base32 "17nqjszyvd25wi6550j981whlnb1wxzmlanljdjihiki53j84x9p"))))
+          (base32 "10605rr10x0353n6yk2z095ydnkd1i6j1ncbq64pfxdn5vkhcd1g"))))
       (build-system cmake-build-system)
       (arguments
        `(#:out-of-source? #t
@@ -888,16 +888,16 @@ render model libraries.")
 (define-public kicad-symbols
   (package
     (name "kicad-symbols")
-    (version "5.0.1")
+    (version "5.0.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/KiCad/kicad-symbols.git")
                     (commit version)))
-              (file-name (string-append "kicad-symbols-" version "-checkout"))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "18z5vpdq7hy2mpvm5vz1dz3ra3a5iybavvlzi8q2bmmdb6gsvf64"))))
+                "1rjh2pjcrc3bhcgyyskj5pssm7vffrjk0ymwr70fb7sjpmk96yjk"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f)) ; No tests exist
diff --git a/gnu/packages/fpga.scm b/gnu/packages/fpga.scm
index f6bb3280f0..24a1219ce5 100644
--- a/gnu/packages/fpga.scm
+++ b/gnu/packages/fpga.scm
@@ -301,14 +301,14 @@ Includes the actual FTDI connector.")
 (define-public gtkwave
   (package
     (name "gtkwave")
-    (version "3.3.91")
+    (version "3.3.99")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://gtkwave.sourceforge.net/"
                                   name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1vp9qj3wyfwm36jk3pajvi09xvc1m1crf3d4gphfbs6nkyx2z942"))))
+                "0lc4y2vizrbxldjk5yw2i4y7pyprjdjqx3iafzjfnin694zp2630"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("gperf" ,gperf)
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index ae4c18e037..6e2061b413 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -8,7 +8,7 @@
 ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2017, 2018 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley@openmailbox.org>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -36,6 +36,7 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system perl)
@@ -152,7 +153,7 @@ freedesktop.org project.")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://freedesktop.org/software/libinput/"
-                                  name "-" version ".tar.xz"))
+                                  "libinput-" version ".tar.xz"))
               (sha256
                (base32
                 "0pgla0mc6mvyr1ljy10mcqvfz8i5z6yp7dbx2bcd70y67wx05d0j"))))
@@ -452,6 +453,33 @@ applications, X servers (rootless or fullscreen) or other display servers.")
     (home-page "https://wayland.freedesktop.org")
     (license license:expat)))
 
+(define-public waylandpp
+  (package
+    (name "waylandpp")
+    (version "0.2.5")
+    (home-page "https://github.com/NilsBrause/waylandpp")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference (url home-page) (commit version)))
+              (sha256
+               (base32
+                "16h57hzd688664qcyznzhjp3hxipdkzgv46x82yhkww24av8b55n"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f))                    ;no tests
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("mesa" ,mesa)
+       ("pugixml" ,pugixml)))
+    (propagated-inputs
+     `(;; In Requires of the .pc files.
+       ("wayland" ,wayland)))
+    (synopsis "Wayland C++ bindings")
+    (description
+     "This package provides C++ bindings for the Wayland display protocol.")
+    (license license:bsd-2)))
+
 (define-public weston
   (package
     (name "weston")
diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm
index 916f8f6b0e..3651b92e5d 100644
--- a/gnu/packages/ftp.scm
+++ b/gnu/packages/ftp.scm
@@ -209,14 +209,14 @@ output.
 (define-public filezilla
   (package
     (name "filezilla")
-    (version "3.40.0")
+    (version "3.41.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.filezilla-project.org/client/"
                            "FileZilla_" version "_src.tar.bz2"))
        (sha256
-        (base32 "11b0410fcwrahq5dd7ph10bc09m62sxra4bjp0kj5gph822s0v63"))))
+        (base32 "0mlv21054fk11rspbnig0q4gph1iqsqm4rpya3wl5is50p33vg5w"))))
     (build-system gnu-build-system)
     (arguments
       ;; Don't let filezilla phone home to check for updates.
@@ -224,7 +224,6 @@ output.
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)
-       ("pugixml" ,pugixml)
        ("xdg-utils" ,xdg-utils)))
     (inputs
      `(("dbus" ,dbus)
@@ -233,6 +232,7 @@ output.
        ("libfilezilla" ,libfilezilla)
        ("libidn" ,libidn)
        ("nettle" ,nettle)
+       ("pugixml" ,pugixml)
        ("sqlite" ,sqlite)
        ("wxwidgets" ,wxwidgets)))
     (home-page "https://filezilla-project.org")
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 295007319d..46b58e352c 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -1403,14 +1403,14 @@ interface or via an external visual interface such as GNU XBoard.")
 (define freedink-engine
   (package
     (name "freedink-engine")
-    (version "109.4")
+    (version "109.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/freedink/freedink-" version
                                   ".tar.gz"))
               (sha256
                (base32
-                "0iaagwnyfgm3mqzkj550q60hrsjr13gykg5vfn2nz2ia520bb52g"))))
+                "00hhk1bjdrc1np2qz44sa5n1mb62qzwxbvsnws3vpms6iyn3a2sy"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--disable-embedded-resources")
@@ -4441,12 +4441,17 @@ fish.  The whole game is accompanied by quiet, comforting music.")
        ("python-pyyaml" ,python-pyyaml)
        ("pkg-config" ,pkg-config)))
     (arguments
-     '(#:make-flags
+     `(#:make-flags
        (let* ((sqlite (assoc-ref %build-inputs "sqlite"))
               (out (assoc-ref %outputs "out")))
          (list (string-append "SQLITE_INCLUDE_DIR=" sqlite "/include")
                (string-append "prefix=" out)
                "SAVEDIR=~/.crawl"
+               ;; Don't compile with SSE on systems which don't use it
+               ,@(match (%current-system)
+                   ((or "i686-linux" "x86_64-linux")
+                    '())
+                   (_ '("NOSSE=TRUE")))
                ;; don't build any bundled dependencies
                "BUILD_LUA="
                "BUILD_SQLITE="
@@ -4454,11 +4459,6 @@ fish.  The whole game is accompanied by quiet, comforting music.")
                "-Csource"))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'patch-flags
-           (lambda _
-             (substitute* "source/Makefile"
-               (("-mfpmath=sse -msse2") ""))
-             #t))
          (add-after 'unpack 'find-SDL-image
            (lambda _
              (substitute* "source/windowmanager-sdl.cc"
@@ -5864,7 +5864,7 @@ when packaged in Blorb container files or optionally from individual files.")
 (define-public libmanette
   (package
     (name "libmanette")
-    (version "0.2.1")
+    (version "0.2.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -5872,7 +5872,7 @@ when packaged in Blorb container files or optionally from individual files.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "14vqz30p4693yy3yxs0gj858x25sl2kawib1g9lj8g5frgl0hd82"))))
+                "1lpprk2qz1lsqf9xj6kj2ciyc1zmjhj5lwd584qkh7jgz2x9y6wb"))))
     (build-system meson-build-system)
     (native-inputs
      `(("glib" ,glib "bin")             ; for glib-compile-resources
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 38567fdebf..a48fa2387e 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -63,7 +63,7 @@
 (define-public geos
   (package
     (name "geos")
-    (version "3.7.0")
+    (version "3.7.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://download.osgeo.org/geos/geos-"
@@ -71,7 +71,7 @@
                                   ".tar.bz2"))
               (sha256
                (base32
-                "1mrz778m6bd1x9k6sha5kld43kalhq79h2lynlx2jx7xjakl3gsg"))))
+                "1312m02xk4sp6f1xdpb9w0ic0zbxg90p5y66qnwidl5fksscf1h0"))))
     (build-system gnu-build-system)
     (arguments `(#:phases
                  (modify-phases %standard-phases
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index c6447d2450..ea042612e1 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2596,7 +2596,7 @@ libxml to ease remote use of the RESTful API.")
 (define-public libsoup
   (package
     (name "libsoup")
-    (version "2.64.2")
+    (version "2.66.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/libsoup/"
@@ -2604,38 +2604,23 @@ libxml to ease remote use of the RESTful API.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1il6lyrmfi0hfh3ysw8w1qzc1rdz0igkb7dv6d8g5mmilnac3pbm"))))
-    (build-system gnu-build-system)
+                "08c9kkdhzy504gv23pfdm4sq3dd3j20sikwz6gv0qrwcdjnw5bai"))))
+    (build-system meson-build-system)
     (outputs '("out" "doc"))
     (arguments
      `(#:modules ((guix build utils)
-                  (guix build gnu-build-system)
+                  (guix build meson-build-system)
                   (ice-9 popen))
 
-       #:configure-flags
-       (list (string-append "--with-html-dir="
-                            (assoc-ref %outputs "doc")
-                            "/share/gtk-doc/html")
-             (string-append "--with-apache-module-dir="
-                            (assoc-ref %build-inputs "httpd")
-                            "/modules"))
+       #:configure-flags '("-Ddoc=true")
        #:phases
        (modify-phases %standard-phases
-         (add-before 'configure 'disable-unconnected-socket-test
-           ;; This test fails due to missing /etc/nsswitch.conf
-           ;; in the build environment.
+         (add-after 'unpack 'adjust-tests
            (lambda _
+             ;; This test fails due to missing /etc/nsswitch.conf
+             ;; in the build environment.
              (substitute* "tests/socket-test.c"
                ((".*/sockets/unconnected.*") ""))
-             #t))
-         (add-before 'check 'pre-check
-           (lambda _
-             ;; The 'check-local' target runs 'env LANG=C sort -u',
-             ;; unset 'LC_ALL' to make 'LANG' working.
-             (unsetenv "LC_ALL")
-             ;; HTTPD in Guix uses mod_event and does not build prefork.
-             (substitute* "tests/httpd.conf"
-               (("^LoadModule mpm_prefork_module.*$") "\n"))
 
              ;; Generate a self-signed certificate that has "localhost" as its
              ;; 'dnsName'.  Failing to do that, and starting with GnuTLS
@@ -2681,16 +2666,19 @@ libxml to ease remote use of the RESTful API.")
                            ))
                (close-pipe pipe))
              #t))
-         (replace 'install
-           (lambda _
-             (invoke "make"
-                     ;; Install vala bindings into $out.
-                     (string-append "vapidir=" %output
-                                    "/share/vala/vapi")
-                     "install"))))))
+         (add-after 'install 'move-doc
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (doc (assoc-ref outputs "doc")))
+               (mkdir-p (string-append doc "/share"))
+               (copy-recursively (string-append out "/share/gtk-doc")
+                                 (string-append doc "/share/gtk-doc"))
+               (delete-file-recursively (string-append out "/share/gtk-doc"))
+               #t))))))
     (native-inputs
      `(("glib:bin" ,glib "bin")                   ; for glib-mkenums
        ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
        ("python" ,python-wrapper)
@@ -2703,11 +2691,12 @@ libxml to ease remote use of the RESTful API.")
     (propagated-inputs
      ;; libsoup-2.4.pc refers to all these.
      `(("glib" ,glib)
-       ("libxml2" ,libxml2)))
-    (inputs
-     `(("glib-networking" ,glib-networking)
        ("libpsl" ,libpsl)
+       ("libxml2" ,libxml2)
        ("sqlite" ,sqlite)))
+    (inputs
+     `(("glib-networking" ,glib-networking)
+       ("mit-krb5" ,mit-krb5)))
     (home-page "https://live.gnome.org/LibSoup/")
     (synopsis "GLib-based HTTP Library")
     (description
@@ -4304,7 +4293,7 @@ work and the interface is well tested.")
        ("libsecret" ,libsecret)
        ("gtkspell3" ,gtkspell3)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("webkitgtk" ,webkitgtk-2.22)))
+       ("webkitgtk" ,webkitgtk-2.24)))
     (home-page "https://wiki.gnome.org/Apps/Eolie")
     (synopsis "Web browser for GNOME")
     (description
@@ -4363,7 +4352,7 @@ a secret password store, an adblocker, and a modern UI.")
        ("libxslt" ,libxslt)
        ("nettle" ,nettle) ; for hogweed
        ("sqlite" ,sqlite)
-       ("webkitgtk" ,webkitgtk-2.22)))
+       ("webkitgtk" ,webkitgtk-2.24)))
     (home-page "https://wiki.gnome.org/Apps/Web")
     (synopsis "GNOME web browser")
     (description
@@ -5215,7 +5204,7 @@ users.")
              (doc      (assoc-ref %outputs "doc"))
              (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
                                       "/sbin/dhclient")))
-         (list "--with-systemd-logind=yes" ;In GuixSD, this is provided by elogind.
+         (list "--with-systemd-logind=yes" ;In Guix System, this is provided by elogind.
                "--with-consolekit=no"
                "--with-crypto=gnutls"
                "--disable-config-plugin-ibft"
@@ -5766,10 +5755,9 @@ properties, screen resolution, and other GNOME parameters.")
                    (copy-file #$(file-append %artwork-repository
                                              "/slim/0.x/background.png")
                               "data/theme/guix-background.png")
-                   (invoke #+(file-append inkscape "/bin/inkscape")
-                           "--export-png=data/theme/guix-logo.png"
-                           #$(file-append %artwork-repository
-                                          "/logo/Guix-horizontal-white.svg"))
+                   (copy-file #$(file-append %artwork-repository
+                                             "/logo/Guix-horizontal-white.svg")
+                              "data/theme/guix-logo.svg")
                    #t))))
     (build-system meson-build-system)
     (arguments
@@ -5791,6 +5779,11 @@ properties, screen resolution, and other GNOME parameters.")
                  (("keysdir =.*")
                   (string-append "keysdir = '" keysdir "'\n")))
                #t)))
+         (add-before 'configure 'convert-logo-to-png
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Convert the logo from SVG to PNG.
+             (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
+                     "data/theme/guix-logo.svg")))
          (add-before 'check 'pre-check
            (lambda* (#:key inputs #:allow-other-keys)
              ;; Tests require a running X server.
@@ -5822,6 +5815,7 @@ properties, screen resolution, and other GNOME parameters.")
      `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
        ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
        ("gobject-introspection" ,gobject-introspection)
+       ("inkscape" ,inkscape)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
        ("python" ,python)
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 1ef523d9ce..a64a54323a 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -605,18 +605,19 @@ using Guile's foreign function interface.")
   (package
     (name "guile-colorized")
     (version "0.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/NalaGinrut/guile-colorized/"
-                                  "archive/v" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "16xhc3an6aglnca8xl3mvgi8hsqzqn68vsl5ga4bz8bvbap5fn4p"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/NalaGinrut/guile-colorized.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "10mv8c63159r3qvwwdvsgnsvdg7nc2ghak85zapwqpv4ywrqp9zc"))))
     (build-system guile-build-system)
     (native-inputs
      `(("guile" ,guile-2.2)))
-    (home-page "https://github.com/NalaGinrut/guile-colorized")
+    (home-page "https://gitlab.com/NalaGinrut/guile-colorized")
     (synopsis "Colorized REPL for Guile")
     (description
      "Guile-colorized provides you with a colorized REPL for GNU Guile.")
@@ -2069,6 +2070,7 @@ completion, a simple mode line, etc.")
                 (uri (git-reference
                       (url "https://gitlab.com/tampe/stis-parser")
                       (commit commit)))
+                (file-name (git-file-name name version))
                 (sha256
                  (base32
                   "0v4hvq7rlpbra1ni73lf8k6sdmjlflr50yi3p1f24g85h77pc7c0"))))
@@ -2079,6 +2081,11 @@ completion, a simple mode line, etc.")
          (modify-phases %standard-phases
            (add-after 'unpack 'chdir
              (lambda _ (chdir "modules") #t))
+           (add-after 'chdir 'use-canonical-directory-for-go-files
+             (lambda _
+               (substitute* "Makefile.am"
+                 (("/ccache") "/site-ccache"))
+               #t))
            (add-after 'chdir 'delete-broken-symlink
              (lambda _
                (delete-file "parser/stis-parser/lang/.#calc.scm")
@@ -2097,3 +2104,103 @@ supports backtracking and a small logical framework. The idea is to build up
 chunks that are memoized and there is no clear scanner/parser separation,
 chunks can be expressions as well as simple tokens.")
       (license license:lgpl2.0+))))
+
+(define-public guile-persist
+  (let ((commit "b14927b0368af51c024560aee5f55724aee35233")
+        (revision "1"))
+    (package
+      (name "guile-persist")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://gitlab.com/tampe/guile-persist")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0z5nf377wh8yj6n3sx2ddn4bdx1qrqnw899dlqjhg0q69qzil522"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'patch-prefix
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (substitute* "src/Makefile.am"
+                 (("/usr/local/lib/guile")
+                  (string-append (assoc-ref outputs "out") "/lib/guile"))
+                 (("/usr/local/include/guile")
+                  (string-append (assoc-ref inputs "guile") "/include/guile"))
+                 (("-L/usr/local/lib")
+                  (string-append "-L" (assoc-ref inputs "guile") "/lib"))
+                 ;; Use canonical directory for go files.
+                 (("/ccache") "/site-ccache"))
+               #t))
+           (add-after 'unpack 'patch-library-reference
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out")))
+                 (substitute* "persist/persistance.scm"
+                   (("\"libguile-persist\"")
+                    (format #f "\"~a/lib/guile/2.2/extensions/libguile-persist\"" out)))
+                 #t))))))
+      (inputs
+       `(("guile" ,guile-2.2)))
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("libtool" ,libtool)
+         ("pkg-config" ,pkg-config)))
+      (home-page "https://gitlab.com/tampe/guile-persist")
+      (synopsis "Persistance programming framework for Guile")
+      (description
+       "This is a serialization library for serializing objects like classes
+and objects, closures and structs.  This currently does not support
+serializing continuations or delimited continuations.")
+      (license license:lgpl2.0+))))
+
+(define-public python-on-guile
+  (let ((commit "0cb7c2b2fff4338ca6153473f3f5c409a818f293")
+        (revision "1"))
+    (package
+      (name "python-on-guile")
+      (version (git-version "0.1.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://gitlab.com/python-on-guile/python-on-guile.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0kpz08rrp5mwcf5ksc4flgrw992syham9x49dn9wq9w31bpcpnby"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:parallel-build? #f ; not supported
+         #:make-flags
+         '("GUILE_AUTO_COMPILE=0")        ; to prevent guild errors
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'chdir
+             (lambda _ (chdir "modules") #t))
+           (add-after 'chdir 'use-canonical-directory-for-go-files
+             (lambda _
+               (substitute* "Makefile.am"
+                 (("/ccache") "/site-ccache"))
+               #t)))))
+      (inputs
+       `(("guile" ,guile-2.2)))
+      (propagated-inputs
+       `(("guile-persist" ,guile-persist)
+         ("guile-readline" ,guile-readline)
+         ("guile-stis-parser" ,guile-stis-parser)))
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("libtool" ,libtool)
+         ("pkg-config" ,pkg-config)))
+      (home-page "https://gitlab.com/python-on-guile/python-on-guile/")
+      (synopsis "Python implementation in Guile")
+      (description
+       "This package allows you to compile a Guile Python file to any target
+from @code{tree-il}.")
+      (license license:lgpl2.0+))))
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index eb32e596d3..daeadca610 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -391,7 +391,7 @@ GNU@tie{}Guile.  Use the @code{(ice-9 readline)} module and call its
 (define package-for-guile-2.0
   ;; A procedure that rewrites the dependency tree of the given package to use
   ;; GUILE-2.0 instead of GUILE-2.2.
-  (package-input-rewriting (delay `((,guile-2.2 . ,guile-2.0)))
+  (package-input-rewriting `((,guile-2.2 . ,guile-2.0))
                            (guile-variant-package-name "guile2.0")))
 
 (define-public guile-for-guile-emacs
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 9f25578050..941b991695 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -1101,7 +1101,7 @@ convert, manipulate, filter and display a wide variety of image formats.")
 (define-public jasper
   (package
     (name "jasper")
-    (version "2.0.14")
+    (version "2.0.16")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1110,7 +1110,7 @@ convert, manipulate, filter and display a wide variety of image formats.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0aarg8nbik9wrm7fx0451sbm5ypfdfr6i169pxzi354mpdp8gg7f"))))
+                "05l75yd1zsxwv25ykwwwjs8961szv7iywf16nc6vc6qpby27ckv6"))))
     (build-system cmake-build-system)
     (inputs `(("libjpeg" ,libjpeg)))
     (synopsis "JPEG-2000 library")
diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm
index a2e1264503..fa9709c40c 100644
--- a/gnu/packages/julia.scm
+++ b/gnu/packages/julia.scm
@@ -148,7 +148,7 @@
             (use-modules (ice-9 match))
             (substitute* "src/runtime_ccall.cpp"
               ;; Patch out invocations of '/sbin/ldconfig' to avoid getting
-              ;; error messages about missing '/sbin/ldconfig' on GuixSD.
+              ;; error messages about missing '/sbin/ldconfig' on Guix System.
               (("popen\\(.*ldconfig.*\\);")
                "NULL;\n")
 
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 2ae5feaf52..10a1dfe0d1 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -3487,7 +3487,7 @@ workspace.")
        ("qtsvg" ,qtsvg)
        ("qttools" ,qttools)
        ("qtx11extras" ,qtx11extras)))
-    ;; FIXME: Use GuixSD ca-bundle.crt in etc/xdg/ksslcalist and
+    ;; FIXME: Use Guix ca-bundle.crt in etc/xdg/ksslcalist and
     ;; share/kf5/kssl/ca-bundle.crt
     ;; TODO: NixOS has nix-kde-include-dir.patch to change std-dir "include"
     ;; into "@dev@/include/". Think about whether this is needed for us, too.
diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm
index 776f9c970e..3929909d10 100644
--- a/gnu/packages/kodi.scm
+++ b/gnu/packages/kodi.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
-;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017, 2019 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
@@ -43,6 +43,7 @@
   #:use-module (gnu packages databases)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages fribidi)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
@@ -462,6 +463,23 @@ plug-in system.")
                    license:bsd-3                  ;misc, gtest
                    license:bsd-2))))              ;xbmc/freebsd
 
+(define-public kodi/wayland
+  (package/inherit kodi
+    (name "kodi-wayland")
+    (arguments
+     (substitute-keyword-arguments (package-arguments kodi)
+       ((#:configure-flags flags)
+        `(append '("-DCORE_PLATFORM_NAME=wayland"
+                   "-DWAYLAND_RENDER_SYSTEM=gl")
+                   ,flags))))
+    (inputs
+     `(("libinput" ,libinput)
+       ("libxkbcommon" ,libxkbcommon)
+       ("waylandpp" ,waylandpp)
+       ("waylandp-protocols" ,wayland-protocols)
+       ,@(package-inputs kodi)))
+    (synopsis "Kodi with Wayland rendering backend")))
+
 (define-public kodi-cli
   (let ((commit "104dc23b2a993c8e6db8c46f4f8bec24b146549b") ; Add support for
         (revision "1"))                                     ; `$HOME/.kodirc'.
diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm
index b3a5471527..b5d67cd581 100644
--- a/gnu/packages/libevent.scm
+++ b/gnu/packages/libevent.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2016 David Thompson <davet@gnu.org>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -170,14 +170,14 @@ resolution, asynchronous file system operations, and threading primitives.")
 (define-public perl-anyevent
   (package
     (name "perl-anyevent")
-    (version "7.14")
+    (version "7.15")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://cpan/authors/id/M/ML/MLEHMANN/"
                                   "AnyEvent-" version ".tar.gz"))
               (sha256
                (base32
-                "0akxr9y0q9yjkl614x4clbiiayvh5a67y8gmci54plxs4p95i4sk"))))
+                "0m73r67ah9xmcwzxs50jxf8ncd8h71mi4wf2mvnqkxvibhrv478i"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-canary-stability" ,perl-canary-stability)))
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 3f1603709c..4082d04a7c 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -414,8 +414,8 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
 It has been modified to remove all non-free binary blobs.")
     (license license:gpl2)))
 
-(define %linux-libre-version "5.0")
-(define %linux-libre-hash "18gs0kl5xvbmh725m7crg6iyqw3p8qq421aql7z0nlk035fh5xbx")
+(define %linux-libre-version "5.0.1")
+(define %linux-libre-hash "0izbdpml170g5jg87ccnf2q1hc01gsyiy1gqxnqzzi3pri00dfyz")
 
 (define %linux-libre-5.0-patches
   (list %boot-logo-patch
@@ -428,8 +428,8 @@ It has been modified to remove all non-free binary blobs.")
                     #:patches %linux-libre-5.0-patches
                     #:configuration-file kernel-config))
 
-(define %linux-libre-4.19-version "4.19.27")
-(define %linux-libre-4.19-hash "055n4s4yrkcrwkdsxbf1q1zyxmpabf7kba8d0phpfadian3wr4s0")
+(define %linux-libre-4.19-version "4.19.28")
+(define %linux-libre-4.19-hash "0j65gp9z3qrygx67mkhm4ri3pj1pz0gdwcdlds2ypg53rh12jc0a")
 
 (define %linux-libre-4.19-patches
   (list %boot-logo-patch
@@ -1119,7 +1119,7 @@ MIDI functionality to the Linux-based operating system.")
     (outputs '("out" "pulseaudio" "jack"))
     (arguments
      `(#:configure-flags '(;; Do not install a "local" configuration targeted
-                           ;; for /etc/alsa.  On GuixSD plugins are loaded from
+                           ;; for /etc/alsa.  On Guix System plugins are loaded from
                            ;; the ALSA service, and other distributions likely
                            ;; won't use these files.
                            "--with-alsalconfdir=/tmp/noop")
@@ -1586,7 +1586,7 @@ devices.  It replaces @code{iwconfig}, which is deprecated.")
      '(#:phases
        (modify-phases %standard-phases
          ;; TODO: Patch some hardcoded "wlan0" in calibrate/calibrate.cpp to
-         ;; allow calibrating the network interface in GuixSD.
+         ;; allow calibrating the network interface in Guix System.
          (add-after 'unpack 'patch-absolute-file-names
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((kmod (assoc-ref inputs "kmod")))
@@ -2386,7 +2386,7 @@ compliance.")
        #:tests? #f                                ;no tests
        #:make-flags (let ((out (assoc-ref %outputs "out")))
                       (list (string-append "PREFIX=" out)
-                            (string-append "LSB_ID=GuixSD")
+                            (string-append "LSB_ID=Guix")
                             (string-append "DISTRO_PUBKEY=/dev/null")
                             (string-append "DISTRO_PRIVKEY=/dev/null")
                             (string-append "REGDB_PUBKEY=/dev/null")
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index bb5a4a141c..8ae646d87e 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -451,14 +451,14 @@ use with Clang, targeting C++11, C++14 and above.")
 (define-public python-llvmlite
   (package
     (name "python-llvmlite")
-    (version "0.24.0")
+    (version "0.27.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "llvmlite" version))
        (sha256
         (base32
-         "01zwjlc3c5mhrwmv4b73zgbskwqps9ly0nrh54bbj1f1l72f839j"))))
+         "1aq003zbyjnz4q1118h6qx5lfimc8s5fvgskl75j12gxd6pc78a8"))))
     (build-system python-build-system)
     (inputs
      `(("llvm"
@@ -472,10 +472,10 @@ use with Clang, targeting C++11, C++14 and above.")
                          (method url-fetch)
                          (uri (string-append "https://raw.githubusercontent.com/numba/"
                                              "llvmlite/v" version "/conda-recipes/"
-                                             "D47188-svml.patch"))
+                                             "D47188-svml-VF.patch"))
                          (sha256
                           (base32
-                           "0mrj24jvkv3hjcmyg98zmvmyl1znlh2j63rdr69f6g7s96d2pfv1")))
+                           "0wxhgb61k17f0zg2m0726sf3hppm41f8jar2kkg2n8sl5cnjj9mr")))
                        (origin
                          (method url-fetch)
                          (uri (string-append "https://raw.githubusercontent.com/numba/"
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 1db5f4a256..4067b4b1ea 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -40,14 +40,19 @@
   #:use-module (guix git-download)
   #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
+  #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cran)
   #:use-module (gnu packages dejagnu)
   #:use-module (gnu packages gcc)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mpi)
   #:use-module (gnu packages ocaml)
@@ -924,3 +929,101 @@ interactive learning.")
 Models, is a program for performing both single-SNP and SNP-set genome-wide
 association studies (GWAS) on extremely large data sets.")
     (license license:asl2.0)))
+
+;; There have been no proper releases yet.
+(define-public kaldi
+  (let ((commit "2f95609f0bb085bd3a1dc5eb0a39f3edea59e606")
+        (revision "1"))
+    (package
+      (name "kaldi")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/kaldi-asr/kaldi.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "082qh3pfi7hvncylp4xsmkfahbd7gb0whdfa4rwrx7fxk9rdh3kz"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:test-target "test"
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'chdir
+             (lambda _ (chdir "src") #t))
+           (replace 'configure
+             (lambda* (#:key build system inputs outputs #:allow-other-keys)
+               (when (not (or (string-prefix? "x86_64" system)
+                              (string-prefix? "i686" system)))
+                 (substitute* "makefiles/linux_openblas.mk"
+                   (("-msse -msse2") "")))
+               (substitute* "makefiles/default_rules.mk"
+                 (("/bin/bash") (which "bash")))
+               (substitute* "Makefile"
+                 (("ext_depend: check_portaudio")
+                  "ext_depend:"))
+               (substitute* '("online/Makefile"
+                              "onlinebin/Makefile"
+                              "gst-plugin/Makefile")
+                 (("../../tools/portaudio/install")
+                  (assoc-ref inputs "portaudio")))
+
+               ;; This `configure' script doesn't support variables passed as
+               ;; arguments, nor does it support "prefix".
+               (let ((out (assoc-ref outputs "out"))
+                     (openblas (assoc-ref inputs "openblas"))
+                     (openfst (assoc-ref inputs "openfst")))
+                 (substitute* "configure"
+                   (("check_for_slow_expf;") "")
+                   ;; This affects the RPATH and also serves as the installation
+                   ;; directory.
+                   (("KALDILIBDIR=`pwd`/lib")
+                    (string-append "KALDILIBDIR=" out "/lib")))
+                 (mkdir-p out) ; must exist
+                 (setenv "CONFIG_SHELL" (which "bash"))
+                 (setenv "OPENFST_VER" ,(package-version openfst))
+                 (invoke "./configure"
+                         "--use-cuda=no"
+                         "--shared"
+                         (string-append "--openblas-root=" openblas)
+                         (string-append "--fst-root=" openfst)))))
+           (add-after 'build 'build-ext-and-gstreamer-plugin
+             (lambda _
+               (invoke "make" "-C" "online" "depend")
+               (invoke "make" "-C" "online")
+               (invoke "make" "-C" "onlinebin" "depend")
+               (invoke "make" "-C" "onlinebin")
+               (invoke "make" "-C" "gst-plugin" "depend")
+               (invoke "make" "-C" "gst-plugin")
+               #t))
+           ;; TODO: also install the executables.
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (lib (string-append out "/lib")))
+                 (mkdir-p lib)
+                 (install-file "gst-plugin/libgstonlinegmmdecodefaster.so" lib)
+                 #t))))))
+      (inputs
+       `(("alsa-lib" ,alsa-lib)
+         ("gfortran" ,gfortran "lib")
+         ("glib" ,glib)
+         ("gstreamer" ,gstreamer)
+         ("jack" ,jack-1)
+         ("openblas" ,openblas)
+         ("openfst" ,openfst)
+         ("portaudio" ,portaudio)
+         ("python" ,python)))
+      (native-inputs
+       `(("glib" ,glib "bin")             ; glib-genmarshal
+         ("grep" ,grep)
+         ("sed" ,sed)
+         ("pkg-config" ,pkg-config)
+         ("which" ,which)))
+      (home-page "https://kaldi-asr.org/")
+      (synopsis "Speech recognition toolkit")
+      (description "Kaldi is an extensible toolkit for speech recognition
+written in C++.")
+      (license license:asl2.0))))
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 7d3020469f..05fdc1428f 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -3667,7 +3667,7 @@ audio samples and various soft sythesizers.  It can receive input from a MIDI ke
 (define-public musescore
   (package
     (name "musescore")
-    (version "3.0.4")
+    (version "3.0.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3676,7 +3676,7 @@ audio samples and various soft sythesizers.  It can receive input from a MIDI ke
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "05cn4j5f7xr438lgl0by3lrc7wckdgicdn4jrvxfqic8hv81sca7"))
+                "1inf6zdyh6yspjv1i7g6rw9wn90vki1s2qgilkp0j4aphayj4mic"))
               (modules '((guix build utils)))
               (snippet
                ;; Un-bundle OpenSSL and remove unused libraries.
@@ -3835,7 +3835,7 @@ specification and header.")
 (define-public rosegarden
   (package
     (name "rosegarden")
-    (version "18.06")
+    (version "18.12")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3843,10 +3843,10 @@ specification and header.")
                     version "/rosegarden-" version ".tar.bz2"))
               (sha256
                (base32
-                "04qc80sqb2ji42pq3mayhvqqn39hlxzymsywpbpzfpchr19chxx7"))))
+                "15i9fm0vkn3wsgahaxqi1j5zs0wc0j3wdwml0x49084gk2p328vb"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:configure-flags '("-DUSE_QT5=1") ; "-DCMAKE_BUILD_TYPE=Release"
+     `(#:configure-flags '("-DCMAKE_BUILD_TYPE=Release")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-tests
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 4544c419f4..1470896a55 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -591,7 +591,7 @@ of the same name.")
 (define-public wireshark
   (package
     (name "wireshark")
-    (version "2.6.6")
+    (version "3.0.0")
     (source
      (origin
        (method url-fetch)
@@ -599,59 +599,58 @@ of the same name.")
                            version ".tar.xz"))
        (sha256
         (base32
-         "0qz8a1ays63712pq1v7nnw7c57zlqkcifq7himfv5nsv0zm36ya8"))))
-    (build-system gnu-build-system)
-    (inputs `(("c-ares" ,c-ares)
-              ("glib" ,glib)
-              ("gnutls" ,gnutls)
-              ("libcap" ,libcap)
-              ("libgcrypt" ,libgcrypt)
-              ("libnl" ,libnl)
-              ("libpcap" ,libpcap)
-              ("libssh" ,libssh)
-              ("libxml2" ,libxml2)
-              ("lz4" ,lz4)
-              ("lua" ,lua-5.2)          ;Lua 5.3 unsupported
-              ("krb5" ,mit-krb5)
-              ("portaudio" ,portaudio)
-              ("qtbase" ,qtbase)
-              ("qtmultimedia" ,qtmultimedia)
-              ("sbc" ,sbc)
-              ("snappy" ,snappy)
-              ("zlib" ,zlib)))
-    (native-inputs `(("perl" ,perl)
-                     ("pkg-config" ,pkg-config)
-                     ("python" ,python-wrapper)
-                     ("qttools" ,qttools)))
+         "17h0ixq7yr6scscjkidaj3dh5x6dfd3f97ggdxlklkz9nbsk0kxw"))))
+    (build-system cmake-build-system)
     (arguments
-     `(#:configure-flags
-       (list (string-append "--with-c-ares=" (assoc-ref %build-inputs "c-ares"))
-             (string-append "--with-krb5=" (assoc-ref %build-inputs "krb5"))
-             (string-append "--with-libcap=" (assoc-ref %build-inputs "libcap"))
-             (string-append "--with-libssh=" (assoc-ref %build-inputs "libssh"))
-             (string-append "--with-lua=" (assoc-ref %build-inputs "lua"))
-             (string-append "--with-lz4=" (assoc-ref %build-inputs "lz4"))
-             (string-append "--with-pcap=" (assoc-ref %build-inputs "libpcap"))
-             (string-append "--with-portaudio="
-                            (assoc-ref %build-inputs "portaudio"))
-             (string-append "--with-sbc=" (assoc-ref %build-inputs "sbc"))
-             (string-append "--with-snappy=" (assoc-ref %build-inputs "snappy"))
-             (string-append "--with-zlib=" (assoc-ref %build-inputs "zlib")))
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'patch-source
+         (add-after 'unpack 'remove-failing-test
+           ;; Test 31/32 fails with errors like "Program reassemble_test is
+           ;; not available".  Skipping it for now.
            (lambda _
-             ;; Fix build against Qt 5.11.
-             (substitute* "ui/qt/packet_format_group_box.cpp"
-               (("#include <QStyle>") "#include <QStyle>
-#include <QStyleOption>"))
-             (substitute* "ui/qt/time_shift_dialog.cpp"
-               (("#include <ui/time_shift.h>") "#include <ui/time_shift.h>
-#include <QStyleOption>"))
-             (substitute* "ui/qt/wireless_frame.cpp"
-               (("#include <QProcess>") "#include <QProcess>
-#include <QAbstractItemView>"))
-             #t)))))
+             (substitute* "CMakeLists.txt"
+               (("suite_unittests" all) (string-append "# " all)))
+             #t)))
+       ;; Build process chokes during `validate-runpath' phase.
+       ;;
+       ;; Errors are like the following:
+       ;; "/gnu/store/...wireshark-3.0.0/lib/wireshark/plugins/3.0/epan/ethercat.so:
+       ;; error: depends on 'libwireshark.so.12', which cannot be found in
+       ;; RUNPATH".  That is, "/gnu/store/...wireshark-3.0.0./lib" doesn't
+       ;; belong to RUNPATH.
+       ;;
+       ;; That’s not a problem in practice because "ethercat.so" is a plugin,
+       ;; so it’s dlopen’d by a process that already provides "libwireshark".
+       ;; For now, we disable this phase.
+       #:validate-runpath? #f))
+    (inputs
+     `(("c-ares" ,c-ares)
+       ("glib" ,glib)
+       ("gnutls" ,gnutls)
+       ("libcap" ,libcap)
+       ("libgcrypt" ,libgcrypt)
+       ("libnl" ,libnl)
+       ("libpcap" ,libpcap)
+       ("libssh" ,libssh)
+       ("libxml2" ,libxml2)
+       ("lz4" ,lz4)
+       ("lua" ,lua-5.2)                 ;Lua 5.3 unsupported
+       ("krb5" ,mit-krb5)
+       ("qtbase" ,qtbase)
+       ("qtmultimedia" ,qtmultimedia)
+       ("qtsvg" ,qtsvg)
+       ("sbc" ,sbc)
+       ("snappy" ,snappy)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("bison" ,bison)
+       ("doxygen" ,doxygen)
+       ("flex" ,flex)
+       ("gettext" ,gettext-minimal)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("qttools" ,qttools)))
     (synopsis "Network traffic analyzer")
     (description "Wireshark is a network protocol analyzer, or @dfn{packet
 sniffer}, that lets you capture and interactively browse the contents of
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 1244cf2fc3..86e8fce1dc 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -142,8 +142,8 @@
 
                             ;; Set 'DOT_USER_PROGRAM' to the empty string so
                             ;; we don't keep a reference to Graphviz, whose
-                            ;; closure is pretty big (too big for the GuixSD
-                            ;; installation image.)
+                            ;; closure is pretty big (too big for the Guix
+                            ;; system installation image.)
                             "ac_cv_path_DOT_USER_PROGRAM=dot"
 
                             ;; To avoid problems with the length of shebangs,
diff --git a/gnu/packages/patches/pugixml-versioned-libdir.patch b/gnu/packages/patches/pugixml-versioned-libdir.patch
new file mode 100644
index 0000000000..7cd23b1a71
--- /dev/null
+++ b/gnu/packages/patches/pugixml-versioned-libdir.patch
@@ -0,0 +1,61 @@
+This patch makes pugixml install its headers to a standard location when
+built as a shared library.
+
+Taken from this upstream commit:
+https://github.com/zeux/pugixml/commit/daeb8013b20f9c47e85730faaa4131064a1f9c2e
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 90fa6793..d7bc1b20 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -4,7 +4,7 @@ project(pugixml)
+ 
+ option(BUILD_SHARED_LIBS "Build shared instead of static library" OFF)
+ option(BUILD_TESTS "Build tests" OFF)
+-option(BUILD_PKGCONFIG "Build in PKGCONFIG mode" OFF)
++option(USE_VERSIONED_LIBDIR "Use a private subdirectory to install the headers and libs" OFF)
+ 
+ set(BUILD_DEFINES "" CACHE STRING "Build defines")
+ 
+@@ -55,7 +55,7 @@ endif()
+ set_target_properties(pugixml PROPERTIES VERSION 1.9 SOVERSION 1)
+ get_target_property(PUGIXML_VERSION_STRING pugixml VERSION)
+ 
+-if(BUILD_PKGCONFIG)
++if(USE_VERSIONED_LIBDIR)
+ 	# Install library into its own directory under LIBDIR
+ 	set(INSTALL_SUFFIX /pugixml-${PUGIXML_VERSION_STRING})
+ endif()
+@@ -71,10 +71,8 @@ install(TARGETS pugixml EXPORT pugixml-config
+ install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}${INSTALL_SUFFIX})
+ install(EXPORT pugixml-config DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/pugixml)
+ 
+-if(BUILD_PKGCONFIG)
+-	configure_file(scripts/pugixml.pc.in ${PROJECT_BINARY_DIR}/pugixml.pc @ONLY)
+-	install(FILES ${PROJECT_BINARY_DIR}/pugixml.pc DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)
+-endif()
++configure_file(scripts/pugixml.pc.in ${PROJECT_BINARY_DIR}/pugixml.pc @ONLY)
++install(FILES ${PROJECT_BINARY_DIR}/pugixml.pc DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)
+ 
+ if(BUILD_TESTS)
+ 	file(GLOB TEST_SOURCES tests/*.cpp)
+diff --git a/scripts/pugixml.pc.in b/scripts/pugixml.pc.in
+index 3c97c28d..804c4d38 100644
+--- a/scripts/pugixml.pc.in
++++ b/scripts/pugixml.pc.in
+@@ -1,11 +1,11 @@
+ prefix=@CMAKE_INSTALL_PREFIX@
+ exec_prefix=${prefix}
+-includedir=${prefix}/include/pugixml-@PUGIXML_VERSION_STRING@
+-libdir=${exec_prefix}/lib/pugixml-@PUGIXML_VERSION_STRING@
++includedir=${prefix}/include@INSTALL_SUFFIX@
++libdir=${exec_prefix}/lib@INSTALL_SUFFIX@
+ 
+ Name: pugixml
+ Description: Light-weight, simple and fast XML parser for C++ with XPath support.
+ URL: http://pugixml.org/
+ Version: @PUGIXML_VERSION_STRING@
+ Cflags: -I${includedir}
+-Libs: -L${libdir} -lpugixml
+\ No newline at end of file
++Libs: -L${libdir} -lpugixml
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index 15857c6cad..ec693d72b3 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -207,15 +207,18 @@ MTP, and much more.")
 (define-public perl-image-exiftool
   (package
     (name "perl-image-exiftool")
-    (version "11.11")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "mirror://cpan/authors/id/E/EX/EXIFTOOL/Image-ExifTool-"
-                    version ".tar.gz"))
-              (sha256
-               (base32
-                "1szg1k82nz88pp5n7lg71ja7q3hh5i5f9bcbb7m482dwrmsywkp6"))))
+    (version "11.31")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (list
+             (string-append "mirror://cpan/authors/id/E/EX/EXIFTOOL/"
+                            "Image-ExifTool-" version ".tar.gz")
+             ;; New releases may take a while to hit CPAN.
+             (string-append "https://www.sno.phy.queensu.ca/~phil/exiftool/"
+                            "Image-ExifTool-" version ".tar.gz")))
+       (sha256
+        (base32 "1kplb7hvhrhqxkr4ddc44q7a3fs0r8svv2jlh325nwkfi7aa5kz5"))))
     (build-system perl-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index 0433b423eb..ba74a5c905 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -73,7 +73,7 @@
                  (substitute* "src/polkitbackend/polkitbackendjsauthority.cpp"
                    (("systemd") "elogind"))
 
-                 ;; GuixSD's polkit service stores actions under
+                 ;; Guix System's polkit service stores actions under
                  ;; /etc/polkit-1/actions.
                  (substitute* "src/polkitbackend/polkitbackendinteractiveauthority.c"
                    (("PACKAGE_DATA_DIR \"/polkit-1/actions\"")
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 33b9070e6a..37cce63eba 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -3217,26 +3217,19 @@ color scales, and color space conversion easy.  It has support for:
 (define-public python-pygit2
   (package
     (name "python-pygit2")
-    (version "0.27.3")
+    (version "0.27.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pygit2" version))
        (sha256
         (base32
-         "046ahvsb7a20sgvscqfm3cb32sp3sii4gim9vz7zzrkf7yz16xlv"))))
+         "15c1mhwwjc7nr8hn5gm21hcfhw61jmwb0vngpjhlm3y5565wg2pz"))))
     (build-system python-build-system)
     (arguments
-     '(#:phases
+     '(#:tests? #f; tests don't run correctly in our environment
+       #:phases
        (modify-phases %standard-phases
-         ;; Remove after the next update. See:
-         ;; https://github.com/libgit2/pygit2/pull/851
-         (add-after 'unpack 'compile-with-cffi
-           (lambda _
-             (substitute* "setup.py"
-               (("install_requires")
-                "setup_requires=['cffi'],\n      install_requires"))
-             #t))
          (add-after 'unpack 'fix-dependency-versioning
            (lambda _
              (substitute* "setup.py"
@@ -8997,14 +8990,14 @@ to occurrences in strings and comments.")
 (define-public python-py3status
   (package
     (name "python-py3status")
-    (version "3.7")
+    (version "3.16")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "py3status" version))
        (sha256
         (base32
-         "0shxcfz4wcczj0mhwp4w0dvwd2fdd9bgprq8slim1519iiqzgwhq"))))
+         "1xrfph277bgjln3jbpzpgkhxad04fjvj7s3xfil42q1sxi4s3q3g"))))
     (build-system python-build-system)
     (inputs
      `(("file" ,file)))
@@ -11653,6 +11646,27 @@ applications in seconds while maintaining all the flexibility.")
 (define-public python2-mando
   (package-with-python2 python-mando))
 
+(define-public python2-argparse
+  (package
+    (name "python2-argparse")
+    (version "1.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "argparse" version))
+       (sha256
+        (base32
+         "1r6nznp64j68ih1k537wms7h57nvppq0szmwsaf99n71bfjqkc32"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2))
+    (home-page "https://github.com/ThomasWaldmann/argparse/")
+    (synopsis "Python command-line parsing library")
+    (description
+     "This package is mostly for people who want to have @code{argparse} on
+older Pythons because it was not part of the standard library back then.")
+    (license license:psfl)))
+
 (define-public python-fudge
   (package
     (name "python-fudge")
@@ -14365,14 +14379,14 @@ validation testing and application logic.")
 (define-public python-numba
   (package
     (name "python-numba")
-    (version "0.39.0")
+    (version "0.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "numba" version))
        (sha256
         (base32
-         "1bibvkwga1v8293i9ivl469d8bzgabn3vgr2ig7c1i68v8frsx07"))))
+         "03rqdfx0512lcri2bcpngx5k3jwfbqnanqj3n19c7d6h6hqxvq9x"))))
     (build-system python-build-system)
     (arguments
      `(#:modules ((guix build utils)
diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm
index d90d12e665..d10c6ebc9c 100644
--- a/gnu/packages/samba.scm
+++ b/gnu/packages/samba.scm
@@ -151,14 +151,14 @@ anywhere.")
 (define-public samba
   (package
     (name "samba")
-    (version "4.9.4")
+    (version "4.9.5")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.samba.org/pub/samba/stable/"
                                  "samba-" version ".tar.gz"))
              (sha256
               (base32
-               "0kqbzywlnh1skg6g78qilyn12qv7wri66h5v9f77igncpkcai63d"))))
+               "001p896z609vb0qs196bgl362j7y3qibgm5gcl9028lfv795d287"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index d0561559e9..4c832c0702 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -91,7 +91,7 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).")
 (define-public fish
   (package
     (name "fish")
-    (version "3.0.0")
+    (version "3.0.2")
     (source
      (origin
        (method url-fetch)
@@ -99,7 +99,7 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).")
                            "releases/download/" version "/"
                            name "-" version ".tar.gz"))
        (sha256
-        (base32 "1kzjd0n0sfslkd36lzrvvvgy3qwkd9y466bkrqlnhd5h9dhx77ga"))))
+        (base32 "03j3jl9jzlnhq4p86zj8wqsh5sx45j1d1fvfa80ks1cfdg68qwhl"))))
     (build-system gnu-build-system)
     (inputs
      `(("fish-foreign-env" ,fish-foreign-env)
diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm
index 9ba37b0f19..b0c19f2664 100644
--- a/gnu/packages/skarnet.scm
+++ b/gnu/packages/skarnet.scm
@@ -29,15 +29,14 @@
 (define-public skalibs
   (package
     (name "skalibs")
-    (version "2.7.0.0")
+    (version "2.8.0.1")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "http://skarnet.org/software/skalibs/skalibs-"
                           version ".tar.gz"))
       (sha256
-       (base32
-        "0mnprdf4w4ami0db22rwd111m037cdmn2p8xa4i8cbwxcrv4sjcn"))))
+       (base32 "00mh15jx3p4xzhkslxzpgi1c0xglywck1ik7ffi0hfwcq092wla7"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f                      ; no tests exist
@@ -62,15 +61,14 @@ and file system operations.  It is used by all skarnet.org software.")
 (define-public execline
   (package
     (name "execline")
-    (version "2.5.0.1")
+    (version "2.5.1.0")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "http://skarnet.org/software/execline/execline-"
                           version ".tar.gz"))
       (sha256
-       (base32
-        "0j8hwdw8wn0rv8njdza8fbgmvyjg7hqp3qlbw00i7fwskr7d21wd"))))
+       (base32 "0xr6yb50wm6amj1wc7jmxyv7hvlx2ypbnww1vc288j275625d9xi"))))
     (build-system gnu-build-system)
     (inputs `(("skalibs" ,skalibs)))
     (arguments
@@ -105,15 +103,14 @@ complexity.")))
 (define-public s6
   (package
    (name "s6")
-   (version "2.7.2.2")
+   (version "2.8.0.0")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "http://skarnet.org/software/s6/s6-"
                          version ".tar.gz"))
      (sha256
-      (base32
-       "0psjmfidjdciswakw9agzzniqfmhrr21765m0q77kwxg7iisgpsq"))))
+      (base32 "01milx5shixvniaxxmanfzz54vcymjfi86433w62rk5ypvc94ir8"))))
    (build-system gnu-build-system)
    (inputs `(("skalibs" ,skalibs)
              ("execline" ,execline)))
@@ -144,15 +141,14 @@ functionality with a very small amount of code.")))
 (define-public s6-dns
   (package
    (name "s6-dns")
-   (version "2.3.0.1")
+   (version "2.3.0.2")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "http://skarnet.org/software/s6-dns/s6-dns-"
                          version ".tar.gz"))
      (sha256
-      (base32
-       "16ymalc4yxbwc0kapwmissxlw2bdk4sx3b33zp1gwx3n6hkcgh8c"))))
+      (base32 "1y9bhvx8bqsb2xq5lmlfnc1hw2b3jyqg11i9r4lj0n6vvaqwh1j8"))))
     (build-system gnu-build-system)
     (inputs `(("skalibs" ,skalibs)))
     (arguments
@@ -174,15 +170,14 @@ as an alternative to the BIND, djbdns or other DNS clients.")))
 (define-public s6-networking
   (package
    (name "s6-networking")
-   (version "2.3.0.3")
+   (version "2.3.0.4")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "http://skarnet.org/software/s6-networking/s6-networking-"
                          version ".tar.gz"))
      (sha256
-      (base32
-       "1kfjl7da6wkmyq1mvq9irkbzk2wbi0axjfbcw5cym5y11mqswsjs"))))
+      (base32 "00kqp0mcp8c7f0z5s4399rd1haxasxkqgd6ds0j0607hvi56mqqa"))))
     (build-system gnu-build-system)
     (inputs `(("skalibs" ,skalibs)
               ("execline" ,execline)
@@ -218,15 +213,14 @@ clock synchronization.")))
 (define-public s6-rc
   (package
    (name "s6-rc")
-   (version "0.4.1.0")
+   (version "0.5.0.0")
    (source
     (origin
      (method url-fetch)
      (uri (string-append "http://skarnet.org/software/s6-rc/s6-rc-"
                          version ".tar.gz"))
      (sha256
-      (base32
-       "1xl37xi509pcm5chcvn8l7gb952sr5mkpxhpkbsxhsllj791bfa2"))))
+      (base32 "0p97p49i8m44lfiffycgn7xi08yzxkrs5dyb03svdhd6clwh6zyb"))))
     (build-system gnu-build-system)
     (inputs `(("skalibs" ,skalibs)
               ("execline" ,execline)
@@ -260,7 +254,7 @@ environment.")))
 (define-public s6-portable-utils
   (package
    (name "s6-portable-utils")
-   (version "2.2.1.2")
+   (version "2.2.1.3")
    (source
     (origin
      (method url-fetch)
@@ -268,8 +262,7 @@ environment.")))
            "http://skarnet.org/software/s6-portable-utils/s6-portable-utils-"
            version ".tar.gz"))
      (sha256
-      (base32
-       "0if77z07rfygd1yk9d2abxkdbx3dg52vcjhb20isb8kvqxhkg8ih"))))
+      (base32 "1ibjns1slyg1p7jl9irzlrjz8b01f506iw87g3s7db5arhf17vv2"))))
     (build-system gnu-build-system)
     (inputs `(("skalibs" ,skalibs)))
     (arguments
@@ -293,7 +286,7 @@ systems and other constrained environments, but they work everywhere.")))
 (define-public s6-linux-init
   (package
    (name "s6-linux-init")
-   (version "0.4.0.0")
+   (version "0.4.0.1")
    (source
     (origin
      (method url-fetch)
@@ -301,8 +294,7 @@ systems and other constrained environments, but they work everywhere.")))
            "http://skarnet.org/software/s6-linux-init/s6-linux-init-"
            version ".tar.gz"))
      (sha256
-      (base32
-       "0zpd6n30cf8847240f658gw40sh64lm1mbaxr19q6rryvs5rpb6l"))))
+      (base32 "0i79b0r3amhsf1xqr9k9v9bxmm4imlakfpsybviwhlj8dlawldxm"))))
     (build-system gnu-build-system)
     (inputs
      `(("skalibs" ,skalibs)))
@@ -331,7 +323,7 @@ all the details.")))
 (define-public s6-linux-utils
   (package
    (name "s6-linux-utils")
-   (version "2.5.0.0")
+   (version "2.5.0.1")
    (source
     (origin
      (method url-fetch)
@@ -339,8 +331,7 @@ all the details.")))
            "http://skarnet.org/software/s6-linux-utils/s6-linux-utils-"
            version ".tar.gz"))
      (sha256
-      (base32
-       "04q2z71dkzahd2ppga2zikclz2qk014c23gm7rigqxjc8rs1amvq"))))
+      (base32 "0bpcaah3rbz4i013bkarr7wxmfvisjyxg0z78xg5zfbgajpgjxx1"))))
     (build-system gnu-build-system)
     (inputs `(("skalibs" ,skalibs)))
     (arguments
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index eaca034366..e017d60767 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -177,7 +177,7 @@ This package also provides @command{xls2csv} to export Excel files to CSV.")
 (define r-with-tests
   (package
     (name "r-with-tests")
-    (version "3.5.1")
+    (version "3.5.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://cran/src/base/R-"
@@ -185,7 +185,7 @@ This package also provides @command{xls2csv} to export Excel files to CSV.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1vap2k8kj5icy9naw61f9zyphf4rs0c9rxvil0zxkwx0xvsvyqq4"))))
+                "1337irx9y0r3jm1rcq1dcwnxsgfhnvgjs5wadcyh17vhpnvkgyib"))))
     (build-system gnu-build-system)
     (arguments
      `(#:disallowed-references (,tzdata-for-tests)
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index b3979d8a41..536a48986f 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Mckinley Olsen <mck.olsen@gmail.com>
 ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
@@ -44,6 +44,7 @@
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages crypto)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
@@ -60,6 +61,8 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages popt)
+  #:use-module (gnu packages protobuf)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
@@ -338,7 +341,7 @@ combining, and so on, with a simple interface.")
 (define-public picocom
   (package
     (name "picocom")
-    (version "2.2")
+    (version "3.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -347,15 +350,16 @@ combining, and so on, with a simple interface.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "06b2ic34dnxc73cprc5imi3iamlhsv623sbg9vj5h5rvs586dwjx"))))
+                "1vvjydqf0ax47nvdyyl67jafw5b3sfsav00xid6qpgia1gs2r72n"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags '("CC=gcc")
-       #:tests? #f ; No tests
+       #:tests? #f                      ; no tests
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)
+         (delete 'configure)            ; no configure script
          (replace 'install
+           ;; The Makefile lacks an ‘install’ target.
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (bin (string-append out "/bin"))
@@ -363,11 +367,12 @@ combining, and so on, with a simple interface.")
                (install-file "picocom" bin)
                (install-file "picocom.1" man)))))))
     (home-page "https://github.com/npat-efault/picocom")
-    (synopsis "Minimal dumb-terminal emulation program")
-    (description "It was designed to serve as a simple, manual, modem
-configuration, testing, and debugging tool.  It has also serves well
-as a low-tech serial communications program to allow access to all
-types of devices that provide serial consoles.")
+    (synopsis "Minimal dumb-terminal emulator")
+    (description
+     "Picocom is a minimal dumb-terminal emulation program.  It was designed to
+serve as a simple and manual modem configuration, testing, and debugging tool.
+It also serves well as a low-tech serial communications program to allow access
+to all types of devices that provide serial consoles.")
     (license license:gpl2+)))
 
 (define-public beep
@@ -1015,3 +1020,50 @@ arbitrary programs of your choice.  This is useful for browsing the history
 comfortably in a pager or editor.
 @end itemize")
     (license license:gpl3+)))
+
+(define-public eternalterminal
+  (package
+    (name "eternalterminal")
+    (version "5.1.9")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/MisterTea/EternalTerminal.git")
+               (commit (string-append "et-v" version))))
+        (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "07ynkcnk3z6wafdlnzdxcd308cw1rzabxyq47ybj79lyji3wsgk7"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:configure-flags '("-DBUILD_TEST=ON")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'insert-googletests
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((tests (assoc-ref inputs "googletest")))
+               (invoke "tar" "xvf" tests "-C" "external/googletest"
+                       "--strip-components=1"))))
+         (add-after 'install 'dont-provide-gtest-libraries
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (delete-file-recursively (string-append out "/include"))
+               (delete-file-recursively (string-append out "/lib")))
+             #t)))))
+    (inputs
+     `(("gflags" ,gflags)
+       ("libsodium" ,libsodium)
+       ("protobuf" ,protobuf)))
+    (native-inputs
+     `(("googletest" ,(package-source googletest))))
+    (home-page "https://mistertea.github.io/EternalTerminal/")
+    (synopsis "Remote shell that reconnects without interrupting the session")
+    (description "@dfn{Eternal Terminal} (ET) is a remote shell that
+automatically reconnects without interrupting the session.  ET uses SSH to
+initialize a secure connection.  Unlike SSH sessions, which must be killed and
+reconnected after a network outage an ET session will survive network outages
+and IP roaming.  ET provides the same core functionality as @command{mosh},
+while also supporting native scrolling and @command{tmux} control mode
+(@code{tmux -CC}).")
+    (license license:asl2.0)))
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index a0eeb23950..5b29937672 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Danny Milosavljevic <dannym+a@scratchpost.org>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
@@ -185,7 +185,7 @@
           ;; ps2eps.pl uses the "gswin32c" ghostscript executable on Windows,
           ;; and the "gs" ghostscript executable on Unix. It detects Unix by
           ;; checking for the existence of the /usr/bin directory. Since
-          ;; GuixSD does not have /usr/bin, it is also detected as Windows.
+          ;; Guix System does not have /usr/bin, it is also detected as Windows.
           (lambda* (#:key inputs #:allow-other-keys)
             (substitute* "utils/ps2eps/ps2eps-src/bin/ps2eps.pl"
               (("gswin32c") "gs"))
@@ -5457,14 +5457,14 @@ PDF documents.")
 (define-public texmaker
   (package
     (name "texmaker")
-    (version "5.0.2")
+    (version "5.0.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://www.xm1math.net/texmaker/texmaker-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "0y81mjm89b99pr9svcwpaf4iz2q9pc9hjas5kiwd1pbgl5vqskm9"))))
+                "0vrj9w5lk3vf6138n5bz8phmy3xp5kv4dq1rgirghcf4hbxdyx30"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 26a2eaa2a7..bdfbc003d3 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -533,13 +533,13 @@ netcat implementation that supports TLS.")
   (package
     (name "python-acme")
     ;; Remember to update the hash of certbot when updating python-acme.
-    (version "0.31.0")
+    (version "0.32.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "acme" version))
               (sha256
                (base32
-                "1gxjv09c695lj8swspa390nch117i60qkrgy135383vfk00jsp3y"))))
+                "1v0skyrjnbxq0lfmia5k6jy29iig4sxbi9j9q367xsw0g25wxvqf"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -590,7 +590,7 @@ netcat implementation that supports TLS.")
               (uri (pypi-uri name version))
               (sha256
                (base32
-                "0wq4jgyzli684h154w26xplp0fzyks2vlrnmhafhyb0h1bw9cc8c"))))
+                "1j63i0j019q0d3l5rx14fv4nxy01nplhk7q2k2fq10vxl0jlxff0"))))
     (build-system python-build-system)
     (arguments
      `(,@(substitute-keyword-arguments (package-arguments python-acme)
@@ -608,8 +608,8 @@ netcat implementation that supports TLS.")
                     #t))))))))
     ;; TODO: Add optional inputs for testing.
     (native-inputs
-     `(("python-nose" ,python-nose)
-       ("python-mock" ,python-mock)
+     `(("python-mock" ,python-mock)
+       ("python-pytest" ,python-pytest)
        ;; For documentation
        ("python-sphinx" ,python-sphinx)
        ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)
@@ -618,6 +618,7 @@ netcat implementation that supports TLS.")
        ("texinfo" ,texinfo)))
     (propagated-inputs
      `(("python-acme" ,python-acme)
+       ("python-cryptography" ,python-cryptography)
        ("python-zope-interface" ,python-zope-interface)
        ("python-pyrfc3339" ,python-pyrfc3339)
        ("python-pyopenssl" ,python-pyopenssl)
diff --git a/gnu/packages/tmux.scm b/gnu/packages/tmux.scm
index e09e6c1fbe..7dbe2128a5 100644
--- a/gnu/packages/tmux.scm
+++ b/gnu/packages/tmux.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
 ;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Oleg Pykhalov <go.wigust@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,7 +28,9 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages ncurses))
 
@@ -134,3 +137,50 @@ continue running in the background, then later reattached.")
 command and helper commands provided by tmuxifier to manage Tmux sessions and
 windows.")
     (license expat)))
+
+(define-public tmux-xpanes
+  (package
+    (name "tmux-xpanes")
+    (version "4.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/greymd/tmux-xpanes.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0px164ikhnzfls6dld4xhiyd9j5jp2rbmwfg11b1pxzm9mp7qk6r"))))
+    (build-system trivial-build-system)
+    (inputs
+     `(("bash" ,bash)))
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (setenv "PATH" (string-append (assoc-ref %build-inputs "bash") "/bin"))
+         (copy-recursively (assoc-ref %build-inputs "source") ".")
+         (substitute* "bin/xpanes"
+           (("/bin/bash") (which "bash")))
+         (install-file "bin/xpanes" (string-append %output "/bin"))
+         (install-file "man/xpanes.1" (string-append %output "/man/man1"))
+         #t)))
+    (home-page "https://github.com/greymd/tmux-xpanes")
+    (synopsis "Tmux based terminal divider")
+    (description "This package provides tmux-based terminal divider.
+
+@code{xpanes} or @code{tmux-xpanes} (alias of @code{xpanes}) commands have
+following features:
+
+@itemize
+@item Split tmux window into multiple panes.
+@item Build command lines & execute them on the panes.
+@item Runnable from outside of tmux session.
+@item Runnable from inside of tmux session.
+@item Record operation log.
+@item Flexible layout arrangement for panes.
+@item Display pane title on each pane.
+@item Generate command lines from standard input (Pipe mode).
+@end itemize")
+    (license expat)))
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 7a53db7323..e9f5aa751c 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1412,7 +1412,7 @@ access to mpv's powerful playback capabilities.")
 (define-public youtube-dl
   (package
     (name "youtube-dl")
-    (version "2019.03.01")
+    (version "2019.03.09")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/rg3/youtube-dl/releases/"
@@ -1420,7 +1420,7 @@ access to mpv's powerful playback capabilities.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0bxk6adyppdv50jnp5cika8wc6wfgd6d8zbg1njgmcs1pxskllmf"))))
+                "1g46mrmzr31b2r6x0g6wmg3j00qc8l6cbzmdik0l5vwjfcrdvghf"))))
     (build-system python-build-system)
     (arguments
      ;; The problem here is that the directory for the man page and completion
@@ -1531,7 +1531,7 @@ other site that youtube-dl supports.")
 (define-public you-get
   (package
     (name "you-get")
-    (version "0.4.1256")
+    (version "0.4.1270")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1540,7 +1540,7 @@ other site that youtube-dl supports.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1hzr7ha1jvbc0v2bwl7s08ymwdmvb0f2jz4xp1fi6agq5y3ca1iv"))))
+                "123g6x8sh32v4yn4ss55lfw7j79hgl3l6aiwgrk4ndq7dzhnz46q"))))
     (build-system python-build-system)
     (inputs
      `(("ffmpeg" ,ffmpeg)))             ; for multi-part and >=1080p videos
@@ -1816,15 +1816,15 @@ for use with HTML5 video.")
 (define-public avidemux
   (package
     (name "avidemux")
-    (version "2.7.1")
+    (version "2.7.2")
     (source (origin
              (method url-fetch)
              (uri (string-append
-                   "mirror://sourceforge/" name "/" name "/" version "/"
-                   name "_" version ".tar.gz"))
+                   "mirror://sourceforge/avidemux/avidemux/" version "/"
+                   "avidemux_" version ".tar.gz"))
              (sha256
               (base32
-               "15g9h791qbnmycabbbl7s2b3n3xpvygm88qrfk35g2cw6957ik9w"))
+               "07fdz3y4iln7cizikdjj96dqvp2f8zzhs31ncxxwzdkngn5v8138"))
              (patches (search-patches "avidemux-install-to-lib.patch"))))
     (build-system cmake-build-system)
     (native-inputs
@@ -1857,73 +1857,74 @@ for use with HTML5 video.")
        #:phases
        ;; Make sure files inside the included ffmpeg tarball are
        ;; patch-shebanged.
-       (modify-phases %standard-phases
-       (add-before 'patch-source-shebangs 'unpack-ffmpeg
-         (lambda _
-           (with-directory-excursion "avidemux_core/ffmpeg_package"
-             (invoke "tar" "xf" "ffmpeg-3.3.7.tar.bz2")
-             (delete-file "ffmpeg-3.3.7.tar.bz2"))
-           #t))
-       (add-after 'patch-source-shebangs 'repack-ffmpeg
-         (lambda _
-           (with-directory-excursion "avidemux_core/ffmpeg_package"
-             (substitute* "ffmpeg-3.3.7/configure"
-               (("#! /bin/sh") (string-append "#!" (which "sh"))))
-             (invoke "tar" "cjf" "ffmpeg-3.3.7.tar.bz2" "ffmpeg-3.3.7"
-                     ;; avoid non-determinism in the archive
-                     "--sort=name" "--mtime=@0"
-                     "--owner=root:0" "--group=root:0")
-             (delete-file-recursively "ffmpeg-3.3.7"))
-           #t))
-       (replace 'configure
-         (lambda _
-           ;; Copy-paste settings from the cmake build system.
-           (setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
-           (setenv "CMAKE_INCLUDE_PATH" (getenv "C_INCLUDE_PATH"))
-           #t))
-       (replace 'build
-         (lambda* (#:key inputs outputs #:allow-other-keys)
-           (let* ((out (assoc-ref outputs "out"))
-                  (lib (string-append out "/lib"))
-                  (top (getcwd))
-                  (sdl (assoc-ref inputs "sdl"))
-                  (build_component
-                   (lambda* (component srcdir #:optional (args '()))
-                     (let ((builddir (string-append "build_" component)))
-                       (mkdir builddir)
-                       (with-directory-excursion builddir
-                         (apply invoke "cmake"
-                                "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE"
-                                (string-append "-DCMAKE_INSTALL_PREFIX=" out)
-                                (string-append "-DCMAKE_INSTALL_RPATH=" lib)
-                                (string-append "-DCMAKE_SHARED_LINKER_FLAGS="
-                                               "\"-Wl,-rpath=" lib "\"")
-                                (string-append "-DAVIDEMUX_SOURCE_DIR=" top)
-                                (string-append "-DSDL_INCLUDE_DIR="
-                                               sdl "/include/SDL")
-                                (string-append "../" srcdir)
-                                "-DENABLE_QT5=True"
-                                args)
-                         (invoke "make" "-j"
-                                 (number->string (parallel-job-count)))
-                         (invoke "make" "install"))))))
-             (mkdir out)
-             (build_component "core" "avidemux_core")
-             (build_component "cli" "avidemux/cli")
-             (build_component "qt4" "avidemux/qt4")
-             (build_component "plugins_common" "avidemux_plugins"
-                              '("-DPLUGIN_UI=COMMON"))
-             (build_component "plugins_cli" "avidemux_plugins"
-                              '("-DPLUGIN_UI=CLI"))
-             (build_component "plugins_qt4" "avidemux_plugins"
-                              '("-DPLUGIN_UI=QT4"))
-             (build_component "plugins_settings" "avidemux_plugins"
-                              '("-DPLUGIN_UI=SETTINGS"))
-             ;; Remove .exe and .dll file.
-             (delete-file-recursively
-              (string-append out "/share/ADM6_addons"))
-             #t)))
-       (delete 'install))))
+       (let ((ffmpeg "ffmpeg-4.1.1"))
+         (modify-phases %standard-phases
+           (add-before 'patch-source-shebangs 'unpack-ffmpeg
+             (lambda _
+               (with-directory-excursion "avidemux_core/ffmpeg_package"
+                 (invoke "tar" "xf" (string-append ffmpeg ".tar.bz2"))
+                 (delete-file (string-append ffmpeg ".tar.bz2")))
+               #t))
+           (add-after 'patch-source-shebangs 'repack-ffmpeg
+             (lambda _
+               (with-directory-excursion "avidemux_core/ffmpeg_package"
+                 (substitute* (string-append ffmpeg "/configure")
+                   (("#! /bin/sh") (string-append "#!" (which "sh"))))
+                 (invoke "tar" "cjf" (string-append ffmpeg ".tar.bz2") ffmpeg
+                         ;; avoid non-determinism in the archive
+                         "--sort=name" "--mtime=@0"
+                         "--owner=root:0" "--group=root:0")
+                 (delete-file-recursively ffmpeg))
+               #t))
+           (replace 'configure
+             (lambda _
+               ;; Copy-paste settings from the cmake build system.
+               (setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
+               (setenv "CMAKE_INCLUDE_PATH" (getenv "C_INCLUDE_PATH"))
+               #t))
+           (replace 'build
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (lib (string-append out "/lib"))
+                      (top (getcwd))
+                      (sdl (assoc-ref inputs "sdl"))
+                      (build_component
+                       (lambda* (component srcdir #:optional (args '()))
+                         (let ((builddir (string-append "build_" component)))
+                           (mkdir builddir)
+                           (with-directory-excursion builddir
+                             (apply invoke "cmake"
+                                    "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE"
+                                    (string-append "-DCMAKE_INSTALL_PREFIX=" out)
+                                    (string-append "-DCMAKE_INSTALL_RPATH=" lib)
+                                    (string-append "-DCMAKE_SHARED_LINKER_FLAGS="
+                                                   "\"-Wl,-rpath=" lib "\"")
+                                    (string-append "-DAVIDEMUX_SOURCE_DIR=" top)
+                                    (string-append "-DSDL_INCLUDE_DIR="
+                                                   sdl "/include/SDL")
+                                    (string-append "../" srcdir)
+                                    "-DENABLE_QT5=True"
+                                    args)
+                             (invoke "make" "-j"
+                                     (number->string (parallel-job-count)))
+                             (invoke "make" "install"))))))
+                 (mkdir out)
+                 (build_component "core" "avidemux_core")
+                 (build_component "cli" "avidemux/cli")
+                 (build_component "qt4" "avidemux/qt4")
+                 (build_component "plugins_common" "avidemux_plugins"
+                                  '("-DPLUGIN_UI=COMMON"))
+                 (build_component "plugins_cli" "avidemux_plugins"
+                                  '("-DPLUGIN_UI=CLI"))
+                 (build_component "plugins_qt4" "avidemux_plugins"
+                                  '("-DPLUGIN_UI=QT4"))
+                 (build_component "plugins_settings" "avidemux_plugins"
+                                  '("-DPLUGIN_UI=SETTINGS"))
+                 ;; Remove .exe and .dll file.
+                 (delete-file-recursively
+                  (string-append out "/share/ADM6_addons"))
+                 #t)))
+           (delete 'install)))))
     (home-page "http://fixounet.free.fr/avidemux/")
     (synopsis "Video editor")
     (description "Avidemux is a video editor designed for simple cutting,
@@ -1983,7 +1984,7 @@ format changes.")
 (define-public xvid
   (package
     (name "xvid")
-    (version "1.3.4")
+    (version "1.3.5")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1991,7 +1992,7 @@ format changes.")
                     version ".tar.bz2"))
               (sha256
                (base32
-                "1xwbmp9wqshc0ckm970zdpi0yvgqxlqg0s8bkz98mnr8p2067bsz"))))
+                "1d0hy1w9sn6491a3vhyf3vmhq4xkn6yd4ralx1191s6qz5wz483w"))))
     (build-system gnu-build-system)
     (native-inputs `(("yasm" ,yasm)))
     (arguments
diff --git a/gnu/packages/w3m.scm b/gnu/packages/w3m.scm
index a8761ec602..b88bbd39bb 100644
--- a/gnu/packages/w3m.scm
+++ b/gnu/packages/w3m.scm
@@ -39,7 +39,7 @@
 (define-public w3m
   (package
     (name "w3m")
-    (version "0.5.3+git20180125")
+    (version "0.5.3+git20190105")
     (source (origin
               (method git-fetch)
               ;; Debian's fork of w3m is the only one that is still maintained.
@@ -49,7 +49,7 @@
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0dafdfx1yhrvhbqzslkcapj09dvf64m2jadz3wl2icni0k4msq90"))))
+                "1fbg2p8qh2gvi3g4iz4q6vc0k70pf248r4yndi5lcn2m3mzvjx0i"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f  ; no check target
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index a19a0dc7c3..b6af572778 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -397,7 +397,7 @@ driven and does not detract you from your daily work.")
     (inputs
      `(("glib-networking" ,glib-networking)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("webkitgtk" ,webkitgtk-2.22)))
+       ("webkitgtk" ,webkitgtk-2.24)))
     (native-inputs
      `(("gcc-7" ,gcc-7) ; needed because webkitgtk-2.22 is compiled with gcc-7
        ("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index d9b7def67b..3c126bb941 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -194,16 +194,18 @@ Interface} specification.")
 (define-public nginx
   (package
     (name "nginx")
-    ;; Consider updating the nginx-documentation package if the nginx package is
-    ;; updated.
-    (version "1.14.2")
+    ;; Track the ‘mainline’ branch.  Upstream considers it more reliable than
+    ;; ’stable’ and recommends that “in general you deploy the NGINX mainline
+    ;; branch at all times” (https://www.nginx.com/blog/nginx-1-6-1-7-released/)
+    ;; Consider updating the nginx-documentation package together with this one.
+    (version "1.15.9")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://nginx.org/download/nginx-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "15wppq12qmq8acjs35xfj61czhf9cdc0drnl5mm8hcg3aihryb80"))))
+                "0hxfsz1117r91b9fb5hjddyrf1czvb36lh1z7zalqqdskfcbmkz4"))))
     (build-system gnu-build-system)
     (inputs `(("openssl" ,openssl)
               ("pcre" ,pcre)
@@ -327,13 +329,13 @@ documentation.")
       (license l:bsd-2))))
 
 (define-public nginx-documentation
-  ;; This documentation should be relevant for nginx@1.13.11.
-  (let ((revision 2131)
-        (changeset "dbaf3950f8e9"))
+  ;; This documentation should be relevant for nginx@1.15.9.
+  (let ((revision 2345)
+        (changeset "7ef11708457e"))
     (package
       (name "nginx-documentation")
       (version
-       (simple-format #f "2018-04-04-~A-~A" revision changeset))
+       (simple-format #f "2019-03-01-~A-~A" revision changeset))
       (source
        (origin (method hg-fetch)
                (uri (hg-reference
@@ -342,7 +344,7 @@ documentation.")
                (file-name (string-append name "-" version))
                (sha256
                 (base32
-                 "0acdjsdaqixzh9g9s6db552v4pan4nqrllyqapay9ns9yzh1hrp7"))))
+                 "15975jvh53mnsgi4hhgrwdwy3by23v4kxnhy2vnkziq8v7wkmy4y"))))
       (build-system gnu-build-system)
       (arguments
        '(#:tests? #f                    ; no test suite
@@ -360,8 +362,7 @@ documentation.")
                  ;; banner.
                  (substitute* "xslt/style.xslt"
                    (("#banner           \\{ background:     black;")
-                    "#banner           { background:     black;
-                            display:     none;"))
+                    "#banner           { display:        none;"))
                  (invoke "make")
                  #t)))
            (replace 'install
@@ -750,7 +751,7 @@ current version of any major web browser.")
     (source (origin
              (method git-fetch)
              (uri (git-reference
-                   (url "https://github.com/miloyip/rapidjson.git")
+                   (url "https://github.com/Tencent/rapidjson.git")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
@@ -775,7 +776,7 @@ current version of any major web browser.")
                      (("native") "armv8-a"))
                    #t))))
            '())))
-    (home-page "https://github.com/miloyip/rapidjson")
+    (home-page "https://github.com/Tencent/rapidjson")
     (synopsis "JSON parser/generator for C++ with both SAX/DOM style API")
     (description
      "RapidJSON is a fast JSON parser/generator for C++ with both SAX/DOM
@@ -4763,15 +4764,14 @@ tools like SSH (Secure Shell) to reach the outside world.")
 (define-public stunnel
   (package
   (name "stunnel")
-  (version "5.48")
+  (version "5.50")
   (source
     (origin
       (method url-fetch)
       (uri (string-append "https://www.stunnel.org/downloads/stunnel-"
                           version ".tar.gz"))
       (sha256
-       (base32
-        "1pxqn9ixl80nrhfq12igyi874653jclji56hh9w24snf0aixa48h"))))
+       (base32 "0j811iakljjxw39qchmqf235jdkwixb0i4xxjyi55f08558947cm"))))
   (build-system gnu-build-system)
   (native-inputs
    ;; For tests.
diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index 7a4818609e..14c374dd3e 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -165,20 +165,23 @@ HTML/CSS applications to full-fledged web browsers.")
 ;; newer version of GCC than our default compiler, and this causes problems
 ;; when linked with C++ libraries built using our default compiler.  For now,
 ;; we use this newer webkitgtk only for selected packages, e.g. epiphany.
-(define-public webkitgtk-2.22
+(define-public webkitgtk-2.24
   (package/inherit webkitgtk
     (name "webkitgtk")
-    (version "2.22.7")
+    (version "2.24.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.webkitgtk.org/releases/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1zrhmz90sn30zgyflj4i86fsscws10xsi2kfs87nj2nd0pbggrjb"))))
+                "01s446lmjk7y8il4snjm32vpxws2rp4hmxrwm2swx0p47x8d2jif"))))
     (native-inputs
      `(("gcc" ,gcc-7)  ; webkitgtk-2.22 requires gcc-6 or newer
        ,@(package-native-inputs webkitgtk)))
+    (inputs
+     `(("openjpeg" ,openjpeg)
+       ,@(package-inputs webkitgtk)))
     (arguments
      (substitute-keyword-arguments (package-arguments webkitgtk)
        ((#:phases phases)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 96ef06bc15..4a6fc62069 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -18,6 +18,7 @@
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
 ;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com>
+;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -42,6 +43,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system haskell)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
   #:use-module (gnu packages haskell)
@@ -77,6 +79,10 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages suckless)
   #:use-module (gnu packages mpd)
+  #:use-module (gnu packages gl)
+  #:use-module (gnu packages video)
+  #:use-module (gnu packages version-control)
+  #:use-module (gnu packages man)
   #:use-module (guix download)
   #:use-module (guix git-download))
 
@@ -1102,3 +1108,145 @@ its size
 customizable status bars for their desktop environment.  It has built-in
 functionality to display information about the most commonly used services.")
     (license license:expat)))
+
+(define-public wlroots
+  (package
+    (name "wlroots")
+    (version "0.5.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/swaywm/wlroots.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1phiidyddzgaxy4gbqwmykxn0y8za6y5mp66l9dpd9i6fml153yq"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:configure-flags '("-Dlogind-provider=elogind")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'hardcode-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "xwayland/xwayland.c"
+               (("Xwayland") (string-append (assoc-ref inputs
+                                                       "xorg-server-xwayland")
+                                            "/bin/Xwayland")))
+             #t)))))
+    (inputs `(("elogind" ,elogind)
+              ("eudev" ,eudev)
+              ("libinput" ,libinput)
+              ("libxkbcommon" ,libxkbcommon)
+              ("mesa" ,mesa)
+              ("pixman" ,pixman)
+              ("wayland" ,wayland)
+              ("xorg-server-xwayland" ,xorg-server-xwayland)))
+    (native-inputs `(("ffmpeg" ,ffmpeg)
+                     ("libcap" ,libcap)
+                     ("libpng" ,libpng)
+                     ("pkg-config" ,pkg-config)
+                     ("wayland-protocols" ,wayland-protocols)))
+    (home-page "https://github.com/swaywm/wlroots")
+    (synopsis "Pluggable, composable, unopinionated modules for building a
+Wayland compositor")
+    (description "wlroots is a set of pluggable, composable, unopinionated
+modules for building a Wayland compositor.")
+    (license license:expat)))  ; MIT license
+
+(define-public sway
+  (package
+    (name "sway")
+    (version "1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/swaywm/sway.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "09cndc2nl39d3l7g5634xp0pxcz60pvc5277mfw89r22mh0j78rx"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'hardcode-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "meson.build"
+               (("scdoc.get_pkgconfig_variable..scdoc..")
+                (string-append "'" (assoc-ref inputs "scdoc")
+                               "/bin/scdoc'")))
+             #t)))))
+    (inputs `(("cairo" ,cairo)
+              ("elogind" ,elogind)
+              ("gdk-pixbuf" ,gdk-pixbuf)
+              ("json-c" ,json-c)
+              ("libinput" ,libinput)
+              ("libxkbcommon" ,libxkbcommon)
+              ("pango" ,pango)
+              ("wayland" ,wayland)
+              ("wlroots" ,wlroots)))
+    (native-inputs `(("git" ,git)
+                     ("libcap" ,libcap)
+                     ("linux-pam" ,linux-pam)
+                     ("mesa" ,mesa)
+                     ("pkg-config" ,pkg-config)
+                     ("scdoc" ,scdoc)
+                     ("wayland-protocols" ,wayland-protocols)))
+    (home-page "https://github.com/swaywm/sway")
+    (synopsis "Wayland compositor compatible with i3")
+    (description "Sway is a i3-compatible Wayland compositor.")
+    (license license:expat)))       ; MIT license
+
+(define-public swayidle
+  (package
+    (name "swayidle")
+    (version "1.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/swaywm/swayidle.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0b65flajwn2i6k2kdxxgw25w7ikzzmm595f4j5x1wac1rb0yah9w"))))
+    (build-system meson-build-system)
+    (inputs `(("wayland" ,wayland)))
+    (native-inputs `(("pkg-config" ,pkg-config)
+                     ("scdoc" ,scdoc)
+                     ("wayland-protocols" ,wayland-protocols)))
+    (home-page "https://github.com/swaywm/sway")
+    (synopsis "Idle management daemon for Wayland compositors")
+    (description "Swayidle is a idle management daemon for Wayland compositors.")
+    (license license:expat))) ; MIT license
+
+(define-public swaylock
+  (package
+    (name "swaylock")
+    (version "1.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/swaywm/swaylock.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "093nv1y9wyg48rfxhd36qdljjry57v1vkzrlc38mkf6zvsq8j7wb"))))
+    (build-system meson-build-system)
+    (inputs `(("cairo" ,cairo)
+              ("gdk-pixbuf" ,gdk-pixbuf)
+              ("libxkbcommon" ,libxkbcommon)
+              ;("linux-pam" ,linux-pam) ; FIXME: Doesn't work.
+              ("wayland" ,wayland)))
+    (native-inputs `(("git" ,git)
+                     ("pango" ,pango)
+                     ("pkg-config" ,pkg-config)
+                     ("scdoc" ,scdoc)
+                     ("wayland-protocols" ,wayland-protocols)))
+    (home-page "https://github.com/swaywm/sway")
+    (synopsis "Screen locking utility for Wayland compositors")
+    (description "Swaylock is a screen locking utility for Wayland compositors.")
+    (license license:expat))) ; MIT license
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index c80dfb1eac..0ba23bcba4 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -861,14 +861,16 @@ the form of functions.")
       (method url-fetch)
       (uri (string-append "https://github.com/zeux/pugixml/releases/download/v"
                           version "/pugixml-" version ".tar.gz"))
+      (patches (search-patches "pugixml-versioned-libdir.patch"))
       (sha256
        (base32
         "19nv3zhik3djp4blc4vrjwrl8dfhzmal8b21sq7y907nhddx6mni"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:configure-flags '("-DCMAKE_CXX_FLAGS=-shared -fPIC"
-                           "-DCMAKE_C_FLAGS=-shared -fPIC")
-       #:tests? #f))                    ; no tests
+     `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")
+       #:tests? #f))                     ;no tests
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
     (home-page "https://pugixml.org")
     (synopsis "Light-weight, simple and fast XML parser for C++ with XPath support")
     (description
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index bc4e052937..2fbacb04bd 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -2624,17 +2624,14 @@ as USB mice.")
 (define-public xf86-video-amdgpu
   (package
     (name "xf86-video-amdgpu")
-    (version "18.1.0")
+    (version "19.0.0")
     (source
-      (origin
-        (method url-fetch)
-        (uri (string-append
-               "mirror://xorg/individual/driver/xf86-video-amdgpu-"
-               version
-               ".tar.bz2"))
-        (sha256
-          (base32
-           "0wlnb929l3yqj4hdkzyxyhbaph13ac4villajgmbh66pa6xja7z1"))))
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://xorg/individual/driver/"
+                           "xf86-video-amdgpu-" version ".tar.bz2"))
+       (sha256
+        (base32 "0lag9jxd752ja7m7ngz3dmqffb5wbx4crdwjw74qx42m8xyi8dl8"))))
     (build-system gnu-build-system)
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
@@ -2694,17 +2691,14 @@ X server.")
 (define-public xf86-video-ati
   (package
     (name "xf86-video-ati")
-    (version "18.0.1")
+    (version "19.0.0")
     (source
-      (origin
-        (method url-fetch)
-        (uri (string-append
-               "mirror://xorg/individual/driver/xf86-video-ati-"
-               version
-               ".tar.bz2"))
-        (sha256
-          (base32
-            "180l2yw8c63cbcs3zk729vx439aig1d7yicpyxj0nmfl4y0kpskj"))))
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://xorg/individual/driver/"
+                           "xf86-video-ati-" version ".tar.bz2"))
+       (sha256
+        (base32 "0mzl7yp3qkvankh22758sgpaw9mg6jxsfbg6wy0nxfw4i0qpv46x"))))
     (build-system gnu-build-system)
     (inputs `(("mesa" ,mesa)
               ("xorgproto" ,xorgproto)
@@ -6361,7 +6355,7 @@ output.")
 (define-public console-setup
   (package
     (name "console-setup")
-    (version "1.189")
+    (version "1.190")
     (source
      (origin
        (method git-fetch)
@@ -6369,7 +6363,7 @@ output.")
              (url "https://salsa.debian.org/installer-team/console-setup.git")
              (commit version)))
        (sha256
-        (base32 "09rfnnhwjm98im711v6jrgl49iy5n1b26x12zzk5rw6g1667mz86"))
+        (base32 "0qklm9ww1wap2bs7hp31xkfjyhdrirg2mk4hiv7h6fiqckzmdwvd"))
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index d2baea0dd0..04b123b833 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -43,6 +43,7 @@
                 #:select (canonical-package glibc glibc-utf8-locales))
   #:use-module (gnu packages bash)
   #:use-module (gnu packages package-management)
+  #:use-module ((gnu packages gnupg) #:select (guile-gcrypt))
   #:use-module (gnu packages linux)
   #:use-module (gnu packages terminals)
   #:use-module ((gnu build file-systems)
@@ -50,6 +51,7 @@
   #:use-module (guix gexp)
   #:use-module (guix records)
   #:use-module (guix modules)
+  #:use-module ((guix self) #:select (make-config.scm))
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:use-module (ice-9 match)
@@ -329,7 +331,7 @@ seconds after @code{SIGTERM} has been sent are terminated with
   `(("fstab" ,(plain-file "fstab"
                           (string-append
                            "\
-# This file was generated from your GuixSD configuration.  Any changes
+# This file was generated from your Guix configuration.  Any changes
 # will be lost upon reboot or reconfiguration.\n\n"
                            (string-join (map file-system->fstab-entry
                                              file-systems)
@@ -1481,16 +1483,14 @@ pam-limits-entry specified in LIMITS via pam_limits.so."
 
 (define* (guix-build-accounts count #:key
                               (group "guixbuild")
-                              (first-uid 30001)
                               (shadow shadow))
-  "Return a list of COUNT user accounts for Guix build users, with UIDs
-starting at FIRST-UID, and under GID."
+  "Return a list of COUNT user accounts for Guix build users with the given
+GID."
   (unfold (cut > <> count)
           (lambda (n)
             (user-account
              (name (format #f "guixbuilder~2,'0d" n))
              (system? #t)
-             (uid (+ first-uid n -1))
              (group group)
 
              ;; guix-daemon expects GROUP to be listed as a
@@ -1504,27 +1504,58 @@ starting at FIRST-UID, and under GID."
           1+
           1))
 
+(define not-config?
+  ;; Select (guix …) and (gnu …) modules, except (guix config).
+  (match-lambda
+    (('guix 'config) #f)
+    (('guix rest ...) #t)
+    (('gnu rest ...) #t)
+    (rest #f)))
+
 (define (hydra-key-authorization keys guix)
   "Return a gexp with code to register KEYS, a list of files containing 'guix
 archive' public keys, with GUIX."
-  #~(unless (file-exists? "/etc/guix/acl")
-      (for-each (lambda (key)
-                  (let ((pid (primitive-fork)))
-                    (case pid
-                      ((0)
-                       (let* ((port (open-file key "r0b")))
-                         (format #t "registering public key '~a'...~%" key)
-                         (close-port (current-input-port))
-                         (dup port 0)
-                         (execl #$(file-append guix "/bin/guix")
-                                "guix" "archive" "--authorize")
-                         (primitive-exit 1)))
-                      (else
-                       (let ((status (cdr (waitpid pid))))
-                         (unless (zero? status)
-                           (format (current-error-port) "warning: \
-failed to register public key '~a': ~a~%" key status)))))))
-                '(#$@keys))))
+  (define aaa
+    ;; XXX: Terrible hack to work around <https://bugs.gnu.org/15602>: this
+    ;; forces (guix config) and (guix utils) to be loaded upfront, so that
+    ;; their run-time symbols are defined.
+    (scheme-file "aaa.scm"
+                 #~(define-module (guix aaa)
+                     #:use-module (guix config)
+                     #:use-module (guix memoization))))
+
+  (define default-acl
+    (with-extensions (list guile-gcrypt)
+      (with-imported-modules `(((guix config) => ,(make-config.scm))
+                               ((guix aaa) => ,aaa)
+                               ,@(source-module-closure '((guix pki))
+                                                        #:select? not-config?))
+        (computed-file "acl"
+                       #~(begin
+                           (use-modules (guix pki)
+                                        (gcrypt pk-crypto)
+                                        (ice-9 rdelim))
+
+                           (define keys
+                             (map (lambda (file)
+                                    (call-with-input-file file
+                                      (compose string->canonical-sexp
+                                               read-string)))
+                                  '(#$@keys)))
+
+                           (call-with-output-file #$output
+                             (lambda (port)
+                               (write-acl (public-keys->acl keys)
+                                          port))))))))
+
+  (with-imported-modules '((guix build utils))
+    #~(begin
+        (use-modules (guix build utils))
+
+        (unless (file-exists? "/etc/guix/acl")
+          (mkdir-p "/etc/guix")
+          (copy-file #+default-acl "/etc/guix/acl")
+          (chmod "/etc/guix/acl" #o600)))))
 
 (define %default-authorized-guix-keys
   ;; List of authorized substitute keys.
diff --git a/gnu/services/configuration.scm b/gnu/services/configuration.scm
index 707944cbe0..90f12a8d39 100644
--- a/gnu/services/configuration.scm
+++ b/gnu/services/configuration.scm
@@ -22,6 +22,7 @@
   #:use-module (guix packages)
   #:use-module (guix records)
   #:use-module (guix gexp)
+  #:use-module ((guix utils) #:select (source-properties->location))
   #:autoload   (texinfo) (texi-fragment->stexi)
   #:autoload   (texinfo serialize) (stexi->texi)
   #:use-module (ice-9 match)
@@ -129,6 +130,10 @@
                  #,(id #'stem #'% #'stem)
                  #,(id #'stem #'make- #'stem)
                  #,(id #'stem #'stem #'?)
+                 (%location #,(id #'stem #'-location)
+                            (default (and=> (current-source-location)
+                                            source-properties->location))
+                            (innate))
                  (field field-getter (default def))
                  ...)
                (define #,(id #'stem #'stem #'-fields)
diff --git a/gnu/services/cups.scm b/gnu/services/cups.scm
index 715d333a71..9125139ef3 100644
--- a/gnu/services/cups.scm
+++ b/gnu/services/cups.scm
@@ -862,7 +862,7 @@ IPP specifications.")
         (define* (create-self-signed-certificate-if-absent
                   #:key private-key public-key (owner (getpwnam "root"))
                   (common-name (gethostname))
-                  (organization-name "GuixSD")
+                  (organization-name "Guix")
                   (organization-unit-name "Default Self-Signed Certificate")
                   (subject-parameters `(("CN" . ,common-name)
                                         ("O" . ,organization-name)
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 7940f28a26..0dee57e3bc 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -906,9 +906,13 @@ and extends polkit with the actions from @code{gnome-settings-daemon}."
           (service-extension profile-service-type
                              (compose list
                                       mate-package))))
+   (default-value (mate-desktop-configuration))
    (description "Run the MATE desktop environment.")))
 
-(define* (mate-desktop-service #:key (config (mate-desktop-configuration)))
+(define-deprecated (mate-desktop-service #:key
+                                         (config
+                                          (mate-desktop-configuration)))
+  mate-desktop-service-type
   "Return a service that adds the @code{mate} package to the system profile,
 and extends polkit with the actions from @code{mate-settings-daemon}."
   (service mate-desktop-service-type config))
diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm
index fcaedd038b..a7e8c41d3a 100644
--- a/gnu/services/mail.scm
+++ b/gnu/services/mail.scm
@@ -1485,7 +1485,7 @@ greyed out, instead of only later giving \"not selectable\" popup error.
         (define* (create-self-signed-certificate-if-absent
                   #:key private-key public-key (owner (getpwnam "root"))
                   (common-name (gethostname))
-                  (organization-name "GuixSD")
+                  (organization-name "Guix")
                   (organization-unit-name "Default Self-Signed Certificate")
                   (subject-parameters `(("CN" . ,common-name)
                                         ("O" . ,organization-name)
diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm
index e70f1b70ef..11b41f2bf6 100644
--- a/gnu/services/messaging.scm
+++ b/gnu/services/messaging.scm
@@ -461,7 +461,7 @@ about using the hashed backend.  See also
     (log
      (maybe-string "*syslog")
      "Set logging options.  Advanced logging configuration is not yet supported
-by the GuixSD Prosody Service.  See @url{https://prosody.im/doc/logging}."
+by the Prosody service.  See @url{https://prosody.im/doc/logging}."
      common)
 
     (pidfile
diff --git a/gnu/services/monitoring.scm b/gnu/services/monitoring.scm
index 611448b733..e1b1d9b236 100644
--- a/gnu/services/monitoring.scm
+++ b/gnu/services/monitoring.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
 ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
-;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2018, 2019 Oleg Pykhalov <go.wigust@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -29,7 +29,8 @@
   #:use-module (guix gexp)
   #:use-module (guix packages)
   #:use-module (guix records)
-  #:use-module ((guix ui) #:select (display-hint))
+  #:use-module (guix utils)
+  #:use-module ((guix ui) #:select (display-hint G_))
   #:use-module (ice-9 match)
   #:use-module (ice-9 rdelim)
   #:use-module (srfi srfi-26)
@@ -509,13 +510,12 @@ create it manually.")
    (number 10051)
    "Zabbix server port."))
 
-(define zabbix-front-end-config
-  (match-lambda
-    (($ <zabbix-front-end-configuration>
-        _ db-host db-port db-name db-user db-password db-secret-file
-        zabbix-host zabbix-port)
-     (mixed-text-file "zabbix.conf.php"
-                      "\
+(define (zabbix-front-end-config config)
+  (match-record config <zabbix-front-end-configuration>
+    (%location db-host db-port db-name db-user db-password db-secret-file
+               zabbix-host zabbix-port)
+    (mixed-text-file "zabbix.conf.php"
+                     "\
 <?php
 // Zabbix GUI configuration file.
 global $DB;
@@ -525,20 +525,29 @@ $DB['SERVER']   = '" db-host "';
 $DB['PORT']     = '" (number->string db-port) "';
 $DB['DATABASE'] = '" db-name "';
 $DB['USER']     = '" db-user "';
-$DB['PASSWORD'] = '" (if (string-null? db-password)
-                         (if (string-null? db-secret-file)
-                             (raise (condition
-                                     (&message
-                                      (message "\
-you must provide either 'db-secret-file' or 'db-password'"))))
-                             (string-trim-both
-                              (with-input-from-file db-secret-file
-                                read-string)))
-                         (begin
-                           (display-hint "\
-Consider using @code{db-secret-file} instead of @code{db-password} and unset
-@code{db-password} for security in @code{zabbix-front-end-configuration}.")
-                           db-password)) "';
+$DB['PASSWORD'] = '" (let ((file (location-file %location))
+                           (line (location-line %location))
+                           (column (location-column %location)))
+                       (if (string-null? db-password)
+                           (if (string-null? db-secret-file)
+                               (raise (make-compound-condition
+                                       (condition
+                                        (&message
+                                         (message
+                                          (format #f "no '~A' or '~A' field in your '~A' record"
+                                                  'db-secret-file 'db-password
+                                                  'zabbix-front-end-configuration))))
+                                       (condition
+                                        (&error-location
+                                         (location %location)))))
+                               (string-trim-both
+                                (with-input-from-file db-secret-file
+                                  read-string)))
+                           (begin
+                             (display-hint (format #f (G_ "~a:~a:~a: ~a:
+Consider using @code{db-secret-file} instead of @code{db-password} for better
+security.") file line column 'zabbix-front-end-configuration))
+                             db-password))) "';
 
 // Schema name. Used for IBM DB2 and PostgreSQL.
 $DB['SCHEMA'] = '';
@@ -548,7 +557,7 @@ $ZBX_SERVER_PORT = '" (number->string zabbix-port) "';
 $ZBX_SERVER_NAME = '';
 
 $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
-"))))
+")))
 
 (define %maintenance.inc.php
   ;; Empty php file to allow us move zabbix-frontend configs to ‘/etc/zabbix’
diff --git a/gnu/system/examples/vm-image.tmpl b/gnu/system/examples/vm-image.tmpl
index 4d292c1bc6..6dc67b0901 100644
--- a/gnu/system/examples/vm-image.tmpl
+++ b/gnu/system/examples/vm-image.tmpl
@@ -8,7 +8,7 @@
 (define vm-image-motd (plain-file "motd" "
 This is the GNU system.  Welcome!
 
-This instance of GuixSD is a bare-bones template for virtualized environments.
+This instance of Guix System is a bare-bones template for virtualized environments.
 
 You will probably want to do these things first if you booted in a virtual
 private server (VPS):
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index 0ba2066d11..bad318d06b 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -353,7 +353,7 @@ You have been warned.  Thanks for being so brave.\x1b[0m
      ;; the appropriate one.
      (cons* (file-system
               (mount-point "/")
-              (device (file-system-label "GuixSD_image"))
+              (device (file-system-label "Guix_image"))
               (type "ext4"))
 
             ;; Make /tmp a tmpfs instead of keeping the overlayfs.  This
diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm
index bceea41332..3fe3482d7f 100644
--- a/gnu/system/linux-container.scm
+++ b/gnu/system/linux-container.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
-;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,6 +28,7 @@
   #:use-module (guix modules)
   #:use-module (gnu build linux-container)
   #:use-module (gnu services)
+  #:use-module (gnu services base)
   #:use-module (gnu system)
   #:use-module (gnu system file-systems)
   #:export (system-container
@@ -54,8 +55,19 @@ containerized OS."
     (file-system (inherit (file-system-mapping->bind-mount fs))
       (needed-for-boot? #t)))
 
+  (define useless-services
+    ;; Services that make no sense in a container.  Those that attempt to
+    ;; access /dev/tty[0-9] in particular cannot work in a container.
+    (list console-font-service-type
+          mingetty-service-type
+          agetty-service-type))
+
   (operating-system (inherit os)
     (swap-devices '()) ; disable swap
+    (services (remove (lambda (service)
+                        (memq (service-kind service)
+                              useless-services))
+                      (operating-system-user-services os)))
     (file-systems (append (map mapping->fs (cons %store-mapping mappings))
                           %container-file-systems
                           user-file-systems))))
diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm
index a874666463..7c58f876a3 100644
--- a/gnu/system/mapped-devices.scm
+++ b/gnu/system/mapped-devices.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2017, 2018 Mark H Weaver <mhw@netris.org>
 ;;;
@@ -32,8 +32,7 @@
   #:use-module (gnu system uuid)
   #:autoload   (gnu build file-systems) (find-partition-by-luks-uuid)
   #:autoload   (gnu build linux-modules)
-                 (device-module-aliases matching-modules known-module-aliases
-                  normalize-module-name file-name->module-name)
+                 (missing-modules)
   #:autoload   (gnu packages cryptsetup) (cryptsetup-static)
   #:autoload   (gnu packages linux) (mdadm-static)
   #:use-module (srfi srfi-1)
@@ -118,37 +117,27 @@
 (define (check-device-initrd-modules device linux-modules location)
   "Raise an error if DEVICE needs modules beyond LINUX-MODULES to operate.
 DEVICE must be a \"/dev\" file name."
-  (define aliases
-    ;; Attempt to load 'modules.alias' from the current kernel, assuming we're
-    ;; on GuixSD, and assuming that corresponds to the kernel we'll be
-    ;; installing.  Skip the whole thing if that file cannot be read.
+  (define missing
+    ;; Attempt to determine missing modules.
     (catch 'system-error
       (lambda ()
-        (known-module-aliases))
-      (const #f)))
-
-  (when aliases
-    (let* ((modules  (delete-duplicates
-                      (append-map (cut matching-modules <> aliases)
-                                  (device-module-aliases device))))
-
-           ;; Module names (not file names) are supposed to use underscores
-           ;; instead of hyphens.  MODULES is a list of module names, whereas
-           ;; LINUX-MODULES is file names without '.ko', so normalize them.
-           (provided (map file-name->module-name linux-modules))
-           (missing  (remove (cut member <> provided) modules)))
-      (unless (null? missing)
-        ;; Note: What we suggest here is a list of module names (e.g.,
-        ;; "usb_storage"), not file names (e.g., "usb-storage.ko").  This is
-        ;; OK because we have machinery that accepts both the hyphen and the
-        ;; underscore version.
-        (raise (condition
-                (&message
-                 (message (format #f (G_ "you may need these modules \
+        (missing-modules device linux-modules))
+
+      ;; If we can't do that (e.g., EPERM), skip the whole thing.
+      (const '())))
+
+  (unless (null? missing)
+    ;; Note: What we suggest here is a list of module names (e.g.,
+    ;; "usb_storage"), not file names (e.g., "usb-storage.ko").  This is
+    ;; OK because we have machinery that accepts both the hyphen and the
+    ;; underscore version.
+    (raise (condition
+            (&message
+             (message (format #f (G_ "you may need these modules \
 in the initrd for ~a:~{ ~a~}")
-                                  device missing)))
-                (&fix-hint
-                 (hint (format #f (G_ "Try adding them to the
+                              device missing)))
+            (&fix-hint
+             (hint (format #f (G_ "Try adding them to the
 @code{initrd-modules} field of your @code{operating-system} declaration, along
 these lines:
 
@@ -161,9 +150,9 @@ these lines:
 
 If you think this diagnostic is inaccurate, use the @option{--skip-checks}
 option of @command{guix system}.\n")
-                               missing)))
-                (&error-location
-                 (location (source-properties->location location)))))))))
+                           missing)))
+            (&error-location
+             (location (source-properties->location location)))))))
 
 
 ;;;
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index e09c687a04..e561285964 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -463,8 +463,8 @@ the image."
   "Build a docker image.  OS is the desired <operating-system>.  NAME is the
 base name to use for the output file.  When REGISTER-CLOSURES? is not #f,
 register the closure of OS with Guix in the resulting Docker image.  This only
-makes sense when you want to build a GuixSD Docker image that has Guix
-installed inside of it.  If you don't need Guix (e.g., your GuixSD Docker
+makes sense when you want to build a Guix System Docker image that has Guix
+installed inside of it.  If you don't need Guix (e.g., your Docker
 image just contains a web server that is started by the Shepherd), then you
 should set REGISTER-CLOSURES? to #f."
   (define schema
@@ -610,7 +610,7 @@ to USB sticks meant to be read-only."
 
   (define root-label
     ;; Volume name of the root file system.
-    (normalize-label "GuixSD_image"))
+    (normalize-label "Guix_image"))
 
   (define root-uuid
     ;; UUID of the root file system, computed in a deterministic fashion.
diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm
index ec29064118..277908cc49 100644
--- a/gnu/tests/install.scm
+++ b/gnu/tests/install.scm
@@ -47,7 +47,7 @@
 
 ;;; Commentary:
 ;;;
-;;; Test the installation of GuixSD using the documented approach at the
+;;; Test the installation of Guix using the documented approach at the
 ;;; command line.
 ;;;
 ;;; Code:
@@ -204,7 +204,7 @@ reboot\n")
                                                 (guix combinators))))
                       (installation-disk-image-file-system-type "ext4")
                       (target-size (* 2200 MiB)))
-  "Run SCRIPT (a shell script following the GuixSD installation procedure) in
+  "Run SCRIPT (a shell script following the system installation procedure) in
 OS to install TARGET-OS.  Return a VM image of TARGET-SIZE bytes containing
 the installed system.  The packages specified in PACKAGES will be appended to
 packages defined in installation-os."