summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--doc/guix.texi135
-rw-r--r--gnu/installer/connman.scm2
-rw-r--r--gnu/installer/newt/keymap.scm2
-rw-r--r--gnu/installer/newt/page.scm2
-rw-r--r--gnu/installer/newt/timezone.scm5
-rw-r--r--gnu/installer/newt/utils.scm2
-rw-r--r--gnu/installer/newt/wifi.scm8
-rw-r--r--gnu/installer/parted.scm6
-rw-r--r--gnu/installer/timezone.scm10
-rw-r--r--gnu/local.mk16
-rw-r--r--gnu/packages.scm53
-rw-r--r--gnu/packages/admin.scm54
-rw-r--r--gnu/packages/algebra.scm146
-rw-r--r--gnu/packages/assembly.scm12
-rw-r--r--gnu/packages/audio.scm36
-rw-r--r--gnu/packages/aux-files/chromium/master-preferences.json26
-rw-r--r--gnu/packages/backup.scm16
-rw-r--r--gnu/packages/bioinformatics.scm156
-rw-r--r--gnu/packages/bittorrent.scm22
-rw-r--r--gnu/packages/busybox.scm6
-rw-r--r--gnu/packages/check.scm32
-rw-r--r--gnu/packages/chez.scm155
-rw-r--r--gnu/packages/chromium.scm705
-rw-r--r--gnu/packages/compression.scm33
-rw-r--r--gnu/packages/conky.scm18
-rw-r--r--gnu/packages/cran.scm150
-rw-r--r--gnu/packages/crypto.scm6
-rw-r--r--gnu/packages/curl.scm10
-rw-r--r--gnu/packages/databases.scm24
-rw-r--r--gnu/packages/debug.scm36
-rw-r--r--gnu/packages/dictionaries.scm2
-rw-r--r--gnu/packages/disk.scm6
-rw-r--r--gnu/packages/dlang.scm4
-rw-r--r--gnu/packages/dns.scm7
-rw-r--r--gnu/packages/docker.scm6
-rw-r--r--gnu/packages/emacs-xyz.scm179
-rw-r--r--gnu/packages/engineering.scm9
-rw-r--r--gnu/packages/flashing-tools.scm20
-rw-r--r--gnu/packages/ftp.scm8
-rw-r--r--gnu/packages/game-development.scm12
-rw-r--r--gnu/packages/games.scm70
-rw-r--r--gnu/packages/gd.scm11
-rw-r--r--gnu/packages/genimage.scm194
-rw-r--r--gnu/packages/geo.scm27
-rw-r--r--gnu/packages/gimp.scm16
-rw-r--r--gnu/packages/gl.scm2
-rw-r--r--gnu/packages/gnome.scm210
-rw-r--r--gnu/packages/gnupg.scm11
-rw-r--r--gnu/packages/gnuzilla.scm4
-rw-r--r--gnu/packages/gtk.scm29
-rw-r--r--gnu/packages/guile-xyz.scm95
-rw-r--r--gnu/packages/hardware.scm12
-rw-r--r--gnu/packages/ibus.scm145
-rw-r--r--gnu/packages/image-processing.scm8
-rw-r--r--gnu/packages/image-viewers.scm4
-rw-r--r--gnu/packages/image.scm36
-rw-r--r--gnu/packages/irc.scm8
-rw-r--r--gnu/packages/java.scm41
-rw-r--r--gnu/packages/kde-frameworks.scm304
-rw-r--r--gnu/packages/kde-plasma.scm18
-rw-r--r--gnu/packages/kodi.scm6
-rw-r--r--gnu/packages/libffi.scm6
-rw-r--r--gnu/packages/libreoffice.scm36
-rw-r--r--gnu/packages/linux.scm32
-rw-r--r--gnu/packages/lisp.scm15
-rw-r--r--gnu/packages/llvm.scm88
-rw-r--r--gnu/packages/machine-learning.scm3
-rw-r--r--gnu/packages/magic-wormhole.scm160
-rw-r--r--gnu/packages/mail.scm8
-rw-r--r--gnu/packages/maths.scm11
-rw-r--r--gnu/packages/mpi.scm27
-rw-r--r--gnu/packages/multiprecision.scm15
-rw-r--r--gnu/packages/music.scm18
-rw-r--r--gnu/packages/musl.scm12
-rw-r--r--gnu/packages/ncdu.scm6
-rw-r--r--gnu/packages/ncurses.scm8
-rw-r--r--gnu/packages/networking.scm11
-rw-r--r--gnu/packages/ocaml.scm124
-rw-r--r--gnu/packages/package-management.scm73
-rw-r--r--gnu/packages/patches/allegro4-mesa-18.2.5-and-later.patch41
-rw-r--r--gnu/packages/patches/clang-7.0-libc-search-path.patch82
-rw-r--r--gnu/packages/patches/dealii-mpi-deprecations.patch28
-rw-r--r--gnu/packages/patches/gd-CVE-2019-6977.patch36
-rw-r--r--gnu/packages/patches/gd-CVE-2019-6978.patch301
-rw-r--r--gnu/packages/patches/pius.patch38
-rw-r--r--gnu/packages/patches/qtbase-old-kernel.patch25
-rw-r--r--gnu/packages/patches/ruby-safe-yaml-add-require-time.patch19
-rw-r--r--gnu/packages/patches/soundconverter-remove-gconf-dependency.patch104
-rw-r--r--gnu/packages/patches/tomsfastmath-constness.patch76
-rw-r--r--gnu/packages/patches/xf86-video-i128-remove-mibstore.patch23
-rw-r--r--gnu/packages/patches/xmodmap-asprintf.patch14
-rw-r--r--gnu/packages/pdf.scm11
-rw-r--r--gnu/packages/perl.scm17
-rw-r--r--gnu/packages/python-crypto.scm82
-rw-r--r--gnu/packages/python-web.scm112
-rw-r--r--gnu/packages/python-xyz.scm96
-rw-r--r--gnu/packages/python.scm62
-rw-r--r--gnu/packages/qt.scm33
-rw-r--r--gnu/packages/rails.scm372
-rw-r--r--gnu/packages/rdesktop.scm26
-rw-r--r--gnu/packages/rrdtool.scm6
-rw-r--r--gnu/packages/ruby.scm1777
-rw-r--r--gnu/packages/rust.scm12
-rw-r--r--gnu/packages/sagemath.scm59
-rw-r--r--gnu/packages/sdl.scm48
-rw-r--r--gnu/packages/security-token.scm8
-rw-r--r--gnu/packages/simh.scm19
-rw-r--r--gnu/packages/statistics.scm23
-rw-r--r--gnu/packages/sync.scm43
-rw-r--r--gnu/packages/terminals.scm55
-rw-r--r--gnu/packages/textutils.scm4
-rw-r--r--gnu/packages/tls.scm18
-rw-r--r--gnu/packages/tmux.scm23
-rw-r--r--gnu/packages/tor.scm7
-rw-r--r--gnu/packages/version-control.scm19
-rw-r--r--gnu/packages/video.scm50
-rw-r--r--gnu/packages/vim.scm6
-rw-r--r--gnu/packages/virtualization.scm10
-rw-r--r--gnu/packages/web-browsers.scm4
-rw-r--r--gnu/packages/web.scm18
-rw-r--r--gnu/packages/wine.scm6
-rw-r--r--gnu/packages/wm.scm29
-rw-r--r--gnu/packages/xdisorg.scm49
-rw-r--r--gnu/packages/xml.scm36
-rw-r--r--gnu/packages/xorg.scm89
-rw-r--r--gnu/services/desktop.scm92
-rw-r--r--gnu/services/xorg.scm121
-rw-r--r--guix/gnu-maintenance.scm3
-rw-r--r--guix/scripts/environment.scm53
-rw-r--r--guix/self.scm20
-rw-r--r--po/guix/da.po18
-rw-r--r--tests/guix-environment.sh15
-rw-r--r--tests/packages.scm3
133 files changed, 6313 insertions, 2069 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 1ac077d98a..9fb5cff06d 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -31,9 +31,10 @@ Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@*
 Copyright @copyright{} 2016, 2017, 2018 Efraim Flashner@*
 Copyright @copyright{} 2016 John Darrington@*
 Copyright @copyright{} 2016, 2017 Nils Gillmann@*
-Copyright @copyright{} 2016, 2017, 2018 Jan Nieuwenhuizen@*
+Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@*
 Copyright @copyright{} 2016 Julien Lepiller@*
 Copyright @copyright{} 2016 Alex ter Weele@*
+Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@*
 Copyright @copyright{} 2017, 2018 Clément Lassieur@*
 Copyright @copyright{} 2017, 2018 Mathieu Othacehe@*
 Copyright @copyright{} 2017 Federico Beffa@*
@@ -2268,7 +2269,7 @@ you are installing GRUB in the legacy way, or @code{grub-efi-bootloader}
 for newer UEFI systems.  For legacy systems, the @code{target} field
 names a device, like @code{/dev/sda}; for UEFI systems it names a path
 to a mounted EFI partition, like @code{/boot/efi}; do make sure the path is
-currently mounted and a @code{file-sytem} entry is specified in your
+currently mounted and a @code{file-system} entry is specified in your
 configuration.
 
 @item
@@ -4454,9 +4455,25 @@ default behavior.  Packages appearing after are interpreted as packages
 that will be added to the environment directly.
 
 @item --pure
-Unset existing environment variables when building the new environment.
-This has the effect of creating an environment in which search paths
-only contain package inputs.
+Unset existing environment variables when building the new environment, except
+those specified with @option{--inherit} (see below.)  This has the effect of
+creating an environment in which search paths only contain package inputs.
+
+@item --inherit=@var{regexp}
+When used alongside @option{--pure}, inherit all the environment variables
+matching @var{regexp}---in other words, put them on a ``white list'' of
+environment variables that must be preserved.  This option can be repeated
+several times.
+
+@example
+guix environment --pure --inherit=^SLURM --ad-hoc openmpi @dots{} \
+  -- mpirun @dots{}
+@end example
+
+This example runs @command{mpirun} in a context where the only environment
+variables defined are @code{PATH}, environment variables whose name starts
+with @code{SLURM}, as well as the usual ``precious'' variables (@code{HOME},
+@code{USER}, etc.)
 
 @item --search-paths
 Display the environment variable definitions that make up the
@@ -13123,6 +13140,7 @@ type @code{<sddm-configuration>}.
   [#:fonts %default-xorg-fonts] @
   [#:configuration-file (xorg-configuration-file @dots{})] @
   [#:xorg-server @var{xorg-server}]
+  [#:xserver-arguments '("-nolisten" "tcp")]
 Return a @code{startx} script in which @var{modules}, a list of X module
 packages, and @var{fonts}, a list of X font directories, are available.  See
 @code{xorg-wrapper} for more details on the arguments.  The result should be
@@ -13131,6 +13149,22 @@ used in place of @code{startx}.
 Usually the X server is started by a login manager.
 @end deffn
 
+@cindex @code{-listen tcp}, for X11.
+This procedure is useful to override command line options for the X server,
+such as having it listen to over TCP:
+
+@example
+(operating-system
+  ...
+  (services
+    (modify-services %desktop-services
+      (slim-service-type config =>
+        (slim-configuration
+          (inherit config)
+          (startx (xorg-start-command
+                   #:xserver-arguments '("-listen" "tcp"))))))))
+@end example
+
 @deffn {Scheme Procedure} xorg-configuration-file @
   [#:modules %default-xorg-modules] @
   [#:fonts %default-xorg-fonts] @
@@ -14276,24 +14310,79 @@ capabilities to ordinary users.  For example, an ordinary user can be granted
 the capability to suspend the system if the user is logged in locally.
 @end deffn
 
-@deffn {Scheme Procedure} upower-service [#:upower @var{upower}] @
-                         [#:watts-up-pro? #f] @
-                         [#:poll-batteries? #t] @
-                         [#:ignore-lid? #f] @
-                         [#:use-percentage-for-policy? #f] @
-                         [#:percentage-low 10] @
-                         [#:percentage-critical 3] @
-                         [#:percentage-action 2] @
-                         [#:time-low 1200] @
-                         [#:time-critical 300] @
-                         [#:time-action 120] @
-                         [#:critical-power-action 'hybrid-sleep]
-Return a service that runs @uref{http://upower.freedesktop.org/,
-@command{upowerd}}, a system-wide monitor for power consumption and battery
-levels, with the given configuration settings.  It implements the
-@code{org.freedesktop.UPower} D-Bus interface, and is notably used by
-GNOME.
-@end deffn
+@defvr {Scheme Variable} upower-service-type
+Service that runs @uref{http://upower.freedesktop.org/, @command{upowerd}}, a
+system-wide monitor for power consumption and battery levels, with the given
+configuration settings.
+
+It implements the @code{org.freedesktop.UPower} D-Bus interface, and is
+notably used by GNOME.
+@end defvr
+
+@deftp {Data Type} upower-configuration
+Data type representation the configuration for UPower.
+
+@table @asis
+
+@item @code{upower} (default: @var{upower})
+Package to use for @code{upower}.
+
+@item @code{watts-up-pro?} (default: @code{#f})
+Enable the Watts Up Pro device.
+
+@item @code{poll-batteries?} (default: @code{#t})
+Enable polling the kernel for battery level changes.
+
+@item @code{ignore-lid?} (default: @code{#f})
+Ignore the lid state, this can be useful if it's incorrect on a device.
+
+@item @code{use-percentage-for-policy?} (default: @code{#f})
+Whether battery percentage based policy should be used.  The default is to use
+the time left, change to @code{#t} to use the percentage.
+
+@item @code{percentage-low} (default: @code{10})
+When @code{use-percentage-for-policy?} is @code{#t}, this sets the percentage
+at which the battery is considered low.
+
+@item @code{percentage-critical} (default: @code{3})
+When @code{use-percentage-for-policy?} is @code{#t}, this sets the percentage
+at which the battery is considered critical.
+
+@item @code{percentage-action} (default: @code{2})
+When @code{use-percentage-for-policy?} is @code{#t}, this sets the percentage
+at which action will be taken.
+
+@item @code{time-low} (default: @code{1200})
+When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining in
+seconds at which the battery is considered low.
+
+@item @code{time-critical} (default: @code{300})
+When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining in
+seconds at which the battery is considered critical.
+
+@item @code{time-action} (default: @code{120})
+When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining in
+seconds at which action will be taken.
+
+@item @code{critical-power-action} (default: @code{'hybrid-sleep})
+The action taken when @code{percentage-action} or @code{time-action} is
+reached (depending on the configuration of @code{use-percentage-for-policy?}).
+
+Possible values are:
+
+@itemize @bullet
+@item
+@code{'power-off}
+
+@item
+@code{'hibernate}
+
+@item
+@code{'hybrid-sleep}.
+@end itemize
+
+@end table
+@end deftp
 
 @deffn {Scheme Procedure} udisks-service [#:udisks @var{udisks}]
 Return a service for @uref{http://udisks.freedesktop.org/docs/latest/,
diff --git a/gnu/installer/connman.scm b/gnu/installer/connman.scm
index 740df7424a..ef8cca3952 100644
--- a/gnu/installer/connman.scm
+++ b/gnu/installer/connman.scm
@@ -299,7 +299,7 @@ to merge stdout and stderr using bash redirection. Then error messages are
 extracted from connmanctl output using a regexp. This makes the whole
 procedure even more unreliable.
 
-Raise &connman-connection-error if an error occured during connection. Raise
+Raise &connman-connection-error if an error occurred during connection. Raise
 &connman-password-error if the given password is incorrect."
 
   (define connman-error-regexp (make-regexp "Error[ ]*([^\n]+)\n"))
diff --git a/gnu/installer/newt/keymap.scm b/gnu/installer/newt/keymap.scm
index 6211af2bc5..3e765bfdd4 100644
--- a/gnu/installer/newt/keymap.scm
+++ b/gnu/installer/newt/keymap.scm
@@ -71,7 +71,7 @@
     (cut append <> <>)))
 
 (define (sort-variants variants)
-  "Sort VARIANTS list by putting the internation variant ahead and return it."
+  "Sort VARIANTS list by putting the international variant ahead and return it."
   (call-with-values
       (lambda ()
         (partition
diff --git a/gnu/installer/newt/page.scm b/gnu/installer/newt/page.scm
index edf0b8c999..23fbfcce76 100644
--- a/gnu/installer/newt/page.scm
+++ b/gnu/installer/newt/page.scm
@@ -188,7 +188,7 @@ If SORT-LISTBOX-ITEMS? is set to #t, the listbox items are sorted using
 'string<=' procedure (after being converted to text).
 
 If ALLOW-DELETE? is #t, the form will return if the <DELETE> key is pressed,
-otherwise nothing will happend.
+otherwise nothing will happen.
 
 Each time the listbox current item changes, call SKIP-ITEM-PROCEDURE? with the
 current listbox item as argument. If it returns #t, skip the element and jump
diff --git a/gnu/installer/newt/timezone.scm b/gnu/installer/newt/timezone.scm
index 6c96ee55b1..63b44af729 100644
--- a/gnu/installer/newt/timezone.scm
+++ b/gnu/installer/newt/timezone.scm
@@ -30,9 +30,6 @@
   #:use-module (newt)
   #:export (run-timezone-page))
 
-;; Heigth of the listbox displaying timezones.
-(define timezone-listbox-heigth (make-parameter 20))
-
 ;; Information textbox width.
 (define info-textbox-width (make-parameter 40))
 
@@ -53,7 +50,7 @@ returned."
 
   (define (run-page timezone-tree)
     (define (loop path)
-      (let ((timezones (locate-childrens timezone-tree path)))
+      (let ((timezones (locate-children timezone-tree path)))
         (run-listbox-selection-page
          #:title (G_ "Timezone")
          #:info-text (G_ "Please select a timezone.")
diff --git a/gnu/installer/newt/utils.scm b/gnu/installer/newt/utils.scm
index 1c2ce4e628..dfb113e0c6 100644
--- a/gnu/installer/newt/utils.scm
+++ b/gnu/installer/newt/utils.scm
@@ -30,7 +30,7 @@
 (define screen-rows    (make-parameter 0))
 
 (define (destroy-form-and-pop form)
-  "Destory the given FORM and pop the current window."
+  "Destroy the given FORM and pop the current window."
   (destroy-form form)
   (pop-window))
 
diff --git a/gnu/installer/newt/wifi.scm b/gnu/installer/newt/wifi.scm
index 59e40e327e..4cf5c128e7 100644
--- a/gnu/installer/newt/wifi.scm
+++ b/gnu/installer/newt/wifi.scm
@@ -100,7 +100,7 @@ nmc_wifi_strength_bars."
   "Run a page to inform user that a connection error happened."
   (run-error-page
    (format #f
-           (G_ "An error occured while trying to connect to ~a, please retry.")
+           (G_ "An error occurred while trying to connect to ~a, please retry.")
            service-name)
    (G_ "Connection error")))
 
@@ -160,8 +160,8 @@ of <service-item> records present in LISTBOX."
 ;; Maximum length of a wifi service name.
 (define service-name-max-length (make-parameter 20))
 
-;; Heigth of the listbox displaying wifi services.
-(define wifi-listbox-heigth (make-parameter 20))
+;; Height of the listbox displaying wifi services.
+(define wifi-listbox-height (make-parameter 20))
 
 ;; Information textbox width.
 (define info-textbox-width (make-parameter 40))
@@ -188,7 +188,7 @@ network when the corresponding listbox entry is selected. A button allow to
 force a wifi scan."
   (let* ((listbox (make-listbox
                    -1 -1
-                   (wifi-listbox-heigth)
+                   (wifi-listbox-height)
                    (logior FLAG-SCROLL FLAG-BORDER FLAG-RETURNEXIT)))
          (form (make-form))
          (buttons-grid (make-grid 1 1))
diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm
index 187311e633..642b8c6d8a 100644
--- a/gnu/installer/parted.scm
+++ b/gnu/installer/parted.scm
@@ -677,7 +677,7 @@ otherwise."
 (define* (mkpart disk user-partition
                  #:key (previous-partition #f))
   "Create the given USER-PARTITION on DISK. The PREVIOUS-PARTITION argument as
-to be set to the partition preceeding USER-PARTITION if any."
+to be set to the partition preceding USER-PARTITION if any."
 
   (define (parse-start-end start end)
     "Parse start and end strings as positions on DEVICE expressed with a unit,
@@ -734,8 +734,8 @@ cause them to cross."
                                     (< start-distance 3))
                                (+ start-sector start-offset)
                                start-sector)))
-       ;; This is a hackery but parted almost always fails to create optimally
-       ;; aligned partitions (unless specifiying percentages) because, the
+       ;; This is a hack.  Parted almost always fails to create optimally
+       ;; aligned partitions (unless specifying percentages) because the
        ;; default range of 1MB centered on the start sector is not enough when
        ;; the optimal alignment is 2048 sectors of 512KB.
        (extend-ranges! start-range end-range #:offset start-offset)
diff --git a/gnu/installer/timezone.scm b/gnu/installer/timezone.scm
index 32bc2ed6bb..c336b5f3ba 100644
--- a/gnu/installer/timezone.scm
+++ b/gnu/installer/timezone.scm
@@ -25,7 +25,7 @@
   #:use-module (srfi srfi-35)
   #:use-module (ice-9 match)
   #:use-module (ice-9 receive)
-  #:export (locate-childrens
+  #:export (locate-children
             timezone->posix-tz
             timezone-has-child?
             zonetab->timezone-tree
@@ -94,15 +94,15 @@ timezones."
                     (loop (remove-first same-region))
                     (loop other-region))))))))
 
-(define (locate-childrens tree path)
-  "Return the childrens of the timezone indicated by PATH in the given
+(define (locate-children tree path)
+  "Return the children of the timezone indicated by PATH in the given
 TREE. Raise a condition if the PATH could not be found."
   (let ((extract-proc (cut map car <>)))
     (match path
       (() (sort (extract-proc tree) string<?))
       ((region . rest)
        (or (and=> (assoc-ref tree region)
-                  (cut locate-childrens <> rest))
+                  (cut locate-children <> rest))
            (raise
             (condition
              (&message
@@ -111,7 +111,7 @@ TREE. Raise a condition if the PATH could not be found."
 
 (define (timezone-has-child? tree timezone)
   "Return #t if the given TIMEZONE any child in TREE and #f otherwise."
-  (not (null? (locate-childrens tree timezone))))
+  (not (null? (locate-children tree timezone))))
 
 (define* (zonetab->timezone-tree zonetab)
   "Return the timezone tree corresponding to the given ZONETAB file."
diff --git a/gnu/local.mk b/gnu/local.mk
index f12944c287..131bbef87d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -100,6 +100,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/check.scm			\
   %D%/packages/chemistry.scm			\
   %D%/packages/chez.scm				\
+  %D%/packages/chromium.scm			\
   %D%/packages/ci.scm				\
   %D%/packages/cinnamon.scm			\
   %D%/packages/clojure.scm			\
@@ -191,6 +192,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/gcc.scm				\
   %D%/packages/gd.scm				\
   %D%/packages/gdb.scm				\
+  %D%/packages/genimage.scm			\
   %D%/packages/geo.scm				\
   %D%/packages/gettext.scm			\
   %D%/packages/ghostscript.scm			\
@@ -295,6 +297,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/m4.scm				\
   %D%/packages/machine-learning.scm		\
   %D%/packages/man.scm				\
+  %D%/packages/magic-wormhole.scm		\
   %D%/packages/mail.scm				\
   %D%/packages/make-bootstrap.scm		\
   %D%/packages/markup.scm			\
@@ -636,7 +639,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/aegisub-boost68.patch                    \
   %D%/packages/patches/agg-am_c_prototype.patch			\
   %D%/packages/patches/allegro-mesa-18.2.5-and-later.patch	\
-  %D%/packages/patches/allegro4-mesa-18.2.5-and-later.patch	\
   %D%/packages/patches/amule-crypto-6.patch			\
   %D%/packages/patches/antiword-CVE-2014-8123.patch			\
   %D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch	\
@@ -684,6 +686,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/clang-3.5-libsanitizer-ustat-fix.patch	\
   %D%/packages/patches/clang-3.8-libc-search-path.patch		\
   %D%/packages/patches/clang-6.0-libc-search-path.patch		\
+  %D%/packages/patches/clang-7.0-libc-search-path.patch		\
   %D%/packages/patches/clang-runtime-asan-build-fixes.patch	\
   %D%/packages/patches/clang-runtime-esan-build-fixes.patch	\
   %D%/packages/patches/classpath-aarch64-support.patch		\
@@ -707,6 +710,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/cursynth-wave-rand.patch			\
   %D%/packages/patches/cvs-2017-12836.patch			\
   %D%/packages/patches/dbus-helper-search-path.patch		\
+  %D%/packages/patches/dealii-mpi-deprecations.patch		\
   %D%/packages/patches/deja-dup-use-ref-keyword-for-iter.patch	\
   %D%/packages/patches/dfu-programmer-fix-libusb.patch		\
   %D%/packages/patches/diffutils-gets-undeclared.patch		\
@@ -791,6 +795,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/gcr-fix-collection-tests-to-work-with-gpg-21.patch	\
   %D%/packages/patches/gd-CVE-2018-5711.patch			\
   %D%/packages/patches/gd-CVE-2018-1000222.patch		\
+  %D%/packages/patches/gd-CVE-2019-6977.patch			\
+  %D%/packages/patches/gd-CVE-2019-6978.patch			\
   %D%/packages/patches/gd-fix-tests-on-i686.patch		\
   %D%/packages/patches/gd-freetype-test-failure.patch		\
   %D%/packages/patches/gdm-CVE-2018-14424.patch			\
@@ -1124,7 +1130,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/pinentry-efl.patch			\
   %D%/packages/patches/pingus-boost-headers.patch		\
   %D%/packages/patches/pingus-sdl-libs-config.patch		\
-  %D%/packages/patches/pius.patch       			\
   %D%/packages/patches/pixman-CVE-2016-5296.patch		\
   %D%/packages/patches/plink-1.07-unclobber-i.patch		\
   %D%/packages/patches/plink-endian-detection.patch		\
@@ -1181,6 +1186,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/qemu-CVE-2018-16872.patch 		\
   %D%/packages/patches/qemu-CVE-2019-6778.patch 		\
   %D%/packages/patches/qt4-ldflags.patch			\
+  %D%/packages/patches/qtbase-old-kernel.patch			\
   %D%/packages/patches/qtbase-use-TZDIR.patch			\
   %D%/packages/patches/qtscript-disable-tests.patch		\
   %D%/packages/patches/quagga-reproducible-build.patch          \
@@ -1208,6 +1214,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/ruby-concurrent-ignore-broken-test.patch	\
   %D%/packages/patches/ruby-concurrent-test-arm.patch		\
   %D%/packages/patches/ruby-rack-ignore-failing-test.patch      \
+  %D%/packages/patches/ruby-safe-yaml-add-require-time.patch	\
   %D%/packages/patches/ruby-tzinfo-data-ignore-broken-test.patch\
   %D%/packages/patches/runc-CVE-2019-5736.patch			\
   %D%/packages/patches/rust-1.19-mrustc.patch			\
@@ -1272,7 +1279,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/tk-find-library.patch			\
   %D%/packages/patches/ttf2eot-cstddef.patch			\
   %D%/packages/patches/ttfautohint-source-date-epoch.patch	\
-  %D%/packages/patches/tomsfastmath-constness.patch		\
   %D%/packages/patches/totem-meson-easy-codec.patch		\
   %D%/packages/patches/tuxpaint-stamps-path.patch		\
   %D%/packages/patches/twinkle-include-qregexpvalidator.patch	\
@@ -1331,7 +1337,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/x265-arm-flags.patch			\
   %D%/packages/patches/xf86-video-ark-remove-mibstore.patch	\
   %D%/packages/patches/xf86-video-geode-glibc-2.20.patch	\
-  %D%/packages/patches/xf86-video-i128-remove-mibstore.patch	\
   %D%/packages/patches/xf86-video-mach64-glibc-2.20.patch	\
   %D%/packages/patches/xf86-video-savage-xorg-compat.patch 	\
   %D%/packages/patches/xf86-video-siliconmotion-fix-ftbfs.patch \
@@ -1341,8 +1346,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/xfce4-session-fix-xflock4.patch		\
   %D%/packages/patches/xfce4-settings-defaults.patch		\
   %D%/packages/patches/xinetd-fix-fd-leak.patch			\
-  %D%/packages/patches/xinetd-CVE-2013-4342.patch		\
-  %D%/packages/patches/xmodmap-asprintf.patch
+  %D%/packages/patches/xinetd-CVE-2013-4342.patch
 
 MISC_DISTRO_FILES =				\
   %D%/packages/ld-wrapper.in
diff --git a/gnu/packages.scm b/gnu/packages.scm
index a1814205f9..7b17e70c53 100644
--- a/gnu/packages.scm
+++ b/gnu/packages.scm
@@ -371,34 +371,41 @@ reducing the memory footprint."
   (define cache-file
     (string-append directory %package-cache-file))
 
-  (define (expand-cache module symbol variable result)
+  (define (expand-cache module symbol variable result+seen)
     (match (false-if-exception (variable-ref variable))
       ((? package? package)
-       (if (hidden-package? package)
-           result
-           (cons `#(,(package-name package)
-                    ,(package-version package)
-                    ,(module-name module)
-                    ,symbol
-                    ,(package-outputs package)
-                    ,(->bool (member (%current-system)
-                                     (package-supported-systems package)))
-                    ,(->bool (package-superseded package))
-                    ,@(let ((loc (package-location package)))
-                        (if loc
-                            `(,(location-file loc)
-                              ,(location-line loc)
-                              ,(location-column loc))
-                            '(#f #f #f))))
-                 result)))
+       (match result+seen
+         ((result . seen)
+          (if (or (vhash-assq package seen)
+                  (hidden-package? package))
+              (cons result seen)
+              (cons (cons `#(,(package-name package)
+                             ,(package-version package)
+                             ,(module-name module)
+                             ,symbol
+                             ,(package-outputs package)
+                             ,(->bool
+                               (member (%current-system)
+                                       (package-supported-systems package)))
+                             ,(->bool (package-superseded package))
+                             ,@(let ((loc (package-location package)))
+                                 (if loc
+                                     `(,(location-file loc)
+                                       ,(location-line loc)
+                                       ,(location-column loc))
+                                     '(#f #f #f))))
+                          result)
+                    (vhash-consq package #t seen))))))
       (_
-       result)))
+       result+seen)))
 
   (define exp
-    (fold-module-public-variables* expand-cache '()
-                                   (all-modules (%package-module-path)
-                                                #:warn
-                                                warn-about-load-error)))
+    (first
+     (fold-module-public-variables* expand-cache
+                                    (cons '() vlist-null)
+                                    (all-modules (%package-module-path)
+                                                 #:warn
+                                                 warn-about-load-error))))
 
   (mkdir-p (dirname cache-file))
   (call-with-output-file cache-file
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index f4c34e10fe..24486cec18 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
 ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Peter Feigl <peter.feigl@nexoid.at>
 ;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
 ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
@@ -285,26 +285,26 @@ graphs and can export its output to different formats.")
 
 (define-public htop
   (package
-   (name "htop")
-   (version "2.2.0")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "http://hisham.hm/htop/releases/"
-                  version "/htop-" version ".tar.gz"))
-            (sha256
-             (base32
-              "0mrwpb3cpn3ai7ar33m31yklj64c3pp576vh1naqff6f21pq5mnr"))))
-   (build-system gnu-build-system)
-   (inputs
-    `(("ncurses" ,ncurses)))
-   (native-inputs
-    `(("python" ,python-minimal-wrapper))) ; for scripts/MakeHeader.py
-   (home-page "https://hisham.hm/htop/")
-   (synopsis "Interactive process viewer")
-   (description
-    "This is htop, an interactive process viewer.  It is a text-mode
+    (name "htop")
+    (version "2.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://hisham.hm/htop/releases/"
+                                  version "/htop-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0mrwpb3cpn3ai7ar33m31yklj64c3pp576vh1naqff6f21pq5mnr"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("ncurses" ,ncurses)))
+    (native-inputs
+     `(("python" ,python-wrapper)))     ;for scripts/MakeHeader.py
+    (home-page "https://hisham.hm/htop/")
+    (synopsis "Interactive process viewer")
+    (description
+     "This is htop, an interactive process viewer.  It is a text-mode
 application (for console or X terminals) and requires ncurses.")
-   (license license:gpl2)))
+    (license license:gpl2)))
 
 (define-public pies
   (package
@@ -880,7 +880,7 @@ over ssh connections.")
 (define-public rename
   (package
     (name "rename")
-    (version "1.00")
+    (version "1.10")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -888,7 +888,7 @@ over ssh connections.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "03yhf8nmqsb0zyliv501fdvwlp589jqfn44yqkrflmpzrbik3zxl"))))
+                "137m8s06r4n038ivlr5r1d9a7q9l7shmwpvnyx053r9ndhvbnkh5"))))
     (build-system perl-build-system)
     (arguments
      `(#:phases
@@ -1602,14 +1602,14 @@ of supported upstream metrics systems simultaneously.")
 (define-public ansible
   (package
     (name "ansible")
-    (version "2.7.6")
+    (version "2.7.7")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "ansible" version))
        (sha256
         (base32
-         "0f7b2ghm34ql8yv90wr0ngd6w7wyvnlcxpc3snkj86kcjsnmx1bd"))))
+         "0l4id24jqi578xmybvwrz10sm2jhs90gk9gs1y04gfarz4vcj304"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-bcrypt" ,python-bcrypt)
@@ -2715,8 +2715,9 @@ Python loading in HPC environments.")
            "1k9148xnfznch1443niaa3w1kmsw4vp0xpwna6npgmi7zqg06ymy"))))
       (build-system trivial-build-system)
       (inputs
-       `(("bash" ,bash)
-         ("perl" ,perl)))
+       `(("bash" ,bash-minimal)
+         ("perl" ,perl)
+         ("procps" ,procps)))
       (native-inputs
        `(("gzip" ,gzip)))
       (arguments
@@ -2789,7 +2790,6 @@ support forum.  It runs with the @code{/exec} command in most IRC clients.")
        ("lm-sensors" ,lm-sensors)
        ("mesa-utils" ,mesa-utils)
        ("pciutils" ,pciutils)
-       ("procps" ,procps)
        ("tar" ,tar)
        ("tree" ,tree)
        ("util-linux" ,util-linux)       ; lsblk
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 52eb6ee366..f9ae22b3f3 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2013, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2017, 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
@@ -856,3 +856,147 @@ xtensor provides:
 @item tools to manipulate array expressions and build upon xtensor.
 @end itemize")
     (license license:bsd-3)))
+
+(define-public gap
+  (package
+    (name "gap")
+    (version "4.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.gap-system.org/pub/gap/gap-"
+                           (version-major+minor version)
+                           "/tar.bz2/gap-"
+                           version
+                           ".tar.bz2"))
+       (sha256
+        (base32
+         "1dmb8v4p7j1nnf7sx8sg54b49yln36bi9acwp7w1d3a1nxj17ird"))
+       (modules '((guix build utils) (ice-9 ftw) (srfi srfi-1)))
+       (snippet
+        '(begin
+           ;; Delete the external gmp and zlib libraries
+           ;; and a subdirectory not needed for our build.
+           (for-each delete-file-recursively
+                     '("extern" "hpcgap"))
+           ;; Delete a failing test.
+           ;; FIXME: This might be fixed in the next release, see
+           ;; https://github.com/gap-system/gap/issues/3292
+           (delete-file "tst/testinstall/dir.tst")
+           ;; Delete all packages except for a fixed list.
+           (with-directory-excursion "pkg"
+             (for-each delete-file-recursively
+               (lset-difference string=? (scandir ".")
+                 '("." ".."
+                   ;; Necessary packages.
+                   "GAPDoc-1.6.2"
+                   "primgrp-3.3.2"
+                   "SmallGrp-1.3"    ; artistic2.0
+                   "transgrp"        ; artistic2.0 for data,
+                                     ; gpl2 or gpl3 for code
+                   ;; Recommanded package.
+                   "io-4.5.4"        ; gpl3+
+                   ;; Optional packages, searched for at start,
+                   ;; and their depedencies.
+                   "alnuth-3.1.0"
+                   "AutoDoc-2018.09.20"
+                   "autpgrp-1.10"
+                   "crisp-1.4.4"     ; bsd-2
+                   ; "ctbllib"       ; no explicit license, drop
+                   "FactInt-1.6.2"
+                   "fga"
+                   "irredsol-1.4"    ; bsd-2
+                   "laguna-3.9.0"
+                   "polenta-1.3.8"
+                   "polycyclic-2.14"
+                   "radiroot-2.8"
+                   "resclasses-4.7.1"
+                   "sophus-1.24"
+                   ; "tomlib-1.2.7"  ; no explicit license, drop
+                   "utils-0.59"))))
+           #t))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("gmp" ,gmp)
+       ("zlib" ,zlib)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'build 'build-packages
+           ;; Compile all packages that have not been deleted by the
+           ;; code snippet above.
+           (lambda _
+             (setenv "CONFIG_SHELL" (which "bash"))
+             (with-directory-excursion "pkg"
+               (invoke "../bin/BuildPackages.sh")
+             #t)))
+         (add-after 'build-packages 'build-doc
+           ;; The documentation is bundled, but we create it from source.
+           (lambda _
+             (with-directory-excursion "doc"
+               (invoke "./make_doc"))
+             #t))
+         (replace 'check
+           (lambda _
+             ;; "make check" is expected to appear in gap-4.10.1
+             (invoke "./gap" "tst/testinstall.g")
+             #t))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (prog (string-append bin "/gap"))
+                    (prog-real (string-append bin "/.gap-real"))
+                    (share (string-append out "/share/gap"))
+                    (include (string-append out "/include/gap")))
+               ;; Install only the gap binary; the gac compiler is left
+               ;; for maybe later. "Wrap" it in a shell script that calls
+               ;; the binary with the correct parameter.
+               (mkdir-p bin)
+               (copy-file "gap" prog-real)
+               (call-with-output-file prog
+                 (lambda (port)
+                   (format port
+                           "#!~a~%exec ~a -l ~a \"$@\"~%"
+                           (which "bash")
+                           prog-real
+                           share)))
+               (chmod prog #o755)
+               ;; Install the headers and the library, which are needed by
+               ;; Sage. The Makefile targets are available in gap-4.10.0,
+               ;; but planned to be removed in gap-4.10.1.
+               (invoke "make" "install-headers")
+               (invoke "make" "install-libgap")
+               (install-file "gen/config.h" include)
+               ;; Install a certain number of files and directories to
+               ;; SHARE, where the wrapped shell script expects them.
+               ;; Remove information on the build directory from sysinfo.gap.
+               (substitute* "sysinfo.gap"
+                 (("GAP_BIN_DIR=\".*\"") "GAP_BIN_DIR=\"\"")
+                 (("GAP_LIB_DIR=\".*\"") "GAP_LIB_DIR=\"\"")
+                 (("GAP_CPPFLAGS=\".*\"") "GAP_CPPFLAGS=\"\""))
+               (install-file "sysinfo.gap" share)
+               (copy-recursively "grp" (string-append share "/grp"))
+               (copy-recursively "pkg" (string-append share "/pkg"))
+               ;; The following is not the C library libgap.so, but a
+               ;; library of GAP code.
+               (copy-recursively "lib" (string-append share "/lib"))
+               ;; The gap binary looks for documentation inside SHARE.
+               (copy-recursively "doc" (string-append share "/doc")))
+             #t)))))
+    (home-page "https://www.gap-system.org/")
+    (synopsis
+     "System for computational group theory")
+    (description
+     "GAP is a system for computational discrete algebra, with particular
+emphasis on computational group theory.  It provides a programming language,
+a library of thousands of functions implementing algebraic algorithms
+written in the GAP language as well as large data libraries of algebraic
+objects.")
+    ;; Some packages have different licenses (effectively forcing the
+    ;; combined work to be licensed as gpl3+); if this is the case, this
+    ;; is mentioned above next to their name.
+    ;; Some packages have no license mentioned explicitly; supposedly this
+    ;; means that the gpl2+ licence of GAP itself applies, but to be on the
+    ;; safe side, we drop them for now.
+    (license license:gpl2+)))
diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm
index 9b8ef562d3..0de2183b88 100644
--- a/gnu/packages/assembly.scm
+++ b/gnu/packages/assembly.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -129,7 +129,7 @@ to the clients.")
 (define-public fasm
   (package
     (name "fasm")
-    (version "1.73.06")
+    (version "1.73.08")
     (source
      (origin
        (method url-fetch)
@@ -137,14 +137,14 @@ to the clients.")
                            version ".tgz"))
        (sha256
         (base32
-         "02wqkqxpn3p0iwcagsm92qd9cdfcnbx8a09qg03b3pjppp30hmp6"))))
+         "1l4my3fran06h5jiygswx4fsj53dvpfgg9ksfbdzsdg20r672997"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; No tests exist
-       #:strip-binaries? #f ; fasm has no sections
+     `(#:tests? #f                      ; no tests exist
+       #:strip-binaries? #f             ; fasm has no sections
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure) ; no "configure" script exists
+         (delete 'configure)            ; no "configure" script
          (replace 'build
            (lambda _
              (chdir "source/Linux/")
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 8a0bb70871..ae0dddeb66 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -19,6 +19,7 @@
 ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2018 Brendan Tildesley <brendan.tildesley@openmailbox.org>
 ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1374,7 +1375,20 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
        (list
         ;; Add the output lib directory to the RUNPATH.
         (string-append "--ldflags=-Wl,-rpath=" %output "/lib")
-        "--cxxflags=-std=c++11")))
+        "--cxxflags=-std=c++11")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-boost-includes
+           (lambda _
+             (substitute* "src/headers/gx_internal_plugins.h"
+               (("namespace gx_jack" m)
+                (string-append "#include <boost/noncopyable.hpp>\n" m)))
+             (substitute* '("src/headers/gx_system.h"
+                            "src/headers/gx_parameter.h"
+                            "src/headers/gx_json.h")
+               (("namespace gx_system" m)
+                (string-append "#include <boost/noncopyable.hpp>\n" m)))
+             #t)))))
     (inputs
      `(("libsndfile" ,libsndfile)
        ("boost" ,boost)
@@ -2446,18 +2460,17 @@ the Turtle syntax.")
 (define-public suil
   (package
     (name "suil")
-    (version "0.10.0")
+    (version "0.10.2")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.drobilla.net/suil-"
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "0j489gm3fhnmwmbgw30bvd4byw1vsy4yazdlnji8jzhcz0qwb5cq"))))
+               "00d43m0nai63ajb7rkm9v084jcih206y17ib3160zcvzc885ji4z"))))
     (build-system waf-build-system)
     (arguments
-     `(#:tests? #f ; no check target
-       #:python ,python-2 ;XXX: The bundled waf does not work with Python 3.7.0.
+     `(#:tests? #f        ; no check target
        #:configure-flags
        '("CXXFLAGS=-std=gnu++11")))
     (inputs
@@ -3215,11 +3228,20 @@ with support for HD extensions.")
                            version "/bs1770gain-" version ".tar.gz"))
        (sha256
         (base32
-         "1p6yz5q7czyf9ard65sp4kawdlkg40cfscr3b24znymmhs3p7rbk"))))
+         "1p6yz5q7czyf9ard65sp4kawdlkg40cfscr3b24znymmhs3p7rbk"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; XXX
+           (substitute* "bs1770gain/bs1770gain.c"
+             (("\"N.*\"") "\"\""))
+           (substitute* "configure"
+             (("URL=.*$")
+              "https://manpages.debian.org/sid/bs1770gain/bs1770gain.1.en.html\n"))))))
     (build-system gnu-build-system)
     (inputs `(("ffmpeg" ,ffmpeg)
               ("sox" ,sox)))
-    (home-page "http://bs1770gain.sourceforge.net/")
+    (home-page "https://manpages.debian.org/sid/bs1770gain/bs1770gain.1.en.html")
     (synopsis "Tool to adjust loudness of media files")
     (description
      "BS1770GAIN is a loudness scanner compliant with ITU-R BS.1770 and its
diff --git a/gnu/packages/aux-files/chromium/master-preferences.json b/gnu/packages/aux-files/chromium/master-preferences.json
new file mode 100644
index 0000000000..5a2049fa72
--- /dev/null
+++ b/gnu/packages/aux-files/chromium/master-preferences.json
@@ -0,0 +1,26 @@
+{
+    "distribution": {
+        "import_bookmarks": false,
+        "make_chrome_default": false,
+        "make_chrome_default_for_user": false,
+        "verbose_logging": true,
+        "skip_first_run_ui": true,
+        "suppress_first_run_default_browser_prompt": true
+    },
+    "browser": {
+        "has_seen_welcome_page" : true,
+        "check_default_browser" : false
+    },
+    "dns_prefetching": {
+        "enabled": false
+    },
+    "alternate_error_pages": {
+        "enabled": false
+    },
+    "hardware": {
+        "audio_capture_enabled": false
+    },
+    "default_apps": "noinstall",
+    "hide_web_store_icon": true,
+    "homepage": "https://www.gnu.org/software/guix/"
+}
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 970d0adb06..f9f7146655 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -512,14 +512,14 @@ detection, and lossless compression.")
 (define-public borg
   (package
     (name "borg")
-    (version "1.1.8")
+    (version "1.1.9")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "borgbackup" version))
        (sha256
         (base32
-         "0qqvcscn1l4y83x4sh3izdpmr8zq38j8chjkpfq4q4d01i470hqb"))
+         "0x95nhv4h34m8cxycbwc4xdz350saaxlgh727b23bgn4ci7gh3vx"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -565,11 +565,6 @@ detection, and lossless compression.")
                ;; HOME=/homeless-shelter.
                (setenv "HOME" "/tmp")
                #t)))
-         (add-after 'unpack 'remove-documentation-timestamps ; reproducibility
-           (lambda _
-             (substitute* "setup.py"
-               (("write\\(':Date:'.*") "\n"))
-             #t))
          ;; The tests need to be run after Borg is installed.
          (delete 'check)
          (add-after 'install 'check
@@ -606,17 +601,12 @@ detection, and lossless compression.")
                          '("docs/misc/create_chunker-params.txt"
                            "docs/misc/internals-picture.txt"
                            "docs/misc/prune-example.txt"))
-               (add-installed-pythonpath inputs outputs)
-               (invoke "python3" "setup.py" "build_man")
                (copy-recursively "docs/man" man)
                #t))))))
     (native-inputs
      `(("python-cython" ,python-cython)
        ("python-setuptools-scm" ,python-setuptools-scm)
-       ("python-pytest" ,python-pytest)
-       ;; For generating the documentation.
-       ("python-sphinx" ,python-sphinx)
-       ("python-guzzle-sphinx-theme" ,python-guzzle-sphinx-theme)))
+       ("python-pytest" ,python-pytest)))
     (inputs
      `(("acl" ,acl)
        ("libb2" ,libb2)
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index d6db02188f..5dc3945035 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -4365,130 +4365,6 @@ interrupted by stop codons.  OrfM finds and prints these ORFs.")
     (home-page "https://github.com/wwood/OrfM")
     (license license:lgpl3+)))
 
-(define-public pplacer
-  (let ((commit "807f6f3"))
-    (package
-      (name "pplacer")
-      ;; The commit should be updated with each version change.
-      (version "1.1.alpha19")
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/matsen/pplacer.git")
-               (commit (string-append "v" version))))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "11ppbbbx20p2g9wj3ff64dhnarb12q79v7qh4rk0gj6lkbz4n7cn"))))
-      (build-system ocaml-build-system)
-      (arguments
-       `(#:ocaml ,ocaml-4.01
-         #:findlib ,ocaml4.01-findlib
-         #:modules ((guix build ocaml-build-system)
-                    (guix build utils)
-                    (ice-9 ftw))
-         #:phases
-         (modify-phases %standard-phases
-           (delete 'configure)
-           (add-after 'unpack 'replace-bundled-cddlib
-             (lambda* (#:key inputs #:allow-other-keys)
-               (let* ((cddlib-src (assoc-ref inputs "cddlib-src"))
-                      (local-dir "cddlib_guix"))
-                 (mkdir local-dir)
-                 (with-directory-excursion local-dir
-                   (invoke "tar" "xvf" cddlib-src))
-                 (let ((cddlib-src-folder
-                        (string-append local-dir "/"
-                                       (list-ref (scandir local-dir) 2)
-                                       "/lib-src")))
-                   (for-each make-file-writable (find-files "cdd_src" ".*"))
-                   (for-each
-                    (lambda (file)
-                      (copy-file file
-                                 (string-append "cdd_src/" (basename file))))
-                    (find-files cddlib-src-folder ".*[ch]$")))
-                 #t)))
-           (add-after 'unpack 'fix-makefile
-             (lambda _
-               ;; Remove system calls to 'git'.
-               (substitute* "Makefile"
-                 (("^DESCRIPT:=pplacer-.*")
-                  (string-append
-                   "DESCRIPT:=pplacer-$(shell uname)-v" ,version "\n")))
-               (substitute* "myocamlbuild.ml"
-                 (("git describe --tags --long .*\\\" with")
-                  (string-append
-                   "echo -n v" ,version "-" ,commit "\" with")))
-               #t))
-           (replace 'install
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (bin (string-append out "/bin")))
-                 (copy-recursively "bin" bin))
-               #t)))))
-      (native-inputs
-       `(("zlib" ,zlib)
-         ("gsl" ,gsl)
-         ("ocaml-ounit" ,ocaml4.01-ounit)
-         ("ocaml-batteries" ,ocaml4.01-batteries)
-         ("ocaml-camlzip" ,ocaml4.01-camlzip)
-         ("ocaml-csv" ,ocaml4.01-csv)
-         ("ocaml-sqlite3" ,ocaml4.01-sqlite3)
-         ("ocaml-xmlm" ,ocaml4.01-xmlm)
-         ("ocaml-mcl" ,ocaml4.01-mcl)
-         ("ocaml-gsl" ,ocaml4.01-gsl)
-         ("cddlib-src" ,(package-source cddlib))))
-      (propagated-inputs
-       `(("pplacer-scripts" ,pplacer-scripts)))
-      (synopsis "Phylogenetic placement of biological sequences")
-      (description
-       "Pplacer places query sequences on a fixed reference phylogenetic tree
-to maximize phylogenetic likelihood or posterior probability according to a
-reference alignment.  Pplacer is designed to be fast, to give useful
-information about uncertainty, and to offer advanced visualization and
-downstream analysis.")
-      (home-page "http://matsen.fhcrc.org/pplacer")
-      (license license:gpl3))))
-
-;; This package is installed alongside 'pplacer'.  It is a separate package so
-;; that it can use the python-build-system for the scripts that are
-;; distributed alongside the main OCaml binaries.
-(define pplacer-scripts
-  (package
-    (inherit pplacer)
-    (name "pplacer-scripts")
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'enter-scripts-dir
-           (lambda _ (chdir "scripts") #t))
-         (replace 'check
-           (lambda _ (invoke "python" "-m" "unittest" "discover" "-v") #t))
-         (add-after 'install 'wrap-executables
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (bin (string-append out "/bin")))
-               (let ((path (string-append
-                            (assoc-ref inputs "hmmer") "/bin:"
-                            (assoc-ref inputs "infernal") "/bin")))
-                 (display path)
-                 (wrap-program (string-append bin "/refpkg_align.py")
-                   `("PATH" ":" prefix (,path))))
-               (let ((path (string-append
-                            (assoc-ref inputs "hmmer") "/bin")))
-                 (wrap-program (string-append bin "/hrefpkg_query.py")
-                   `("PATH" ":" prefix (,path)))))
-             #t)))))
-    (inputs
-     `(("infernal" ,infernal)
-       ("hmmer" ,hmmer)))
-    (propagated-inputs
-     `(("python-biopython" ,python2-biopython)
-       ("taxtastic" ,taxtastic)))
-    (synopsis "Pplacer Python scripts")))
-
 (define-public python2-pbcore
   (package
     (name "python2-pbcore")
@@ -11192,7 +11068,7 @@ droplet sequencing.  It has been particularly tailored for Drop-seq.")
     (native-inputs
      `(("ldc" ,ldc)
        ("rdmd" ,rdmd)
-       ("python" ,python-minimal)
+       ("python" ,python)
        ("biod"
         ,(let ((commit "4f1a7d2fb7ef3dfe962aa357d672f354ebfbe42e"))
            (origin
@@ -14497,3 +14373,33 @@ designed for use with hybrid capture, including both whole-exome and custom
 target panels, and short-read sequencing platforms such as Illumina and Ion
 Torrent.")
     (license license:asl2.0)))
+
+(define-public python-pyfit-sne
+  (package
+    (name "python-pyfit-sne")
+    (version "1.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/KlugerLab/pyFIt-SNE.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "13wh3qkzs56azmmgnxib6xfr29g7xh09sxylzjpni5j0pp0rc5qw"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-numpy" ,python-numpy)))
+    (inputs
+     `(("fftw" ,fftw)))
+    (native-inputs
+     `(("python-cython" ,python-cython)))
+    (home-page "https://github.com/KlugerLab/pyFIt-SNE")
+    (synopsis "FFT-accelerated Interpolation-based t-SNE")
+    (description
+     "t-Stochastic Neighborhood Embedding (t-SNE) is a highly successful
+method for dimensionality reduction and visualization of high dimensional
+datasets.  A popular implementation of t-SNE uses the Barnes-Hut algorithm to
+approximate the gradient at each iteration of gradient descent.  This package
+is a Cython wrapper for FIt-SNE.")
+    (license license:bsd-4)))
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index 00b115cb9c..d96610a791 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2016, 2017, 2018 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Tomáš Čech <sleep_walker@gnu.org>
-;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
 ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
 ;;; Copyright © 2018 Nam Nguyen <namn@berkeley.edu>
@@ -426,16 +426,16 @@ desktops.")
 (define-public qbittorrent
   (package
     (name "qbittorrent")
-    (version "4.1.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/qbittorrent/qBittorrent/archive/release-"
-                    version ".tar.gz"))
-              (file-name (string-append name "-release-" version ".tar.gz"))
-              (sha256
-               (base32
-                "00zrpnwanq9f7maky2z4wnzw08xy902s77scm2gcvxxxankr4j92"))))
+    (version "4.1.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/qbittorrent/qBittorrent.git")
+             (commit (string-append "release-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "09zcygaxfv9g6av0vsvlyzv4v65wvj766xyfx31yz5ig3xan6ak1"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/busybox.scm b/gnu/packages/busybox.scm
index 09812d4a49..20a2e5aabf 100644
--- a/gnu/packages/busybox.scm
+++ b/gnu/packages/busybox.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2016, 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 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -108,7 +108,7 @@ any small or embedded system.")
 (define-public toybox
   (package
     (name "toybox")
-    (version "0.7.8")
+    (version "0.8.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -116,7 +116,7 @@ any small or embedded system.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "1mlqv5hsvy8ii6m698hq6rc316klwv44jlr034knwg6bk1lf2qj9"))))
+                "0mirj977zxsxnfaiqndwgsn9calgg312d817fi1hkfbd8kcyrk73"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 7550586c1f..13a4280a40 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -16,7 +16,7 @@
 ;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
 ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
-;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
@@ -303,7 +303,7 @@ format.")
 (define-public cppcheck
   (package
     (name "cppcheck")
-    (version "1.86")
+    (version "1.87")
     (source (origin
       (method git-fetch)
       (uri (git-reference
@@ -311,7 +311,7 @@ format.")
              (commit version)))
       (file-name (git-file-name name version))
       (sha256
-       (base32 "0jr4aah72c7wy94a8vlj3k050rx6pmc7m9nvmll1jwbscxj5f7ff"))))
+       (base32 "1xiy54rz99nzbpwj35jiyssd2nc6k5k0lw5ml6nh2qnmbfkl8swl"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags '("-DBUILD_TESTS=ON")))
@@ -711,23 +711,22 @@ and many external plugins.")
 (define-public python-pytest-cov
   (package
     (name "python-pytest-cov")
-    (version "2.6.0")
+    (version "2.6.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "pytest-cov" version))
         (sha256
-         (base32
-          "0qnpp9y3ygx4jk4pf5ad71fh2skbvnr6gl54m7rg5qysnx4g0q73"))))
+         (base32 "0cyxbbghx2l4p60w10k00j1j74q1ngfiffr0pxn73ababjr69dha"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
           (lambda _
-            ;; options taken from tox.ini
+            ;; Options taken from tox.ini.
             ;; TODO: make "--restructuredtext" tests pass. They currently fail
-            ;; with "Duplicate implicit target name"
+            ;; with "Duplicate implicit target name".
             (invoke "python" "./setup.py" "check"
                     "--strict" "--metadata"))))))
     (propagated-inputs
@@ -772,14 +771,14 @@ supports coverage of subprocesses.")
 (define-public python-pytest-mock
   (package
     (name "python-pytest-mock")
-    (version "1.10.0")
+    (version "1.10.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "pytest-mock" version))
         (sha256
          (base32
-          "1h6lgpmsvs9s8j2s80v06f9f3iaw1n1rc51mbrxk1f12sw4q56nq"))))
+          "1i5mg3ff1qk0wqfcxfz60hwy3q5dskdp36i10ckigkzffg8hc3ad"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-setuptools-scm" ,python-setuptools-scm)))
@@ -1923,14 +1922,13 @@ JSON APIs with Behave.")
 (define-public python-nose-randomly
   (package
     (name "python-nose-randomly")
-    (version "1.2.5")
+    (version "1.2.6")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "nose-randomly" version))
        (sha256
-        (base32
-         "1cw9dlr1zh3w4i438kin7z0rm8092ki52hayisyc43h9pcplq7rn"))))
+        (base32 "0z662rqhfk4bjmg806mn4frb8nz4gbh7mrddsrhfffp1g4yklj3y"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-nose" ,python-nose)
@@ -2158,7 +2156,7 @@ provides a simple way to achieve this.")
 (define-public umockdev
   (package
     (name "umockdev")
-    (version "0.11.3")
+    (version "0.12.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/martinpitt/umockdev/"
@@ -2166,7 +2164,7 @@ provides a simple way to achieve this.")
                                   "umockdev-" version ".tar.xz"))
               (sha256
                (base32
-                "1in2hdan1g62wpvgjlj8mci85551ipr1964j2b9j06gm3blpihcx"))))
+                "1hx5jm9afng6hw9wyp524z8nwdp6w053pca0w2c0gqpgrmvjxvd2"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -2179,8 +2177,8 @@ provides a simple way to achieve this.")
              #t)))))
     (native-inputs
      `(("vala" ,vala)
-       ("python" ,python) ; for tests
-       ("which" ,which) ; for tests
+       ("python" ,python)               ; for tests
+       ("which" ,which)                 ; for tests
        ("gtk-doc" ,gtk-doc)
        ("pkg-config" ,pkg-config)))
     (inputs
diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm
index 10601f0bfa..7d0042872e 100644
--- a/gnu/packages/chez.scm
+++ b/gnu/packages/chez.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -42,22 +42,22 @@
 (define nanopass
   (let ((version "1.9"))
     (origin
-      (method url-fetch)
-      (uri (string-append
-            "https://github.com/nanopass/nanopass-framework-scheme/archive"
-            "/v" version ".tar.gz"))
-      (sha256 (base32 "11pwyy4jiwhcl2am3a4ciczacjbjkyvdizqzdglb3l1hj2gj6nv2"))
-      (file-name (string-append "nanopass-" version ".tar.gz")))))
+      (method git-fetch)
+      (uri (git-reference
+            (url "https://github.com/nanopass/nanopass-framework-scheme.git")
+            (commit (string-append "v" version))))
+      (sha256 (base32 "0lrngdna6w7v9vlp1a873hgwrwsz2p0pgkccswa4smzvdyhgfsri"))
+      (file-name (git-file-name "nanopass" version)))))
 
 (define stex
   (let ((version "1.2.1"))
     (origin
-      (method url-fetch)
-      (uri (string-append
-            "https://github.com/dybvig/stex/archive"
-            "/v" version ".tar.gz"))
-      (sha256 (base32 "03pl3f668h24dn51vccr1sj5lsba9zq3j37bnxjvdadcdaj4qy5z"))
-      (file-name (string-append "stex-" version ".tar.gz")))))
+      (method git-fetch)
+      (uri (git-reference
+            (url "https://github.com/dybvig/stex.git")
+            (commit (string-append "v" version))))
+      (sha256 (base32 "1jiawhhqnsj42hzmlbq5xby3iarhf8vhiqs0kg1a0zg5jsn6cf8n"))
+      (file-name (git-file-name "stex" version)))))
 
 (define-public chez-scheme
   (package
@@ -65,12 +65,13 @@
     (version "9.5")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/cisco/ChezScheme/archive/"
-                           "v" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cisco/ChezScheme.git")
+             (commit (string-append "v" version))))
        (sha256
-        (base32 "135991hspq0grf26pvl2lkwhp92yz204h6rgiwyym0x6v0xzknd1"))
-       (file-name (string-append "chez-scheme-" version ".tar.gz"))
+        (base32 "132fal5hwiq0bqzvfhjsqr4d11cfdh1670f6286ks29xxj1c04zq"))
+       (file-name (git-file-name name version))
        (modules '((guix build utils)))
        (snippet
         ;; Fix compilation with glibc >= 2.26, which removed xlocale.h.
@@ -122,7 +123,8 @@
              ;; next one; see <https://github.com/cisco/ChezScheme/issues/209>.
              (substitute* "csug/copyright.stex"
                (("\\\\INSERTREVISIONMONTHSPACEYEAR" )
-                "October 2017"))))     ; tarball release date
+                "October 2017"))       ; tarball release date
+             #t))
          ;; Adapt the custom 'configure' script.
          (replace 'configure
            (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -140,9 +142,9 @@
                          (apply unpack (list #:source src))
                          (apply patch-source-shebangs (list #:source src)))
                        (delete-file-recursively new-name)
-                       (system* "mv" orig-name new-name)))
-                    `((,nanopass "nanopass-framework-scheme-1.9" "nanopass")
-                      (,stex "stex-1.2.1" "stex")))
+                       (invoke "mv" orig-name new-name)))
+                    `((,nanopass "source" "nanopass")
+                      (,stex "source" "stex")))
                ;; The Makefile wants to download and compile "zlib".  We patch
                ;; it to use the one from our 'zlib' package.
                (substitute* "configure"
@@ -174,23 +176,24 @@
                  (("/bin/true") (which "true")))
                (substitute* "stex/Makefile"
                  (("PREFIX=/usr") (string-append "PREFIX=" out)))
-               (zero? (system* "./configure" "--threads"
-                               (string-append "--installprefix=" out))))))
+               (invoke "./configure" "--threads"
+                       (string-append "--installprefix=" out)))))
          ;; Installation of the documentation requires a running "chez".
          (add-after 'install 'install-doc
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
-                   (doc (string-append (assoc-ref outputs "doc")
+             (let ((doc (string-append (assoc-ref outputs "doc")
                                        "/share/doc/" ,name "-" ,version)))
-               (setenv "HOME" (getcwd))
-               (setenv "PATH" (string-append (getenv "PATH") ":" bin))
-               (with-directory-excursion "stex"
-                 (system* "make" (string-append "BIN=" bin)))
-               (system* "make" "docs")
+               (invoke "make" "docs")
                (with-directory-excursion "csug"
                  (substitute* "Makefile"
-                   (("/tmp/csug9") doc))
-                 (system* "make" "install")
+                   ;; The ‘installdir=’ can't be overruled on the command line.
+                   (("/tmp/csug9") doc)
+                   ;; $m is the ‘machine type’, e.g. ‘ta6le’ on x86_64, but is
+                   ;; set incorrectly for some reason, e.g. to ‘a6le’ on x86_64.
+                   ;; Avoid the whole mess by running the (machine-independent)
+                   ;; ‘installsh’ script at its original location.
+                   (("\\$m/installsh") "makefiles/installsh"))
+                 (invoke "make" "install")
                  (install-file "csug.pdf" doc))
                (with-directory-excursion "release_notes"
                  (install-file "release_notes.pdf" doc))
@@ -237,13 +240,13 @@ and 32-bit PowerPC architectures.")
     (version "1.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/fedeinthemix/chez-srfi/archive"
-             "/v" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/fedeinthemix/chez-srfi.git")
+             (commit (string-append "v" version))))
        (sha256
-        (base32 "17i4wly7bcr5kb5hf04ljpbvv4r5hsr9xsmw650fj43z9jr303gs"))
-       (file-name (string-append name "-" version ".tar.gz"))))
+        (base32 "1vgn984mj2q4w6r2q66h7qklp2hrh85wwh4k9yisga5fi0ps7myf"))
+       (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (native-inputs
      `(("chez-scheme" ,chez-scheme)))
@@ -264,16 +267,15 @@ and 32-bit PowerPC architectures.")
         (revision "1"))
     (package
       (name "chez-web")
-      ;; release 2.0 is different and doesn't work.
-      (version (string-append "2.0-" revision "."
-                              (string-take commit 7)))
+      ;; Release 2.0 is different and doesn't work.
+      (version (git-version "2.0" revision commit))
       (source
        (origin
          (method git-fetch)
          (uri (git-reference
                (url "https://github.com/arcfide/ChezWEB.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32 "1dq25qygyncbfq4kwwqqgyyakfqjwhp5q23vrf3bff1p66nyfl3b"))))
       (build-system gnu-build-system)
@@ -318,7 +320,8 @@ and 32-bit PowerPC architectures.")
                               (("\\./chezweave" all)
                                (string-append "chez-scheme --program " all)))
                             (substitute* "installit"
-                              (("-g \\$GROUP -o \\$OWNER") "")))))))
+                              (("-g \\$GROUP -o \\$OWNER") ""))
+                            #t)))))
       (home-page "https://github.com/arcfide/ChezWEB")
       (synopsis "Hygienic Literate Programming for Chez Scheme")
       (description "ChezWEB is a system for doing Knuthian style WEB
@@ -330,15 +333,14 @@ programming in Scheme.")
         (revision "1"))
     (package
       (name "chez-sockets")
-      (version (string-append "0.0-" revision "."
-                              (string-take commit 7)))
+      (version (git-version "0.0.0" revision commit))
       (source
        (origin
          (method git-fetch)
          (uri (git-reference
                (url "https://github.com/arcfide/chez-sockets.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32 "1n5fbwwz51fdzvjackgmnsgh363g9inyxv7kmzi0469cwavwcx5m"))))
       (build-system gnu-build-system)
@@ -435,11 +437,13 @@ Chez Scheme.")
     (home-page "https://github.com/fedeinthemix/chez-matchable")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append home-page "/archive" "/v" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit (string-append "v" version))))
        (sha256
-        (base32 "0cl4vc6487pikjq159pj4n5ghyaax31nywb5n4yn1682h3ir1hs0"))
-       (file-name (string-append name "-" version ".tar.gz"))))
+        (base32 "02qn7x348p23z1x5lwhkyj7i8z6mgwpzpnwr8dyina0yzsdkr71s"))
+       (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (inputs
      `(("chez-srfi" ,chez-srfi))) ; for tests
@@ -462,13 +466,13 @@ Chez Scheme.")
     (version "0.9.4")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/fedeinthemix/chez-irregex/archive"
-             "/v" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/fedeinthemix/chez-irregex.git")
+             (commit (string-append "v" version))))
        (sha256
-        (base32 "0ywy5syaw549a58viz68dmgnv756ic705rcnlqxgjq27lnaim53b"))
-       (file-name (string-append name "-" version ".tar.gz"))))
+        (base32 "0jh6piylw545j81llay9wfivgpv6lcnwd81gm4w17lkasslir50q"))
+       (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (inputs
      `(("chez-matchable" ,chez-matchable))) ; for tests
@@ -514,10 +518,10 @@ syntax, with various aliases for commonly used patterns.")
          (replace 'configure ,chez-configure)
          (replace 'build
            (lambda* (#:key (make-flags '()) #:allow-other-keys)
-             (zero? (apply system* "make" "chez-build" make-flags))))
+             (apply invoke "make" "chez-build" make-flags)))
          (replace 'install
            (lambda* (#:key (make-flags '()) #:allow-other-keys)
-             (zero? (apply system* "make" "chez-install" make-flags)))))))
+             (apply invoke "make" "chez-install" make-flags))))))
     (home-page "http://synthcode.com/scheme/fmt")
     (synopsis "Combinator formatting library for Chez Scheme")
     (description "This package provides a library of procedures for
@@ -534,14 +538,16 @@ strings.")
     (home-page "https://github.com/fedeinthemix/chez-mit")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append home-page "/archive/v" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit (string-append "v" version))))
        (sha256
-        (base32 "1p11q061znwxzxrxg3vw4dbsnpv1dav12hjhnkrjnzyyjvvdm2kn"))
-       (file-name (string-append name "-" version ".tar.gz"))))
+        (base32 "0c7i3b6i90xk96nmxn1pc9272a4yal4v40dm1a4ybdi87x53zkk0"))
+       (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (inputs
-     `(("chez-srfi" ,chez-srfi))) ; for tests
+     `(("chez-srfi" ,chez-srfi)))       ; for tests
     (native-inputs
      `(("chez-scheme" ,chez-scheme)))
     (arguments
@@ -562,14 +568,16 @@ required to port the program 'Scmutils' to Chez Scheme.")
     (home-page "https://github.com/fedeinthemix/chez-scmutils")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append home-page "/archive/v" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit (string-append "v" version))))
        (sha256
-        (base32 "1a5j61pggaiwl1gl6m038rcy5n8r2sj5nyjmz86jydx97mm5i8hj"))
-       (file-name (string-append name "-" version ".tar.gz"))))
+        (base32 "0lb05wlf8qpgg8y0gdsyaxg1nbfx1qbaqdjvygrp64ndn8fnhq7l"))
+       (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (inputs
-     `(("chez-srfi" ,chez-srfi)))      ; for tests
+     `(("chez-srfi" ,chez-srfi)))       ; for tests
     (native-inputs
      `(("chez-scheme" ,chez-scheme)))
     (propagated-inputs
@@ -577,7 +585,7 @@ required to port the program 'Scmutils' to Chez Scheme.")
        ("chez-srfi" ,chez-srfi)))
     (arguments
      `(#:make-flags ,(chez-make-flags name version)
-       #:tests? #f ; no test suite
+       #:tests? #f                      ; no test suite
        #:phases
        (modify-phases %standard-phases
          (replace 'configure ,chez-configure)
@@ -589,7 +597,7 @@ required to port the program 'Scmutils' to Chez Scheme.")
          (delete 'build)
          (add-after 'install 'install-src
            (lambda* (#:key (make-flags '()) #:allow-other-keys)
-             (zero? (apply system* "make" "install-src" make-flags))))
+             (apply invoke "make" "install-src" make-flags)))
          (add-after 'install-src 'absolute-path-in-scm-files
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -609,12 +617,13 @@ required to port the program 'Scmutils' to Chez Scheme.")
              (let* ((out (assoc-ref outputs "out"))
                     (mk-file (car (find-files out "Makefile"))))
                (with-directory-excursion (dirname mk-file)
-                 (zero? (apply system* "make" "build" make-flags))))))
+                 (apply invoke "make" "build" make-flags)))))
          (add-after 'build 'clean-up
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out")))
                (for-each delete-file
-                         (find-files out "Makefile|compile-all\\.ss"))))))))
+                         (find-files out "Makefile|compile-all\\.ss"))
+               #t))))))
     (synopsis "Port of MIT/GNU Scheme Scmutils to Chez Scheme")
     (description "This package provides a port of the MIT/GNU Scheme
 Scmutils program to Chez Scheme.  The port consists of a set of
diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
new file mode 100644
index 0000000000..1594bfeb60
--- /dev/null
+++ b/gnu/packages/chromium.scm
@@ -0,0 +1,705 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages chromium)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix gexp)
+  #:use-module (guix store)
+  #:use-module (guix monads)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix utils)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages assembly)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages bison)
+  #:use-module (gnu packages build-tools)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages cups)
+  #:use-module (gnu packages curl)
+  #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages gcc)
+  #:use-module (gnu packages ghostscript)
+  #:use-module (gnu packages gl)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gnuzilla)
+  #:use-module (gnu packages gperf)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages icu4c)
+  #:use-module (gnu packages image)
+  #:use-module (gnu packages libevent)
+  #:use-module (gnu packages libffi)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages kerberos)
+  #:use-module (gnu packages ninja)
+  #:use-module (gnu packages node)
+  #:use-module (gnu packages pciutils)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pulseaudio)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages python-web)
+  #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages regex)
+  #:use-module (gnu packages serialization)
+  #:use-module (gnu packages speech)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages valgrind)
+  #:use-module (gnu packages vulkan)
+  #:use-module (gnu packages video)
+  #:use-module (gnu packages xiph)
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages xdisorg)
+  #:use-module (gnu packages xorg))
+
+(define %preserved-third-party-files
+  '("base/third_party/dmg_fp" ;X11-style
+    "base/third_party/dynamic_annotations" ;BSD-2
+    "base/third_party/icu" ;Unicode, X11-style
+    "base/third_party/superfasthash" ;BSD-3
+    "base/third_party/symbolize" ;BSD-3
+    "base/third_party/xdg_mime" ;LGPL2.0+ or Academic 2.0
+    "base/third_party/xdg_user_dirs" ;Expat
+    "chrome/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+
+    "courgette/third_party/bsdiff" ;BSD-2, BSD protection license
+    "courgette/third_party/divsufsort" ;Expat
+    "net/third_party/http2" ;BSD-3
+    "net/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+
+    "net/third_party/nss" ;MPL-2.0
+    "net/third_party/quic" ;BSD-3
+    "net/third_party/spdy" ;BSD-3
+    "net/third_party/uri_template" ;ASL2.0
+    "third_party/abseil-cpp" ;ASL2.0
+    "third_party/adobe/flash/flapper_version.h" ;no license, trivial
+    "third_party/angle" ;BSD-3
+    "third_party/angle/src/common/third_party/base" ;BSD-3
+    "third_party/angle/src/common/third_party/smhasher" ;Public domain
+    "third_party/angle/src/common/third_party/xxhash" ;BSD-2
+    "third_party/angle/src/third_party/compiler" ;BSD-2
+    "third_party/angle/src/third_party/libXNVCtrl" ;Expat
+    "third_party/angle/src/third_party/trace_event" ;BSD-3
+    "third_party/angle/third_party/glslang" ;BSD-3
+    "third_party/angle/third_party/spirv-headers" ;Expat
+    "third_party/angle/third_party/spirv-tools" ;Expat
+    "third_party/angle/third_party/vulkan-headers" ;ASL2.0
+    "third_party/angle/third_party/vulkan-loader" ;ASL2.0
+    "third_party/angle/third_party/vulkan-tools" ;ASL2.0
+    "third_party/angle/third_party/vulkan-validation-layers" ;ASL2.0
+    "third_party/apple_apsl" ;APSL2.0
+    "third_party/blink" ;BSD-3, LGPL2+
+    "third_party/boringssl" ;OpenSSL/ISC (Google additions are ISC)
+    "third_party/boringssl/src/third_party/fiat" ;Expat
+    "third_party/breakpad" ;BSD-3
+    "third_party/brotli" ;Expat
+    "third_party/cacheinvalidation" ;ASL2.0
+    "third_party/catapult" ;BSD-3
+    "third_party/catapult/common/py_vulcanize/third_party/rcssmin" ;ASL2.0
+    "third_party/catapult/common/py_vulcanize/third_party/rjsmin" ;ASL2.0
+    "third_party/catapult/third_party/polymer" ;BSD-3
+    "third_party/catapult/tracing/third_party/d3" ;BSD-3
+    "third_party/catapult/tracing/third_party/gl-matrix" ;Expat
+    "third_party/catapult/tracing/third_party/jszip" ;Expat or GPL3
+    "third_party/catapult/tracing/third_party/mannwhitneyu" ;Expat
+    "third_party/catapult/tracing/third_party/oboe" ;BSD-2
+    "third_party/catapult/tracing/third_party/pako" ;Expat
+    "third_party/ced" ;BSD-3
+    "third_party/cld_3" ;ASL2.0
+    "third_party/crashpad" ;ASL2.0
+    "third_party/crashpad/crashpad/third_party/zlib/zlib_crashpad.h" ;Zlib
+    "third_party/crc32c" ;BSD-3
+    "third_party/cros_system_api" ;BSD-3
+    "third_party/dom_distiller_js" ;BSD-3
+    "third_party/fips181" ;BSD-3
+    "third_party/flatbuffers" ;ASL2.0
+    "third_party/google_input_tools" ;ASL2.0
+    "third_party/google_input_tools/third_party/closure_library" ;ASL2.0
+    "third_party/google_input_tools/third_party/closure_library/third_party/closure" ;Expat
+    "third_party/googletest" ;BSD-3
+    "third_party/hunspell" ;MPL1.1/GPL2+/LGPL2.1+
+    "third_party/iccjpeg" ;IJG
+    "third_party/inspector_protocol" ;BSD-3
+    "third_party/jinja2" ;BSD-3
+    "third_party/jstemplate" ;ASL2.0
+    "third_party/khronos" ;Expat, SGI
+    "third_party/leveldatabase" ;BSD-3
+    "third_party/libXNVCtrl" ;Expat
+    "third_party/libaddressinput" ;ASL2.0
+    "third_party/libaom" ;BSD-2 or "Alliance for Open Media Patent License 1.0"
+    "third_party/libaom/source/libaom/third_party/vector" ;Expat
+    "third_party/libaom/source/libaom/third_party/x86inc" ;ISC
+    "third_party/libjingle_xmpp" ;BSD-3
+    "third_party/libphonenumber" ;ASL2.0
+    "third_party/libsecret" ;LGPL2.1+
+    "third_party/libsrtp" ;BSD-3
+    "third_party/libsync" ;ASL2.0
+    "third_party/libudev" ;LGPL2.1+
+    "third_party/libwebm" ;BSD-3
+    "third_party/libxml/chromium" ;BSD-3
+    "third_party/libyuv" ;BSD-3
+    "third_party/lss" ;BSD-3
+    "third_party/markupsafe" ;BSD-3
+    "third_party/mesa_headers" ;Expat, SGI
+    "third_party/metrics_proto" ;BSD-3
+    "third_party/modp_b64" ;BSD-3
+    "third_party/nasm" ;BSD-2
+    "third_party/node" ;Expat
+    "third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2" ;BSD-2
+    "third_party/ots" ;BSD-3
+    "third_party/pdfium" ;BSD-3
+    "third_party/pdfium/third_party/agg23" ;Expat
+    "third_party/pdfium/third_party/base" ;BSD-3
+    "third_party/pdfium/third_party/bigint" ;Public domain, BSD-3
+    "third_party/pdfium/third_party/skia_shared" ;BSD-3
+    "third_party/pdfium/third_party/freetype/include/pstables.h" ;FreeType
+    "third_party/ply" ;BSD-3
+    "third_party/polymer" ;BSD-3
+    "third_party/protobuf" ;BSD-3
+    "third_party/protobuf/third_party/six" ;Expat
+    "third_party/pyjson5" ;ASL2.0
+    "third_party/qcms" ;Expat
+    "third_party/rnnoise" ;BSD-3
+    "third_party/s2cellid" ;ASL2.0
+    "third_party/sfntly" ;ASL2.0
+    "third_party/skia" ;BSD-3
+    "third_party/skia/third_party/gif" ;MPL1.1/GPL2+/LGPL2.1+
+    "third_party/skia/third_party/skcms" ;BSD-3
+    "third_party/skia/third_party/vulkan" ;BSD-3
+    "third_party/smhasher" ;Expat, public domain
+    "third_party/speech-dispatcher" ;GPL2+
+    "third_party/spirv-headers" ;ASL2.0
+    "third_party/SPIRV-Tools" ;ASL2.0
+    "third_party/sqlite" ;Public domain
+    "third_party/ungoogled" ;BSD-3
+    "third_party/usb_ids" ;BSD-3
+    "third_party/usrsctp" ;BSD-2
+    "third_party/web-animations-js" ;ASL2.0
+    "third_party/webdriver" ;ASL2.0
+    "third_party/webrtc" ;BSD-3
+    "third_party/webrtc/common_audio/third_party/fft4g" ;Non-copyleft
+    "third_party/webrtc/common_audio/third_party/spl_sqrt_floor" ;Public domain
+    "third_party/webrtc/modules/third_party/fft" ;Non-copyleft
+    "third_party/webrtc/modules/third_party/g711" ;Public domain
+    "third_party/webrtc/modules/third_party/g722" ;Public domain
+    "third_party/webrtc/rtc_base/third_party/base64" ;Non-copyleft
+    "third_party/webrtc/rtc_base/third_party/sigslot" ;Public domain
+    "third_party/widevine/cdm/widevine_cdm_version.h" ;BSD-3
+    "third_party/widevine/cdm/widevine_cdm_common.h" ;BSD-3
+    "third_party/woff2" ;ASL2.0
+    "third_party/xdg-utils" ;Expat
+    "third_party/yasm/run_yasm.py" ;BSD-2 or BSD-3
+    "third_party/zlib/google" ;BSD-3
+    "url/third_party/mozilla" ;BSD-3, MPL1.1/GPL2+/LGPL2.1+
+    "v8/src/third_party/utf8-decoder" ;Expat
+    "v8/src/third_party/valgrind" ;BSD-4
+    "v8/third_party/inspector_protocol" ;BSD-3
+    "v8/third_party/v8/builtins")) ;PSFL
+
+(define* (computed-origin-method gexp-promise hash-algo hash
+                                 #:optional (name "source")
+                                 #:key (system (%current-system))
+                                 (guile (default-guile)))
+  "Return a derivation that executes the G-expression that results
+from forcing GEXP-PROMISE."
+  (mlet %store-monad ((guile (package->derivation guile system)))
+    (gexp->derivation (or name "computed-origin")
+                      (force gexp-promise)
+                      #:system system
+                      #:guile-for-build guile)))
+
+(define %chromium-version "72.0.3626.109")
+(define %ungoogled-revision "a58db880c15e5077e881cad7b07d1a277ecd463a")
+
+;; This is a "computed" origin that does the following:
+;; 1) Runs the Ungoogled scripts on a pristine Chromium tarball.
+;; 2) Prunes all third_party folders that are not explicitly preserved.
+;; 3) Adjusts "GN" build files such that system libraries are preferred.
+(define ungoogled-chromium-source
+  (let* ((chromium-source
+          (origin
+            (method url-fetch)
+            (uri (string-append "https://commondatastorage.googleapis.com"
+                                "/chromium-browser-official/chromium-"
+                                %chromium-version ".tar.xz"))
+            (sha256
+             (base32
+              "0bcc0iksk2v30drwd5zbw7v6sfbw16jqllc12ks2nifrvh058jjp"))))
+         (ungoogled-source
+          (origin
+            (method git-fetch)
+            (uri (git-reference (url "https://github.com/Eloston/ungoogled-chromium")
+                                (commit %ungoogled-revision)))
+            (file-name (git-file-name "ungoogled-chromium"
+                                      (string-take %ungoogled-revision 7)))
+            (sha256
+             (base32
+              "19w60b71rcccp32b7rcpw75kfg4sw2xfr32rfk0hcyaj5rq0mm69")))))
+
+    (origin
+      (method computed-origin-method)
+      (file-name (string-append "ungoogled-chromium-" %chromium-version ".tar.xz"))
+      (sha256 #f)
+      (uri
+       (delay
+         (with-imported-modules '((guix build utils))
+           #~(begin
+               (use-modules (guix build utils))
+               (let ((chromium-dir    (string-append "chromium-" #$%chromium-version))
+                     (preserved-files (list #$@%preserved-third-party-files)))
+
+                 (set-path-environment-variable
+                  "PATH" '("bin")
+                  (list #+(canonical-package patch)
+                        #+(canonical-package xz)
+                        #+(canonical-package tar)
+                        #+python-2
+                        #+python))
+
+                 (copy-recursively #+ungoogled-source "/tmp/ungoogled")
+
+                 (with-directory-excursion "/tmp/ungoogled"
+
+                   ;; Create a custom "bundle" that inherits from linux_rooted
+                   ;; and adds an additional patch.
+                   (format #t "Creating Guix config bundle...~%")
+                   (force-output)
+                   (mkdir-p "config_bundles/guix")
+                   (call-with-output-file "config_bundles/guix/bundlemeta.ini"
+                     (lambda (port)
+                       (format port
+                               "[bundle]
+display_name = GNU Guix
+depends = linux_rooted\n")))
+                   (call-with-output-file "config_bundles/guix/patch_order.list"
+                     (lambda (port)
+                       (format port "debian_buster/system/openjpeg.patch\n")))
+
+                   (format #t "Unpacking chromium tarball...~%")
+                   (force-output)
+                   (invoke "tar" "xf" #+chromium-source)
+
+                   (format #t "Ungooglifying...~%")
+                   (force-output)
+                   (invoke "python3" "run_buildkit_cli.py" "prune"
+                           "-b" "config_bundles/guix" chromium-dir)
+                   (invoke "python3" "run_buildkit_cli.py" "patches" "apply"
+                           "-b" "config_bundles/guix" chromium-dir)
+                   (invoke "python3" "run_buildkit_cli.py" "domains" "apply"
+                           "-b" "config_bundles/linux_rooted"
+                           "-c" "/tmp/domainscache.tar.gz" chromium-dir)
+
+                   (with-directory-excursion chromium-dir
+                     (format #t "Pruning third party files...~%")
+                     (force-output)
+                     (apply invoke "python"
+                             "build/linux/unbundle/remove_bundled_libraries.py"
+                             "--do-remove" preserved-files)
+
+                     (format #t "Replacing GN files...~%")
+                     (force-output)
+                     (invoke "python3" "build/linux/unbundle/replace_gn_files.py"
+                             "--system-libraries" "ffmpeg" "flac" "fontconfig"
+                             "freetype" "harfbuzz-ng" "icu" "libdrm" "libevent"
+                             "libjpeg" "libpng" "libvpx" "libwebp" "libxml"
+                             "libxslt" "openh264" "opus" "re2" "snappy" "yasm"
+                             "zlib"))
+
+                   (format #t (string-append "Packing new ungoogled tarball ...~%"))
+                   (force-output)
+                   (invoke "tar" "cvfa" #$output
+                           ;; Avoid non-determinism in the archive.
+                           "--mtime=@0"
+                           "--owner=root:0"
+                           "--group=root:0"
+                           "--sort=name"
+                           chromium-dir)
+
+                   #t)))))))))
+
+(define opus+custom
+  (package/inherit opus
+    (name "opus+custom")
+    (arguments
+     (substitute-keyword-arguments (package-arguments opus)
+       ((#:configure-flags flags ''())
+        ;; Opus Custom is an optional extension of the Opus
+        ;; specification that allows for unsupported frame
+        ;; sizes.  Chromium requires that this is enabled.
+        `(cons "--enable-custom-modes"
+               ,flags))))))
+
+(define-public ungoogled-chromium
+  (package
+    (name "ungoogled-chromium")
+    (version %chromium-version)
+    (synopsis "Graphical web browser")
+    (source ungoogled-chromium-source)
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f
+       ;; FIXME: Chromiums RUNPATH lacks entries for some libraries, so
+       ;; we have to disable validation and add a wrapper below.
+       #:validate-runpath? #f
+       #:modules ((guix build gnu-build-system)
+                  (guix build utils)
+                  (ice-9 ftw)
+                  (ice-9 regex)
+                  (srfi srfi-26))
+       #:configure-flags
+       ;; See tools/gn/docs/cookbook.md and
+       ;; https://www.chromium.org/developers/gn-build-configuration
+       ;; for usage.  Run "./gn args . --list" in the Release
+       ;; directory for an exhaustive list of supported flags.
+       ;; (Note: The 'configure' phase will do that for you.)
+       (list "is_debug=false"
+             "use_gold=false"
+             "use_lld=false"
+             "linux_use_bundled_binutils=false"
+             "use_custom_libcxx=false"
+             "use_sysroot=false"
+             "enable_precompiled_headers=false"
+             "goma_dir=\"\""
+             "enable_nacl=false"
+             "enable_nacl_nonsfi=false"
+             "use_allocator=\"none\""
+             "use_unofficial_version_number=false"
+             "treat_warnings_as_errors=false"
+             "use_official_google_api_keys=false"
+             "fieldtrial_testing_like_official_build=true"
+             "safe_browsing_mode=0"
+             "enable_mdns=false"
+             "enable_one_click_signin=false"
+             "enable_reading_list=false"
+             "enable_remoting=false"
+             "enable_reporting=false"
+             "enable_service_discovery=false"
+             "enable_swiftshader=false"
+             ;; Disable type-checking for the Web UI to avoid a Java dependency.
+             "closure_compile=false"
+
+             ;; Define a custom toolchain that simply looks up CC, AR and
+             ;; friends from the environment.
+             "custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+             "host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+             ;; Don't assume it's clang.
+             "is_clang=false"
+             ;; Disable debugging features to save space.  These are normally
+             ;; pulled in by "is_official_build", but that requires "is_clang".
+             "blink_symbol_level=0"
+             "enable_iterator_debugging=false"
+             "exclude_unwind_tables=true"
+             ;; Optimize for building everything at once, as opposed to
+             ;; incrementally for development.  See "docs/jumbo.md".
+             "use_jumbo_build=true"
+
+             ;; Prefer system libraries.
+             "use_system_freetype=true"
+             "use_system_harfbuzz=true"
+             "use_system_lcms2=true"
+             "use_system_libdrm=true"
+             "use_system_libjpeg=true"
+             "use_system_libpng=true"
+             "use_system_zlib=true"
+             "use_gnome_keyring=false"  ;deprecated by libsecret
+             "use_openh264=true"
+             "use_pulseaudio=true"
+             "link_pulseaudio=true"
+             "use_vaapi=true"
+
+             ;; Don't arbitrarily restrict formats supported by system ffmpeg.
+             "proprietary_codecs=true"
+             "ffmpeg_branding=\"Chrome\""
+
+             ;; WebRTC stuff.
+             "rtc_use_h264=true"
+             ;; Don't use bundled sources.
+             "rtc_build_json=false"
+             "rtc_build_libevent=false"
+             "rtc_build_libvpx=false"
+             "rtc_build_opus=false"
+             "rtc_build_ssl=false"
+             "rtc_build_libsrtp=true"   ;FIXME: fails to find headers
+             "rtc_build_usrsctp=true"   ;TODO: package this
+             (string-append "rtc_jsoncpp_root=\""
+                            (assoc-ref %build-inputs "jsoncpp")
+                            "/include/jsoncpp/json\"")
+             (string-append "rtc_ssl_root=\""
+                            (assoc-ref %build-inputs "openssl")
+                            "/include/openssl\""))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-stuff
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "printing/cups_config_helper.py"
+               (("cups_config =.*")
+                (string-append "cups_config = '" (assoc-ref inputs "cups")
+                               "/bin/cups-config'\n")))
+
+             (substitute*
+                 '("base/process/launch_posix.cc"
+                   "base/third_party/dynamic_annotations/dynamic_annotations.c"
+                   "sandbox/linux/seccomp-bpf/sandbox_bpf.cc"
+                   "sandbox/linux/services/credentials.cc"
+                   "sandbox/linux/services/namespace_utils.cc"
+                   "sandbox/linux/services/syscall_wrappers.cc"
+                   "sandbox/linux/syscall_broker/broker_host.cc")
+               (("include \"base/third_party/valgrind/") "include \"valgrind/"))
+
+             (for-each (lambda (file)
+                         (substitute* file
+                           ;; Fix opus include path.
+                           ;; Do not substitute opus_private.h.
+                           (("#include \"opus\\.h\"")
+                            "#include \"opus/opus.h\"")
+                           (("#include \"opus_custom\\.h\"")
+                            "#include \"opus/opus_custom.h\"")
+                           (("#include \"opus_defines\\.h\"")
+                            "#include \"opus/opus_defines.h\"")
+                           (("#include \"opus_multistream\\.h\"")
+                            "#include \"opus/opus_multistream.h\"")
+                           (("#include \"opus_types\\.h\"")
+                            "#include \"opus/opus_types.h\"")))
+                       (find-files (string-append "third_party/webrtc/modules"
+                                                  "/audio_coding/codecs/opus")))
+
+             (substitute* "chrome/common/chrome_paths.cc"
+               (("/usr/share/chromium/extensions")
+                ;; TODO: Add ~/.guix-profile.
+                "/run/current-system/profile/share/chromium/extensions"))
+
+             ;; XXX: Should be unnecessary when use_system_lcms2=true.
+             (substitute* "third_party/pdfium/core/fxcodec/codec/ccodec_iccmodule.h"
+               (("include \"third_party/lcms/include/lcms2\\.h\"")
+                "include \"lcms2.h\""))
+
+             (substitute*
+                 "third_party/breakpad/breakpad/src/common/linux/libcurl_wrapper.h"
+               (("include \"third_party/curl") "include \"curl"))
+
+             (substitute* "third_party/webrtc/rtc_base/strings/json.h"
+               (("#include \"third_party/jsoncpp/") "#include \"json/"))
+
+             (substitute* "media/base/decode_capabilities.cc"
+               (("third_party/libvpx/source/libvpx/") ""))
+
+             (substitute* "ui/gfx/skia_util.h"
+               (("third_party/vulkan/include/") ""))
+
+             ;; Building chromedriver embeds some files using the ZIP
+             ;; format which doesn't support timestamps before
+             ;; 1980. Therefore, advance the timestamps of the files
+             ;; which are included so that building chromedriver
+             ;; works.
+             (let ((circa-1980 (* 10 366 24 60 60)))
+               (for-each (lambda (file)
+                           (utime file circa-1980 circa-1980))
+                         '("chrome/test/chromedriver/extension/background.js"
+                           "chrome/test/chromedriver/extension/manifest.json")))
+
+             #t))
+         (add-before 'configure 'prepare-build-environment
+           (lambda* (#:key inputs #:allow-other-keys)
+
+             ;; Make sure the right build tools are used.
+             (setenv "AR" "ar") (setenv "NM" "nm")
+             (setenv "CC" "gcc") (setenv "CXX" "g++")
+
+             ;; Work around <https://bugs.gnu.org/30756>.
+             (unsetenv "C_INCLUDE_PATH")
+             (unsetenv "CPLUS_INCLUDE_PATH")
+
+             ;; TODO: pre-compile instead. Avoids a race condition.
+             (setenv "PYTHONDONTWRITEBYTECODE" "1")
+
+             ;; XXX: How portable is this.
+             (mkdir-p "third_party/node/linux/node-linux-x64")
+             (symlink (string-append (assoc-ref inputs "node") "/bin")
+                      "third_party/node/linux/node-linux-x64/bin")
+
+             #t))
+         (replace 'configure
+           (lambda* (#:key configure-flags #:allow-other-keys)
+             (let ((args (string-join configure-flags " ")))
+               ;; Generate ninja build files.
+               (invoke "gn" "gen" "out/Release"
+                       (string-append "--args=" args))
+
+               ;; Print the full list of supported arguments as well as
+               ;; their current status for convenience.
+               (format #t "Dumping configure flags...\n")
+               (invoke "gn" "args" "out/Release" "--list"))))
+         (replace 'build
+           (lambda* (#:key outputs #:allow-other-keys)
+             (invoke "ninja" "-C" "out/Release"
+                     "-j" (number->string (parallel-job-count))
+                     "chrome"
+                     "chromedriver")))
+         (replace 'install
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out            (assoc-ref outputs "out"))
+                    (bin            (string-append out "/bin"))
+                    (exe            (string-append bin "/chromium"))
+                    (lib            (string-append out "/lib"))
+                    (man            (string-append out "/share/man/man1"))
+                    (applications   (string-append out "/share/applications"))
+                    (install-regexp (make-regexp "\\.(bin|pak)$"))
+                    (locales        (string-append lib "/locales"))
+                    (resources      (string-append lib "/resources"))
+                    (preferences    (assoc-ref inputs "master-preferences"))
+                    (gtk+           (assoc-ref inputs "gtk+"))
+                    (mesa           (assoc-ref inputs "mesa"))
+                    (nss            (assoc-ref inputs "nss"))
+                    (udev           (assoc-ref inputs "udev"))
+                    (sh             (which "sh")))
+
+               (substitute* '("chrome/app/resources/manpage.1.in"
+                              "chrome/installer/linux/common/desktop.template")
+                 (("@@MENUNAME@@") "Chromium")
+                 (("@@PACKAGE@@") "chromium")
+                 (("/usr/bin/@@USR_BIN_SYMLINK_NAME@@") exe))
+
+               (mkdir-p man)
+               (copy-file "chrome/app/resources/manpage.1.in"
+                          (string-append man "/chromium.1"))
+
+               (mkdir-p applications)
+               (copy-file "chrome/installer/linux/common/desktop.template"
+                          (string-append applications "/chromium.desktop"))
+
+               (mkdir-p lib)
+               (copy-file preferences (string-append lib "/master_preferences"))
+
+               (with-directory-excursion "out/Release"
+                 (for-each (lambda (file)
+                             (install-file file lib))
+                           (scandir "." (cut regexp-exec install-regexp <>)))
+                 (copy-file "chrome" (string-append lib "/chromium"))
+
+                 ;; TODO: Install icons from "../../chrome/app/themes" into
+                 ;; "out/share/icons/hicolor/$size".
+                 (install-file
+                  "product_logo_48.png"
+                  (string-append out "/share/icons/48x48/chromium.png"))
+
+                 (copy-recursively "locales" locales)
+                 (copy-recursively "resources" resources)
+
+                 (mkdir-p bin)
+                 (symlink "../lib/chromium" exe)
+                 (install-file "chromedriver" bin)
+
+                 (wrap-program exe
+                   ;; TODO: Get these in RUNPATH.
+                   `("LD_LIBRARY_PATH" ":" prefix
+                     (,(string-append lib ":" nss "/lib/nss:" mesa "/lib:"
+                                      udev "/lib")))
+                   ;; Avoid file manager crash.  See <https://bugs.gnu.org/26593>.
+                   `("XDG_DATA_DIRS" ":" prefix (,(string-append gtk+ "/share"))))
+                 #t)))))))
+    (native-inputs
+     `(("bison" ,bison)
+       ("gcc" ,gcc-8)
+       ("gn" ,gn)
+       ("gperf" ,gperf)
+       ("ninja" ,ninja)
+       ("node" ,node)
+       ("pkg-config" ,pkg-config)
+       ("which" ,which)
+       ("yasm" ,yasm)
+
+       ;; This file contains defaults for new user profiles.
+       ("master-preferences" ,(local-file "aux-files/chromium/master-preferences.json"))
+
+       ("python-beautifulsoup4" ,python2-beautifulsoup4)
+       ("python-html5lib" ,python2-html5lib)
+       ("python" ,python-2)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("atk" ,atk)
+       ("cups" ,cups)
+       ("curl" ,curl)
+       ("dbus" ,dbus)
+       ("dbus-glib" ,dbus-glib)
+       ("expat" ,expat)
+       ("flac" ,flac)
+       ("ffmpeg" ,ffmpeg)
+       ("fontconfig" ,fontconfig)
+       ("freetype" ,freetype)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("harfbuzz" ,harfbuzz)
+       ("icu4c" ,icu4c)
+       ("jsoncpp" ,jsoncpp)
+       ("lcms" ,lcms)
+       ("libevent" ,libevent)
+       ("libffi" ,libffi)
+       ("libjpeg-turbo" ,libjpeg-turbo)
+       ("libpng" ,libpng)
+       ("libva" ,libva)
+       ("libvpx" ,libvpx)
+       ("libwebp" ,libwebp)
+       ("libx11" ,libx11)
+       ("libxcb" ,libxcb)
+       ("libxcomposite" ,libxcomposite)
+       ("libxcursor" ,libxcursor)
+       ("libxdamage" ,libxdamage)
+       ("libxext" ,libxext)
+       ("libxfixes" ,libxfixes)
+       ("libxi" ,libxi)
+       ("libxml2" ,libxml2)
+       ("libxrandr" ,libxrandr)
+       ("libxrender" ,libxrender)
+       ("libxscrnsaver" ,libxscrnsaver)
+       ("libxslt" ,libxslt)
+       ("libxtst" ,libxtst)
+       ("mesa" ,mesa)
+       ("minizip" ,minizip)
+       ("mit-krb5" ,mit-krb5)
+       ("nss" ,nss)
+       ("openh264" ,openh264)
+       ("openjpeg" ,openjpeg)                          ;PDFium only
+       ("openssl" ,openssl)
+       ("opus" ,opus+custom)
+       ("pango" ,pango)
+       ("pciutils" ,pciutils)
+       ("pulseaudio" ,pulseaudio)
+       ("re2" ,re2)
+       ("snappy" ,snappy)
+       ("speech-dispatcher" ,speech-dispatcher)
+       ("udev" ,eudev)
+       ("valgrind" ,valgrind)
+       ("vulkan-headers" ,vulkan-headers)))
+    (home-page "https://github.com/Eloston/ungoogled-chromium")
+    (description
+     "Ungoogled-Chromium is the Chromium web browser, with some functionality
+disabled in order to protect the users privacy.")
+    ;; Chromium is developed as BSD-3, but bundles a large number of third-party
+    ;; components with other licenses.  For full information, see chrome://credits.
+    (license (list license:bsd-3
+                   license:bsd-2
+                   license:expat
+                   license:asl2.0
+                   license:mpl1.1
+                   license:mpl2.0
+                   license:public-domain
+                   license:isc
+                   (license:non-copyleft "chrome://credits"
+                                         "See chrome://credits for more information.")
+                   license:lgpl2.1+))))
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 0c57f1c27b..4f4d71e469 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -1261,7 +1261,7 @@ or junctions, and always follows hard links.")
 (define-public unshield
   (package
     (name "unshield")
-    (version "1.4.2")
+    (version "1.4.3")
     (source
      (origin (method url-fetch)
              (uri (string-append "http://github.com/twogood/unshield/archive/"
@@ -1269,25 +1269,36 @@ or junctions, and always follows hard links.")
              (file-name (string-append name "-" version ".tar.gz"))
              (sha256
               (base32
-               "0x7ps644yp5dka2zhb8w0ifqmw3d255jafpzfwv8xbcpgq6fmm2x"))))
+               "1avv5c11jbmzwizq10pwvlh1dmyna8ccvpgacv95h4gbq26rg35a"))))
     (build-system cmake-build-system)
     (inputs
      `(("zlib" ,zlib)
        ("openssl" ,openssl)
-       ;; test data that is otherwise downloaded with curl
+       ;; Test data that is otherwise downloaded with curl.
        ("unshield-avigomanager11b22.zip"
         ,(origin
            (method url-fetch)
-           (uri (string-append "https://www.dropbox.com/s/8r4b6752swe3nhu/"
-                               "unshield-avigomanager11b22.zip?dl=1"))
+           (uri (string-append
+                 "https://www.dropbox.com/s/8r4b6752swe3nhu/"
+                 "unshield-avigomanager11b22.zip?dl=1"))
            (sha256
             (base32 "0fwq7lih04if68wpwpsk5wjqyvh32db76a41sq6gbx4dn1lc3ddn"))
            (file-name "unshield-avigomanager11b22.zip")))
+       ("unshield-baldurs_gate_patch_v1_1_4315_international.zip"
+        ,(origin
+           (method url-fetch)
+           (uri (string-append
+                 "https://www.dropbox.com/s/9ruil8oi6amjbbk/"
+                 "unshield-baldurs_gate_patch_v1_1_4315_international.zip?dl=1"))
+           (sha256
+            (base32 "0spaxf6dardlhqxz3ys09fzamj007q3nfyw4xng6gh3qp9780maj"))
+           (file-name "unshield-baldurs_gate_patch_v1_1_4315_international.zip")))
        ("unshield-the-feeble-files-spanish.zip"
         ,(origin
            (method url-fetch)
-           (uri (string-append "https://www.dropbox.com/s/1ng0z9kfxc7eb1e/"
-                               "unshield-the-feeble-files-spanish.zip?dl=1"))
+           (uri (string-append
+                 "https://www.dropbox.com/s/1ng0z9kfxc7eb1e/"
+                 "unshield-the-feeble-files-spanish.zip?dl=1"))
            (sha256
             (base32 "1k5cw6vnpja8yjlnhx5124xrw9i8s1l539hfdqqrqz3l5gn0bnyd"))
            (file-name "unshield-the-feeble-files-spanish.zip")))))
@@ -1303,6 +1314,7 @@ or junctions, and always follows hard links.")
                          (copy-file (assoc-ref inputs i)
                                     (string-append "test/v0/" i)))
                        '("unshield-avigomanager11b22.zip"
+                         "unshield-baldurs_gate_patch_v1_1_4315_international.zip"
                          "unshield-the-feeble-files-spanish.zip"))
              (substitute* (find-files "test/" "/*\\.sh")
                ;; Tests expect the unshield binary in a specific
@@ -1315,7 +1327,12 @@ or junctions, and always follows hard links.")
              (substitute* "test/v0/avigomanager.sh"
                (("test.zip")
                 (string-append (getcwd)
-                  "/test/v0/unshield-avigomanager11b22.zip")))
+                               "/test/v0/unshield-avigomanager11b22.zip")))
+             (substitute* "test/v0/baldurs_gate_patch_v1_1_4315_international.sh"
+               (("test.zip")
+                (string-append
+                 (getcwd)
+                 "/test/v0/unshield-baldurs_gate_patch_v1_1_4315_international.zip")))
              (substitute* "test/v0/the-feeble-files-spanish.sh"
                (("test.zip")
                 (string-append (getcwd)
diff --git a/gnu/packages/conky.scm b/gnu/packages/conky.scm
index 0da9f8438b..c3b72ea063 100644
--- a/gnu/packages/conky.scm
+++ b/gnu/packages/conky.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Siniša Biđin <sinisa@bidin.eu>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,6 +25,7 @@
   #:use-module (guix git-download)
   #:use-module (guix build-system cmake)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages curl)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages image)
   #:use-module (gnu packages lua)
@@ -34,15 +36,17 @@
 (define-public conky
   (package
     (name "conky")
-    (version "1.10.8")
+    (home-page "https://github.com/brndnmtthws/conky")
+    (version "1.11.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/brndnmtthws/conky/archive/v"
-                           version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit (string-append "v" version))))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0mw8xbnxr0a7yq2smzi2nln2b5n0q571vdrq6mhvs5n84xd6bg9f"))))
+        (base32 "0yalcpwx85smh6nnvxxsgqi344nk7jzlkkam7yjghm87df4v7xmx"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ; there are no tests
@@ -73,10 +77,10 @@
        ("libxft" ,libxft)
        ("libxinerama" ,libxinerama)
        ("lua" ,lua)
-       ("ncurses" ,ncurses)))
+       ("ncurses" ,ncurses)
+       ("curl" ,curl)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "https://github.com/brndnmtthws/conky")
     (synopsis "Lightweight system monitor for X")
     (description
      "Conky is a lightweight system monitor for X that displays operating
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 975884e881..b71906a8f5 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2018 Laura Lazzati <laura.lazzati.15@gmail.com>
 ;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2018 Brett Gilio <brettg@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2251,14 +2252,14 @@ available in a vignette.")
 (define-public r-lava
   (package
     (name "r-lava")
-    (version "1.6.4")
+    (version "1.6.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "lava" version))
        (sha256
         (base32
-         "0627cjlg55kzbzcy82w6wykmw2i57qhgfcabn2zy3ydfdswyxij1"))))
+         "13rlqdg42ylnz4hc932bl50xismrcr4d9ykcd9zs19cw5mckjx0f"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-numderiv" ,r-numderiv)
@@ -6589,19 +6590,19 @@ used to teach mathematics, statistics, computation and modeling.")
 (define-public r-raster
   (package
     (name "r-raster")
-    (version "2.8-4")
+    (version "2.8-19")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "raster" version))
        (sha256
         (base32
-         "14pcfznxm5kdwd908axkr9v1l0hzxlrwd8kwrz0liqnfh9cx5rsa"))))
+         "1lmhf7p7is8ai7lv7zsj2rdzf83j7ccl4x7a9vwxxa824zy4bkf4"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-rcpp" ,r-rcpp)
        ("r-sp" ,r-sp)))
-    (home-page "http://www.rspatial.org/")
+    (home-page "https://www.rspatial.org/")
     (synopsis "Geographic data analysis and modeling")
     (description
      "The package implements basic and high-level functions for reading,
@@ -10511,3 +10512,142 @@ tempering (function @code{temper}), and morphometric random walk
 Metropolis (function @code{morph.metrop}), which achieves geometric ergodicity
 by change of variable.")
     (license license:expat)))
+
+(define-public r-listenv
+  (package
+    (name "r-listenv")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "listenv" version))
+       (sha256
+        (base32
+         "0ma5jsri2zqkrlsm9nqpikl7imbwfy1glsmk13mblw0q245h49k1"))))
+    (build-system r-build-system)
+    (native-inputs
+     `(("r-r-rsp" ,r-r-rsp))) ; vignette builder
+    (home-page "https://github.com/HenrikBengtsson/listenv")
+    (synopsis "Environments behaving (almost) as lists")
+    (description
+     "This package implements list environments.  List environments are
+environments that have list-like properties.  For instance, the elements of a
+list environment are ordered and can be accessed and iterated over using index
+subsetting.")
+    (license license:lgpl2.1+)))
+
+(define-public r-globals
+  (package
+    (name "r-globals")
+    (version "0.12.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "globals" version))
+       (sha256
+        (base32
+         "0szyv1ayyk31bh3xqlkj43020w44xq6s4rw2bxwizyjssxm3b1br"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-codetools" ,r-codetools)))
+    (home-page "https://github.com/HenrikBengtsson/globals")
+    (synopsis "Identify global objects in R expressions")
+    (description
+     "This package provides tools to identify global (\"unknown\" or \"free\")
+objects in R expressions by code inspection using various strategies, e.g.
+conservative or liberal.  The objective of this package is to make it as
+simple as possible to identify global objects for the purpose of exporting
+them in distributed compute environments.")
+    (license license:lgpl2.1+)))
+
+(define-public r-future
+  (package
+    (name "r-future")
+    (version "1.11.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "future" version))
+       (sha256
+        (base32
+         "1s4lyqg4mm1drzc6czaalmhmxfjgp4nznb14ql5xzny9rprgz43i"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-digest" ,r-digest)
+       ("r-globals" ,r-globals)
+       ("r-listenv" ,r-listenv)))
+    (native-inputs
+     `(("r-r-rsp" ,r-r-rsp))) ; vignette builder
+    (home-page "https://github.com/HenrikBengtsson/future")
+    (synopsis "Unified parallel and distributed processing in R")
+    (description
+     "The purpose of this package is to provide a lightweight and unified
+Future API for sequential and parallel processing of R expression via futures.
+This package implements sequential, multicore, multisession, and cluster
+futures.  With these, R expressions can be evaluated on the local machine, in
+parallel a set of local machines, or distributed on a mix of local and remote
+machines.  Extensions to this package implement additional backends for
+processing futures via compute cluster schedulers etc.  Because of its unified
+API, there is no need to modify any code in order to switch from sequential on
+the local machine to, say, distributed processing on a remote compute cluster.")
+    (license license:lgpl2.1+)))
+
+(define-public r-future-apply
+  (package
+    (name "r-future-apply")
+    (version "1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "future.apply" version))
+       (sha256
+        (base32
+         "0b6v9rxvnnz13sydbgkapw71hx98fwdczjchgqnspjmq2340kdc0"))))
+    (properties `((upstream-name . "future.apply")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-future" ,r-future)
+       ("r-globals" ,r-globals)))
+    (native-inputs
+     `(("r-r-rsp" ,r-r-rsp))) ; vignette builder
+    (home-page "https://github.com/HenrikBengtsson/future.apply")
+    (synopsis "Apply function to elements in parallel using futures")
+    (description
+     "This package provides implementations of @code{apply()},
+@code{eapply()}, @code{lapply()}, @code{Map()}, @code{mapply()},
+@code{replicate()}, @code{sapply()}, @code{tapply()}, and @code{vapply()} that
+can be resolved using any future-supported backend, e.g. parallel on the local
+machine or distributed on a compute cluster.")
+    (license license:gpl2+)))
+
+(define-public r-rsvd
+  (package
+    (name "r-rsvd")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "rsvd" version))
+       (sha256
+        (base32
+         "0vjhrvnkl9rmvl8sv2kac5sd10z3fgxymb676ynxzc2pmhydy3an"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-matrix" ,r-matrix)))
+    (home-page "https://github.com/erichson/rSVD")
+    (synopsis "Randomized singular value decomposition")
+    (description
+     "Low-rank matrix decompositions are fundamental tools and widely used for
+data analysis, dimension reduction, and data compression.  Classically, highly
+accurate deterministic matrix algorithms are used for this task.  However, the
+emergence of large-scale data has severely challenged our computational
+ability to analyze big data.  The concept of randomness has been demonstrated
+as an effective strategy to quickly produce approximate answers to familiar
+problems such as the @dfn{singular value decomposition} (SVD).  This package
+provides several randomized matrix algorithms such as the randomized singular
+value decomposition (@code{rsvd}), randomized principal component
+analysis (@code{rpca}), randomized robust principal component
+analysis (@code{rrpca}), randomized interpolative decomposition (@code{rid}),
+and the randomized CUR decomposition (@code{rcur}).  In addition several plot
+functions are provided.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index ffef4ff8e4..92333753be 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -228,7 +228,7 @@ the wrong hands.")
 (define-public keyutils
   (package
     (name "keyutils")
-    (version "1.5.11")
+    (version "1.6")
     (source
      (origin
        (method url-fetch)
@@ -237,7 +237,7 @@ the wrong hands.")
                        version ".tar.bz2"))
        (sha256
         (base32
-         "1ddig6j5xjyk6g9l2wlqc7k1cgvryxdqbsv3c9rk1p3f42448n0i"))
+         "05bi5ja6f3h3kdi7p9dihlqlfrsmi1wh1r2bdgxc0180xh6g5bnk"))
        (modules '((guix build utils)))
        ;; Create relative symbolic links instead of absolute ones to /lib/*.
        (snippet '(begin
@@ -751,7 +751,7 @@ SHA256, SHA512, SHA3, AICH, ED2K, Tiger, DC++ TTH, BitTorrent BTIH, GOST R
          (replace 'check
            (lambda _ (invoke "./botan-test"))))))
     (native-inputs
-     `(("python" ,python-minimal-wrapper)
+     `(("python" ,python-wrapper)
        ("python-docutils" ,python-docutils)))
     (inputs
      `(("sqlite" ,sqlite)
diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm
index 12a82d1bb7..822fe17036 100644
--- a/gnu/packages/curl.scm
+++ b/gnu/packages/curl.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Roel Janssen <roel@gnu.org>
+;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -202,15 +203,14 @@ not offer a replacement for libcurl.")
 (define-public guile-curl
   (package
    (name "guile-curl")
-   (version "0.5")
+   (version "0.6")
    (source (origin
             (method url-fetch)
-            (uri (string-append
-                  "http://www.lonelycactus.com/tarball/guile-curl-"
-                  version ".tar.gz"))
+            (uri (string-append "http://www.lonelycactus.com/tarball/"
+                                "guile_curl-" version ".tar.gz"))
             (sha256
              (base32
-              "1846rxgc0ylh8768lr79irc7nwjichzb7qb7lzs2k42m0i53sc46"))))
+              "1pxdhnk288ky6gkpad8i60m0p6404rdvls43lr1b5d3csrklyc70"))))
    (build-system gnu-build-system)
    (arguments
     `(#:configure-flags (list (string-append
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 2a34f51285..052ebb847f 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -277,15 +277,14 @@ mapping from string keys to string values.")
 (define-public memcached
   (package
     (name "memcached")
-    (version "1.5.10")
+    (version "1.5.12")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
              "https://memcached.org/files/memcached-" version ".tar.gz"))
        (sha256
-        (base32
-         "0jqw3z0408yx0lzc6ykn4d29n02dk31kqnmq9b3ldmcnpl6hck29"))))
+        (base32 "0aav15f0lh8k4i62aza2bdv4s8vv65j38pz2zc4v45snd3arfby0"))))
     (build-system gnu-build-system)
     (inputs
      `(("libevent" ,libevent)
@@ -335,7 +334,7 @@ applications.")
     (native-inputs
      `(("valgrind" ,valgrind)
        ("perl" ,perl)
-       ("python" ,python2-minimal)
+       ("python" ,python-2)
        ("python2-pymongo" ,python2-pymongo)
        ("python2-pyyaml" ,python2-pyyaml)
        ("tzdata" ,tzdata)))
@@ -687,14 +686,14 @@ as a drop-in replacement of MySQL.")
 (define-public postgresql
   (package
     (name "postgresql")
-    (version "10.6")
+    (version "10.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://ftp.postgresql.org/pub/source/v"
                                   version "/postgresql-" version ".tar.bz2"))
               (sha256
                (base32
-                "0jv26y3f10svrjxzsgqxg956c86b664azyk2wppzpa5x11pjga38"))
+                "1piyfcrcqscjhnnwn91kdvr764s7d0qz4lgygf9bl6qc71ji1vdz"))
               (patches (search-patches "postgresql-disable-resolve_symlinks.patch"))))
     (build-system gnu-build-system)
     (arguments
@@ -734,26 +733,25 @@ pictures, sounds, or video.")
   (package
     (inherit postgresql)
     (name "postgresql")
-    (version "9.6.11")
+    (version "9.6.12")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://ftp.postgresql.org/pub/source/v"
                                   version "/postgresql-" version ".tar.bz2"))
               (sha256
                (base32
-                "0c55akrkzqd6p6a8hr0338wk246hl76r9j16p4zn3s51d7f0l99q"))))))
+                "114xay230xia2fagisxahs5fc2mza8hmmkr6ibd7nxllp938931f"))))))
 
 (define-public python-pymysql
   (package
     (name "python-pymysql")
-    (version "0.9.2")
+    (version "0.9.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "PyMySQL" version))
        (sha256
-        (base32
-         "0gvi63f1zq1bbd30x28kqyx351hal1yc323ckp0mihainb5n1iwy"))))
+        (base32 "1ry8lxgdc1p3k7gbw20r405jqi5lvhi5wk83kxdbiv8xv3f5kh6q"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-unittest2" ,python-unittest2)))
@@ -1638,7 +1636,7 @@ database.")
 (define-public perl-db-file
  (package
   (name "perl-db-file")
-  (version "1.842")
+  (version "1.843")
   (source
     (origin
       (method url-fetch)
@@ -1648,7 +1646,7 @@ database.")
              ".tar.gz"))
       (sha256
         (base32
-          "0w2d99vs9qarng2f9fpg3gchfdzy6an13507jhclcl8wv183h5hg"))))
+          "0sildz1i3fmh949w1scpjsyjx0cbmfw0yna3y70mc6vbwp8y696y"))))
   (build-system perl-build-system)
   (inputs `(("bdb" ,bdb)))
   (native-inputs `(("perl-test-pod" ,perl-test-pod)))
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index 0f4a654e62..ef4ddc9cbb 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,11 +31,13 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages glib)
   #:use-module (gnu packages golang)
   #:use-module (gnu packages code)
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pretty-print)
+  #:use-module (gnu packages readline)
   #:use-module (gnu packages virtualization)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1))
@@ -336,3 +339,36 @@ conditions.")
 intercepting file operations and changing random bits in the program's
 input.  Zzuf's behaviour is deterministic, making it easy to reproduce bugs.")
     (license (non-copyleft "http://www.wtfpl.net/txt/copying/"))))
+
+(define-public scanmem
+  (package
+    (name "scanmem")
+    (version "0.17")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/scanmem/scanmem")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "17p8sh0rj8yqz36ria5bp48c8523zzw3y9g8sbm2jwq7sc27i7s9"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("libtool" ,libtool)
+       ("intltool" ,intltool)
+       ("automake" ,automake)
+       ("autoconf" ,autoconf)))
+    (inputs
+     `(("readline" ,readline)))
+    (home-page "https://github.com/scanmem/scanmem")
+    (synopsis "Memory scanner")
+    (description "Scanmem is a debugging utility designed to isolate the
+address of an arbitrary variable in an executing process.  Scanmem simply
+needs to be told the pid of the process and the value of the variable at
+several different times.  After several scans of the process, scanmem isolates
+the position of the variable and allows you to modify its value.")
+    ;; The library is covered by LGPLv3 or later; the application is covered
+    ;; by GPLv3 or later.
+    (license (list lgpl3+ gpl3+))))
diff --git a/gnu/packages/dictionaries.scm b/gnu/packages/dictionaries.scm
index 8c39453650..e0cd7604b6 100644
--- a/gnu/packages/dictionaries.scm
+++ b/gnu/packages/dictionaries.scm
@@ -372,7 +372,7 @@ word (e.g. cats) into its lemma \"cat\" and the grammatical information
        ("flex" ,flex)
        ("pkg-config" ,pkg-config)
        ;; python is only required for running the test suite
-       ("python-minimal" ,python-minimal)))
+       ("python" ,python)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index dd424461d5..16fb2014b0 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -37,6 +37,7 @@
   #:use-module (gnu packages c)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages crypto)
   #:use-module (gnu packages cryptsetup)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
@@ -609,7 +610,7 @@ passphrases.")
 (define-public ndctl
   (package
     (name "ndctl")
-    (version "63")
+    (version "64.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -618,7 +619,7 @@ passphrases.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "060nsza8xic769bxj3pvl70a9885bwrc0myw16l095i3z6w7yzwq"))))
+                "1la82fqbdwjkw6il498nkdfgqc4aszv481xf2p9p07jfvankx24v"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("asciidoc" ,asciidoc)
@@ -635,6 +636,7 @@ passphrases.")
     (inputs
      `(("eudev" ,eudev)
        ("json-c" ,json-c)
+       ("keyutils" ,keyutils)
        ("kmod" ,kmod)
        ("util-linux" ,util-linux)))
     (arguments
diff --git a/gnu/packages/dlang.scm b/gnu/packages/dlang.scm
index c03c24d9e2..2530b8a3c7 100644
--- a/gnu/packages/dlang.scm
+++ b/gnu/packages/dlang.scm
@@ -249,8 +249,8 @@ bootstrapping more recent compilers written in D.")
                       (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
                       (invoke "make" "test" "-j" (number->string (parallel-job-count))))))))
       (native-inputs
-       `(("llvm" ,llvm)
-         ("clang" ,clang)
+       `(("llvm" ,llvm-6)
+         ("clang" ,clang-6)
          ("ldc" ,ldc-bootstrap)
          ("python-lit" ,python-lit)
          ("python-wrapper" ,python-wrapper)
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index dbd00271b1..1a6b29746a 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -364,15 +364,14 @@ to result in system-wide compromise.")
 (define-public unbound
   (package
     (name "unbound")
-    (version "1.8.1")
+    (version "1.9.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.unbound.net/downloads/unbound-"
                            version ".tar.gz"))
        (sha256
-        (base32
-         "0p9w6spar5dfi7fplxjcq4394wldabaws0ns30cqq6sxqfwv6qn3"))))
+        (base32 "05xrb8havr2vgjsdy7n85kgnvk1mg7qwhjp4a8n6pg4jhd5zjnj1"))))
     (build-system gnu-build-system)
     (outputs '("out" "python"))
     (native-inputs
@@ -387,7 +386,7 @@ to result in system-wide compromise.")
        ("openssl" ,openssl)))
     (arguments
      `(#:configure-flags
-       (list "--disable-static" ;save space and non-determinism in libunbound.a
+       (list "--disable-static" ; save space and non-determinism in libunbound.a
              (string-append
               "--with-ssl=" (assoc-ref %build-inputs "openssl"))
              (string-append
diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm
index b340f8d4a0..7cb8f96258 100644
--- a/gnu/packages/docker.scm
+++ b/gnu/packages/docker.scm
@@ -162,7 +162,7 @@ Python without keeping their credentials in a Docker configuration file.")
 (define-public containerd
   (package
     (name "containerd")
-    (version "1.2.2")
+    (version "1.2.4")
     (source
      (origin
       (method git-fetch)
@@ -171,8 +171,7 @@ Python without keeping their credentials in a Docker configuration file.")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
-       (base32
-        "065snv0s3v3z0ghadlii4w78qnhchcbx2kfdrvm8fk8gb4pkx1ya"))))
+       (base32 "1rw7f0y3iv0mapxid1rgpns80dcy8nhgmxmw27x8qzrzic5viivy"))))
     (build-system go-build-system)
     (arguments
      `(#:import-path "github.com/containerd/containerd"
@@ -397,6 +396,7 @@ network attachments.")
              ;; Timeouts after 5 min.
              (delete-file "plugin/manager_linux_test.go")
              ;; Operation not permitted.
+             (delete-file "daemon/graphdriver/btrfs/btrfs_test.go")
              (delete-file "daemon/graphdriver/overlay/overlay_test.go")
              (delete-file "daemon/graphdriver/overlay2/overlay_test.go")
              #t))
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 957c9ea613..cedc1efbc8 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -41,6 +41,7 @@
 ;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com>
 ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
 ;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2018, 2019 Brett Gilio <brettg@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -5052,7 +5053,7 @@ target will call @code{compile} on it.")
 (define-public emacs-cider
   (package
     (name "emacs-cider")
-    (version "0.18.0")
+    (version "0.20.0")
     (source
      (origin
        (method git-fetch)
@@ -5062,7 +5063,7 @@ target will call @code{compile} on it.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1m9kc88vga3q5d731qnpngnsa0n57pf21k3hll20rw8rggrx4vdn"))))
+         "0lfhzg9c931jbx27hpshk3l76gwbp6ggf668sqa77xrvymwdlsnw"))))
     (build-system emacs-build-system)
     (arguments
      '(#:exclude                        ; Don't exclude 'cider-test.el'.
@@ -5207,8 +5208,8 @@ extensions.")
     (license license:gpl3+)))
 
 (define-public emacs-evil-collection
-  (let ((commit "0cfdf4ecf0420aac2a9dd29ff7b54067c3433d71")
-        (revision "6"))
+  (let ((commit "e7b57aae0131634d0da5e599717a86c4b3ca6092")
+        (revision "7"))
     (package
       (name "emacs-evil-collection")
       (version (git-version "0.0.1" revision commit))
@@ -5220,7 +5221,7 @@ extensions.")
                 (file-name (string-append name "-" version "-checkout"))
                 (sha256
                  (base32
-                  "1igsvgxvij918myc397cjhfybmm11znc7961vnbcd5xlviq2p01y"))))
+                  "1g7bxvgnsikpxxdimy0lymn3xz53fari048l827sjyw5kxi59d20"))))
       (build-system emacs-build-system)
       (propagated-inputs
        `(("emacs-evil" ,emacs-evil)))
@@ -6547,14 +6548,14 @@ which code derived from Kelvin H's org-page.")
 (define-public emacs-xelb
   (package
     (name "emacs-xelb")
-    (version "0.16")
+    (version "0.17")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://elpa.gnu.org/packages/xelb-"
                                   version ".tar"))
               (sha256
                (base32
-                "03wsr1jr7f7zfd80h864rd4makwh4widdnj1kjv2xyjwdgap9rl8"))))
+                "0k98580vq253fjdgklgqlwl450saninfw39fbq8lv3xsnp3dcgml"))))
     (build-system emacs-build-system)
     ;; The following functions and variables needed by emacs-xelb are
     ;; not included in emacs-minimal:
@@ -6586,7 +6587,7 @@ It should enable you to implement low-level X11 applications.")
 (define-public emacs-exwm
   (package
     (name "emacs-exwm")
-    (version "0.21")
+    (version "0.22")
     (synopsis "Emacs X window manager")
     (source (origin
               (method url-fetch)
@@ -6594,7 +6595,7 @@ It should enable you to implement low-level X11 applications.")
                                   version ".tar"))
               (sha256
                (base32
-                "07ng1pgsnc3isfsyzh2gfc7391p9il8lb5xqf1z6yqn20w7k6xzj"))))
+                "0lppm8ng37i5s4x7xdrxhjbdcnpl6pyvn4g7w52zbckjsn8qnqh0"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-xelb" ,emacs-xelb)))
@@ -9205,8 +9206,8 @@ navigate and display hierarchy structures.")
       (license license:gpl3+))))
 
 (define-public emacs-pulseaudio-control
-  (let ((commit "1da372ec79f5d2fb901d1f9f0679fee8848fd011")
-        (revision "2"))
+  (let ((commit "7e1a87068379075a5e9ce36c64c686c03d20d379")
+        (revision "3"))
     (package
       (name "emacs-pulseaudio-control")
       (version (git-version "0.0.1" revision commit))
@@ -9219,7 +9220,7 @@ navigate and display hierarchy structures.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "02xrsms2pjqdk6327midi61i5vg2h9cq5jwaxv43ldm68wl7hi6k"))))
+           "0wcaqyh15x56255rrj350089z15pnwixa2vf0ly6dv0hjmzmh3mr"))))
       (build-system emacs-build-system)
       (arguments
        '(#:phases (modify-phases %standard-phases
@@ -9625,6 +9626,32 @@ until the top-level form is no longer a macro call.")
     (description "Execute menu items as commands, with completion.")
     (license license:gpl3)))
 
+(define-public emacs-isearch-prop
+  (let ((commit "5e9dc44cf582d998aaa73ccd4d07cbda01248156")
+        (revision "1"))
+    (package
+      (name "emacs-isearch-prop")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/emacsmirror/isearch-prop.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1xawppy705ybsgx566zvj8zk2aajq0sqvhvfs7nijqq32lx0a2zl"))))
+      (build-system emacs-build-system)
+      (home-page "https://www.emacswiki.org/emacs/isearch-prop.el")
+      (synopsis "Extensions to @code{isearch.el}")
+      (description "The Emacs library @code{isearch-prop.el} lets you search within
+  contexts.  You can limit incremental search to a set of zones of
+  buffer text, search contexts that in effect constitute a multi-region.
+  These zones can be defined in various ways, including some ways
+  provided specially by this library.")
+      (license license:gpl3+))))
+
 (define-public emacs-company-lua
   (let ((commit "0be8122f3adf57ad27953bf4b03545d6298d3da4"))
     (package
@@ -10645,27 +10672,26 @@ keep Parens and Indentation inline with one another.")
     (license license:gpl3+)))
 
 (define-public emacs-helm-eww
-  (let ((commit "9d36acc433bcf689598b1b4d7d47c9aeb84d6b44"))
-    (package
-      (name "emacs-helm-eww")
-      (version (git-version "0.1" "3" commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/emacs-helm/helm-eww.git")
-                      (commit commit)))
-                (file-name (string-append name "-" version "-checkout"))
-                (sha256
-                 (base32
-                  "06gnf84gx6qbhcw1h5jhjnvcdxkdpv0npm53x3pgqybbll5rn5dy"))))
-      (propagated-inputs
-       `(("emacs-helm" ,emacs-helm)))
-      (build-system emacs-build-system)
-      (home-page "https://github.com/emacs-helm/helm-eww/")
-      (synopsis "Helm interface to EWW")
-      (description "This package provides a Helm interface for EWW buffers,
+  (package
+    (name "emacs-helm-eww")
+    (version "1.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/emacs-helm/helm-eww.git")
+                    (commit version)))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "0dvlp7y6kqc4azg5b7jx5lz2rwd0ia7y0y3hcj9y23zd88r73lg7"))))
+    (propagated-inputs
+     `(("emacs-helm" ,emacs-helm)))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/emacs-helm/helm-eww/")
+    (synopsis "Helm interface to EWW")
+    (description "This package provides a Helm interface for EWW buffers,
 bookmarks and history.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-stumpwm-mode
   (let ((commit "8fbe071d2c6c040794060a354eb377218dc10b35")
@@ -12457,26 +12483,25 @@ correctly.")
       (license license:gpl2+))))
 
 (define-public emacs-helm-slime
-  (let ((commit "9980925f3e5f6ac5a30369d2a544e82006a79c76"))
-    (package
-      (name "emacs-helm-slime")
-      (version (git-version "0.0.0" "1" commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/emacs-helm/helm-slime")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0xa07gpfkzwn522x9573mq5mfxvbawdgd0m93gqj6w5a14wk8zzh"))))
-      (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-helm" ,emacs-helm)
-         ("emacs-slime" ,emacs-slime)))
-      (home-page "https://github.com/emacs-helm/helm-slime")
-      (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
-      (description "Helm-SLIME defines a few new commands:
+  (package
+    (name "emacs-helm-slime")
+    (version "0.2.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/emacs-helm/helm-slime")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0vn93vv2wclnwq6f480z14jn9wfp0ylhp5dd48ycc9jicfsnxqfj"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-helm" ,emacs-helm)
+       ("emacs-slime" ,emacs-slime)))
+    (home-page "https://github.com/emacs-helm/helm-slime")
+    (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
+    (description "Helm-SLIME defines a few new commands:
 
 @itemize
 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
@@ -12484,7 +12509,7 @@ correctly.")
 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
 @end itemize\n")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-gtk-look
   (package
@@ -13110,3 +13135,51 @@ mostly geared towards Common Lisp, but some are useful for other Lisp
 dialects, too.  Redshank's code transformations aim to be expression-based (as
 opposed to character-based).")
       (license license:gpl1+))))
+
+(define-public emacs-disk-usage
+  (package
+    (name "emacs-disk-usage")
+    (version "1.1.0")
+    (home-page "https://gitlab.com/ambrevar/emacs-disk-usage.git")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url home-page)
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1c9jmjn8vf0v4776v79pc5w0labfs4v9aysbv2w9423rg4mangbg"))))
+    (build-system emacs-build-system)
+    (synopsis "Sort and browse disk usage listings with Emacs")
+    (description "Disk Usage is a file system analyzer: it offers a tabulated
+view of file listings sorted by size.  Directory sizes are computed
+recursively.  The results are cached for speed.")
+    (license license:gpl3+)))
+
+(define-public emacs-orgit
+  (let ((commit "ddb830c38cb71e5cf86db7fa62d6ee88ab3962d5"))
+    (package
+      (name "emacs-orgit")
+      (version (git-version "1.5.1" "1" commit))
+      (home-page "https://github.com/magit/orgit")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url home-page)
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0fy4n71yskfkjl6w9mzrw3pfd5lp8f48g2c9bxiwg7mwzsmsb9nb"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-dash" ,emacs-dash)
+         ("emacs-magit" ,emacs-magit)))
+      (synopsis "Support for Org links to Magit buffers")
+      (description "This package defines several Org link types, which can be
+used to link to certain Magit buffers.  Use the command
+@command{org-store-link} while such a buffer is current to store a link.
+Later you can insert it into an Org buffer using the command
+@code{org-insert-link}.")
+      (license license:gpl3+))))
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index ad7ae18781..9dab778de2 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2017, 2018 Theodoros Foradis <theodoros@foradis.org>
 ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2018 Jonathan Brielmaier <jonathan.brielmaier@web.de>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
@@ -606,17 +606,18 @@ ready for production.")
 (define-public gerbv
   (package
     (name "gerbv")
-    (version "2.6.2")
+    (version "2.7.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/gerbv/gerbv/gerbv-"
                                   version "/gerbv-" version ".tar.gz"))
               (sha256
                (base32
-                "1cw8k6ni0q8kswad03kha86fk7n06vq8p0wzsfhcnalsdshrn17i"))))
+                "1d2k43k7i4yvbpi4sw1263a8d0q98z2n7aqhmpinpkih8a681vn5"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("glib:bin" ,glib "bin")         ; for glib-compile-schemas, etc.
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("cairo" ,cairo)
        ("gtk" ,gtk+-2)
diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm
index bc4bbd876a..aeef2f340c 100644
--- a/gnu/packages/flashing-tools.scm
+++ b/gnu/packages/flashing-tools.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Jonathan Brielmaier <jonathan.brielmaier@web.de>
 ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -341,16 +341,16 @@ referred to as the \"Odin 3 protocol\".")
 (define-public ifdtool
   (package
     (name "ifdtool")
-    (version "4.7")
+    (version "4.9")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://review.coreboot.org/p/coreboot")
+                    (url "https://github.com/coreboot/coreboot.git")
                     (commit version)))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0nw555i0fm5kljha9h47bk70ykbwv8ddfk6qhz6kfqb79vzhy4h2"))))
+                "0jidj29jh6p65d17k304wlzhxvp4p3c2namgcdwg2sxq8jfr0zlm"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
@@ -359,12 +359,12 @@ referred to as the \"Odin 3 protocol\".")
              (string-append "PREFIX=" (assoc-ref %outputs "out")))
        #:phases
        (modify-phases %standard-phases
-        (add-after 'unpack 'chdir
-          (lambda _
-            (chdir "util/ifdtool")
-            #t))
-        (delete 'configure)
-        (delete 'check))))
+         (add-after 'unpack 'chdir
+           (lambda _
+             (chdir "util/ifdtool")
+             #t))
+         (delete 'configure))           ; no configure script
+       #:tests? #f))                    ; no test suite
     (home-page "https://github.com/corna/me_cleaner/")
     (synopsis "Intel Firmware Descriptor dumper")
     (description "This package provides @command{ifdtool}, a program to
diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm
index bc44d7537a..916f8f6b0e 100644
--- a/gnu/packages/ftp.scm
+++ b/gnu/packages/ftp.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2014, 2015, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -175,7 +175,7 @@ as required.")
      (origin
        (method url-fetch)
        (uri (string-append "https://download.filezilla-project.org/"
-                           name "/" name "-" version ".tar.bz2"))
+                           "libfilezilla/libfilezilla-" version ".tar.bz2"))
        (sha256
         (base32
          "17zlhw5b1a7jzh50cbpy2is3sps5lnzch5yf9qm7mwrviw9c8j10"))))
@@ -209,14 +209,14 @@ output.
 (define-public filezilla
   (package
     (name "filezilla")
-    (version "3.39.0")
+    (version "3.40.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.filezilla-project.org/client/"
                            "FileZilla_" version "_src.tar.bz2"))
        (sha256
-        (base32 "0ks42q6mi3qx85zpa98izkyficv2bdh3jnvmy97xjnjyfy9mwlgv"))))
+        (base32 "11b0410fcwrahq5dd7ph10bc09m62sxra4bjp0kj5gph822s0v63"))))
     (build-system gnu-build-system)
     (arguments
       ;; Don't let filezilla phone home to check for updates.
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 6b641be0ef..ac01cb3f2f 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -8,7 +8,7 @@
 ;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017, 2018 Julian Graham <joolean@gmail.com>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
 ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
@@ -431,7 +431,7 @@ support.")
 (define-public tiled
   (package
     (name "tiled")
-    (version "1.2.1")
+    (version "1.2.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -440,7 +440,7 @@ support.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1dl06k2p0r7l20ghxcq5sn7j0jl2l8q4m27vmfs2qfgvldjll2h3"))))
+                "0ay4x1b6h5xfax1cqry2fklcmqi6a16klgmci4gkhga7as66lnnn"))))
     (build-system gnu-build-system)
     (inputs
      `(("qtbase" ,qtbase)
@@ -641,17 +641,15 @@ programming language.")
 (define-public allegro-4
   (package
     (name "allegro")
-    (version "4.4.2")
+    (version "4.4.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/liballeg/allegro5/"
                                   "releases/download/" version "/allegro-"
                                   version ".tar.gz"))
-              (patches (search-patches
-                        "allegro4-mesa-18.2.5-and-later.patch"))
               (sha256
                (base32
-                "1p0ghkmpc4kwij1z9rzxfv7adnpy4ayi0ifahlns1bdzgmbyf88v"))))
+                "1d5ws3ihvpa6f4qc6a6drq31pajw6bblxifr4kcxzqj9br1nw28y"))))
     (build-system cmake-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index de53ac798d..0832b1ef63 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -24,7 +24,7 @@
 ;;; Copyright © 2016 Steve Webber <webber.sl@gmail.com>
 ;;; Copyright © 2017 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@hyperbola.info>
 ;;; Copyright © 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 nee <nee-git@hidamari.blue>
 ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
@@ -656,7 +656,7 @@ destroying an ancient book using a special wand.")
 (define-public gnubg
   (package
     (name "gnubg")
-    (version "1.06.001")
+    (version "1.06.002")
     (source
      (origin
        (method url-fetch)
@@ -664,7 +664,7 @@ destroying an ancient book using a special wand.")
                            version "-sources." "tar.gz"))
        (sha256
         (base32
-         "0snz3j1bvr25ji7lg82bl2gm2s2x9lrpc7viw0hclgz0ql74cw7b"))))
+         "11xwhcli1h12k6rnhhyq4jphzrhfik7i8ah3k32pqw803460n6yf"))))
     (build-system gnu-build-system)
     (inputs `(("glib" ,glib)
               ("readline" ,readline)
@@ -2143,22 +2143,22 @@ Battle for Wesnoth}.")))
 (define-public gamine
   (package
     (name "gamine")
-    (version "1.5")
+    (version "1.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/gamine-game/"
                                   "gamine-" version ".tar.gz"))
               (sha256
                (base32
-                "08wnk7w84c2413hwny89j2cn89cvfdf67bfc6wl0bf475if0mf4h"))))
+                "1sc6f4445ciigd6yw0ri92746k4hk6ps0bvj9fm1gbp3c3fslk5n"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("intltool" ,intltool)))
     (inputs
      `(("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base) ;playbin plugin
-       ("gst-plugins-good" ,gst-plugins-good) ;for wav playback
+       ("gst-plugins-base" ,gst-plugins-base) ; playbin plugin
+       ("gst-plugins-good" ,gst-plugins-good) ; for wav playback
        ("gtk+" ,gtk+)))
     (arguments
      `(#:tests? #f
@@ -2413,7 +2413,7 @@ OpenGFX provides you with...
     (build-system gnu-build-system)
     (native-inputs
      `(("catcodec" ,catcodec)
-       ("python" ,python2-minimal)))
+       ("python" ,python-2)))
     (arguments
      `(#:make-flags
        (list (string-append "INSTALL_DIR=" %output
@@ -2450,7 +2450,7 @@ the original Transport Tycoon Deluxe.")
          "0nskq97a6fsv1v6d62zf3yb8whzhqnlh3lap3va3nzvj7csjgf7c"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("python" ,python2-minimal)))
+     `(("python" ,python-2)))
     (arguments
      `(#:make-flags
        (list (string-append "INSTALL_DIR=" %output
@@ -3428,22 +3428,23 @@ the GNU GPL.")
 (define-public tintin++
   (package
     (name "tintin++")
-    (version "2.01.5")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://sourceforge/tintin"
-                                  "/TinTin++ Source Code/" version
-                                  "/tintin" "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0pnnbcm96xbj69358568rpvp164rjmcvhnnzs7nvj062pi2hqcxx"))))
+    (version "2.01.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/tintin/TinTin++ Source Code/"
+                           (version-major+minor version)
+                           "/tintin-" version ".tar.gz"))
+       (sha256
+        (base32
+         "033n84pyxml3n3gd4dq0497n9w331bnrr1gppwipz9ashmq8jz7v"))))
     (inputs
      `(("gnutls" ,gnutls)
        ("pcre" ,pcre)
        ("readline" ,readline)
        ("zlib" ,zlib)))
     (arguments
-     '(#:tests? #f ; no test suite
+     '(#:tests? #f                      ; no test suite
        #:phases
        (modify-phases %standard-phases
          ;; The source is in tt/src.
@@ -4110,9 +4111,8 @@ small robot living in the nano world, repair its maker.")
 (define-public teeworlds
   (package
     (name "teeworlds")
-    (version "0.7.0")
+    (version "0.7.2")
     (source (origin
-              ;; do not use auto-generated tarballs
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/teeworlds/teeworlds.git")
@@ -4120,7 +4120,7 @@ small robot living in the nano world, repair its maker.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0jigg2yikihbivzs7hpljr0mghx1l9v4f1cdr8fbmqv2wb51ah8q"))
+                "15l988qcsqgb6rjais0qd5sd2rjanm2708jmzvkariqzz0d6pb93"))
               (modules '((guix build utils)
                          (ice-9 ftw)
                          (ice-9 regex)
@@ -4137,7 +4137,7 @@ small robot living in the nano world, repair its maker.")
                (search-patches "teeworlds-use-latest-wavpack.patch"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; no tests included
+     `(#:tests? #f                      ; no tests included
        #:modules ((guix build gnu-build-system)
                   (guix build utils)
                   (srfi srfi-26))
@@ -4299,17 +4299,17 @@ with the mouse isn’t always trivial.")
 (define-public chroma
   (package
     (name "chroma")
-    (version "1.15")
+    (version "1.16")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://level7.org.uk/chroma/download/chroma-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "0nzm3j5wjazr1d6pkydqlc48sjf72hggq0hmx8mhq03114mmiir5"))))
+                "1gfaw1kf7cxf5ibr61n6dxjihi49gmysn4cvawx1pqvy52ljpk0p"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f)) ; no tests included
+     `(#:tests? #f))                    ; no tests included
     (inputs
      `(("sdl-union" ,(sdl-union (list sdl sdl-image sdl-mixer sdl-ttf)))
        ("freetype" ,freetype)
@@ -4954,16 +4954,16 @@ some graphical niceities, and numerous bug-fixes and other improvements.")
   (package
     (inherit quakespasm)
     (name "vkquake")
-    (version "1.00.0")
+    (version "1.01.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/Novum/vkQuake/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Novum/vkQuake.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0bviv18jvp41jvrabgl7l5kq4n1p6p3rywij481yswawdw6l5idh"))))
+        (base32 "1iwin8j5kbyrknbkhjgpy8nmm7pxqzr0daa9gn7p38qhg2mh0a39"))))
     (arguments
      `(#:make-flags
        (let ((vulkanlib (string-append (assoc-ref %build-inputs
@@ -5382,7 +5382,7 @@ Strife, Chex Quest, and fan-created games like Harmony, Hacx and Freedoom.")
 (define-public fortune-mod
   (package
     (name "fortune-mod")
-    (version "2.6.1")
+    (version "2.6.2")
     (source
      (origin
        (method git-fetch)
@@ -5392,7 +5392,7 @@ Strife, Chex Quest, and fan-created games like Harmony, Hacx and Freedoom.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "17183z8ls6hrngh8a3374csagqa2acs8jl21dqm7gwj4lk0ghkba"))))
+         "11xff87s8ifw2dqs90n0rjq0psv4i7ykybygmibsqjj7id3xxw4c"))))
     (build-system cmake-build-system)
     (arguments
      `(#:test-target "check"
diff --git a/gnu/packages/gd.scm b/gnu/packages/gd.scm
index a53a4f2c2f..c08c1f6758 100644
--- a/gnu/packages/gd.scm
+++ b/gnu/packages/gd.scm
@@ -39,6 +39,7 @@
 (define-public gd
   (package
     (name "gd")
+    (replacement gd/fixed)
     ;; Note: With libgd.org now pointing to github.com, genuine old
     ;; tarballs are no longer available.  Notably, versions 2.0.x are
     ;; missing.
@@ -94,6 +95,16 @@ most common applications of GD involve website development.")
                            "See COPYING file in the distribution."))
     (properties '((cpe-name . "libgd")))))
 
+(define-public gd/fixed
+  (hidden-package
+    (package
+      (inherit gd)
+      (source (origin
+                (inherit (package-source gd))
+                (patches (append (origin-patches (package-source gd))
+                                 (search-patches "gd-CVE-2019-6977.patch"
+                                                 "gd-CVE-2019-6978.patch"))))))))
+
 (define-public perl-gd
   (package
     (name "perl-gd")
diff --git a/gnu/packages/genimage.scm b/gnu/packages/genimage.scm
new file mode 100644
index 0000000000..792bddf5a5
--- /dev/null
+++ b/gnu/packages/genimage.scm
@@ -0,0 +1,194 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages genimage)
+  #:use-module (guix utils)
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build utils)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
+  #:use-module (gnu packages bootloaders)
+  #:use-module (gnu packages cdrom)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages cpio)
+  #:use-module (gnu packages disk)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages mtools)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages virtualization)
+  #:use-module (gnu packages wm))
+
+(define-public genimage
+  (package
+    (name "genimage")
+    (version "10")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/pengutronix/genimage.git")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "0had00p2why2l1fl14mq7nbhmmfbd3na4qnnpg36akdy05g67jbn"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'guixify
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Note to maintainers: Check ".def =" lines in source.
+             (substitute* "config.c"
+              (("\\.def = \"cpio\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "cpio")
+                              "/bin/cpio\""))
+              (("\\.def = \"dd\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "coreutils")
+                              "/bin/dd\""))
+              (("\\.def = \"debugfs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "e2fsprogs")
+                              "/sbin/debugfs\""))
+              (("\\.def = \"e2fsck\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "e2fsprogs")
+                              "/sbin/e2fsck\""))
+              (("\\.def = \"genext2fs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "genext2fs")
+                              "/bin/genext2fs\""))
+              (("\\.def = \"genisoimage\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "cdrkit-libre")
+                              "/bin/genisoimage\""))
+              (("\\.def = \"mcopy\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "mtools")
+                              "/bin/mcopy\""))
+              (("\\.def = \"mmd\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "mtools")
+                              "/bin/mmd\""))
+              ;;; Note: mkcramfs is obsolete.
+              (("\\.def = \"mkdosfs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "dosfstools")
+                              "/sbin/mkfs.fat\""))
+              (("\\.def = \"mke2fs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "e2fsprogs")
+                              "/sbin/mke2fs\""))
+              (("\\.def = \"mkfs\\.jffs2\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "mtd-utils")
+                              "/sbin/mkfs.jffs2\""))
+              (("\\.def = \"mkfs\\.ubifs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "mtd-utils")
+                              "/sbin/mkfs.ubifs\""))
+              (("\\.def = \"mksquashfs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "squashfs-tools")
+                              "/bin/mksquashfs\""))
+              (("\\.def = \"qemu-img\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "qemu")
+                              "/bin/qemu-img\""))
+              (("\\.def = \"tar\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "tar")
+                              "/bin/tar\""))
+              (("\\.def = \"tune2fs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "e2fsprogs")
+                              "/sbin/tune2fs\""))
+              (("\\.def = \"ubinize\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "mtd-utils")
+                              "/sbin/ubinize\""))
+              (("\\.def = \"mkimage\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "u-boot-tools")
+                              "/bin/mkimage\"")))
+             (substitute* "test/basic-images.test"
+              ;; Work around bug in sharness.sh.
+              (("mkdosfs")
+               "mkfs.fat")
+              ;; Work around bug in sharness.sh.
+              (("dd,mkfs\\.fat,mcopy")
+               "dd,mkfs_fat,mcopy")
+              ;; Should be in the next upstream release.
+              (("qemu_img") "qemu-img"))
+             (substitute* "util.c"
+              (("\"/bin/sh\"")
+               (string-append "\"" (assoc-ref inputs "bash") "/bin/sh\"")))
+             ;; We don't have /etc/passwd so uid 0 is not known as "root".
+             ;; Thus patch it out.
+             (substitute* '("test/ext2test.dump"
+                            "test/ext3test.dump"
+                            "test/ext4test.dump"
+                            "test/mke2fs.dump")
+              (("root") "unknown"))
+             #t))
+         (add-before 'check 'setenv-check
+           (lambda _
+             ;; Our container doesn't provide access to /etc/mtab
+             (setenv "EXT2FS_NO_MTAB_OK" "1")
+             ;; Make test reproducible
+             (setenv "GENIMAGE_MKFJFFS2" "mkfs.jffs2 -U")
+             (setenv "GENIMAGE_MKE2FS" "mke2fs -E no_copy_xattrs")
+             #t))
+         (replace 'check
+           (lambda _
+             (invoke "make" "TEST_LOG_COMPILER=" "check"))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ;;; Note: cramfs is obsolete.
+       ("dtc" ,dtc) ; for the tests
+       ("fdisk" ,fdisk) ; for the tests
+       ("pkg-config" ,pkg-config)
+       ("util-linux" ,util-linux))) ; for the tests
+    (inputs
+     `(("bash" ,bash)
+       ("cdrkit-libre" ,cdrkit-libre)
+       ("cpio" ,cpio)
+       ;; Note: invoked by final executable.
+       ("coreutils" ,coreutils) ; chmod, dd
+       ("dosfstools" ,dosfstools)
+       ("e2fsprogs" ,e2fsprogs)
+       ("genext2fs" ,genext2fs)
+       ("libconfuse" ,libconfuse)
+       ("mtd-utils" ,mtd-utils)
+       ("mtools" ,mtools)
+       ("qemu" ,qemu-minimal)
+       ("squashfs-tools" ,squashfs-tools)
+       ("tar" ,tar)
+       ("u-boot-tools" ,u-boot-tools)))
+    (synopsis "Create Flash images according to specification")
+    (description "@command{genimage} creates Flash images according to a
+specification file.")
+    (home-page "https://github.com/pengutronix/genimage")
+    (license license:gpl2)))
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 6ea89dc92a..884f57eabd 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2017, 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
@@ -32,6 +32,7 @@
   #:use-module (guix build-system scons)
   #:use-module (guix build-system r)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils)
@@ -743,25 +744,25 @@ to create databases that are optimized for rendering/tile/map-services.")
 (define-public protozero
   (package
     (name "protozero")
-    (version "1.6.3")
+    (version "1.6.5")
     (source
-      (origin
-        (method url-fetch)
-        (uri (string-append "https://github.com/mapbox/protozero/archive/v"
-                            version ".tar.gz"))
-    (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1xaj4phz1r7xn0vgdfvfkz8b0bizgb6mavjky1zqcvdmbwgwgly5"))))
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mapbox/protozero.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "10ldzni46cplmkgx1f73yn95qcb71xh9nxpcfdmi107y3kvicv3c"))))
     (build-system cmake-build-system)
     (home-page "https://github.com/mapbox/protozero")
     (synopsis "Minimalistic protocol buffer decoder and encoder in C++")
-    (description "Protozero is a minimalistic protocol buffer decored and
+    (description "Protozero is a minimalistic protocol buffer decoder and
 encoder in C++.  The developer using protozero has to manually translate the
 @file{.proto} description into code.")
     (license (list
-               license:asl2.0; for folly
-               license:bsd-2))))
+              license:asl2.0            ; for folly
+              license:bsd-2))))
 
 (define-public libosmium
   (package
diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index cd0deac158..9f0a87a40a 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 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 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
 ;;;
@@ -49,7 +49,7 @@
 (define-public babl
   (package
     (name "babl")
-    (version "0.1.56")
+    (version "0.1.62")
     (source (origin
               (method url-fetch)
               (uri (list (string-append "https://download.gimp.org/pub/babl/"
@@ -63,7 +63,7 @@
                                         "/babl-" version ".tar.bz2")))
               (sha256
                (base32
-                "0a2dvihah1j7qi5dp1qzzlwklcqnndmxsm7lc7i78g7c2yknrlla"))))
+                "047msfzj8v4sfl61a2xhd69r9rh2pjq4lzpk3j10ijyv9qbry9yw"))))
     (build-system gnu-build-system)
     (home-page "http://gegl.org/babl/")
     (synopsis "Image pixel format conversion library")
@@ -80,15 +80,15 @@ provided, as well as a framework to add new color models and data types.")
 (define-public gegl
   (package
     (name "gegl")
-    (version "0.4.8")
+    (version "0.4.12")
     (source (origin
               (method url-fetch)
               (uri (list (string-append "https://download.gimp.org/pub/gegl/"
                                         (string-take version 3)
-                                        "/" name "-" version ".tar.bz2")))
+                                        "/gegl-" version ".tar.bz2")))
               (sha256
                (base32
-                "0jdfhf8wikba4h68k505x0br3gisiwivc33aca8v3ibaqpp6i53i"))))
+                "0ljqxc4iyy2hrj31pxcy1xp4xm5zbx1nigqisphmg4p8mcz2jrz9"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("LDFLAGS=-lm")))
@@ -118,7 +118,7 @@ buffers.")
 (define-public gimp
   (package
     (name "gimp")
-    (version "2.10.6")
+    (version "2.10.8")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.gimp.org/pub/gimp/v"
@@ -126,7 +126,7 @@ buffers.")
                                   "/gimp-" version ".tar.bz2"))
               (sha256
                (base32
-                "07qh2ljbza2mph1gh8sicn27qihhj8hx3ivvry2874cfh8ghgj2f"))))
+                "16sb4kslwin2jbgdb4nhks78pd0af8mvj8g5hap3hj946p7w2jfq"))))
     (build-system gnu-build-system)
     (outputs '("out"
                "doc"))                            ; 9 MiB of gtk-doc HTML
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 8a336a50f4..f04fbcf73b 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -257,7 +257,7 @@ also known as DXTn or DXTC) for Mesa.")
         ("libxvmc" ,libxvmc)
         ,@(match (%current-system)
             ((or "x86_64-linux" "i686-linux")
-             `(("llvm" ,llvm)))
+             `(("llvm" ,llvm-6))) ;TODO: Change to LLVM in the next rebuild cycle.
             (_
              `()))
         ("makedepend" ,makedepend)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index a3412885a6..45fdf1ecf9 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -21,7 +21,7 @@
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
-;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
@@ -32,7 +32,7 @@
 ;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
 ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
-;;; Copyright © 2018 Timothy Sample <samplet@ngyro.com>
+;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -277,7 +277,7 @@ features to enable users to create their discs easily and quickly.")
      `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gobject-introspection" ,gobject-introspection)
        ("duplicity" ,duplicity)
-       ("python" ,python2-minimal)
+       ("python" ,python-2)
        ("python-pygobject" ,python2-pygobject)
        ("gtk+" ,gtk+)
        ("libnotify" ,libnotify)
@@ -4657,6 +4657,14 @@ such as gzip tarballs.")
                    (out  (assoc-ref outputs "out")))
                (wrap-program (string-append out "/bin/gnome-session")
                  `("PATH" ":" prefix (,(string-append glib "/bin"))))
+               #t)))
+         (add-after 'install 'add-absolute-paths-to-desktop-files
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               (substitute* (map (lambda (x)
+                                   (string-append out "/share/xsessions/" x))
+                                 '("gnome.desktop" "gnome-xorg.desktop"))
+                 (("gnome-session") (string-append out "/bin/gnome-session")))
                #t))))
 
        #:configure-flags
@@ -5402,10 +5410,6 @@ libxml2.")
          ;; service for TTY 1 before starting GDM).
          "--with-initial-vt=7"
 
-         ;; By default, GDM expects distributions to install a custom Xsession
-         ;; script. It provides a generic one if --enable-gdm-xsession is set.
-         "--enable-gdm-xsession"
-
          ;; Use '/etc/environment' for locale settings instead of the
          ;; systemd-specific '/etc/locale.conf'.
          "--with-lang-file=/etc/environment"
@@ -5423,7 +5427,7 @@ libxml2.")
        (modify-phases %standard-phases
          (add-before
           'configure 'pre-configure
-          (lambda _
+          (lambda* (#:key inputs #:allow-other-keys)
             ;; We don't have <systemd/sd-daemon.h>.
             (substitute* '("common/gdm-log.c"
                            "daemon/gdm-server.c"
@@ -5452,44 +5456,64 @@ libxml2.")
                "\"/run/current-system/profile/share/wayland")
               (("DATADIR \"/gnome")
                "\"/run/current-system/profile/share/gnome"))
-            (substitute* '("daemon/gdm-session.c")
-              (("set_up_session_environment \\(self\\);")
-               (string-append
-                "set_up_session_environment (self);\n"
-                ;; Propagate GDM_X_SERVER environment variable (which is set
-                ;; by the GDM service, as it's a function of what X modules
-                ;; the user decides to have available) down to worker
-                ;; processes.
-                "gdm_session_set_environment_variable (self, \"GDM_X_SERVER\",\n"
-                "    g_getenv (\"GDM_X_SERVER\"));\n"
-                ;; FIXME: Really glib should be declaring XDG_CONFIG_DIRS as a
-                ;; variable, but it doesn't do that right now.  Anyway
-                ;; /run/current-system/profile/share/gnome-session/sessions/gnome.desktop
-                ;; requires that a number of .desktop files be present, and
-                ;; these special .desktop files are in $XDG_CONFIG_DIRS (which
-                ;; defaults to /etc/xdg if it's not set).  Here we need to
-                ;; provide a value such that the GNOME session's requirements
-                ;; are met (provided GNOME is installed of course).
-                "gdm_session_set_environment_variable (self, \"XDG_CONFIG_DIRS\",\n"
-                "    \"/run/current-system/profile/etc/xdg\");\n"
-                ;; The session bus (which GDM will initialize from the this
-                ;; session environment) needs to know where to find the system
-                ;; service files.
-                "gdm_session_set_environment_variable (self, \"XDG_DATA_DIRS\",\n"
-                "    \"/run/current-system/profile/share\");\n"
-                )))
+            (let ((propagate '("GDM_CUSTOM_CONF"
+                               "GDM_DBUS_DAEMON"
+                               "GDM_X_SERVER"
+                               "GDM_X_SESSION"
+                               ;; XXX: Remove this once GNOME Shell is
+                               ;; a dependency of GDM.
+                               "XDG_DATA_DIRS")))
+              (substitute* "daemon/gdm-session.c"
+                (("set_up_session_environment \\(self\\);")
+                 (apply string-append
+                        "set_up_session_environment (self);\n"
+                        (map (lambda (name)
+                               (string-append
+                                "gdm_session_set_environment_variable "
+                                "(self, \"" name "\","
+                                "g_getenv (\"" name "\"));\n"))
+                             propagate)))))
             ;; Look for custom GDM conf in /run/current-system.
             (substitute* '("common/gdm-settings-desktop-backend.c")
               (("GDM_CUSTOM_CONF")
-               "\"/run/current-system/etc/gdm/custom.conf\""))
+               (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
+                              " ? g_getenv(\"GDM_CUSTOM_CONF\")"
+                              " : GDM_CUSTOM_CONF)")))
             ;; Use service-supplied path to X.
             (substitute* '("daemon/gdm-server.c")
               (("\\(X_SERVER X_SERVER_ARG_FORMAT")
                "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
             (substitute* '("daemon/gdm-x-session.c")
+              (("\"dbus-daemon\"")
+               "g_getenv (\"GDM_DBUS_DAEMON\")")
               (("X_SERVER")
-               "g_getenv (\"GDM_X_SERVER\")"))
-            #t)))))
+               "g_getenv (\"GDM_X_SERVER\")")
+              (("GDMCONFDIR \"/Xsession\"")
+               "g_getenv (\"GDM_X_SESSION\")"))
+            ;; Use an absolute path for GNOME Session.
+            (substitute* "daemon/gdm-launch-environment.c"
+              (("\"gnome-session\"")
+               (string-append "\"" (assoc-ref inputs "gnome-session")
+                              "/bin/gnome-session\"")))
+            #t))
+         ;; GDM needs GNOME Session to run these applications.  We link
+         ;; their autostart files in `share/gdm/greeter/autostart'
+         ;; because GDM explicitly tells GNOME Session to look there.
+         ;;
+         ;; XXX: GNOME Shell should be linked here too, but currently
+         ;; GNOME Shell depends on GDM.
+         (add-after 'install 'link-autostart-files
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (autostart (string-append out "/share/gdm/"
+                                              "greeter/autostart"))
+                    (settings (assoc-ref inputs "gnome-settings-daemon")))
+               (mkdir-p autostart)
+               (with-directory-excursion autostart
+                 (for-each (lambda (desktop)
+                             (symlink desktop (basename desktop)))
+                           (find-files (string-append settings "/etc/xdg"))))
+               #t))))))
     (native-inputs
      `(("dconf" ,dconf)
        ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
@@ -5502,6 +5526,8 @@ libxml2.")
      `(("accountsservice" ,accountsservice)
        ("check" ,check) ; for testing
        ("elogind" ,elogind)
+       ("gnome-session" ,gnome-session)
+       ("gnome-settings-daemon" ,gnome-settings-daemon)
        ("gtk+" ,gtk+)
        ("iso-codes" ,iso-codes)
        ("libcanberra" ,libcanberra)
@@ -7345,7 +7371,7 @@ mp3, Ogg Vorbis and FLAC")
 (define-public soundconverter
   (package
     (name "soundconverter")
-    (version "3.0.0")
+    (version "3.0.1")
     (source
      (origin
        (method url-fetch)
@@ -7354,8 +7380,7 @@ mp3, Ogg Vorbis and FLAC")
                            "soundconverter-" version ".tar.xz"))
 
        (sha256
-        (base32
-         "1wrxf5py54xplrf97qp24pzbis0cvax5c6k0c7vr3z3ry8r7gd7c"))
+        (base32 "1d6x1yf8psqbd9zbybxivfqg55khcnngp2mn92l161dfdk9512c5"))
        (patches
         (search-patches
          "soundconverter-remove-gconf-dependency.patch"))))
@@ -7372,12 +7397,6 @@ mp3, Ogg Vorbis and FLAC")
 
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'fix-POTFILES.in
-           (lambda _
-             (substitute* "po/POTFILES.in"
-               ;; This file doesn't exist, so without removing it, the 'check
-               ;; phase fails for the po directory
-               (("soundconverter/gconfstore\\.py") ""))))
          (add-after 'install 'wrap-soundconverter-for-python
            (assoc-ref python:%standard-phases 'wrap))
          (add-after 'install 'wrap-soundconverter
@@ -7408,52 +7427,49 @@ configurable file renaming. ")
     (license license:gpl3)))
 
 (define-public workrave
-  (let ((commit "v1_10_21"))
-    (package
-      (name "workrave")
-      (version (string-map (match-lambda
-                             (#\_ #\.)
-                             (chr chr))
-                           (string-drop commit 1)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/rcaelers/workrave.git")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "150qca8c552fakjlzkgarsxgp87l1xcwn19svqsa9d0cygqxjgia"))))
-      (build-system glib-or-gtk-build-system)
-      (propagated-inputs `(("glib" ,glib)
-                           ("gtk+" ,gtk+)
-                           ("gdk-pixbuf" ,gdk-pixbuf)
-                           ("gtkmm" ,gtkmm)
-                           ("glibmm" ,glibmm)
-                           ("libx11" ,libx11)
-                           ("libxtst" ,libxtst)
-                           ("dconf" ,dconf)
-                           ("libice" ,libice)))
-      (inputs `(("libsm" ,libsm)
-                ("python-cheetah" ,python2-cheetah)))
-      (native-inputs `(("glib" ,glib "bin")
-                       ("pkg-config" ,pkg-config)
-                       ("gettext" ,gnu-gettext)
-                       ("autoconf" ,autoconf)
-                       ("autoconf-archive" , autoconf-archive)
-                       ("automake" ,automake)
-                       ("libtool" ,libtool)
-                       ("intltool" ,intltool)
-                       ("libxscrnsaver" ,libxscrnsaver)
-                       ("gobject-introspection" ,gobject-introspection)
-                       ("python2" ,python-2)))
-      (synopsis "Tool to help prevent repetitive strain injury (RSI)")
-      (description
-       "Workrave is a program that assists in the recovery and prevention of
+  (package
+    (name "workrave")
+    (version "1.10.21")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rcaelers/workrave.git")
+             (commit (string-map (match-lambda (#\_ #\.) (chr chr)) version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "150qca8c552fakjlzkgarsxgp87l1xcwn19svqsa9d0cygqxjgia"))))
+    (build-system glib-or-gtk-build-system)
+    (propagated-inputs `(("glib" ,glib)
+                         ("gtk+" ,gtk+)
+                         ("gdk-pixbuf" ,gdk-pixbuf)
+                         ("gtkmm" ,gtkmm)
+                         ("glibmm" ,glibmm)
+                         ("libx11" ,libx11)
+                         ("libxtst" ,libxtst)
+                         ("dconf" ,dconf)
+                         ("libice" ,libice)))
+    (inputs `(("libsm" ,libsm)
+              ("python-cheetah" ,python2-cheetah)))
+    (native-inputs `(("glib" ,glib "bin")
+                     ("pkg-config" ,pkg-config)
+                     ("gettext" ,gnu-gettext)
+                     ("autoconf" ,autoconf)
+                     ("autoconf-archive" , autoconf-archive)
+                     ("automake" ,automake)
+                     ("libtool" ,libtool)
+                     ("intltool" ,intltool)
+                     ("libxscrnsaver" ,libxscrnsaver)
+                     ("gobject-introspection" ,gobject-introspection)
+                     ("python2" ,python-2)))
+    (synopsis "Tool to help prevent repetitive strain injury (RSI)")
+    (description
+     "Workrave is a program that assists in the recovery and prevention of
 repetitive strain injury (@dfn{RSI}).  The program frequently alerts you to take
 micro-pauses and rest breaks, and restricts you to your daily limit.")
-      (home-page "http://www.workrave.org")
-      (license license:gpl3+))))
+    (home-page "http://www.workrave.org")
+    (license license:gpl3+)))
 
 (define-public ghex
   (package
@@ -7461,9 +7477,9 @@ micro-pauses and rest breaks, and restricts you to your daily limit.")
     (version "3.18.3")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
+              (uri (string-append "mirror://gnome/sources/ghex/"
                                   (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+                                  "ghex-" version ".tar.xz"))
               (sha256
                (base32
                 "1lq8920ad2chi9ibmyq0x9hg9yk63b0kdbzid03w42cwdzw50x66"))))
@@ -7474,7 +7490,7 @@ micro-pauses and rest breaks, and restricts you to your daily limit.")
        ("which" ,which)
        ("intltool" ,intltool)
        ("yelp-tools" ,yelp-tools)
-       ("desktop-file-utils" ,desktop-file-utils))) ;for 'desktop-file-validate'
+       ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
     (inputs
      `(("atk" ,atk)
        ("gtk" ,gtk+)))
@@ -7490,9 +7506,9 @@ hexadecimal or ASCII.  It is useful for editing binary files in general.")
     (version "3.28.5")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
+              (uri (string-append "mirror://gnome/sources/libdazzle/"
                                   (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+                                  "libdazzle-" version ".tar.xz"))
               (sha256
                (base32
                 "08qdwv2flywnh6kibkyv0pnm67pk8xlmjh4yqx6hf13hyhkxkqgg"))))
@@ -7513,9 +7529,9 @@ hexadecimal or ASCII.  It is useful for editing binary files in general.")
              (setenv "DISPLAY" ":1")
              #t)))))
     (native-inputs
-     `(("glib" ,glib "bin") ; glib-compile-resources
+     `(("glib" ,glib "bin")             ; glib-compile-resources
        ("pkg-config" ,pkg-config)
-       ;; For tests
+       ;; For tests.
        ("xorg-server" ,xorg-server)))
     (inputs
      `(("glib" ,glib)
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 7a7ff966bb..c5c99bfeb6 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -13,7 +13,7 @@
 ;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Petter <petter@mykolab.ch>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -628,7 +628,7 @@ signing, decryption, verification, and key-listing parsing.")
 (define-public pius
   (package
    (name "pius")
-   (version "2.2.6")
+   (version "2.2.7")
    (source (origin
             (method url-fetch)
             (uri (string-append
@@ -636,15 +636,14 @@ signing, decryption, verification, and key-listing parsing.")
                   version "/pius-" version ".tar.bz2"))
             (sha256
              (base32
-              "1893hzpx3zv724drqv48csrn0cm98xw4ymb1zmhs2jvjj1778zfj"))
-            (patches (search-patches "pius.patch"))))
+              "1nsl7czicv95j0gfz4s82ys3g3h2mwr6cq3ilid8bpz3iy7z4ipy"))))
    (build-system python-build-system)
-   (inputs `(("perl" ,perl)                ;for 'pius-party-worksheet'
+   (inputs `(("perl" ,perl)             ; for 'pius-party-worksheet'
              ("gpg" ,gnupg)
              ("python-six" ,python2-six)))
    (arguments
     `(#:tests? #f
-      #:python ,python-2                     ;uses the Python 2 'print' syntax
+      #:python ,python-2                ; uses the Python 2 'print' syntax
       #:phases
       (modify-phases %standard-phases
         (add-before
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 8d87b580fb..7c761ff3ae 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -576,7 +576,7 @@ from forcing GEXP-PROMISE."
                       #:system system
                       #:guile-for-build guile)))
 
-(define %icecat-version "60.5.0-guix1")
+(define %icecat-version "60.5.1-guix1")
 
 ;; 'icecat-source' is a "computed" origin that generates an IceCat tarball
 ;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat'
@@ -598,7 +598,7 @@ from forcing GEXP-PROMISE."
                   "firefox-" upstream-firefox-version ".source.tar.xz"))
             (sha256
              (base32
-              "09a0kk250r03984n1hdwr2rg1vmhi2jkyzzgbbvkf9h9hzp6j7qs"))))
+              "1xbi1gvrrvqby04vx6klxff7h5r87dqgi1fx6i4mbg3ll59gy09z"))))
 
          (upstream-icecat-base-version "60.3.0") ; maybe older than base-version
          (upstream-icecat-gnu-version "1")
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 93b9ba09fe..f77547410f 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -15,7 +15,7 @@
 ;;; Copyright © 2016 Patrick Hetu <patrick.hetu@auf.org>
 ;;; Copyright © 2016 Nils Gillmann <ng0@n0.is>
 ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
@@ -1591,18 +1591,21 @@ misspelled words in a GtkTextView widget.")
 (define-public clipit
   (package
     (name "clipit")
-    (version "1.4.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/downloads/ClipIt/clipit-"
-                    version ".tar.gz"))
-              (sha256
-               (base32
-                "0jrwn8qfgb15rwspdp1p8hb1nc0ngmpvgr87d4k3lhlvqg2cfqva"))))
+    (version "1.4.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/CristianHenzel/ClipIt.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "05xi29v2y0rvb33fmvrz7r9j4l858qj7ngwd7dp4pzpkkaybjln0"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("intltool" ,intltool)
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("gtk+" ,gtk+-2)))
@@ -1677,7 +1680,7 @@ popular spread sheet programs.")
 (define-public yad
   (package
     (name "yad")
-    (version "0.40.3")
+    (version "0.41.0")
     (source
      (origin
        (method git-fetch)
@@ -1686,7 +1689,7 @@ popular spread sheet programs.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1vpgbjbkkbk5plicyklzpf65j1vlig4n4bi3qpvrz5bb09ic5alw"))))
+        (base32 "1hkxiich898sbacpg3jflf6i8l4hkfnc0zh10rr376v0mnzbn6jn"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index a48954e7f2..8febe605a7 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -1251,54 +1251,69 @@ above command-line parameters.")
 (define-public guile-hall
   (package
     (name "guile-hall")
-    (version "0.1.1")
+    (version "0.2")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://gitlab.com/a-sassmannshausen/guile-hall")
-             (commit "7d1094a12fe917209ce5b76c681cc8c862d4c65b")))
-       (file-name "guile-hall-0.1.1-checkout")
-       (sha256
-        (base32
-         "03kb09cjca98hlbx9mj12mqinzsnnvp6ci6i975n88pjhaxigyp1"))))
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256 (base32
+                "1bkbqgj24xh5b65sw2m98iggpi67b72szx1dsiq3cpzlcxplmgaz"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:modules
-       ((ice-9 match)
-        (ice-9 ftw)
-        ,@%gnu-build-system-modules)
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'install 'hall-wrap-binaries
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out  (assoc-ref outputs "out"))
-                    (bin  (string-append out "/bin/"))
-                    (site (string-append out "/share/guile/site"))
-                    (config (assoc-ref inputs "guile-config")))
-               (match (scandir site)
-                 (("." ".." version)
-                  (let ((modules (string-append site "/" version))
-                        (compiled-modules (string-append
-                                           out "/lib/guile/" version
-                                           "/site-ccache")))
-                    (wrap-program (string-append bin "hall")
-                      `("GUILE_LOAD_PATH" ":" prefix
-                        (,modules
-                         ,(string-append config
-                                         "/share/guile/site/"
-                                         version)))
-                      `("GUILE_LOAD_COMPILED_PATH" ":" prefix
-                        (,compiled-modules
-                         ,(string-append config "/lib/guile/"
-                                         version
-                                         "/site-ccache"))))
-                    #t)))))))))
+      `(#:modules
+        ((ice-9 match)
+         (ice-9 ftw)
+         ,@%gnu-build-system-modules)
+        #:phases
+        (modify-phases
+          %standard-phases
+          (add-after 'install 'hall-wrap-binaries
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (let* ((compiled-dir
+                       (lambda (out version)
+                         (string-append
+                           out "/lib/guile/" version "/site-ccache")))
+                     (uncompiled-dir
+                       (lambda (out version)
+                         (string-append
+                          out "/share/guile/site"
+                          (if (string-null? version) "" "/") version)))
+                     (dep-path
+                       (lambda (env modules path)
+                         (list env ":" 'prefix
+                               (cons modules
+                                     (map (lambda (input)
+                                            (string-append
+                                              (assoc-ref inputs input)
+                                              path))
+                                          ,''("guile-config"))))))
+                     (out (assoc-ref outputs "out"))
+                     (bin (string-append out "/bin/"))
+                     (site (uncompiled-dir out "")))
+                (match (scandir site)
+                       (("." ".." version)
+                        (for-each
+                          (lambda (file)
+                            (wrap-program
+                              (string-append bin file)
+                              (dep-path
+                                "GUILE_LOAD_PATH"
+                                (uncompiled-dir out version)
+                                (uncompiled-dir "" version))
+                              (dep-path
+                                "GUILE_LOAD_COMPILED_PATH"
+                                (compiled-dir out version)
+                                (compiled-dir "" version))))
+                          ,''("hall"))
+                        #t))))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("texinfo" ,texinfo)))
+      `(("autoconf" ,autoconf)
+        ("automake" ,automake)
+        ("pkg-config" ,pkg-config)
+        ("texinfo" ,texinfo)))
     (inputs `(("guile" ,guile-2.2)))
     (propagated-inputs
      `(("guile-config" ,guile-config)))
diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index 0a2a7dbb7b..006a61c086 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -38,14 +38,14 @@
 (define-public ddcutil
   (package
     (name "ddcutil")
-    (version "0.9.2")
+    (version "0.9.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.ddcutil.com/tarballs/"
-                           name "-" version ".tar.gz"))
+                           "ddcutil-" version ".tar.gz"))
        (sha256
-        (base32 "0nhi261vf2n3jpi0a0n6659911kxi3lj7a4h7cmv0ip6sbb8rk88"))))
+        (base32 "1jqfip43sx3dnx86znmpy8dj4ikkfpgf8npgq66s7hqwwa99i7zc"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -238,7 +238,7 @@ be dangerous and may void your CPU or system board's warranty.")
 (define-public wavemon
   (package
     (name "wavemon")
-    (version "0.8.2")
+    (version "0.9.0")
     (source
      (origin
        (method git-fetch)
@@ -247,7 +247,7 @@ be dangerous and may void your CPU or system board's warranty.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0rqpp7rhl9rlwnihsapaiy62v33h45fm3d0ia2nhdjw7fwkwcqvs"))))
+        (base32 "07cid0h3mcyr74nnrzzf8k5n1p9a4y3wij43jbiaqmkpxilcc1i6"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
diff --git a/gnu/packages/ibus.scm b/gnu/packages/ibus.scm
index 60ba8a2721..7dc3bd89a1 100644
--- a/gnu/packages/ibus.scm
+++ b/gnu/packages/ibus.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com>
+;;; Copyright © 2018, 2019 Meiyo Peng <meiyo@disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -298,7 +298,7 @@ Japanese language input in most graphical applications.")
 (define-public librime
   (package
     (name "librime")
-    (version "1.3.2")
+    (version "1.4.0")
     (source
      (origin
        (method git-fetch)
@@ -308,7 +308,7 @@ Japanese language input in most graphical applications.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "06q10cv7a3i6d8l3sq79nasw3p1njvmjgh4jq2hqw9abcx351m1r"))
+         "1zkx1wfbd94v55gfycyd2b94jxclfyk2zl7yw35pyjx63qdlb6sd"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -349,16 +349,16 @@ traditional Chinese output.")
 (define-public rime-data
   (package
     (name "rime-data")
-    (version "0.38.20181029")
+    (version "0.38.20190131")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/rime/plum.git")
-             (commit "fb4f829da2007f2dbb37d60a79bc67c25ea16568")))
+             (commit "8b48688cd4610d0c9223eb68831a31b6134e4cc8")))
        (file-name "plum-checkout")
        (sha256
-        (base32 "1m1wiv9j5bay4saga58c7dj4h8gqivsbyp16y245ifvxvp9czj67"))))
+        (base32 "0fv3hv4av9y7afxijh1n8idnyf82v9rxxi2ypmxd7lkj4naa22qh"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                  ; no tests
@@ -380,7 +380,8 @@ traditional Chinese output.")
              (let* ((dest-dir "package/rime"))
                (mkdir-p dest-dir)
                (for-each (lambda (pkg)
-                           (symlink (assoc-ref inputs pkg)
+                           (symlink (assoc-ref inputs
+                                               (string-append "rime-" pkg))
                                     (string-append dest-dir "/" pkg)))
                          '("array"
                            "bopomofo"
@@ -406,216 +407,216 @@ traditional Chinese output.")
              #t))
          (delete 'configure))))
     (native-inputs
-     `(("array"
+     `(("rime-array"
         ,(origin
            (method git-fetch)
            (uri (git-reference
                  (url "https://github.com/rime/rime-array.git")
-                 (commit "906e923902147584b0b0247028a782abbfbfd8a0")))
+                 (commit "93cc99238f120606a076220ec4ddcad164f6396a")))
            (file-name "rime-array-checkout")
            (sha256
             (base32
-             "1alk6ghn4ji4kvp7lfm57bwm2gjh99i79r0w9naz6wkdim8idvb1"))))
-       ("bopomofo"
+             "06yxrv3x702751jvx46rfw3ix34jk7jh183rz6bllznzi7lxz7sz"))))
+       ("rime-bopomofo"
         ,(origin
            (method git-fetch)
            (uri (git-reference
                  (url "https://github.com/rime/rime-bopomofo.git")
-                 (commit "8dc44ca1b6ef4e45b452e070b9da737f5da165e3")))
+                 (commit "ed25098386f5efd3d70b08650f0d1b70c41c11a3")))
            (file-name "rime-bopomofo-checkout")
            (sha256
             (base32
-             "16k6wfhcrw3a77rmbrp21ca0gmsmb3f68s193c1cfwr8i68k46nf"))))
-       ("cangjie"
+             "1ip1pbfb1hadf2mcymr5939iagf25ywfl67d9198jahzyr6rdyvc"))))
+       ("rime-cangjie"
         ,(origin
            (method git-fetch)
            (uri (git-reference
                  (url "https://github.com/rime/rime-cangjie.git")
-                 (commit "ab085e90856b3399b374dc3c8b4cb40d11f307a8")))
+                 (commit "5fd8ce6f64039e505ca02655a621f2e830b97c19")))
            (file-name "rime-cangjie-checkout")
            (sha256
             (base32
-             "11fgj0rbv9nyzfijwm2l8pm8fznhif4h27ndrrcaaylkp7p5zsx2"))))
-       ("combo-pinyin"
+             "1gf6r0q593ixar6v0jyvs56cik2gjp7pf9v799rfd2yydyia3bfg"))))
+       ("rime-combo-pinyin"
         ,(origin
            (method git-fetch)
            (uri (git-reference
                  (url "https://github.com/rime/rime-combo-pinyin.git")
-                 (commit "f1bae63f20504f2b8113c5cbdf2700e858aa91eb")))
+                 (commit "9bd952b964e9744e5d18e9e31625b50f3585a2cb")))
            (file-name "rime-combo-pinyin-checkout")
            (sha256
             (base32
-             "1l1079akwm1hw4kkn0q6x9fpylnl2ka6z2fn7lmdpfpsr0xgn0n7"))))
-       ("double-pinyin"
+             "0crafjs39x4j221gb34mxxh3cdpxfhhx3nfw6b6bgkzlrp35a02b"))))
+       ("rime-double-pinyin"
         ,(origin
            (method git-fetch)
            (uri (git-reference
                  (url "https://github.com/rime/rime-double-pinyin.git")
-                 (commit "2101a5cd40e511ec38835769aa66d2dddf059c2e")))
+                 (commit "69bf85d4dfe8bac139c36abbd68d530b8b6622ea")))
            (file-name "rime-double-pinyin-checkout")
            (sha256
             (base32
-             "19hh2qm0njbfk2js678hfm2hw9b796s43vs11yy3m1v9m0gk2vi7"))))
-       ("emoji"
+             "093wif5avvvw45fqbwj5wkbxrychy4pagl4mwsmbrayc8jkp69ak"))))
+       ("rime-emoji"
         ,(origin
            (method git-fetch)
            (uri (git-reference
                  (url "https://github.com/rime/rime-emoji.git")
-                 (commit "6e6611b315f03ee4c33f958f9dbe960b13a0ed19")))
+                 (commit "c8d67f9b50bf89a10c57da646d2e6db8799aef38")))
            (file-name "rime-emoji-checkout")
            (sha256
             (base32
-             "1brfs3214w36j3345di9ygp468hbvbqdqpkjxxs1dbp437rayhyy"))))
-       ("essay"
+             "0ngcm088iyyp3llxvv0m80i7n5928d6cgh256ikhn3ixallxxdxv"))))
+       ("rime-essay"
         ,(origin
            (method git-fetch)
            (uri (git-reference
                  (url "https://github.com/rime/rime-essay.git")
-                 (commit "5e5c7a0ef41c9b030abdad81a9df07b56b1661e9")))
+                 (commit "71d0b1f3d4f3bfe61ae07581edf07579740c4421")))
            (file-name "rime-essay-checkout")
            (sha256
             (base32
-             "0ana9is0zhh79m4gjshvmaxbrg3jiqysydx5bpm151i7i6vw5y1i"))))
-       ("ipa"
+             "1iwz104k7zfk7lpa257kvpqdr6jhbg3p76n3644ywiz4l7kc678i"))))
+       ("rime-ipa"
         ,(origin
            (method git-fetch)
            (uri (git-reference
                  (url "https://github.com/rime/rime-ipa.git")
-                 (commit "02a9e2c181921a2e95e1a81f88188c41132755c3")))
+                 (commit "e420c7bfb07153a2d2484eb2bdccdd719811abbb")))
            (file-name "rime-ipa-checkout")
            (sha256
             (base32
-             "1szrxgvqlgmxapj2aflw2cvbv0p6pl0sw0gyxa13dvdhhf7s9rvr"))))
-       ("jyutping"
+             "1wfv7lb4y61b3qic5mhw92rn46cckldd9wrkcq03mg5512mbw63z"))))
+       ("rime-jyutping"
         ,(origin
            (method git-fetch)
            (uri (git-reference
                  (url "https://github.com/rime/rime-jyutping.git")
-                 (commit "1402ec3d6cc0973f952fe3f9ef531294e4ffe9e0")))
+                 (commit "04891a298319888e8c6b1a20e0fa81cfaea01264")))
            (file-name "rime-jyutping-checkout")
            (sha256
             (base32
-             "17g03dy4gw6vyc9da1wjn3iy9hx64dfnwiwsfc7bkzan22x2m4dv"))))
-       ("luna-pinyin"
+             "0wsj965khglz36cnvfm4fkv386xvxhmsxgcw88p5qi0b3wlbzzx6"))))
+       ("rime-luna-pinyin"
         ,(origin
            (method git-fetch)
            (uri (git-reference
                  (url "https://github.com/rime/rime-luna-pinyin.git")
-                 (commit "3b05132576f5c347ff8a70857d2dae080936ac3b")))
+                 (commit "c9c405566177cb3898bdb82d7f4157587f2d9c01")))
            (file-name "rime-luna-pinyin-checkout")
            (sha256
             (base32
-             "0kgnpxjn10dm2d9718r12rdjlwqd2s2h84jvkhxhh5v0dkv1anl2"))))
-       ("middle-chinese"
+             "0i7f2675lvj9pzwlm8550ifnr3xqi77xlyyvml1wpxpkfqhjr475"))))
+       ("rime-middle-chinese"
         ,(origin
            (method git-fetch)
            (uri (git-reference
                  (url "https://github.com/rime/rime-middle-chinese.git")
-                 (commit "9ba8d70330654b9a730f882d35cfad7dbeddfd75")))
+                 (commit "ed6d44f8d0bedf6e0c1c3183a270f8f01a211a40")))
            (file-name "rime-middle-chinese-checkout")
            (sha256
             (base32
-             "0hwg5zby5kphh0bcfay8mfxwr5bwqhamiw3cmmmf7kp9fbns5s23"))))
-       ("pinyin-simp"
+             "09mql88lsrxa99pyllby5z22kaiwwa037ha8gwaxjnnlsjgvz7zx"))))
+       ("rime-pinyin-simp"
         ,(origin
            (method git-fetch)
            (uri (git-reference
                  (url "https://github.com/rime/rime-pinyin-simp.git")
-                 (commit "74357ffd62c05fb60edf6eab5b86bc8c8c1907d0")))
+                 (commit "bb5a6dfa871669d2f451b477bfff6d131df6f6c6")))
            (file-name "rime-pinyin-simp-checkout")
            (sha256
             (base32
-             "1paw3c7pv5bl54abnp9pidfxrkchdacyxy5m9zb311p5sgm7fhxh"))))
-       ("prelude"
+             "0ss82042k833w5q72h72ghcfchkx00nx6l4z4fb861s2rxr0bkjd"))))
+       ("rime-prelude"
         ,(origin
            (method git-fetch)
            (uri (git-reference
                  (url "https://github.com/rime/rime-prelude.git")
-                 (commit "33040568c3ddb2ee6340c9b669494317db21b77c")))
+                 (commit "8a52b4f86a59f3eb602f9a4cf6a680a67c15df8c")))
            (file-name "rime-prelude-checkout")
            (sha256
             (base32
-             "1gwcasyyg6f0ib6s4qsrrjcqr1lcs7j3xqxl65rznsw44nhnbwwq"))))
-       ("quick"
+             "039fr3996vfxzn2milaq1f5fw08f6zgjsxsql6cfhsc5b55fidm7"))))
+       ("rime-quick"
         ,(origin
            (method git-fetch)
            (uri (git-reference
                  (url "https://github.com/rime/rime-quick.git")
-                 (commit "910a97d403ad8e72f322488da146da79c19d623f")))
+                 (commit "3fe5911ba608cb2df1b6301b76ad1573bd482a76")))
            (file-name "rime-quick-checkout")
            (sha256
             (base32
-             "0yrq3gbfmm29xlr52rmxc41mqfrb0295q7sdhbc3ax71677mpr0y"))))
-       ("scj"
+             "08bh87ym5qvw55lyw20l3m7jd4c2z5rvil8h5q8790r7z6j6ijy9"))))
+       ("rime-scj"
         ,(origin
            (method git-fetch)
            (uri (git-reference
                  (url "https://github.com/rime/rime-scj.git")
-                 (commit "e0eae889f4376d2a434ac3b38523e0da7400db68")))
+                 (commit "cab5a0858765eff0553dd685a2d61d5536e9149c")))
            (file-name "rime-scj-checkout")
            (sha256
             (base32
-             "1whnv9zs349kvy0zi7dnmpqwil8i6gqwrzvhy3qdrjzy58y6gwxn"))))
-       ("soutzoe"
+             "0ard2bjp4896a8dimmcwyjwgmp9kl4rz92yc92jnd3y4rgwl6fvk"))))
+       ("rime-soutzoe"
         ,(origin
            (method git-fetch)
            (uri (git-reference
                  (url "https://github.com/rime/rime-soutzoe.git")
-                 (commit "e47841a8ad6341731c41cdb814b7a25c837603c4")))
+                 (commit "beeaeca72d8e17dfd1e9af58680439e9012987dc")))
            (file-name "rime-soutzoe-checkout")
            (sha256
             (base32
-             "1rgpmkxa72jy6gyy44fn8azpk3amk9s9lrdf7za03nv95d0fvm0p"))))
-       ("stenotype"
+             "0jyqx0q9s0qxn168l5n8zav8jcl2g5ppr7pa8jm1vwrllf20slcc"))))
+       ("rime-stenotype"
         ,(origin
            (method git-fetch)
            (uri (git-reference
                  (url "https://github.com/rime/rime-stenotype.git")
-                 (commit "d4ff379314fd95283853d1734854979cf3cbd287")))
+                 (commit "1d472097c32d943d1096644f4c31f28799a17bd8")))
            (file-name "rime-stenotype-checkout")
            (sha256
             (base32
-             "1kckpi4l4884hvydr3d6vid3v7rsc1app29kmk7v8jf8vn16afhl"))))
-       ("stroke"
+             "1dy9qlbyhnshq2k1vcvkqn2624r96iaixhyrx1z7v0vz84fjf6y4"))))
+       ("rime-stroke"
         ,(origin
            (method git-fetch)
            (uri (git-reference
                  (url "https://github.com/rime/rime-stroke.git")
-                 (commit "cfd29c675c46cf70b7a7f0a3836a913059316a0a")))
+                 (commit "f802735392b378fb2a56a9b7b53b8ec96a30ccaf")))
            (file-name "rime-stroke-checkout")
            (sha256
             (base32
-             "135is9c1p4lm98fd9l1gxyflkm69cv5an129ka7sk614bq84m08d"))))
-       ("terra-pinyin"
+             "1wlrsskxhldh8369n771gk7sxflzdx0c9qhq1mqm5hhkwc5ig1j0"))))
+       ("rime-terra-pinyin"
         ,(origin
            (method git-fetch)
            (uri (git-reference
                  (url "https://github.com/rime/rime-terra-pinyin.git")
-                 (commit "15b5c73a796571cd6f9ef6c89f96656cb9df86f9")))
+                 (commit "b9e0edd3182e74b26b03a278c038e669ca538a35")))
            (file-name "rime-terra-pinyin-checkout")
            (sha256
             (base32
-             "1xsd84h1zw417h5hr4dbgyk5009zi7q2p9774w3ccr5sxgc3i3cm"))))
-       ("wubi"
+             "1vzrv2k178bii4ld9rvpdi8zmcwybd8bks0qzjx2v4kbjgwj28zk"))))
+       ("rime-wubi"
         ,(origin
            (method git-fetch)
            (uri (git-reference
                  (url "https://github.com/rime/rime-wubi.git")
-                 (commit "d44403728a0b1cd8b47cb1f81b83f58e5f790b74")))
+                 (commit "dd052ee158a38cb791755318b1aef9b4a3ed0316")))
            (file-name "rime-wubi-checkout")
            (sha256
             (base32
-             "0ld31bdn94lncxd1ka44w4sbl03skh08mc927dhdmwq5bpvrgn36"))))
-       ("wugniu"
+             "00xzv3sbwqh2jz4i7s315h7rw17qa2dgj7kflyy3blxk0s2cqiqa"))))
+       ("rime-wugniu"
         ,(origin
            (method git-fetch)
            (uri (git-reference
                  (url "https://github.com/rime/rime-wugniu.git")
-                 (commit "65bcc354ada3839591d7546a64c71dbdd0592b02")))
+                 (commit "abd1ee98efbf170258fcf43875c21a4259e00b61")))
            (file-name "rime-wugniu-checkout")
            (sha256
             (base32
-             "0g31awp40s778sp5c290x40s8np86n8aw011s17sslxrqhhb0bkx"))))))
+             "0qn54d3cclny106ixdw08r5n6wn52ffs1hgrma3k0j4pv0kr9nlq"))))))
     (home-page "https://rime.im/")
     (synopsis "Schema data of Rime Input Method Engine")
     (description "@dfn{rime-data} provides the schema data of Rime Input
@@ -625,7 +626,7 @@ Method Engine.")
 (define-public ibus-rime
   (package
     (name "ibus-rime")
-    (version "1.3.0")
+    (version "1.4.0")
     (source
      (origin
        (method git-fetch)
@@ -634,7 +635,7 @@ Method Engine.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1nqi7ymv34a9kx24say3xj98lkrs9nkpv1n2ijb91wdz3cr012ly"))))
+        (base32 "12y6jdz1amhgrnqa7zjim63dfsz6zyxyahbirfan37wmcfp6gp1d"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index 233fea85af..a8968acba2 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -457,19 +457,19 @@ vision algorithms.  It can be used to do things like:
 (define-public nip2
   (package
     (name "nip2")
-    (version "8.7.0")
+    (version "8.7.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/libvips/nip2/releases/download/v"
                            version "/nip2-" version ".tar.gz" ))
        (sha256
-        (base32 "08dxfds4n1vxdilxcw01741a2r6fxyhawi656b7f0hy6znnkbsbc"))))
+        (base32 "0l7n427njif53npqn02gfjjly8y3khbrkzqxp10j5vp9h97psgiw"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         ;; test_conv.ws keep failing so disabling for now
+         ;; test_conv.ws keep failing so disabling for now.
          (add-after 'unpack 'disable-test-conv
            (lambda _
              (delete-file "test/workspaces/test_conv.ws")
@@ -484,7 +484,7 @@ vision algorithms.  It can be used to do things like:
        ("gtk+-2" ,gtk+-2)
        ("libxml2" ,libxml2)
        ("libexif" ,libexif)
-       ("libjpeg" ,libjpeg)                       ;required by vips.pc
+       ("libjpeg" ,libjpeg)             ; required by vips.pc
        ("librsvg" ,librsvg)
        ("fftw" ,fftw)
        ("libgsf" ,libgsf)
diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm
index 417989050c..7da0b0dab9 100644
--- a/gnu/packages/image-viewers.scm
+++ b/gnu/packages/image-viewers.scm
@@ -62,7 +62,7 @@
 (define-public feh
   (package
     (name "feh")
-    (version "3.1.2")
+    (version "3.1.3")
     (home-page "https://feh.finalrewind.org/")
     (source (origin
               (method url-fetch)
@@ -70,7 +70,7 @@
                                   name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "0qjhlrgr606gc9h96w9piyd13mx63jqfbxxnan41nrh76m8d0dka"))))
+                "1vsnxf4as3vyzjfhd8frzb1a8i7wnq7ck5ljx7qxqrnfqvxl1s4z"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases (delete 'configure))
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index f217c3611a..9f25578050 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2014, 2017 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2016, 2017, 2018 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
@@ -1299,10 +1299,11 @@ PNG, and performs PNG integrity checks and corrections.")
   (package
     (name "libjpeg-turbo")
     (version "2.0.1")
+    (replacement libjpeg-turbo-2.0.2)
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://sourceforge/" name "/" version "/"
-                                  name "-" version ".tar.gz"))
+              (uri (string-append "mirror://sourceforge/libjpeg-turbo/"
+                                  version "/libjpeg-turbo-" version ".tar.gz"))
               (sha256
                (base32
                 "1zv6z093l3x3jzygvni7b819j7xhn6d63jhcdrckj7fz67n6ry75"))))
@@ -1328,6 +1329,18 @@ and decompress to 32-bit and big-endian pixel buffers (RGBX, XBGR, etc.).")
                    license:ijg          ;the libjpeg library and associated tools
                    license:zlib))))     ;the libjpeg-turbo SIMD extensions
 
+(define-public libjpeg-turbo-2.0.2
+  (package
+    (inherit libjpeg-turbo)
+    (version "2.0.2")
+    (source (origin
+              (inherit (package-source libjpeg-turbo))
+              (uri (string-append "mirror://sourceforge/libjpeg-turbo/"
+                                  version "/libjpeg-turbo-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1v9gx1gdzgxf51nd55ncq7rghmj4x9x91rby50ag36irwngmkf5c"))))))
+
 (define-public niftilib
   (package
     (name "niftilib")
@@ -1575,15 +1588,16 @@ identical visual appearance.")
 (define-public grim
   (package
    (name "grim")
-   (version "1.0")
+   (version "1.1")
    (source
     (origin
-     (method url-fetch)
-     (uri (string-append "https://github.com/emersion/grim/archive/v" version
-                         ".tar.gz"))
-     (file-name (string-append name "-" version ".tar.gz"))
+     (method git-fetch)
+     (uri (git-reference
+           (url "https://github.com/emersion/grim.git")
+           (commit (string-append "v" version))))
+     (file-name (git-file-name name version))
      (sha256
-      (base32 "0xkk5nqyp1px0sxz4asmchznc0q39wdx1b67ql741k8aj815km0f"))))
+      (base32 "1bcvkggqszcwy6hg8g4mch3yr25ic0baafbd90af5s5mrhrjxxxz"))))
    (build-system meson-build-system)
    (native-inputs `(("pkg-config" ,pkg-config)))
    (inputs `(("cairo" ,cairo)
@@ -1600,7 +1614,7 @@ identical visual appearance.")
 (define-public slurp
   (package
    (name "slurp")
-   (version "1.0")
+   (version "1.0.1")
    (source
     (origin
      (method git-fetch)
@@ -1609,7 +1623,7 @@ identical visual appearance.")
            (commit (string-append "v" version))))
      (file-name (git-file-name name version))
      (sha256
-      (base32 "03igv8r8n772xb0y7whhs1pa298l3d94jbnknaxpwp2n4fi04syb"))))
+      (base32 "072lkwhpvr753wfqzmd994bnhbrgfavxcgqcyml7abab28sdhs1y"))))
    (build-system meson-build-system)
    (native-inputs `(("pkg-config" ,pkg-config)))
    (inputs `(("cairo" ,cairo)
diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
index 98d0e8d5d8..e6f23d14d7 100644
--- a/gnu/packages/irc.scm
+++ b/gnu/packages/irc.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
 ;;; Copyright © 2014 Kevin Lemonnier <lemonnierk@ulrar.net>
 ;;; Copyright © 2015, 2017 Ludovic Courtès <ludo@gnu.org>
-;;; 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 Nils Gillmann <ng0@n0.is>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -67,15 +67,15 @@
 (define-public quassel
   (package
     (name "quassel")
-    (version "0.13.0")
+    (version "0.13.1")
     (source
       (origin
         (method url-fetch)
-        (uri (string-append "http://quassel-irc.org/pub/quassel-"
+        (uri (string-append "https://quassel-irc.org/pub/quassel-"
                             version ".tar.bz2"))
         (sha256
          (base32
-          "0xp9mppxl63qzgsdyprmblvfrj0bb9z57kfc088gvcavvq1210nr"))
+          "0mg8jydc70vlylppzich26q4s40kr78r3ysfyjwisfvlg2byxvs8"))
         (modules '((guix build utils)))
         ;; We don't want to install the bundled scripts.
         (snippet
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index a314dc9953..9747569009 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2017, 2018 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
-;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
@@ -2267,22 +2267,23 @@ debugging, etc.")
 (define-public javacc
   (package
     (inherit javacc-4)
-    (version "7.0.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/javacc/javacc/"
-                                  "archive/" version ".tar.gz"))
-              (file-name (string-append "javacc-" version ".tar.gz"))
-              (sha256
-               (base32
-                "111xc9mnmc5a6qz6x3xbhqc07y1lg2b996ggzw0hrblg42zya9xf"))
-              (modules '((guix build utils)))
-              ;; delete bundled jars
-              (snippet '(begin (for-each delete-file-recursively
-                                         '("bootstrap" "lib"))
-                               #t))))
-    (arguments
-     `(#:make-flags ; bootstrap from javacc-4
+    (version "7.0.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/javacc/javacc.git")
+             (commit version)))
+       (file-name (git-file-name "javacc" version))
+       (sha256
+        (base32 "18kkak3gda93gr25jrgy6q00g0jr8i24ri2wk4kybz1v234fxx9i"))
+       (modules '((guix build utils)))
+       ;; Delete bundled jars.
+       (snippet '(begin (for-each delete-file-recursively
+                                  '("bootstrap" "lib"))
+                        #t))))
+    (arguments
+     `(#:make-flags                     ; bootstrap from javacc-4
        (list (string-append "-Dbootstrap-jar="
                             (assoc-ref %build-inputs "javacc")
                             "/share/java/javacc.jar"))
@@ -5236,18 +5237,18 @@ fundamental protocol access, not higher-level abstractions.")
 (define-public java-jsch
   (package
     (name "java-jsch")
-    (version "0.1.54")
+    (version "0.1.55")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/jsch/jsch/"
                                   version "/jsch-" version ".zip"))
               (sha256
                (base32
-                "029rdddyq1mh3ghryh3ki99kba1xkf1d1swjv2vi6lk6zzjy2wdb"))))
+                "1lxyjwvmwa723wcf3bqn816hkvc03vz4xhbsi7bvfhrz2rpgcfq6"))))
     (build-system ant-build-system)
     (arguments
      `(#:build-target "dist"
-       #:tests? #f ; no tests included
+       #:tests? #f                      ; no tests included
        #:phases
        (modify-phases %standard-phases
          (replace 'install (install-jars "dist")))))
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index c9b464c2c5..6a8d27f34e 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -78,7 +78,7 @@
 (define-public extra-cmake-modules
   (package
     (name "extra-cmake-modules")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -87,7 +87,7 @@
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0i3iqwvdqf2wpg8lsbna4vgmb18pnbv2772sg9k6zzhvkwsskdwi"))))
+                "1x868hs9jiqzkqx7gld4mdm5dzfxc5kann22y15a4f7g5a957534"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("qtbase" ,qtbase))) ; For tests (needs qmake)
@@ -253,7 +253,7 @@ Phonon-GStreamer is a backend based on the GStreamer multimedia library.")
 (define-public attica
   (package
     (name "attica")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -262,7 +262,7 @@ Phonon-GStreamer is a backend based on the GStreamer multimedia library.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1gr7w0mf3aq5xyl9il3483m9aqgb981vxn02g2khm6dfsr6z2aln"))))
+                "0bsn9mi3nj23k2r3mfgjm9i1mp8qnwf08xn9x757wk3xas0cx98v"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
@@ -293,7 +293,7 @@ http://freedesktop.org/wiki/Specifications/open-collaboration-services/")
 (define-public bluez-qt
   (package
     (name "bluez-qt")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -302,7 +302,7 @@ http://freedesktop.org/wiki/Specifications/open-collaboration-services/")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1br9496lahzqmzmvdic5835ig18w3g211l1w4qfzpgr50yin9n5v"))))
+                "1ixad1ya3c339c675w8nwmbga8ydq16db9fk2az3gjm68z3dch8a"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("dbus" ,dbus)
@@ -326,7 +326,7 @@ Bluetooth stack.  It is used by the KDE Bluetooth stack, BlueDevil.")
 (define-public breeze-icons
   (package
     (name "breeze-icons")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -335,7 +335,7 @@ Bluetooth stack.  It is used by the KDE Bluetooth stack, BlueDevil.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1g5dppg2iq5bd3r3s8bi8jqnvnh1rm7s3sv51shmaamq5qf0n5jy"))))
+                "03mb7x8mc2h6cjb4mrifrbkbpj3lv9c0mg4m619rqiydg0p1yf49"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -355,7 +355,7 @@ It is the default icon theme for the KDE Plasma 5 desktop.")
 (define-public kapidox
   (package
     (name "kapidox")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -364,7 +364,7 @@ It is the default icon theme for the KDE Plasma 5 desktop.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0zwjychzcamsky9l67xnw820b9m8r8pi56gsccg023l1rcigz46c"))))
+                "0x41adp3rnvr6njc57ffdyh6d5i5aw13xcjdr4p6kacw9pk63ajf"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f)) ; has no test target
@@ -397,7 +397,7 @@ documentation.")
 (define-public karchive
   (package
     (name "karchive")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -406,7 +406,7 @@ documentation.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "141xqgdk7g3ky0amblrqr4pab1xvvdim5wvckrgawdkjiy5ana4g"))))
+                "1llznxc5wjjnmbjx8iwi3a93gc2z0z344viknsgls1fwdjjfyxc4"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -431,7 +431,7 @@ GZip format, via a subclass of QIODevice.")
 (define-public kcodecs
   (package
     (name "kcodecs")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -440,7 +440,7 @@ GZip format, via a subclass of QIODevice.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1s0ky187fbi34wabpfvdwb1zbblzvk8g83h37ckj9j4rd69mjksc"))))
+                "0491j6l28jwfpgaqs2816qpyggnra2df33iw3fgvb0wd4r4gvmjb"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -467,7 +467,7 @@ Internet).")
 (define-public kconfig
   (package
     (name "kconfig")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -476,7 +476,7 @@ Internet).")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "14p4w0m04c8msdwb3mjfzx6w0lcmln65j3rfvqp58nv5n4yh5dp7"))))
+                "06gscipc3914gwiswhp1xx4sy74bpy645ykq2i6r1sb6sm16hmja"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("dbus" ,dbus)
@@ -532,7 +532,7 @@ propagate their changes to their respective configuration files.")
 (define-public kcoreaddons
   (package
     (name "kcoreaddons")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -541,7 +541,7 @@ propagate their changes to their respective configuration files.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1n27786js8j8na7kgxirhmswxcz3qkfiqzfabqmmsd0jp4rx1s79"))))
+                "1j7bc5fhak8db3vdfslbjdffbdclakhfwsni2a855d08yfrl1n1w"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -589,7 +589,7 @@ many more.")
 (define-public kdbusaddons
   (package
     (name "kdbusaddons")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -598,7 +598,7 @@ many more.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1fvlspqc3w3y4p04gnqz6vrfvl93iwckfk16p608fz7yfgdmlzbf"))
+                "1sj3cycgci3ih65bkh7bsvbzyp7r654ppcryj4azpcsxqhy5gc7l"))
               (patches (search-patches "kdbusaddons-kinit-file-name.patch"))))
     (build-system cmake-build-system)
     (native-inputs
@@ -634,7 +634,7 @@ as well as an API to create KDED modules.")
 (define-public kdnssd
   (package
     (name "kdnssd")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -643,7 +643,7 @@ as well as an API to create KDED modules.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "00sqx2hyqd9yw4nwdl8kmbzm0v0szgqv4nz0q6bchv3hfbax6zk7"))))
+                "0lljj7mxmqm60kfzr37zb7z58mfyfh7zgykf7a5is1k0lxpgk6zc"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -662,7 +662,7 @@ infrastructure.")
 (define-public kguiaddons
   (package
     (name "kguiaddons")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -671,7 +671,7 @@ infrastructure.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0lkqxsqdjmc7060pxi5j8gx15kmrb8450cpinzn89nzpdl7rj935"))))
+                "190jwhvq2fi8g03saszlaslzxmcbqrbwli9f9vm6h5j9nnc0z6h3"))))
     (build-system cmake-build-system)
     ;; TODO: Build packages for the Python bindings.  Ideally this will be
     ;; done for all versions of python guix supports.  Requires python,
@@ -700,7 +700,7 @@ interfaces in the areas of colors, fonts, text, images, keyboard input.")
 (define-public ki18n
   (package
     (name "ki18n")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -709,7 +709,7 @@ interfaces in the areas of colors, fonts, text, images, keyboard input.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0drbyr2y44h1d88nbgxvp4ix46lin51r8vzhhnjhq2ydqy5za3p3"))))
+                "0kvwjzqibby9fawyfb8bd81abjhsjlyi8xy9mcapnih5x2gx3z92"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("gettext" ,gettext-minimal)
@@ -743,7 +743,7 @@ translation scripting.")
 (define-public kidletime
   (package
     (name "kidletime")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -752,7 +752,7 @@ translation scripting.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1x0z0ipdizgv6jkklxp6maclx8f6ya2bv1q39hvxxnnmly8q3vjm"))))
+                "1kq6zh6cjhzffjhxnc7l1pw6g38swxyspp8xl8c860zdhc9xfd1g"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -774,7 +774,7 @@ or user activity.")
   ;; plasma-framework which is tier 3.
   (package
     (name "kirigami")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -783,7 +783,7 @@ or user activity.")
                     "kirigami2-" version ".tar.xz"))
               (sha256
                (base32
-                "0iny9br3vpakvv0bmgy0mmw2y10d4kqbahjpfa3726qai4gligp2"))))
+                "11djxli5cq7pn19lmjz2y7z39mhlr98jskasfzyax546j47v973k"))))
     (properties `((upstream-name . "kirigami2")))
     (build-system cmake-build-system)
     (native-inputs
@@ -810,7 +810,7 @@ of applications that follow the Kirigami Human Interface Guidelines.")
 (define-public kitemmodels
   (package
     (name "kitemmodels")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -819,7 +819,7 @@ of applications that follow the Kirigami Human Interface Guidelines.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1s3wv75sbb4kpgz02cbm7smp8h6rk1ixv0gafbvz9514i9g4d760"))))
+                "13609avkqrfi79zyr737662nr8bwcfdya9dxc6gzyqx5i0l2nbw6"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -869,7 +869,7 @@ model to observers
 (define-public kitemviews
   (package
     (name "kitemviews")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -878,7 +878,7 @@ model to observers
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1cw9i8xik287rvb12alpqsph902nhfmbn4cfjx5gj7k888n8k3mk"))))
+                "1mgh7z5xcbhc7a2qq8mqfp7j4amk93hypkpy2zc3rdhc60ps94ad"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -904,7 +904,7 @@ to flat and hierarchical lists.")
 (define-public kplotting
   (package
     (name "kplotting")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -913,7 +913,7 @@ to flat and hierarchical lists.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "02mab80jyfgdj8xwbwkm181cc5vpsmbn561242q7ayjgxdiszzw9"))))
+                "0nn2v1yvvpzpi1y1pm47zvmwsa942c7d9n8iqymqihnp0fqjr8y7"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -939,7 +939,7 @@ pixel units.")
 (define-public ksyntaxhighlighting
   (package
     (name "ksyntaxhighlighting")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -948,7 +948,7 @@ pixel units.")
                     "syntax-highlighting-" version ".tar.xz"))
               (sha256
                (base32
-                "022mpkbgc458qcn25pn3a3m2dzy6lq23r7fqbgp22jr6xalfi5hl"))))
+                "00w5nmz9l70znv8q7q1zw3f7gngwfgf41iwbs53zqcv1z7wmrz6m"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -988,7 +988,7 @@ integration with a custom editor as well as a ready-to-use
 (define-public kwayland
   (package
     (name "kwayland")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -997,7 +997,7 @@ integration with a custom editor as well as a ready-to-use
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0y1710l68qlf37zy26nyn25r50a00mrm5cnwgfs9f40s749amigf"))))
+                "0m9q13qzgvp03jrsyc59l6pp7jf0dvhx768p21drs46qxw6wla7l"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1027,7 +1027,7 @@ represented by a QPoint or a QSize.")
 (define-public kwidgetsaddons
   (package
     (name "kwidgetsaddons")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1036,7 +1036,7 @@ represented by a QPoint or a QSize.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "01qxklhigfazhma0f6m1fkcbh9waxpvzpz6y2jlflvgbw2db82gh"))))
+                "0kpbvvmjrhxxjqc0cb63zlq06a3xspq43xv3wdingcn28zypynzc"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1074,7 +1074,7 @@ configuration pages, message boxes, and password requests.")
 (define-public kwindowsystem
   (package
     (name "kwindowsystem")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1083,7 +1083,7 @@ configuration pages, message boxes, and password requests.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1n9h4gg5ih29avvcpplqfy7nq58xx6jv6a04m1wkjr1rzn4dyfnb"))))
+                "10zdxm08d758zbwlrbsn0ghxjpf39ids2s5pnca072gbrbrxv656"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1135,7 +1135,7 @@ lower level classes for interaction with the X Windowing System.")
 (define-public modemmanager-qt
   (package
     (name "modemmanager-qt")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1144,7 +1144,7 @@ lower level classes for interaction with the X Windowing System.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0n54gh83b6d42azv40km7j223qb2f4f9ng23xvvawzc7l2ksm350"))))
+                "10pkgm4dzsrfnjsf78pssd1wp0y27d1y834chd267hx9vgrv8axm"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1173,7 +1173,7 @@ messages.")
 (define-public networkmanager-qt
   (package
     (name "networkmanager-qt")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1182,7 +1182,7 @@ messages.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0bh5li6r7r3nws5zj0hp4iy4xhiyh7rszzwpp6ag93vz5g5fsl9y"))))
+                "0j8l4k13vsqh0a8mw8dw5bc78xvxhz2rh7bb870as04i32bvw772"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1212,7 +1212,7 @@ which are used in DBus communication.")
 (define-public oxygen-icons
   (package
     (name "oxygen-icons")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1221,7 +1221,7 @@ which are used in DBus communication.")
                     name "5" "-" version ".tar.xz"))
               (sha256
                (base32
-                "1sdd8ygkyl4d1mwrachcf0ahpikkby3xhdyz212xj9qmhmsgwa46"))))
+                "0fvm9bq1573xkha4a577s1iik8nwzks8xhrli5mm6rbh53s12wp4"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1237,7 +1237,7 @@ which are used in DBus communication.")
 (define-public prison
   (package
     (name "prison")
-    (version "5.54.0")
+    (version "5.55.0")
     (source
      (origin
        (method url-fetch)
@@ -1245,7 +1245,7 @@ which are used in DBus communication.")
                            (version-major+minor version) "/"
                            name "-" version ".tar.xz"))
        (sha256
-        (base32 "1z7gymk4hkwaa0ni1454ndvpm2lwqyyfbih38h0lfb8lrswnv3kb"))))
+        (base32 "1xadc2fq6csml78czg5p572cwvmqmn334a5dxjnd7k1pdx50gi07"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -1262,7 +1262,7 @@ provides uniform access to generation of barcodes with data.")
 (define-public qqc2-desktop-style
   (package
     (name "qqc2-desktop-style")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1271,7 +1271,7 @@ provides uniform access to generation of barcodes with data.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1shw3c6cr5xanzyl5zv3isyhvzi20zn3xf7m963z1qn8ypaz1by8"))))
+                "0aj37ldc3ywqap3sz73j54kbzycn529imr15jgl252k04rqpjya5"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1296,7 +1296,7 @@ feel.")
 (define-public solid
   (package
     (name "solid")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1305,7 +1305,7 @@ feel.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0hmh9hndfs1ikaja07ddag7jr8804q4g6p74rhqsrfk2sjz0pmr9"))))
+                "18dw55g41q34m2qzvybvpsas1dnyryqxnlf2md0xc4r36ib9p2pn"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
@@ -1335,7 +1335,7 @@ system.")
 (define-public sonnet
   (package
     (name "sonnet")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1344,7 +1344,7 @@ system.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0ccz0gbypzdndaxrfkjhry90jjdh5a56pm4j41z835q96w6piclz"))))
+                "13bb1s2f4kfaikcga297j2fqlyr4qxdcq4v1b3zs1gas4z1wpcg6"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
@@ -1372,7 +1372,7 @@ ASpell and HUNSPELL.")
 (define-public threadweaver
   (package
     (name "threadweaver")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1381,7 +1381,7 @@ ASpell and HUNSPELL.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "011k2pm0wr60sxnydicnchnarx4r6qja0w6iih3jfkw733qm6bxp"))))
+                "0r0ml5pz7h0vmydcg4gqqkl21lp6c5gqdwyfsnyad02dcjkh4hql"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -1402,7 +1402,7 @@ uses a job-based interface to queue tasks and execute them in an efficient way."
 (define-public kactivities
   (package
     (name "kactivities")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1411,7 +1411,7 @@ uses a job-based interface to queue tasks and execute them in an efficient way."
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0ipq71g6g7q6yncvbiabwn5kg2280k8ssibbbf6jyh2lg09dmjil"))))
+                "0dp9vx2nl9fnawzcz04fqa731s3bk2izxrqbvn71aqyrs7fymabg"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -1447,7 +1447,7 @@ with other frameworks.")
 (define-public kauth
   (package
     (name "kauth")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1456,7 +1456,7 @@ with other frameworks.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1ciabazig77rpfksvdlmixj2sa2qnasq13nwvjn3xksnajfm4p2h"))))
+                "1w6bp2kbp1sn4cl76fgl2pqrg660ix99qq4h65g090kc934np3zc"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("dbus" ,dbus)
@@ -1494,7 +1494,7 @@ utilities.")
 (define-public kcompletion
   (package
     (name "kcompletion")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1503,7 +1503,7 @@ utilities.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0sgg09l97amnng0ddxyjpk535097f87bmn60hjqrmpsqb0n3a460"))))
+                "08ym79fqk7vshsf3jk37d6jvg7ys63kwflcn5dff5ci18jan2ir2"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1530,7 +1530,7 @@ integrated it into your application's other widgets.")
 (define-public kcrash
   (package
     (name "kcrash")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1539,7 +1539,7 @@ integrated it into your application's other widgets.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0wlrlzwdi9dpxkky9sadmbgw0rjisxhym9hr8gzydd2y8q4cr8a7"))))
+                "08a8c5mbj6ll0d1ivhcjx5ga1jfbnwxsk618wcfpwwi6mkxrc3f9"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -1565,7 +1565,7 @@ application crashes.")
 (define-public kdoctools
   (package
     (name "kdoctools")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1574,7 +1574,7 @@ application crashes.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0xbmdqlvyw9s2g8kwn1wmvz09pn4vs386ibm1p92wdnpspp5did6"))))
+                "0dlal0vkxf5yh1hbfhrcrxqqi1w43q7bvv8ws8pb18jjgimzr46l"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -1622,7 +1622,7 @@ from DocBook files.")
 (define-public kfilemetadata
   (package
     (name "kfilemetadata")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1631,7 +1631,7 @@ from DocBook files.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1hl61y15nqr5h5k4jqfz9bjj4gw6wdaiacxaslcwzn0sg4xyavab"))))
+                "0fqj266f9f66rfjzg0rl35fac5rn5n3npyfb4gsla3mdc8fjz9mi"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
@@ -1674,7 +1674,7 @@ by applications to write metadata.")
 (define-public kimageformats
   (package
     (name "kimageformats")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1683,7 +1683,7 @@ by applications to write metadata.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0xfzpzaqgdncwxvg27qb0ryqi78nbsi0xcsg9cjmgspfx5mlgi15"))))
+                "0hhxv8m5993vlpi5yf7w3fadzckficn16flshdkby7bwq8agrbz1"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1728,7 +1728,7 @@ formats.")
 (define-public kjobwidgets
   (package
     (name "kjobwidgets")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1737,7 +1737,7 @@ formats.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0d3jxabjlf2s4p34pzrpfsg4xp9s8qd7dmg50yxl59dijd42xgxq"))))
+                "1pbx974jpn8n2080gblmbh8q0yb5wxb9xblpm100rbhpg20sc2by"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1756,7 +1756,7 @@ asynchronous jobs.")
 (define-public knotifications
   (package
     (name "knotifications")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1765,7 +1765,7 @@ asynchronous jobs.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1agglvwaf0wh3fcs0ww3jxn900ych4dsvbaylrx4qip6girfmiyn"))))
+                "1dbrk9r3w8pmg15bhrb8qdk4fiqvc9qggb67zvk1n7ddlfkyarz6"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -1802,7 +1802,7 @@ covers feedback and persistent events.")
 (define-public kpackage
   (package
     (name "kpackage")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1811,7 +1811,7 @@ covers feedback and persistent events.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1s1n7r3j7l4kvd85dgssaaz70dd2w8vp34kwg49ak58cdai01vzb"))
+                "175b0lj4qybddjpc25b1p60lr8f9220i9ymk3wk3y3vf4893v833"))
               ;; Default to: external paths/symlinks can be followed by a
               ;; package
               (patches (search-patches "kpackage-allow-external-paths.patch"))))
@@ -1863,7 +1863,7 @@ were traditional plugins.")
 (define-public kpty
   (package
     (name "kpty")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1872,7 +1872,7 @@ were traditional plugins.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "04sj612x15311yk2jmr3ak430syp5p59w559670sd18ih99mf8m3"))))
+                "0r5080xl7x13qmjnjssb0d1pk626anaa4xahb7fi869fndr4xhzn"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -1900,7 +1900,7 @@ and communicating with them using a pty.")
 (define-public kunitconversion
   (package
     (name "kunitconversion")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1909,7 +1909,7 @@ and communicating with them using a pty.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0lxrydnjlilfm92aqrpd76dk8yfprgnb7nr66dwmbdmqz7znbl8h"))))
+                "1v5cfxk5v76w1f1qvrpilrs111wvp8bn2p3bswhqp4lg0qxync0q"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
@@ -1943,7 +1943,7 @@ gallons).")
 (define-public baloo
   (package
     (name "baloo")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1952,7 +1952,7 @@ gallons).")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0wv8zi03plr279v9p923rwkx2kwhbpd6xlzyqi4v14vhcrmapg1c"))))
+                "068ms071639pskhjz37cszylvfzzqhp7x1rmwdfn5nlvzrv6lrxh"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kcoreaddons" ,kcoreaddons)
@@ -2008,7 +2008,7 @@ maintaining an index of the contents of your files.")
 (define-public kactivities-stats
   (package
     (name "kactivities-stats")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2017,7 +2017,7 @@ maintaining an index of the contents of your files.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1ns7f110a5vwabb33b1lnpa85kk5radf87bxm1gw4gzglsv7747d"))))
+                "12n178244ysfak0x9qm9a2k814qi56w8xpkg03na7hlsz2l4y9v6"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -2038,7 +2038,7 @@ by which applications, and what documents have been linked to which activity.")
 (define-public kbookmarks
   (package
     (name "kbookmarks")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2047,7 +2047,7 @@ by which applications, and what documents have been linked to which activity.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1w4rqnzyars1pxam3nym1qily3ihd2j8cpkq8aha70nbj0dj3ckw"))))
+                "0vsn98znzdbiy8clbl9p3kiag3zvxgc9701gwg2ig8mpv3ci9lkg"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kwidgetsaddons" ,kwidgetsaddons)))
@@ -2081,7 +2081,7 @@ using the XBEL format.")
 (define-public kcmutils
   (package
     (name "kcmutils")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2090,7 +2090,7 @@ using the XBEL format.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0a5jz9m27nyl1vchp68170j9v5z4csyv43vpnfs09l6wk9ggdcwh"))))
+                "1f49864xpxrbj77n7l474wkn3rw4zy8vkl3psdya7ccdk7ac2s0k"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kconfigwidgets" ,kconfigwidgets)
@@ -2134,7 +2134,7 @@ KCModules can be created with the KConfigWidgets framework.")
 (define-public kconfigwidgets
   (package
     (name "kconfigwidgets")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2143,7 +2143,7 @@ KCModules can be created with the KConfigWidgets framework.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1l3hh7qgnz7mnn55abv03pq7zal9dgcw5gnhfr747wknd4h90w31"))))
+                "0npfp6z5lc2h8y6slmz3sbymyyv9k2w73rpsjzl5zswqhzlvrb5k"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kauth" ,kauth)
@@ -2184,7 +2184,7 @@ their settings.")
 (define-public kdeclarative
   (package
     (name "kdeclarative")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2193,7 +2193,7 @@ their settings.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0ankjqrlpnj3c9sjnv5p8w279zizkl5ps3i5zw16hg44v6hdmcj0"))))
+                "043jl7rn9yawh04fwgaxb8iwksn3z8qb4yfc4s6v1znwcs7ajlda"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kconfig" ,kconfig)
@@ -2247,7 +2247,7 @@ that offer bindings to some of the Frameworks.")
 (define-public kded
   (package
     (name "kded")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2256,7 +2256,7 @@ that offer bindings to some of the Frameworks.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "131hvxpqvkyh1sfb1j19jjzy7fyy6xisvpmx12lw1pvks0cnrqgn"))))
+                "0kn9kzzji257mppd12jzwiibha8127ajxvng2ls765lylv9nad7q"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -2280,7 +2280,7 @@ started on demand.")
 (define-public kdesignerplugin
   (package
     (name "kdesignerplugin")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2289,7 +2289,7 @@ started on demand.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0hlywnzd3d6bvhib1xqiqx39m7k8g16wsj102f7awd5gw3xrz8ga"))))
+                "114035wil0p5z6h0li8wjzivsdxhqbih54kn4nvhn43b71xnzs3y"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -2331,7 +2331,7 @@ ini-style description files.")
 (define-public kdesu
   (package
     (name "kdesu")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2340,7 +2340,7 @@ ini-style description files.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1qhw1hmq2b6rkyibidmg532llv31vkhmp0a7j2myzi40ydbx1lar"))))
+                "1x2gjnmgpcaxvfav2pm92zfgxbn60awpvmn9ycs68rq47p6h9x0f"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kpty" ,kpty)))
@@ -2362,7 +2362,7 @@ with su and ssh respectively.")
 (define-public kdewebkit
   (package
     (name "kdewebkit")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2371,7 +2371,7 @@ with su and ssh respectively.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0prl9751a8nv7qhg7fv8qygq0llh71w2p25sldl3zif44340jnhf"))))
+                "1mnbdsiih94hlwwff9fs9gnzl3y7ayf1pskmz1rajgjmqd6rm7mm"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -2394,7 +2394,7 @@ engine WebKit via QtWebKit.")
 (define-public kemoticons
   (package
     (name "kemoticons")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2403,7 +2403,7 @@ engine WebKit via QtWebKit.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0ypcffpp0m75qwam386q6pyfbsij16y2vgpkn38li6ypxlxsvx2v"))))
+                "03vx22f9mjd10qm61f6ihr283w2sarrhg0rssxp7g7wahvshcvmh"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kservice" ,kservice)))
@@ -2434,7 +2434,7 @@ emoticons coming from different providers.")
 (define-public kglobalaccel
   (package
     (name "kglobalaccel")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2443,7 +2443,7 @@ emoticons coming from different providers.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "10gl8prc1n0si52cmiglkz8dx79dylmxrh5mjpmyy5yy16chs1s1"))))
+                "1c6dxp6jvbw8l74n1mv0v62yr34b9447szhvd61y4sxmmfjimhz4"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -2478,7 +2478,7 @@ window does not need focus for them to be activated.")
 (define-public kiconthemes
   (package
     (name "kiconthemes")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2487,7 +2487,7 @@ window does not need focus for them to be activated.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0hc3a6ax3yizpbvklxw3pm0r6j0r5jqx2ffbz1980g21lcgshd7g"))))
+                "1rgbfklb7xxg7z2zyrsmaxf883ixgfbkqilps3npwk3xac2f66rw"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -2525,7 +2525,7 @@ in applications using the KDE Frameworks.")
 (define-public kinit
   (package
     (name "kinit")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2534,7 +2534,7 @@ in applications using the KDE Frameworks.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0pmr6ckysdqpni49i9jgapsk88jfbrnlfybpcp3v51kl2nkwm0i9"))
+                "11xwiny5sfqbdls249vnq6ssp5pzw1w9wg4ql9nkwwygl4ml8b9y"))
               ;; Use the store paths for other packages and dynamically loaded
               ;; libs
               (patches (search-patches "kinit-kdeinit-extra_libs.patch"
@@ -2593,7 +2593,7 @@ makes starting KDE applications faster and reduces memory consumption.")
 (define-public kio
   (package
     (name "kio")
-    (version "5.54.1")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2602,7 +2602,7 @@ makes starting KDE applications faster and reduces memory consumption.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "11wdsq87w1ddkrm0mpik2qf0c0k897f1rflszfrrwkplfb0z63xp"))
+                "1k3cn7hvp5z9nirss29v164hahrlvlqivxlk64c8w9ynjx699ira"))
               (patches (search-patches "kio-search-smbd-on-PATH.patch"))))
     (build-system cmake-build-system)
     (propagated-inputs
@@ -2686,7 +2686,7 @@ KIO enabled infrastructure.")
 (define-public knewstuff
   (package
     (name "knewstuff")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2695,7 +2695,7 @@ KIO enabled infrastructure.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1l3ibadjvaqqjsb1lhkf6jkzy80dk15fgid125bqk4amwsyygnd3"))))
+                "0a2d9wrhjsjl0klsrn501sp9681v7qmq6hmalw061arjv165dzw2"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("attica" ,attica)
@@ -2742,7 +2742,7 @@ specification.")
 (define-public knotifyconfig
   (package
     (name "knotifyconfig")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2751,7 +2751,7 @@ specification.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1ibxqi0y43qgjj4nikxwfppmda9xjmz63c5fml8c4w5d9mdag3if"))))
+                "01hxj6s2sq5k5j6j1y4c5gxyl1886j7ghh0hdc95b7n4gdjwwbci"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -2784,7 +2784,7 @@ notifications which can be embedded in your application.")
 (define-public kparts
   (package
     (name "kparts")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2793,7 +2793,7 @@ notifications which can be embedded in your application.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0y2dr286hb2w4r7ifq39vd7ajsalqyh9d91dm19b2rpgdmvgxai6"))))
+                "0gqkgnvkdai8hbg1n32jq4a3yzlkarmw8a7hxlfr0ykgysanjh65"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kio" ,kio)
@@ -2836,7 +2836,7 @@ widgets with a user-interface defined in terms of actions.")
 (define-public kpeople
   (package
     (name "kpeople")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2845,7 +2845,7 @@ widgets with a user-interface defined in terms of actions.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0sl8wcj7w9vgczcv8mfvjlnghidyadbh1qsiv0pj63ywl7xgr1hx"))))
+                "0vbgi4l14g4f0klbxqbkjcag6yi0ghhpxn5nik5sssmcx8qyk885"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -2879,7 +2879,7 @@ to easily extend the contacts collection.")
 (define-public krunner
   (package
     (name "krunner")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2888,7 +2888,7 @@ to easily extend the contacts collection.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "06y592v32926wq9iaypryj0173ca05vv0p5rrs4n77kwhkl0zq0v"))))
+                "0yw2jh9dailhcwkkjl2qggg5k90bwbfsn88a3hzwyj2ng2haypis"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("plasma-framework" ,plasma-framework)))
@@ -2949,7 +2949,7 @@ typed.")
 (define-public kservice
   (package
     (name "kservice")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2958,7 +2958,7 @@ typed.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "10qmrqyfjhf5nzjailgmb86nq62ffrmiddk3880mh49fwxs4l3qx"))))
+                "0k8xksmw2ai7m0js7l98rv5v6ykifmnqiyy2yc1xhgn40lf1r89j"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kconfig" ,kconfig)
@@ -3008,7 +3008,7 @@ types or handled by application specific code.")
 (define-public ktexteditor
   (package
     (name "ktexteditor")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3017,7 +3017,7 @@ types or handled by application specific code.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "12yywvv82lmqmx89j1qxj45an49vx34brifxs9rpy3nxyh9c3vzy"))))
+                "0b5zqhm5aw7jj7dj600xa674ik11gwyzamhyz5962xhvsg5pyjwx"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kparts" ,kparts)))
@@ -3088,7 +3088,7 @@ library.")
 (define-public ktextwidgets
   (package
     (name "ktextwidgets")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3097,7 +3097,7 @@ library.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "154j3an7x787l44hw1fmksm3h6kziyaw4l61zw9mas24z3d86hl5"))))
+                "1ymqmb5z4flzrns3wdjagxbzbpighbincwbhy29a0mqg4zcm82xk"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("ki18n" ,ki18n)
@@ -3135,7 +3135,7 @@ It supports rich text as well as plain text.")
 (define-public kwallet
   (package
     (name "kwallet")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3144,7 +3144,7 @@ It supports rich text as well as plain text.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0hyipka97g2djk43x8pqbjvrgswsp8kph6za0s5dl4napfikq8k2"))))
+                "1dp072h5r6yd81i69759pj8klfsikrg25za44sry2kh6fxvwmngm"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -3177,7 +3177,7 @@ the passwords on KDE work spaces.")
 (define-public kxmlgui
   (package
     (name "kxmlgui")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3186,7 +3186,7 @@ the passwords on KDE work spaces.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "01napbq81mcp9ngyl26an52l6ndsgrhzhy2mfd8jrbil2sbrcxq7"))))
+                "0ph67zarf1sccvp7882brrihv4dsmxq0nggan0rnk54qg0zdhgcn"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kconfig" ,kconfig)
@@ -3229,7 +3229,7 @@ descriptions for integrating actions from plugins.")
 (define-public kxmlrpcclient
   (package
     (name "kxmlrpcclient")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3238,7 +3238,7 @@ descriptions for integrating actions from plugins.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "199syc5wl8myc4vcvbnw4a8mlfkb2gcmgs57p8w7akp7mz6l75y6"))))
+                "1573wnv2fbjjzgx3f1qm7y8wlj22bz45mny0rxci90i76nnh4538"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kio" ,kio)))
@@ -3272,7 +3272,7 @@ setUrl, setUserAgent and call.")
 (define-public plasma-framework
   (package
     (name "plasma-framework")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3281,7 +3281,7 @@ setUrl, setUserAgent and call.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1933i8irn76ilz3nychbnhy1bsc39iscn3qrab0lwmshfmw8c4zj"))))
+                "1pvxxw52s03i11p5byd2sh8sbvlk6h8q6briq9d4qvjy6c0pmbq4"))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("kpackage" ,kpackage)
@@ -3369,7 +3369,7 @@ script engines.")
 (define-public kde-frameworkintegration
   (package
     (name "kde-frameworkintegration")
-    (version "5.54.0")
+    (version "5.55.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3378,7 +3378,7 @@ script engines.")
                     "frameworkintegration-" version ".tar.xz"))
               (sha256
                (base32
-                "1rzi3ydw7hjhg4vbsfan7zgaa2a2bmp7mph95h2kidf8x816qv2d"))))
+                "0pfpk268x06pjwciv4jr5v259kjck0sf4xzsgn29ifkmsk74wwmi"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -3426,7 +3426,7 @@ workspace.")
 (define-public kdelibs4support
   (package
     (name "kdelibs4support")
-    (version "5.54.0")
+    (version "5.55.0")
     (source
      (origin
        (method url-fetch)
@@ -3435,7 +3435,7 @@ workspace.")
              (version-major+minor version) "/portingAids/"
              name "-" version ".tar.xz"))
        (sha256
-        (base32 "02kklfcjsll4pf4rfll7jrr7jpcwd57954ypjjhn3xgr6p0w0hdm"))))
+        (base32 "1l1gjv06yp9jdiapiypwscbb6y0rfgrnw9rdsl7kkxh9ps8b8j39"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("dbus" ,dbus)
@@ -3542,7 +3542,7 @@ http://community.kde.org/Frameworks/Porting_Notes should help with this.")
 (define-public khtml
   (package
     (name "khtml")
-    (version "5.54.0")
+    (version "5.55.0")
     (source
      (origin
        (method url-fetch)
@@ -3551,7 +3551,7 @@ http://community.kde.org/Frameworks/Porting_Notes should help with this.")
              (version-major+minor version) "/portingAids/"
              name "-" version ".tar.xz"))
        (sha256
-        (base32 "17d8cim4ph7nxc5gkidhxc659yn9a7dqvnrihx9sj1cy01qnc7da"))))
+        (base32 "0wh9z5xm0gaf1c2s7cq7763jfyv83d58x80nwsvb0ayd6y8id1bq"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -3601,7 +3601,7 @@ technology and using KJS for JavaScript support.")
 (define-public kjs
   (package
     (name "kjs")
-    (version "5.54.0")
+    (version "5.55.0")
     (source
      (origin
        (method url-fetch)
@@ -3610,7 +3610,7 @@ technology and using KJS for JavaScript support.")
              (version-major+minor version) "/portingAids/"
              name "-" version ".tar.xz"))
        (sha256
-        (base32 "0bidbvbwbrbwwm0drw6l43vgmsp50c946jjq7pgnq1gf7mhscwcy"))))
+        (base32 "0c1wyxsgn70jvw7zcjjpw12w9sg9xxvyslgnqlnnyh8sx7rrp70c"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -3634,7 +3634,7 @@ support.")
 (define-public kjsembed
   (package
     (name "kjsembed")
-    (version "5.54.0")
+    (version "5.55.0")
     (source
      (origin
        (method url-fetch)
@@ -3643,7 +3643,7 @@ support.")
              (version-major+minor version) "/portingAids/"
              name "-" version ".tar.xz"))
        (sha256
-        (base32 "1pjpk8ysrnh78infq99i0wrf78h8h7hbfnr1m7agzffhbqa671z8"))))
+        (base32 "0dh9012y9bqj48jp50lrsmd28bbvf4jd93l34vfzmza252yvyw3l"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -3663,7 +3663,7 @@ QObjects, so you can script your applications.")
 (define-public kmediaplayer
   (package
     (name "kmediaplayer")
-    (version "5.54.0")
+    (version "5.55.0")
     (source
      (origin
        (method url-fetch)
@@ -3672,7 +3672,7 @@ QObjects, so you can script your applications.")
              (version-major+minor version) "/portingAids/"
              name "-" version ".tar.xz"))
        (sha256
-        (base32 "0qalqqkn2yvxgr45l7zm36bcpxwbgn8ngxsvyb5cxfaalwr0mkyf"))))
+        (base32 "0gpfrhgk2l63lyz0bz93cg7mc5g7mjvrkfvpyndmi1v7vhndp5zq"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -3709,7 +3709,7 @@ KParts instead.")
 (define-public kross
   (package
     (name "kross")
-    (version "5.54.0")
+    (version "5.55.0")
     (source
      (origin
        (method url-fetch)
@@ -3718,7 +3718,7 @@ KParts instead.")
              (version-major+minor version) "/portingAids/"
              name "-" version ".tar.xz"))
        (sha256
-        (base32 "18ij9339khskla4r0afl0n6x4pd157y1l5bk2ldb9anpck3p71kd"))))
+        (base32 "0p3q36gka6m62nryc3l11d30mlhiqjpghvfcyq6wikiqlv2kqvjs"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 8d9d0b7660..d2aa90b26d 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -36,14 +36,14 @@
 (define-public kdecoration
   (package
     (name "kdecoration")
-    (version "5.14.5")
+    (version "5.15.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version
                                   "/kdecoration-" version ".tar.xz"))
               (sha256
                (base32
-                "115pli0qpa8lx0jasg1886fcg7gb2kk8v6k8r8l8c820l97sq7in"))))
+                "1pcyw6rrz0q7i2jnfvmjz2pixiw2aay19q3pxa1g3qvqydh3id5q"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -65,14 +65,14 @@ manager which re-parents a Client window to a window decoration frame.")
 (define-public kscreenlocker
   (package
     (name "kscreenlocker")
-    (version "5.14.5")
+    (version "5.15.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kde/stable/plasma/" version
                                   "/kscreenlocker-" version ".tar.xz"))
               (sha256
                (base32
-                "16amr7pz0k6w5vkk1dwn2qi3s1mln0jypwmjazqq2lbwimn8k56m"))))
+                "1hgj2mzbbiqn52j3px2mzz6xzzpzr78q3bcai8ddc4gcl1xgs6yi"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
@@ -128,14 +128,14 @@ manager which re-parents a Client window to a window decoration frame.")
 (define-public libkscreen
   (package
     (name "libkscreen")
-    (version "5.14.5")
+    (version "5.15.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kde/stable/plasma/" version "/"
                            name "-" version ".tar.xz"))
        (sha256
-        (base32 "1vyaml5ap9siw9idiny92li2bykd0nwjsmwmg0c7ad912j4g1s7y"))))
+        (base32 "1clw8966fmwih1fsjasvpgvfq7w728hlabl3i0zjz53r87hdw3mb"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -167,7 +167,7 @@ basic needs and easy to configure for those who want special setups.")
 (define-public libksysguard
   (package
     (name "libksysguard")
-    (version "5.14.5")
+    (version "5.15.0")
     (source
      (origin
        (method url-fetch)
@@ -175,7 +175,7 @@ basic needs and easy to configure for those who want special setups.")
                            "/libksysguard-" version ".tar.xz"))
        (sha256
         (base32
-         "11nz0g7dqvpvgsv0a7sai445vgfsfi25plj7jb1i46n7zf8i8mya"))))
+         "1aqkzbng2qq09rpb21r6drnn866b9y8yba3klhvhi0q5vg3p605d"))))
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("pkg-config" ,pkg-config)))
@@ -219,7 +219,7 @@ basic needs and easy to configure for those who want special setups.")
            (lambda _
              ;; TODO: Fix this failing test-case
              (invoke "ctest" "-E" "processtest"))))))
-    (home-page "https://www.kde.org/info/plasma-5.13.4.php")
+    (home-page "https://userbase.kde.org/KSysGuard")
     (synopsis "Network enabled task and system monitoring")
     (description "KSysGuard can obtain information on system load and
 manage running processes.  It obtains this information by interacting
diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm
index 508ffaabca..776f9c970e 100644
--- a/gnu/packages/kodi.scm
+++ b/gnu/packages/kodi.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -270,7 +270,7 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.")
 (define-public kodi
   (package
     (name "kodi")
-    (version "18.0rc3")
+    (version "18.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -279,7 +279,7 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0bwi4gwmwppjw6bf0zihyg42zwnd0imq0aw4xxsgnacqakhxzii0"))
+                "1w26aqvzxv4c70gcd1vw1pldapsc2xcacwq9b7dqx5m44j0zx1dc"))
               (patches (search-patches "kodi-skip-test-449.patch"))
               (snippet
                '(begin
diff --git a/gnu/packages/libffi.scm b/gnu/packages/libffi.scm
index 3f7bb4f289..1df6b7b6df 100644
--- a/gnu/packages/libffi.scm
+++ b/gnu/packages/libffi.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
-;;; Copyright © 2015 Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
+;;; Copyright © 2015, 2019 Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
 ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
@@ -157,13 +157,13 @@ conversions for values passed between the two languages.")
 (define-public ruby-ffi
   (package
     (name "ruby-ffi")
-    (version "1.9.23")
+    (version "1.10.0")
     (source (origin
               (method url-fetch)
               (uri (rubygems-uri "ffi" version))
               (sha256
                (base32
-                "0zw6pbyvmj8wafdc7l5h7w20zkp1vbr2805ql5d941g2b20pk4zr"))))
+                "0j8pzj8raxbir5w5k6s7a042sb5k02pg0f8s4na1r5lan901j00p"))))
     (build-system ruby-build-system)
     ;; FIXME: Before running tests the build system attempts to build libffi
     ;; from sources.
diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index b047c34a0b..cb18ded5c6 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -930,7 +930,7 @@ converting QuarkXPress file format.  It supports versions 3.1 to 4.1.")
 (define-public libreoffice
   (package
     (name "libreoffice")
-    (version "6.1.3.2")
+    (version "6.1.5.2")
     (source
      (origin
        (method url-fetch)
@@ -940,7 +940,7 @@ converting QuarkXPress file format.  It supports versions 3.1 to 4.1.")
          (version-prefix version 3) "/libreoffice-" version ".tar.xz"))
        (sha256
         (base32
-         "0i4gf3qi16fg7dxq2l4vhkwh4f5lx7xd1ilpzcw26vccqkv3hvyl"))
+         "1wh8qhqkmb89nmfcb0w6iwpdzxwqr7c5kzxgpk4gy60xin6gwjgb"))
        (patches
         (append (list (origin
                         ;; Support newer versions of Orcus and MDDS.  These patches
@@ -966,37 +966,7 @@ converting QuarkXPress file format.  It supports versions 3.1 to 4.1.")
                         (file-name "libreoffice-mdds.patch")
                         (sha256
                          (base32
-                          "0apbmammmp4pk473xiv5vk50r4c5gjvqzf9jkficksvz58q6114f")))
-                      ;; The Poppler API changed rapidly in the versions leading 0.72.
-                      ;; Thus, we need several patches from upstream, each adapting to
-                      ;; different Poppler changes since version 0.68.
-                      (origin
-                        (method url-fetch)
-                        (uri (string-append "https://github.com/LibreOffice/core/commit/"
-                                            "1688a395d05125b83eac6cd5c43f0e3f2f66c491"
-                                            ".patch"))
-                        (file-name "libreoffice-poppler-compat.patch")
-                        (sha256
-                         (base32
-                          "0ia5avmj772mrgs6m4qqf01hs8hzpy3nafidj7w7gqx2zz2s5ih9")))
-                      (origin
-                        (method url-fetch)
-                        (uri (string-append "https://github.com/LibreOffice/core/commit/"
-                                            "5e8bdd9203dd642111c62a6668ee665a20d4ba19"
-                                            ".patch"))
-                        (file-name "libreoffice-poppler-gbool.patch")
-                        (sha256
-                         (base32
-                          "19kc74h5vnk48l2vny8zmm2lkxpwc7g8n9d3wwpg99748dvbmikd")))
-                      (origin
-                        (method url-fetch)
-                        (uri (string-append "https://github.com/LibreOffice/core/commit/"
-                                            "8ff41a26caf51544699863c89598d37d93dc1b21"
-                                            ".patch"))
-                        (file-name "libreoffice-poppler-0.71.patch")
-                        (sha256
-                         (base32
-                          "1dsd0gynjf7d6412dd2sx70xa2s8kld7ibyjdkwg5w9hhi2zxw2f"))))
+                          "0apbmammmp4pk473xiv5vk50r4c5gjvqzf9jkficksvz58q6114f"))))
                 (search-patches "libreoffice-boost.patch"
                                 "libreoffice-icu.patch"
                                 "libreoffice-glm.patch")))
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 47b07340b8..8b86531196 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -413,8 +413,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 "4.20.8")
-(define %linux-libre-hash "0qhwavylmkqqd84dym87ajzwnxc6rjpdijw7kbriqjmgjfsmf8sw")
+(define %linux-libre-version "4.20.10")
+(define %linux-libre-hash "0d386gb1s9ag80iqzms9gdsfzirq7nlkpkkx2d6ky01rv0g4vgqn")
 
 (define %linux-libre-4.20-patches
   (list %boot-logo-patch
@@ -427,8 +427,8 @@ It has been modified to remove all non-free binary blobs.")
                     #:patches %linux-libre-4.20-patches
                     #:configuration-file kernel-config))
 
-(define %linux-libre-4.19-version "4.19.21")
-(define %linux-libre-4.19-hash "064vwfkcmc8ad37m1ziqc14vhvx3mba12rc9220xng3a48gwpi2m")
+(define %linux-libre-4.19-version "4.19.23")
+(define %linux-libre-4.19-hash "0s207vqq2vcrgydjjwb5n2j7di0rjahnrbn3xv4xxlp5scjp59xq")
 
 (define %linux-libre-4.19-patches
   (list %boot-logo-patch
@@ -441,8 +441,8 @@ It has been modified to remove all non-free binary blobs.")
                     #:patches %linux-libre-4.19-patches
                     #:configuration-file kernel-config))
 
-(define %linux-libre-4.14-version "4.14.99")
-(define %linux-libre-4.14-hash "1d9h4l22j3jy1bkq8i4g6axwpq04jbsys4bg6bx8sbl590c9lrwx")
+(define %linux-libre-4.14-version "4.14.101")
+(define %linux-libre-4.14-hash "02j240x30zkhpazdimlfi0xq6zjdw6fidgdfrdnvfryvhf6j097j")
 
 (define-public linux-libre-4.14
   (make-linux-libre %linux-libre-4.14-version
@@ -451,8 +451,8 @@ It has been modified to remove all non-free binary blobs.")
                     #:configuration-file kernel-config))
 
 (define-public linux-libre-4.9
-  (make-linux-libre "4.9.156"
-                    "1ipmn5axlhfsfzqvwwyv7scrvfja39w7v68cnvbqiaq8fkjgffxg"
+  (make-linux-libre "4.9.158"
+                    "11v56dzp87wyxrymf2s1cmk7jr440z11m3yan73rnnnqlfq460ig"
                     '("x86_64-linux" "i686-linux")
                     #:configuration-file kernel-config))
 
@@ -1839,20 +1839,19 @@ file system is as easy as logging into the server with an SSH client.")
 (define-public archivemount
   (package
     (name "archivemount")
-    (version "0.8.9")
+    (version "0.8.12")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://www.cybernoia.de/software/archivemount/"
+       (uri (string-append "https://www.cybernoia.de/software/archivemount/"
                            "archivemount-" version ".tar.gz"))
        (sha256
-        (base32
-         "0v4si1ri6lhnq9q87gkx7fsh6lv6xz4bynknwndqncpvfp5cy1jg"))))
+        (base32 "12fb8fcmd1zwvfgzx4pay47md5cr2kgxcgq82cm6skmq75alfzi4"))))
     (build-system gnu-build-system)
     (inputs `(("fuse" ,fuse)
               ("libarchive" ,libarchive)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.cybernoia.de/software/archivemount")
+    (home-page "https://www.cybernoia.de/software/archivemount.html")
     (synopsis "Tool for mounting archive files with FUSE")
     (description "archivemount is a FUSE-based file system for Unix variants,
 including Linux.  Its purpose is to mount archives (i.e. tar, tar.gz, etc.) to a
@@ -3699,7 +3698,7 @@ The collection contains a set of bandwidth and latency benchmark such as:
   (package
     (name "rng-tools")
     (home-page "https://github.com/nhorman/rng-tools")
-    (version "6.6")
+    (version "6.7")
     (source (origin
               (method git-fetch)
               (uri (git-reference (url home-page)
@@ -3707,11 +3706,12 @@ The collection contains a set of bandwidth and latency benchmark such as:
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0c32sxfvngdjzfmxn5ngc5yxwi8ij3yl216nhzyz9r31qi3m14v7"))))
+                "19f75m6mzg8h7b4snzg7d6ypvkz6nq32lrpi9ja95gqz4wsd18a5"))))
     (build-system gnu-build-system)
     (arguments
      `(;; Avoid using OpenSSL, curl, and libxml2, reducing the closure by 166 MiB.
-       #:configure-flags '("--without-nistbeacon")))
+       #:configure-flags '("--without-nistbeacon"
+                           "--without-pkcs11")))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 93dc1aaf80..5aad298399 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -7,7 +7,7 @@
 ;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
 ;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
@@ -984,7 +984,8 @@ from other CLXes around the net.")
                ;; and can be removed when we move to the next release.
                (search-patches "stumpwm-fix-broken-read-one-line.patch"))))
     (build-system asdf-build-system/sbcl)
-    (native-inputs `(("fiasco" ,sbcl-fiasco)))
+    (native-inputs `(("fiasco" ,sbcl-fiasco)
+                     ("texinfo" ,texinfo)))
     (inputs `(("cl-ppcre" ,sbcl-cl-ppcre)
               ("clx" ,sbcl-clx)
               ("alexandria" ,sbcl-alexandria)))
@@ -1016,6 +1017,16 @@ from other CLXes around the net.")
                      Icon=~@
                      Type=Application~%"
                     out)))
+               #t)))
+         (add-after 'install 'install-manual
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; The proper way to the manual is bootstrapping a full autotools
+             ;; build system and running ‘./configure && make stumpwm.info’ to
+             ;; do some macro substitution.  We can get away with much less.
+             (let* ((out  (assoc-ref outputs "out"))
+                    (info (string-append out "/share/info")))
+               (invoke "makeinfo" "stumpwm.texi.in")
+               (install-file "stumpwm.info" info)
                #t))))))
     (synopsis "Window manager written in Common Lisp")
     (description "Stumpwm is a window manager written entirely in Common Lisp.
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 13223fbb66..bb5a4a141c 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -3,9 +3,9 @@
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Dennis Mungai <dmngaie@gmail.com>
-;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
@@ -47,15 +47,15 @@
 (define-public llvm
   (package
     (name "llvm")
-    (version "6.0.1")
+    (version "7.0.1")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "http://llvm.org/releases/"
+      (uri (string-append "https://llvm.org/releases/"
                           version "/llvm-" version ".src.tar.xz"))
       (sha256
        (base32
-        "1qpls3vk85lydi5b4axl0809fv932qgsqgdgrk098567z4jc7mmn"))))
+        "16s196wqzdw4pmri15hadzqgdi926zln3an2viwyq0kini6zr3d3"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("python" ,python-2) ;bytes->str conversion in clang>=3.7 needs python-2
@@ -95,21 +95,6 @@ languages is in development.  The compiler infrastructure includes mirror sets
 of programming tools as well as libraries with equivalent functionality.")
     (license license:ncsa)))
 
-;; TODO: Build Mesa with LLVM 7 in the next staging cycle.
-;; TODO: Make LLVM 7 the default LLVM once Clang is also upgraded.
-(define-public llvm-7.0.1
-  (package (inherit llvm)
-    (name "llvm")
-    (version "7.0.1")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (string-append "http://llvm.org/releases/"
-                          version "/llvm-" version ".src.tar.xz"))
-      (sha256
-       (base32
-        "16s196wqzdw4pmri15hadzqgdi926zln3an2viwyq0kini6zr3d3"))))))
-
 (define* (clang-runtime-from-llvm llvm hash
                                   #:optional (patches '()))
   (package
@@ -118,7 +103,7 @@ of programming tools as well as libraries with equivalent functionality.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://llvm.org/releases/"
+       (uri (string-append "https://llvm.org/releases/"
                            version "/compiler-rt-" version ".src.tar.xz"))
        (sha256 (base32 hash))
        (patches (map search-patch patches))))
@@ -150,7 +135,7 @@ compiler.  In LLVM this library is called \"compiler-rt\".")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://llvm.org/releases/"
+       (uri (string-append "https://llvm.org/releases/"
                            version "/cfe-" version ".src.tar.xz"))
        (sha256 (base32 hash))
        (patches (map search-patch patches))))
@@ -190,7 +175,7 @@ compiler.  In LLVM this library is called \"compiler-rt\".")
                            (compiler-rt (assoc-ref inputs "clang-runtime")))
                        (case (string->number ,(version-major
                                                (package-version clang-runtime)))
-                         ((6)
+                         ((or 6 7)
                           ;; Link to libclang_rt files from clang-runtime.
                           (substitute* "lib/Driver/ToolChain.cpp"
                             (("getDriver\\(\\)\\.ResourceDir")
@@ -274,13 +259,58 @@ project includes the Clang front end, the Clang static analyzer, and several
 code analysis tools.")
     (license license:ncsa)))
 
+(define-public libcxx
+  (package
+    (name "libcxx")
+    (version (package-version llvm))
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://llvm.org/releases/"
+                           version "/libcxx-" version ".src.tar.xz"))
+       (sha256
+        (base32
+         "0rzw4qvxp6qx4l4h9amrq02gp7hbg8lw4m0sy3k60f50234gnm3n"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("clang" ,clang)
+       ("llvm" ,llvm)))
+    (home-page "https://libcxx.llvm.org")
+    (synopsis "C++ standard library")
+    (description
+     "This package provides an implementation of the C++ standard library for
+use with Clang, targeting C++11, C++14 and above.")
+    (license license:expat)))
+
 (define-public clang-runtime
   (clang-runtime-from-llvm
    llvm
-   "1fcr3jn24yr8lh36nc0c4ikli4744i2q9m1ik67p1jymwwaixkgl"))
+   "065ybd8fsc4h2hikbdyricj6pyv4r7r7kpcikhb2y5zf370xybkq"))
 
 (define-public clang
   (clang-from-llvm llvm clang-runtime
+                   "067lwggnbg0w1dfrps790r5l6k8n5zwhlsw7zb6zvmfpwpfn4nx4"
+                   #:patches '("clang-7.0-libc-search-path.patch")))
+
+(define-public llvm-6
+  (package
+    (inherit llvm)
+    (version "6.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://llvm.org/releases/"
+                                  version "/llvm-" version ".src.tar.xz"))
+              (sha256
+               (base32
+                "1qpls3vk85lydi5b4axl0809fv932qgsqgdgrk098567z4jc7mmn"))))))
+
+(define-public clang-runtime-6
+  (clang-runtime-from-llvm
+   llvm-6
+   "1fcr3jn24yr8lh36nc0c4ikli4744i2q9m1ik67p1jymwwaixkgl"))
+
+(define-public clang-6
+  (clang-from-llvm llvm-6 clang-runtime
                    "0rxn4rh7rrnsqbdgp4gzc8ishbkryhpl1kd3mpnxzpxxhla3y93w"
                    #:patches '("clang-6.0-libc-search-path.patch")))
 
@@ -291,7 +321,7 @@ code analysis tools.")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "http://llvm.org/releases/"
+      (uri (string-append "https://llvm.org/releases/"
                           version "/llvm-" version ".src.tar.xz"))
       (sha256
        (base32
@@ -341,7 +371,7 @@ code analysis tools.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://llvm.org/releases/"
+       (uri (string-append "https://llvm.org/releases/"
                            version "/llvm-" version ".src.tar.xz"))
        (sha256
         (base32
@@ -365,7 +395,7 @@ code analysis tools.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://llvm.org/releases/"
+       (uri (string-append "https://llvm.org/releases/"
                            version "/llvm-" version ".src.tar.xz"))
        (sha256
         (base32
@@ -388,7 +418,7 @@ code analysis tools.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://llvm.org/releases/"
+       (uri (string-append "https://llvm.org/releases/"
                            version "/llvm-" version ".src.tar.xz"))
        (patches
         (search-patches "llvm-3.5-fix-clang-build-with-gcc5.patch"))
@@ -511,7 +541,7 @@ SOURCE-FILES found in SOURCE-PACKAGE."
     (description "This package allows to filter code through @code{clang-format}
 to fix its formatting.  @code{clang-format} is a tool that formats
 C/C++/Obj-C code according to a set of style options, see
-@url{http://clang.llvm.org/docs/ClangFormatStyleOptions.html}.")))
+@url{https://clang.llvm.org/docs/ClangFormatStyleOptions.html}.")))
 
 (define-public emacs-clang-rename
   (package
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index b56468f8c1..34bcd82ad7 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -322,9 +322,6 @@ networks) based on simulation of (stochastic) flow in graphs.")
 algorithm.")
     (license license:gpl3)))
 
-(define-public ocaml4.01-mcl
-  (package-with-ocaml4.01 ocaml-mcl))
-
 (define-public randomjungle
   (package
     (name "randomjungle")
diff --git a/gnu/packages/magic-wormhole.scm b/gnu/packages/magic-wormhole.scm
new file mode 100644
index 0000000000..bdfc1162b6
--- /dev/null
+++ b/gnu/packages/magic-wormhole.scm
@@ -0,0 +1,160 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages magic-wormhole)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix licenses)
+  #:use-module (guix build-system python)
+  #:use-module (gnu packages check)
+  #:use-module (gnu packages python-crypto)
+  #:use-module (gnu packages python-web)
+  #:use-module (gnu packages python-xyz))
+
+(define-public magic-wormhole-mailbox-server
+  (package
+    (name "magic-wormhole-mailbox-server")
+    (version "0.3.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "magic-wormhole-mailbox-server" version))
+        (sha256
+         (base32
+          "1q6zhbx8fcpk7rchclm7yqcxdsc1x97hki2ji61sa544r5xvxv55"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-tests
+          (lambda _
+            ;; This test requires network access.
+            (substitute* "src/wormhole_mailbox_server/test/test_web.py"
+              (("test_log_http") "disabled_test_log_http"))
+            #t)))))
+    (native-inputs
+     `(("python-mock" ,python-mock)))
+    (propagated-inputs
+     `(("python-attrs" ,python-attrs)
+       ("python-autobahn" ,python-autobahn)
+       ("python-idna" ,python-idna)
+       ("python-service-identity" ,python-service-identity)
+       ("python-six" ,python-six)
+       ("python-treq" ,python-treq)
+       ("python-twisted" ,python-twisted)))
+    (home-page "https://github.com/warner/magic-wormhole-mailbox-server")
+    (synopsis "Magic-Wormhole central mailbox server")
+    (description "This package provides the main server that Magic-Wormhole
+clients connect to.  The server performs store-and-forward delivery for small
+key-exchange and control messages.  Bulk data is sent over a direct TCP
+connection, or through a transit-relay.")
+   (license expat)))
+
+(define-public magic-wormhole-transit-relay
+  (package
+    (name "magic-wormhole-transit-relay")
+    (version "0.1.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "magic-wormhole-transit-relay" version))
+        (sha256
+         (base32
+          "11w5gdc6am2ph5rns60x0694sx4zrlzxj540jljhn5cmnbx1ngxi"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-docs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (docs (string-append out "/share/doc/magic-wormhole-transit-relay")))
+               (for-each (lambda (file)
+                           (install-file file docs))
+                         (find-files "docs/"))
+               #t))))))
+    (native-inputs
+     `(("python-mock" ,python-mock)
+       ("python-pyflakes" ,python-pyflakes)
+       ("python-tox" ,python-tox)))
+    (propagated-inputs
+     `(("python-twisted" ,python-twisted)))
+    (home-page
+      "https://github.com/warner/magic-wormhole-transit-relay")
+    (synopsis "Magic-Wormhole relay server")
+    (description "This package provides the Magic-Wormhole Transit Relay
+server, which helps clients establish bulk-data transit connections even when
+both are behind NAT boxes.  Each side makes a TCP connection to this server and
+presents a handshake.  Two connections with identical handshakes are glued
+together, allowing them to pretend they have a direct connection.")
+    (license expat)))
+
+(define-public magic-wormhole
+  (package
+    (name "magic-wormhole")
+    (version "0.11.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "magic-wormhole" version))
+        (sha256
+         (base32
+          "01fr4bi6kc6fz9n3c4qq892inrc3nf6p2djy65yvm7xkvdxncydf"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         ;; XXX I can't figure out how to build the docs properly.
+         ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=34515#101
+         (add-after 'install 'install-docs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (man (string-append out "/share/man/man1")))
+               (install-file "docs/wormhole.1" man))
+             #t)))))
+    (native-inputs
+     `(("python-mock" ,python-mock)
+       ;; XXX These are required for the test suite but end up being referenced
+       ;; by the built package.
+       ;; https://bugs.gnu.org/25235
+       ("magic-wormhole-mailbox-server" ,magic-wormhole-mailbox-server)
+       ("magic-wormhole-transit-relay" ,magic-wormhole-transit-relay)))
+    (propagated-inputs
+     `(("python-autobahn" ,python-autobahn)
+       ("python-click" ,python-click)
+       ("python-hkdf" ,python-hkdf)
+       ("python-humanize" ,python-humanize)
+       ("python-pynacl" ,python-pynacl)
+       ("python-spake2" ,python-spake2)
+       ("python-tqdm" ,python-tqdm)
+       ("python-twisted" ,python-twisted)
+       ("python-txtorcon" ,python-txtorcon)))
+    (home-page "https://github.com/warner/magic-wormhole")
+    (synopsis "Securely transfer data between computers")
+    (description "Magic-Wormhole is a library and a command-line tool named
+wormhole, which makes it possible to securely transfer arbitrary-sized files and
+directories (or short pieces of text) from one computer to another.  The two
+endpoints are identified by using identical \"wormhole codes\": in general, the
+sending machine generates and displays the code, which must then be typed into
+the receiving machine.
+
+The codes are short and human-pronounceable, using a phonetically-distinct
+wordlist.  The receiving side offers tab-completion on the codewords, so usually
+only a few characters must be typed.  Wormhole codes are single-use and do not
+need to be memorized.")
+    (license expat)))
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 2c06519e1f..78cf899466 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -491,7 +491,7 @@ and corrections.  It is based on a Bayesian filter.")
 (define-public offlineimap
   (package
     (name "offlineimap")
-    (version "7.2.2")
+    (version "7.2.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -500,7 +500,7 @@ and corrections.  It is based on a Bayesian filter.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "11nj7y9fa7v6vcxk3wr8smfgm3mxxnmq3l8q69rrjxlfzcv7dl8m"))))
+                "18sdnhjldn8zs03bgqy1qa3ikmlfvyxcvwp3nbnv1a74biccqbpa"))))
     (build-system python-build-system)
     (native-inputs
      `(("asciidoc" ,asciidoc)))
@@ -757,14 +757,14 @@ invoking @command{notifymuch} from the post-new hook.")
 (define-public notmuch
   (package
     (name "notmuch")
-    (version "0.28.1")
+    (version "0.28.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://notmuchmail.org/releases/notmuch-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0mcsfkrp6mpy374m5rwwgm9md8qzvwa3s4rbzid4cnkx2cwfj4fi"))))
+                "0cg9ff7h7mklgbqqknxigxxx1j3p3s2a9cxvrs5ih7j56f04k9l5"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((guix build gnu-build-system)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index ace7765c5d..7a03036b67 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -3447,7 +3447,7 @@ revised simplex and the branch-and-bound methods.")
 (define-public dealii
   (package
     (name "dealii")
-    (version "8.5.1")
+    (version "9.0.1")
     (source
      (origin
        (method url-fetch)
@@ -3455,7 +3455,8 @@ revised simplex and the branch-and-bound methods.")
                            "download/v" version "/dealii-" version ".tar.gz"))
        (sha256
         (base32
-         "1bh9rsmkrg0zi70n27b11djmac9lximghsiy7mg7w7x544n82gnk"))
+         "0r7f8rhl3xr94imd372plizdcbqk0a70w73lwc3vw912dxk0sbyz"))
+       (patches (search-patches "dealii-mpi-deprecations.patch"))
        (modules '((guix build utils)))
        (snippet
         ;; Remove bundled sources: UMFPACK, TBB, muParser, and boost
@@ -3508,10 +3509,8 @@ in finite element programs.")
     (arguments
      (substitute-keyword-arguments (package-arguments dealii)
        ((#:configure-flags cf)
-        ``("-DMPI_C_COMPILER=mpicc"
-           "-DMPI_CXX_COMPILER=mpicxx"
-           "-DMPI_Fortran_COMPILER=mpifort"
-           ,@,cf))
+        `(cons "-DDEAL_II_WITH_MPI:BOOL=ON"
+               ,cf))
        ((#:phases phases '%standard-phases)
         `(modify-phases ,phases
            (add-before 'check 'mpi-setup
diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index 0a43c55b7a..35d3c9e303 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Paul Garlick <pgarlick@tourbillion-technology.com>
+;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -32,6 +33,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
+  #:use-module (gnu packages fabric-management)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages linux)
@@ -174,6 +176,7 @@ bind processes, and much more.")
        ("gfortran" ,gfortran)
        ("libfabric" ,libfabric)
        ("libevent" ,libevent)
+       ("opensm" ,opensm)
        ,@(if (and (not (%current-target-system))
                   (member (%current-system) (package-supported-systems psm)))
              `(("psm" ,psm))
@@ -198,11 +201,31 @@ bind processes, and much more.")
                            "--with-valgrind"
                            "--with-hwloc=external"
                            "--with-libevent"
+
+                           ;; InfiniBand support
+                           "--enable-openib-control-hdr-padding"
+                           "--enable-openib-dynamic-sl"
+                           "--enable-openib-udcm"
+                           "--enable-openib-rdmacm"
+                           "--enable-openib-rdmacm-ibaddr"
+
                            ;; Enable support for SLURM's Process Manager
                            ;; Interface (PMI).
                            ,(string-append "--with-pmi="
                                            (assoc-ref %build-inputs "slurm")))
        #:phases (modify-phases %standard-phases
+                  ;; opensm is needed for InfiniBand support.
+                  (add-after 'unpack 'find-opensm-headers
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (setenv "C_INCLUDE_PATH"
+                              (string-append (assoc-ref inputs "opensm")
+                                             "/include/infiniband/:"
+                                             (getenv "C_INCLUDE_PATH")))
+                      (setenv "CPLUS_INCLUDE_PATH"
+                              (string-append (assoc-ref inputs "opensm")
+                                             "/include/infiniband/:"
+                                             (getenv "CPLUS_INCLUDE_PATH")))
+                      #t))
                   (add-before 'build 'remove-absolute
                     (lambda _
                       ;; Remove compiler absolute file names (OPAL_FC_ABSOLUTE
@@ -273,14 +296,14 @@ only provides @code{MPI_THREAD_FUNNELED}.")))
 (define-public python-mpi4py
   (package
     (name "python-mpi4py")
-    (version "3.0.0")
+    (version "3.0.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "mpi4py" version))
         (sha256
           (base32
-            "1mzgd26dfv4vwbci8gq77ss9f0x26i9aqzq9b9vs9ndxhlnv0mxl"))))
+            "0ld8rjmsjr0dklvj2g1gr3ax32sdq0xjxyh0cspknc1i36waajb5"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm
index c17321a9b3..7ae3886166 100644
--- a/gnu/packages/multiprecision.scm
+++ b/gnu/packages/multiprecision.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2015, 2018 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;;
@@ -230,17 +230,16 @@ and numerical quadrature programs are included.")
 (define-public tomsfastmath
   (package
     (name "tomsfastmath")
-    (version "0.13.0")
+    (version "0.13.1")
     (synopsis "Large integer arithmetic library")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/libtom/tomsfastmath/"
                                   "releases/download/v" version "/"
-                                  "tfm-" (version-major+minor version) ".tar.bz2"))
+                                  "tfm-" version ".tar.xz"))
               (sha256
                (base32
-                "01rlsvp6lskk2a0gfdi24ak5h8vdwi6kqbvbwjnmb92r0zrfdvwd"))
-              (patches (search-patches "tomsfastmath-constness.patch"))))
+                "0f0pmiaskh89sp0q933pafxb914shpaj5ad8sb5rzk1wv8d7mja7"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("libtool" ,libtool)))
@@ -252,7 +251,7 @@ and numerical quadrature programs are included.")
                           "CC=gcc")
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)            ;no configuration
+         (delete 'configure)            ; no configuration
          (replace 'check
            (lambda* (#:key make-flags #:allow-other-keys)
              (apply invoke "make"
@@ -262,7 +261,7 @@ and numerical quadrature programs are included.")
              (invoke "./test")))
          (add-before 'install 'install-nogroup
            (lambda _
-             ;; Let permissions inherit from the current process
+             ;; Let permissions inherit from the current process.
              (substitute* "makefile.shared"
                (("-g \\$\\(GROUP\\) -o \\$\\(USER\\)") ""))
              #t))
@@ -286,7 +285,7 @@ Libs: -L~a/lib -ltfm~%"
                            ,synopsis ,version out)))
                (install-file "tomsfastmath.pc" pc-dir)
                #t))))))
-    (home-page "http://www.libtom.org/TomsFastMath/")
+    (home-page "https://www.libtom.net/TomsFastMath/")
     (description "TomsFastMath is a large integer library written in portable
 ISO C.  It is a port of LibTomMath with optional support for inline assembler
 multiplies.")
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index f1733b7ae1..35958eee96 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -13,7 +13,7 @@
 ;;; Copyright © 2017, 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2017, 2018 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 nee <nee.git@hidamari.blue>
 ;;; Copyright © 2018 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
@@ -2249,14 +2249,14 @@ from the command line.")
 (define-public qtractor
   (package
     (name "qtractor")
-    (version "0.9.3")
+    (version "0.9.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://downloads.sourceforge.net/qtractor/"
                                   "qtractor-" version ".tar.gz"))
               (sha256
                (base32
-                "1010gvkzdzdk39g1g6wx2j19ls0kdl6l9q51xzk2qik7h2fwxl71"))))
+                "1zsikhqj5xzhw2x3b6pqlmcwz3hxx07lbbif8v3m3j41snzjic22"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f))                    ; no "check" target
@@ -4227,7 +4227,7 @@ at @code{musicbrainz.org}.")
 (define-public clyrics
   (package
     (name "clyrics")
-    (version "0.10")
+    (version "0.11")
     (source
      (origin
        (method git-fetch)
@@ -4237,10 +4237,10 @@ at @code{musicbrainz.org}.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1qvj4dyipkkdccx5hci4z0q23i54ldk6hh7x5m35a7f70rrj6fbk"))))
+         "0vfjy555achgi5zwa34x4q7r692nc6bq4jx518a5w4m7k5fvm71j"))))
     (build-system trivial-build-system)
     (inputs
-     `(("bash" ,bash)                             ;for the wrapped program
+     `(("bash" ,bash)                   ; for the wrapped program
        ("perl" ,perl)
        ("perl-www-mechanize" ,perl-www-mechanize)
        ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
@@ -4270,9 +4270,9 @@ at @code{musicbrainz.org}.")
                          ,(delete
                            ""
                            (map (match-lambda
-                                  (((?  (cut string-prefix? "perl-" <>) name) . dir)
-                                   (string-append dir "/lib/perl5/site_perl"))
-                                  (_ ""))
+                                 (((?  (cut string-prefix? "perl-" <>) name) . dir)
+                                  (string-append dir "/lib/perl5/site_perl"))
+                                 (_ ""))
                                 %build-inputs))))
                      (copy-recursively "plugins" (string-append output "/clyrics"))
                      #t))))
diff --git a/gnu/packages/musl.scm b/gnu/packages/musl.scm
index 357372becd..8592db1373 100644
--- a/gnu/packages/musl.scm
+++ b/gnu/packages/musl.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,17 +28,17 @@
 (define-public musl
   (package
     (name "musl")
-    (version "1.1.20")
+    (version "1.1.21")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://www.musl-libc.org/releases/"
-                                  name "-" version ".tar.gz"))
+              (uri (string-append "https://www.musl-libc.org/releases/"
+                                  "musl-" version ".tar.gz"))
               (sha256
                (base32
-                "0q8dsjxl41dccscv9a0r78bs7jap57mn4mni5pwbbip6s1qqggj4"))))
+                "0i2z52zgc86af1n1gjiz43hgd85mxjgvgn345zsybja9dxpvchn7"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f                      ; Musl has no tests
+     `(#:tests? #f                      ; musl has no tests
        #:configure-flags
        (list "--disable-gcc-wrapper")))
     (synopsis "Small C standard library")
diff --git a/gnu/packages/ncdu.scm b/gnu/packages/ncdu.scm
index 5008a6a521..36d4738d90 100644
--- a/gnu/packages/ncdu.scm
+++ b/gnu/packages/ncdu.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 John Darrington <jmd@gnu.org>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,14 +28,14 @@
 (define-public ncdu
   (package
     (name "ncdu")
-    (version "1.13")
+    (version "1.14")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://dev.yorhel.nl/download/ncdu-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0ni56ymlii577src4dzfbrq1mznbf6i0nka4bvh2sb1971f2ingl"))))
+                "0i4cap2z3037xx2rdzhrlazl2igk3xy4ncddp9j7xqi1mcx7i566"))))
     (build-system gnu-build-system)
     (inputs `(("ncurses" ,ncurses)))
     (synopsis "Ncurses based disk usage analyzer")
diff --git a/gnu/packages/ncurses.scm b/gnu/packages/ncurses.scm
index 2051f1dd9d..ae3fb887e8 100644
--- a/gnu/packages/ncurses.scm
+++ b/gnu/packages/ncurses.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -229,15 +229,15 @@ ncursesw library provides wide character support.")
 (define-public dialog
   (package
     (name "dialog")
-    (version "1.3-20180621")
+    (version "1.3-20190211")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://invisible-mirror.net/archives/dialog/dialog-"
+                    "https://invisible-mirror.net/archives/dialog/dialog-"
                     version ".tgz"))
               (sha256
                (base32
-                "0yjqczlf64yppgvk4i6s0jm06mdr0mb5m6sj39nf891dnbi5jj2a"))))
+                "1lx0bvradzx1zl7znlrsnyljcs596r7wamkhyq37ikbxsy4y5h29"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f))                    ; no test suite
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index d73b6f1108..ab253013bf 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015, 2016, 2017 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2016 Raimon Grau <raimonster@gmail.com>
-;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2016, 2017, 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
@@ -1204,19 +1204,18 @@ HTTP proxies.")
 (define-public enet
   (package
     (name "enet")
-    (version "1.3.13")
+    (version "1.3.14")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://enet.bespin.org/download/"
-                                  name "-" version ".tar.gz"))
+                                  "enet-" version ".tar.gz"))
               (sha256
                (base32
-                "0p53mnmjbm56wizwraznynx13fcibcxiqny110dp6a5a3w174q73"))))
+                "0w780zc6cy8yq4cskpphx0f91lzh51vh9lwyc5ll8hhamdxgbxlq"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (synopsis
-     "Network communication layer on top of UDP")
+    (synopsis "Network communication layer on top of UDP")
     (description
      "ENet's purpose is to provide a relatively thin, simple and robust network
 communication layer on top of UDP.  The primary feature it provides is optional
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 5101cc6b0a..9a807a4cb6 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -234,45 +234,6 @@ functional, imperative and object-oriented styles of programming.")
     ;; distributed under lgpl2.0.
     (license (list license:qpl license:lgpl2.0))))
 
-(define-public ocaml-4.01
-  (package
-    (inherit ocaml-4.02)
-    (version "4.01.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "http://caml.inria.fr/pub/distrib/ocaml-"
-                    (version-major+minor version)
-                    "/ocaml-" version ".tar.xz"))
-              (sha256
-               (base32
-                "03d7ida94s1gpr3gadf4jyhmh5rrszd5s4m4z59daaib25rvfyv7"))))
-    (arguments
-     (substitute-keyword-arguments (package-arguments ocaml-4.02)
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (replace 'build
-             (lambda _
-               ;; Specifying '-j' at all causes the build to fail.
-               (invoke "make" "world.opt")))
-           ,@(if (string=? "aarch64-linux" (%current-system))
-               ;; Custom configure script doesn't recongnize aarch64.
-               '((replace 'configure
-                  (lambda* (#:key outputs #:allow-other-keys)
-                    (let* ((out (assoc-ref outputs "out"))
-                           (mandir (string-append out "/share/man")))
-                      (invoke "./configure"
-                              "--prefix" out
-                              "--mandir" mandir
-                              "-host" "armv8l-unknown-linux-gnu")))))
-               '())
-           (replace 'check
-             (lambda _
-               (with-directory-excursion "testsuite"
-                 (invoke "make" "all"
-                         (string-append
-                          "TOPDIR=" (getcwd) "/..")))))))))))
-
 (define-public ocaml-4.07
   (package
     (inherit ocaml-4.02)
@@ -957,14 +918,6 @@ compilers that can directly deal with packages.")
        ("m4" ,m4)
        ("ocaml" ,ocaml-4.02)))))
 
-(define-public ocaml4.01-findlib
-  (package
-    (inherit ocaml-findlib)
-    (name "ocaml4.01-findlib")
-    (native-inputs
-     `(("m4" ,m4)
-       ("ocaml" ,ocaml-4.01)))))
-
 ;; note that some tests may hang for no obvious reason.
 (define-public ocaml-ounit
   (package
@@ -990,9 +943,6 @@ compilers that can directly deal with packages.")
 other XUnit testing frameworks.")
     (license license:expat)))
 
-(define-public ocaml4.01-ounit
-  (package-with-ocaml4.01 ocaml-ounit))
-
 (define-public ocaml4.02-ounit
   (package-with-ocaml4.02 ocaml-ounit))
 
@@ -1038,24 +988,6 @@ JAR format.  It provides functions for reading from and writing to compressed
 files in these formats.")
     (license license:lgpl2.1+)))
 
-(define-public ocaml4.01-camlzip
-  (let ((base (package-with-ocaml4.01 camlzip)))
-    (package
-      (inherit base)
-      (name "ocaml4.01-camlzip")
-      ;; Version 1.05 is the last version to support OCaml 4.01.0.
-      (version "1.05")
-      (source
-       (origin
-         (method url-fetch)
-         (uri
-          (string-append
-           "http://forge.ocamlcore.org/frs/download.php/1037/camlzip-"
-           version ".tar.gz"))
-         (sha256
-          (base32
-           "0syh72jk9s0qwjmmfrkqchaj98m020ii082jn38pwnmb6v3p02wk")))))))
-
 (define-public ocaml4.02-camlzip
   (package-with-ocaml4.02 camlzip))
 
@@ -1222,9 +1154,6 @@ qcheck library.  The possibilities range from trivial tests -- extremely simple
 to use -- to sophisticated random generation of test cases.")
     (license license:lgpl3+)))
 
-(define-public ocaml4.01-qtest
-  (package-with-ocaml4.01 ocaml-qtest))
-
 (define-public ocaml4.02-qtest
   (package-with-ocaml4.02 ocaml-qtest))
 
@@ -1301,39 +1230,9 @@ tests.  After application execution, it is possible to generate a report in HTML
 format that is the replica of the application source code annotated with code
 coverage information.")
     (properties
-     `((ocaml4.01-variant . ,(delay ocaml4.01-bisect))
-       (ocaml4.02-variant . ,(delay ocaml4.02-bisect))))
+     `((ocaml4.02-variant . ,(delay ocaml4.02-bisect))))
     (license license:gpl3+)))
 
-(define-public ocaml4.01-bisect
-  (let ((base (package-with-ocaml4.01 (strip-ocaml4.01-variant ocaml-bisect))))
-    (package
-      (inherit base)
-      (version "1.3")
-      (source (origin
-                (method url-fetch)
-                (uri (string-append "https://github.com/gasche/bisect/archive/"
-                                    version ".tar.gz"))
-                (file-name (string-append "ocaml-bisect-" version ".tar.gz"))
-                (sha256
-                 (base32
-                  "1ip49jqf0kkbrqf8qspmfjbg9ap9fhvjkg718myzix88dg5rv8d4"))))
-      (arguments
-       `(#:ocaml ,ocaml-4.01
-         ,@(substitute-keyword-arguments (package-arguments ocaml-bisect)
-            ((#:make-flags flags)
-             `(list "all"))
-            ((#:phases phases)
-             `(modify-phases ,phases
-                (replace 'configure
-                  (lambda* (#:key inputs outputs #:allow-other-keys)
-                    (invoke "./configure"
-                            "-ocaml-prefix" (assoc-ref inputs "ocaml"))
-                    #t)))))))
-      (native-inputs `(,@(alist-delete "camlp4" (package-native-inputs base))))
-      (propagated-inputs
-       `(,@(alist-delete "camlp4" (package-propagated-inputs base)))))))
-
 (define-public ocaml4.02-bisect
   (let ((base (package-with-ocaml4.02 (strip-ocaml4.02-variant ocaml-bisect))))
     (package
@@ -1648,9 +1547,6 @@ coexistence with the old (version 2) SQLite and its OCaml wrapper
 @code{ocaml-sqlite}.")
     (license license:expat)))
 
-(define-public ocaml4.01-sqlite3
-  (package-with-ocaml4.01 ocaml-sqlite3))
-
 (define-public ocaml4.02-sqlite3
   (package-with-ocaml4.02 ocaml-sqlite3))
 
@@ -1680,9 +1576,6 @@ read and write files in this format as well as some convenience functions to
 manipulate such data.")
     (license (package-license camlp4))))
 
-(define-public ocaml4.01-csv
-  (package-with-ocaml4.01 ocaml-csv))
-
 (define-public ocaml4.02-csv
   (package-with-ocaml4.02 ocaml-csv))
 
@@ -2191,9 +2084,6 @@ format.  It can process XML documents without a complete in-memory
 representation of the data.")
     (license license:isc)))
 
-(define-public ocaml4.01-xmlm
-  (package-with-ocaml4.01 ocaml-xmlm))
-
 (define-public ocaml4.02-xmlm
   (package-with-ocaml4.02 ocaml-xmlm))
 
@@ -2530,8 +2420,7 @@ many additional enhancements, including:
              (invoke "make" "all")
              #t)))))
     (properties
-      `((ocaml4.01-variant . ,(delay ocaml4.01-batteries))
-        (ocaml4.02-variant . ,(delay ocaml4.02-batteries))))
+      `((ocaml4.02-variant . ,(delay ocaml4.02-batteries))))
     (home-page "http://batteries.forge.ocamlcore.org/")
     (synopsis "Development platform for the OCaml programming language")
     (description "Define a standard set of libraries which may be expected on
@@ -2552,12 +2441,6 @@ hierarchy of modules.")
                   "1a97w3x2l1jr5x9kj5gqm1x6b0q9fjqdcsvls7arnl3bvzgsia0n"))))
       (propagated-inputs '()))))
 
-(define-public ocaml4.01-batteries
-  (let ((base (package-with-ocaml4.01 (strip-ocaml4.01-variant ocaml4.02-batteries))))
-    (package
-      (inherit base)
-      (name "ocaml4.01-batteries"))))
-
 (define-public ocaml-pcre
   (package
     (name "ocaml-pcre")
@@ -4932,9 +4815,6 @@ Atom.")
 the OCaml language.")
     (license license:gpl3+)))
 
-(define-public ocaml4.01-gsl
-  (package-with-ocaml4.01 ocaml-gsl))
-
 (define-public cubicle
   (package
     (name "cubicle")
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index af9667cd91..477e977bb2 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -10,6 +10,7 @@
 ;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
 ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019 Vagrant Cascadian <vagrant@reproducible-builds.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -33,6 +34,7 @@
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages backup)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages bdw-gc)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages bootstrap)          ;for 'bootstrap-guile-origin'
@@ -227,6 +229,7 @@
                                                   "guile-bytestructures"))
                                (ssh    (assoc-ref inputs "guile-ssh"))
                                (gnutls (assoc-ref inputs "gnutls"))
+                               (locales (assoc-ref inputs "glibc-utf8-locales"))
                                (deps   (list gcrypt json sqlite gnutls
                                              git bs ssh))
                                (effective
@@ -245,11 +248,13 @@
                                                   "/lib/guile/" effective
                                                   "/site-ccache")
                                              (delete #f deps))
-                                        ":")))
+                                        ":"))
+                               (locpath (string-append locales "/lib/locale")))
 
                           (wrap-program (string-append out "/bin/guix")
                             `("GUILE_LOAD_PATH" ":" prefix (,path))
-                            `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,gopath)))
+                            `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,gopath))
+                            `("GUIX_LOCPATH" ":" suffix (,locpath)))
 
                           #t))))))
       (native-inputs `(("pkg-config" ,pkg-config)
@@ -282,7 +287,9 @@
          ,@(if (and (not (%current-target-system))
                     (string=? (%current-system) "x86_64-linux"))
                `(("boot-guile/i686" ,(bootstrap-guile-origin "i686-linux")))
-               '())))
+               '())
+
+         ("glibc-utf8-locales" ,glibc-utf8-locales)))
       (propagated-inputs
        `(("gnutls" ,gnutls)
          ("guile-gcrypt" ,guile-gcrypt)
@@ -606,6 +613,55 @@ various binary formats into more human readable forms to compare them.  It can
 compare two tarballs, ISO images, or PDFs just as easily.")
     (license license:gpl3+)))
 
+(define-public trydiffoscope
+ (package
+   (name "trydiffoscope")
+   (version "67.0.1")
+   (source
+    (origin
+      (method git-fetch)
+      (uri (git-reference
+            (url "https://salsa.debian.org/reproducible-builds/trydiffoscope.git")
+            (commit version)))
+      (file-name (git-file-name name version))
+      (sha256
+       (base32
+        "03b66cjii7l2yiwffj6ym6mycd5drx7prfp4j2550281pias6mjh"))))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-doc
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((share (string-append (assoc-ref outputs "out") "/share/")))
+               (mkdir-p (string-append share "/man/man1/" ))
+               (invoke "rst2man.py"
+                       "trydiffoscope.1.rst"
+                       (string-append share "/man/man1/trydiffoscope.1"))
+               (mkdir-p (string-append share "/doc/" ,name "-" ,version))
+               (install-file "./README.rst"
+                          (string-append share "/doc/" ,name "-" ,version)))
+             #t)))))
+    (propagated-inputs
+     `(("python-requests" ,python-requests)))
+    (native-inputs
+     `(("gzip" ,gzip)
+       ("python-docutils" ,python-docutils)))
+    (build-system python-build-system)
+    (home-page "https://try.diffoscope.org")
+    (synopsis "Client for remote diffoscope service")
+    (description "This is a client for the @url{https://try.diffoscope.org,
+remote diffoscope service}.
+
+Diffoscope tries to get to the bottom of what makes files or directories
+different.  It recursively unpacks archives of many kinds and transforms
+various binary formats into more human readable forms to compare them.  It can
+compare two tarballs, ISO images, or PDFs just as easily.
+
+Results are displayed by default, stored as local text or html files, or made
+available via a URL on @url{https://try.diffoscope.org}.  Results stored on the
+server are purged after 30 days.")
+    (license license:gpl3+)))
+
 (define-public python-anaconda-client
   (package
     (name "python-anaconda-client")
@@ -870,17 +926,18 @@ Microsoft cabinet (.@dfn{CAB}) files.")
 (define-public msitools
   (package
     (name "msitools")
-    (version "0.98")
+    (version "0.99")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  version "/" name "-" version ".tar.xz"))
+              (uri (string-append "mirror://gnome/sources/msitools/"
+                                  version "/msitools-" version ".tar.xz"))
               (sha256
                (base32
-                "19wb3n3nwkpc6bjr0q3f1znaxsfaqgjbdxxnbx8ic8bb5b49hwac"))))
+                "0d9nidn5zc81bc30w119933rn2g87mrsqyqkndg20srkbsd96xfl"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("bison" ,bison)
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("gcab" ,gcab)
        ("glib" ,glib)
diff --git a/gnu/packages/patches/allegro4-mesa-18.2.5-and-later.patch b/gnu/packages/patches/allegro4-mesa-18.2.5-and-later.patch
deleted file mode 100644
index a4944821db..0000000000
--- a/gnu/packages/patches/allegro4-mesa-18.2.5-and-later.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-Fixes compilation with Mesa >= 18.2.5.
-
-Modified from upstream to work on allegro4:
-
-https://github.com/liballeg/allegro5/commit/a40d30e21802ecf5c9382cf34af9b01bd3781e47
-
-diff --git a/addons/allegrogl/include/alleggl.h b/addons/allegrogl/include/alleggl.h
-index 0f86a6768..652dd024e 100644
---- a/addons/allegrogl/include/alleggl.h
-+++ b/addons/allegrogl/include/alleggl.h
-@@ -103,10 +103,14 @@
-
- /* HACK: Prevent both Mesa and SGI's broken headers from screwing us */
- #define __glext_h_
-+#define __gl_glext_h_
- #define __glxext_h_
-+#define __glx_glxext_h_
- #include <GL/gl.h>
- #undef  __glext_h_
-+#undef  __gl_glext_h_
- #undef  __glxext_h_
-+#undef  __glx_glxext_h_
-
- #endif /* ALLEGRO_MACOSX */
-
-diff --git a/addons/allegrogl/include/allegrogl/GLext/glx_ext_defs.h b/addons/allegrogl/include/allegrogl/GLext/glx_ext_defs.h
-index 49c502091..fba8aea5d 100644
---- a/addons/allegrogl/include/allegrogl/GLext/glx_ext_defs.h
-+++ b/addons/allegrogl/include/allegrogl/GLext/glx_ext_defs.h
-@@ -1,7 +1,9 @@
- /* HACK: Prevent both Mesa and SGI's broken headers from screwing us */
- #define __glxext_h_
-+#define __glx_glxext_h_
- #include <GL/glx.h>
- #undef __glxext_h_
-+#undef __glx_glxext_h_
-
- #ifndef GLX_VERSION_1_3
- #define _ALLEGRO_GLX_VERSION_1_3
---
-2.20.0
diff --git a/gnu/packages/patches/clang-7.0-libc-search-path.patch b/gnu/packages/patches/clang-7.0-libc-search-path.patch
new file mode 100644
index 0000000000..07ff8c90bd
--- /dev/null
+++ b/gnu/packages/patches/clang-7.0-libc-search-path.patch
@@ -0,0 +1,82 @@
+Clang attempts to guess file names based on the OS and distro (yes!),
+but unfortunately, that doesn't work for us.
+
+This patch makes it easy to insert libc's $libdir so that Clang passes the
+correct absolute file name of crt1.o etc. to 'ld'.  It also disables all
+the distro-specific stuff and removes the hard-coded FHS directory names
+to make sure Clang also works on non-GuixSD systems.
+
+--- a/lib/Driver/ToolChains/Linux.cpp
++++ b/lib/Driver/ToolChains/Linux.cpp
+@@ -225,7 +225,9 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+   PPaths.push_back(Twine(GCCInstallation.getParentLibPath() + "/../" +
+                          GCCInstallation.getTriple().str() + "/bin")
+                        .str());
+-
++  // Comment out the distro-specific tweaks so that they don't bite when
++  // using Guix on a foreign distro.
++#if 0
+   Distro Distro(D.getVFS());
+ 
+   if (Distro.IsAlpineLinux()) {
+@@ -284,6 +286,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+ 
+   if (IsAndroid || Distro.IsOpenSUSE())
+     ExtraOpts.push_back("--enable-new-dtags");
++#endif
+ 
+   // The selection of paths to try here is designed to match the patterns which
+   // the GCC driver itself uses, as this is part of the GCC-compatible driver.
+@@ -342,7 +345,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+     // the cross. Note that GCC does include some of these directories in some
+     // configurations but this seems somewhere between questionable and simply
+     // a bug.
+-    if (StringRef(LibPath).startswith(SysRoot)) {
++    if (0) {
+       addPathIfExists(D, LibPath + "/" + MultiarchTriple, Paths);
+       addPathIfExists(D, LibPath + "/../" + OSLibDir, Paths);
+     }
+@@ -361,6 +364,8 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+   addPathIfExists(D, SysRoot + "/lib/" + MultiarchTriple, Paths);
+   addPathIfExists(D, SysRoot + "/lib/../" + OSLibDir, Paths);
+ 
++  // This requires the commented distro tweaks above.
++#if 0
+   if (IsAndroid) {
+     // Android sysroots contain a library directory for each supported OS
+     // version as well as some unversioned libraries in the usual multiarch
+@@ -389,10 +394,14 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+     addPathIfExists(D, SysRoot + "/" + OSLibDir + "/" + ABIName, Paths);
+     addPathIfExists(D, SysRoot + "/usr/" + OSLibDir + "/" + ABIName, Paths);
+   }
++#endif
+ 
+   // Try walking via the GCC triple path in case of biarch or multiarch GCC
+   // installations with strange symlinks.
+   if (GCCInstallation.isValid()) {
++    // The following code would end up adding things like
++    // "/usr/lib/x86_64-unknown-linux-gnu/../../lib64" to the search path.
++#if 0
+     addPathIfExists(D,
+                     SysRoot + "/usr/lib/" + GCCInstallation.getTriple().str() +
+                         "/../../" + OSLibDir,
+@@ -405,6 +414,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+                              BiarchSibling.gccSuffix(),
+                       Paths);
+     }
++#endif
+ 
+     // See comments above on the multilib variant for details of why this is
+     // included even from outside the sysroot.
+@@ -429,8 +439,9 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+   if (StringRef(D.Dir).startswith(SysRoot))
+     addPathIfExists(D, D.Dir + "/../lib", Paths);
+ 
+-  addPathIfExists(D, SysRoot + "/lib", Paths);
+-  addPathIfExists(D, SysRoot + "/usr/lib", Paths);
++  // Add libc's lib/ directory to the search path, so that crt1.o, crti.o,
++  // and friends can be found.
++  addPathIfExists(D, "@GLIBC_LIBDIR@", Paths);
+ }
+ 
+ bool Linux::HasNativeLLVMSupport() const { return true; }
diff --git a/gnu/packages/patches/dealii-mpi-deprecations.patch b/gnu/packages/patches/dealii-mpi-deprecations.patch
new file mode 100644
index 0000000000..816d54140a
--- /dev/null
+++ b/gnu/packages/patches/dealii-mpi-deprecations.patch
@@ -0,0 +1,28 @@
+From 40538ad31a71495649d174b0f7be5f7135d0a905 Mon Sep 17 00:00:00 2001
+From: David Wells <drwells@email.unc.edu>
+Date: Sat, 2 Feb 2019 10:00:38 -0500
+Subject: [PATCH] Avoid calling a deprecated MPI function.
+
+This was deprecated a long time ago (1996) and is not present in the
+latest version of openMPI (4.0): see
+
+https://www.open-mpi.org/faq/?category=mpi-removed
+
+Credit goes to Pratik Nayak for finding this issue.
+---
+ source/base/mpi.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/source/base/mpi.cc b/source/base/mpi.cc
+index bd1f7f9846a..b8cd45e7c26 100644
+--- a/source/base/mpi.cc
++++ b/source/base/mpi.cc
+@@ -448,7 +448,7 @@ namespace Utilities
+       MPI_Aint     displacements[] = {0, offsetof(MinMaxAvg, min_index)};
+       MPI_Datatype types[]         = {MPI_DOUBLE, MPI_INT};
+ 
+-      ierr = MPI_Type_struct(2, lengths, displacements, types, &type);
++      ierr = MPI_Type_create_struct(2, lengths, displacements, types, &type);
+       AssertThrowMPI(ierr);
+ 
+       ierr = MPI_Type_commit(&type);
diff --git a/gnu/packages/patches/gd-CVE-2019-6977.patch b/gnu/packages/patches/gd-CVE-2019-6977.patch
new file mode 100644
index 0000000000..b21a8ac619
--- /dev/null
+++ b/gnu/packages/patches/gd-CVE-2019-6977.patch
@@ -0,0 +1,36 @@
+Fix CVE-2019-6977:
+
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-6977
+
+Patch copied from Debian:
+
+https://salsa.debian.org/debian/libgd2/commit/2d7d3b68bb79843e5271a05543e996fd5a3a8cd1
+
+Description: Heap-based buffer overflow in gdImageColorMatch
+Origin: other, https://gist.github.com/cmb69/1f36d285eb297ed326f5c821d7aafced
+Bug-PHP: https://bugs.php.net/bug.php?id=77270
+Bug-Debian: https://bugs.debian.org/920645
+Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2019-6977
+Forwarded: no
+Author: "Christoph M. Becker" <cmbecker69@gmx.de>
+Last-Update: 2019-02-01
+
+At least some of the image reading functions may return images which
+use color indexes greater than or equal to im->colorsTotal.  We cater
+to this by always using a buffer size which is sufficient for
+`gdMaxColors` in `gdImageColorMatch()`.
+---
+
+--- a/src/gd_color_match.c
++++ b/src/gd_color_match.c
+@@ -31,8 +31,8 @@ BGD_DECLARE(int) gdImageColorMatch (gdIm
+ 		return -4; /* At least 1 color must be allocated */
+ 	}
+ 
+-	buf = (unsigned long *)gdMalloc(sizeof(unsigned long) * 5 * im2->colorsTotal);
+-	memset (buf, 0, sizeof(unsigned long) * 5 * im2->colorsTotal );
++	buf = (unsigned long *)gdMalloc(sizeof(unsigned long) * 5 * gdMaxColors);
++	memset (buf, 0, sizeof(unsigned long) * 5 * gdMaxColors );
+ 
+ 	for (x=0; x < im1->sx; x++) {
+ 		for( y=0; y<im1->sy; y++ ) {
diff --git a/gnu/packages/patches/gd-CVE-2019-6978.patch b/gnu/packages/patches/gd-CVE-2019-6978.patch
new file mode 100644
index 0000000000..69fc5056fc
--- /dev/null
+++ b/gnu/packages/patches/gd-CVE-2019-6978.patch
@@ -0,0 +1,301 @@
+Fix CVE-2019-6978:
+
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-6978
+
+Patch copied from upstream source repository:
+
+https://github.com/libgd/libgd/commit/553702980ae89c83f2d6e254d62cf82e204956d0
+
+From 553702980ae89c83f2d6e254d62cf82e204956d0 Mon Sep 17 00:00:00 2001
+From: "Christoph M. Becker" <cmbecker69@gmx.de>
+Date: Thu, 17 Jan 2019 11:54:55 +0100
+Subject: [PATCH] Fix #492: Potential double-free in gdImage*Ptr()
+
+Whenever `gdImage*Ptr()` calls `gdImage*Ctx()` and the latter fails, we
+must not call `gdDPExtractData()`; otherwise a double-free would
+happen.  Since `gdImage*Ctx()` are void functions, and we can't change
+that for BC reasons, we're introducing static helpers which are used
+internally.
+
+We're adding a regression test for `gdImageJpegPtr()`, but not for
+`gdImageGifPtr()` and `gdImageWbmpPtr()` since we don't know how to
+trigger failure of the respective `gdImage*Ctx()` calls.
+
+This potential security issue has been reported by Solmaz Salimi (aka.
+Rooney).
+---
+ src/gd_gif_out.c                  | 18 +++++++++++++++---
+ src/gd_jpeg.c                     | 20 ++++++++++++++++----
+ src/gd_wbmp.c                     | 21 ++++++++++++++++++---
+ tests/jpeg/.gitignore             |  1 +
+ tests/jpeg/CMakeLists.txt         |  1 +
+ tests/jpeg/Makemodule.am          |  3 ++-
+ tests/jpeg/jpeg_ptr_double_free.c | 31 +++++++++++++++++++++++++++++++
+ 7 files changed, 84 insertions(+), 11 deletions(-)
+ create mode 100644 tests/jpeg/jpeg_ptr_double_free.c
+
+diff --git a/src/gd_gif_out.c b/src/gd_gif_out.c
+index 298a581..d5a9534 100644
+--- a/src/gd_gif_out.c
++++ b/src/gd_gif_out.c
+@@ -99,6 +99,7 @@ static void char_init(GifCtx *ctx);
+ static void char_out(int c, GifCtx *ctx);
+ static void flush_char(GifCtx *ctx);
+ 
++static int _gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out);
+ 
+ 
+ 
+@@ -131,8 +132,11 @@ BGD_DECLARE(void *) gdImageGifPtr(gdImagePtr im, int *size)
+ 	void *rv;
+ 	gdIOCtx *out = gdNewDynamicCtx(2048, NULL);
+ 	if (out == NULL) return NULL;
+-	gdImageGifCtx(im, out);
+-	rv = gdDPExtractData(out, size);
++	if (!_gdImageGifCtx(im, out)) {
++		rv = gdDPExtractData(out, size);
++	} else {
++		rv = NULL;
++	}
+ 	out->gd_free(out);
+ 	return rv;
+ }
+@@ -220,6 +224,12 @@ BGD_DECLARE(void) gdImageGif(gdImagePtr im, FILE *outFile)
+ 
+ */
+ BGD_DECLARE(void) gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out)
++{
++	_gdImageGifCtx(im, out);
++}
++
++/* returns 0 on success, 1 on failure */
++static int _gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out)
+ {
+ 	gdImagePtr pim = 0, tim = im;
+ 	int interlace, BitsPerPixel;
+@@ -231,7 +241,7 @@ BGD_DECLARE(void) gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out)
+ 		based temporary image. */
+ 		pim = gdImageCreatePaletteFromTrueColor(im, 1, 256);
+ 		if(!pim) {
+-			return;
++			return 1;
+ 		}
+ 		tim = pim;
+ 	}
+@@ -247,6 +257,8 @@ BGD_DECLARE(void) gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out)
+ 		/* Destroy palette based temporary image. */
+ 		gdImageDestroy(	pim);
+ 	}
++
++	return 0;
+ }
+ 
+ 
+diff --git a/src/gd_jpeg.c b/src/gd_jpeg.c
+index fc05842..96ef430 100644
+--- a/src/gd_jpeg.c
++++ b/src/gd_jpeg.c
+@@ -117,6 +117,8 @@ static void fatal_jpeg_error(j_common_ptr cinfo)
+ 	exit(99);
+ }
+ 
++static int _gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality);
++
+ /*
+  * Write IM to OUTFILE as a JFIF-formatted JPEG image, using quality
+  * QUALITY.  If QUALITY is in the range 0-100, increasing values
+@@ -231,8 +233,11 @@ BGD_DECLARE(void *) gdImageJpegPtr(gdImagePtr im, int *size, int quality)
+ 	void *rv;
+ 	gdIOCtx *out = gdNewDynamicCtx(2048, NULL);
+ 	if (out == NULL) return NULL;
+-	gdImageJpegCtx(im, out, quality);
+-	rv = gdDPExtractData(out, size);
++	if (!_gdImageJpegCtx(im, out, quality)) {
++		rv = gdDPExtractData(out, size);
++	} else {
++		rv = NULL;
++	}
+ 	out->gd_free(out);
+ 	return rv;
+ }
+@@ -253,6 +258,12 @@ void jpeg_gdIOCtx_dest(j_compress_ptr cinfo, gdIOCtx *outfile);
+ 
+ */
+ BGD_DECLARE(void) gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality)
++{
++	_gdImageJpegCtx(im, outfile, quality);
++}
++
++/* returns 0 on success, 1 on failure */
++static int _gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality)
+ {
+ 	struct jpeg_compress_struct cinfo;
+ 	struct jpeg_error_mgr jerr;
+@@ -287,7 +298,7 @@ BGD_DECLARE(void) gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality)
+ 		if(row) {
+ 			gdFree(row);
+ 		}
+-		return;
++		return 1;
+ 	}
+ 
+ 	cinfo.err->emit_message = jpeg_emit_message;
+@@ -328,7 +339,7 @@ BGD_DECLARE(void) gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality)
+ 	if(row == 0) {
+ 		gd_error("gd-jpeg: error: unable to allocate JPEG row structure: gdCalloc returns NULL\n");
+ 		jpeg_destroy_compress(&cinfo);
+-		return;
++		return 1;
+ 	}
+ 
+ 	rowptr[0] = row;
+@@ -405,6 +416,7 @@ BGD_DECLARE(void) gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality)
+ 	jpeg_finish_compress(&cinfo);
+ 	jpeg_destroy_compress(&cinfo);
+ 	gdFree(row);
++	return 0;
+ }
+ 
+ 
+diff --git a/src/gd_wbmp.c b/src/gd_wbmp.c
+index f19a1c9..a49bdbe 100644
+--- a/src/gd_wbmp.c
++++ b/src/gd_wbmp.c
+@@ -88,6 +88,8 @@ int gd_getin(void *in)
+ 	return (gdGetC((gdIOCtx *)in));
+ }
+ 
++static int _gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out);
++
+ /*
+ 	Function: gdImageWBMPCtx
+ 
+@@ -100,6 +102,12 @@ int gd_getin(void *in)
+ 		out   - the stream where to write
+ */
+ BGD_DECLARE(void) gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out)
++{
++	_gdImageWBMPCtx(image, fg, out);
++}
++
++/* returns 0 on success, 1 on failure */
++static int _gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out)
+ {
+ 	int x, y, pos;
+ 	Wbmp *wbmp;
+@@ -107,7 +115,7 @@ BGD_DECLARE(void) gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out)
+ 	/* create the WBMP */
+ 	if((wbmp = createwbmp(gdImageSX(image), gdImageSY(image), WBMP_WHITE)) == NULL) {
+ 		gd_error("Could not create WBMP\n");
+-		return;
++		return 1;
+ 	}
+ 
+ 	/* fill up the WBMP structure */
+@@ -123,11 +131,15 @@ BGD_DECLARE(void) gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out)
+ 
+ 	/* write the WBMP to a gd file descriptor */
+ 	if(writewbmp(wbmp, &gd_putout, out)) {
++		freewbmp(wbmp);
+ 		gd_error("Could not save WBMP\n");
++		return 1;
+ 	}
+ 
+ 	/* des submitted this bugfix: gdFree the memory. */
+ 	freewbmp(wbmp);
++
++	return 0;
+ }
+ 
+ /*
+@@ -271,8 +283,11 @@ BGD_DECLARE(void *) gdImageWBMPPtr(gdImagePtr im, int *size, int fg)
+ 	void *rv;
+ 	gdIOCtx *out = gdNewDynamicCtx(2048, NULL);
+ 	if (out == NULL) return NULL;
+-	gdImageWBMPCtx(im, fg, out);
+-	rv = gdDPExtractData(out, size);
++	if (!_gdImageWBMPCtx(im, fg, out)) {
++		rv = gdDPExtractData(out, size);
++	} else {
++		rv = NULL;
++	}
+ 	out->gd_free(out);
+ 	return rv;
+ }
+#diff --git a/tests/jpeg/.gitignore b/tests/jpeg/.gitignore
+#index c28aa87..13bcf04 100644
+#--- a/tests/jpeg/.gitignore
+#+++ b/tests/jpeg/.gitignore
+#@@ -3,5 +3,6 @@
+# /jpeg_empty_file
+# /jpeg_im2im
+# /jpeg_null
+#+/jpeg_ptr_double_free
+# /jpeg_read
+# /jpeg_resolution
+diff --git a/tests/jpeg/CMakeLists.txt b/tests/jpeg/CMakeLists.txt
+index 19964b0..a8d8162 100644
+--- a/tests/jpeg/CMakeLists.txt
++++ b/tests/jpeg/CMakeLists.txt
+@@ -2,6 +2,7 @@ IF(JPEG_FOUND)
+ LIST(APPEND TESTS_FILES
+ 	jpeg_empty_file
+ 	jpeg_im2im
++	jpeg_ptr_double_free
+ 	jpeg_null
+ )
+ 
+diff --git a/tests/jpeg/Makemodule.am b/tests/jpeg/Makemodule.am
+index 7e5d317..b89e169 100644
+--- a/tests/jpeg/Makemodule.am
++++ b/tests/jpeg/Makemodule.am
+@@ -2,7 +2,8 @@ if HAVE_LIBJPEG
+ libgd_test_programs += \
+ 	jpeg/jpeg_empty_file \
+ 	jpeg/jpeg_im2im \
+-	jpeg/jpeg_null
++	jpeg/jpeg_null \
++	jpeg/jpeg_ptr_double_free
+ 
+ if HAVE_LIBPNG
+ libgd_test_programs += \
+diff --git a/tests/jpeg/jpeg_ptr_double_free.c b/tests/jpeg/jpeg_ptr_double_free.c
+new file mode 100644
+index 0000000..df5a510
+--- /dev/null
++++ b/tests/jpeg/jpeg_ptr_double_free.c
+@@ -0,0 +1,31 @@
++/**
++ * Test that failure to convert to JPEG returns NULL
++ *
++ * We are creating an image, set its width to zero, and pass this image to
++ * `gdImageJpegPtr()` which is supposed to fail, and as such should return NULL.
++ *
++ * See also <https://github.com/libgd/libgd/issues/381>
++ */
++
++
++#include "gd.h"
++#include "gdtest.h"
++
++
++int main()
++{
++    gdImagePtr src, dst;
++    int size;
++
++    src = gdImageCreateTrueColor(1, 10);
++    gdTestAssert(src != NULL);
++
++    src->sx = 0; /* this hack forces gdImageJpegPtr() to fail */
++
++    dst = gdImageJpegPtr(src, &size, 0);
++    gdTestAssert(dst == NULL);
++
++    gdImageDestroy(src);
++
++    return gdNumFailures();
++}
+-- 
+2.20.1
+
diff --git a/gnu/packages/patches/pius.patch b/gnu/packages/patches/pius.patch
deleted file mode 100644
index da39731d4d..0000000000
--- a/gnu/packages/patches/pius.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-See https://github.com/jaymzh/pius/pull/96
-
-commit 4dba0bf75ab351969622f7b9c38484657411a528
-Author: Martin Kletzander <nert.pinx+github@gmail.com>
-Date:   Thu May 17 17:55:27 2018 +0200
-
-    Don't fail on ENCRYPTION_COMPLIANCE_MODE line from too new GnuPG (#96)
-    
-    GnuPG started printing information about encryption compliance in [commit
-    f31dc2540acf](https://dev.gnupg.org/rGf31dc2540acf7cd7f09fd94658e815822222bfcb)
-    and since then signing with pius fails.
-    
-    Closes #95
-    
-    Signed-off-by: Martin Kletzander <nert.pinx@gmail.com>
-
-diff --git a/libpius/signer.py b/libpius/signer.py
-index 3c7262f..13013bb 100644
---- a/libpius/signer.py
-+++ b/libpius/signer.py
-@@ -45,6 +45,7 @@ class PiusSigner(object):
-   GPG_PINENTRY_LAUNCHED = '[GNUPG:] PINENTRY_LAUNCHED'
-   GPG_KEY_CONSIDERED = '[GNUPG:] KEY_CONSIDERED'
-   GPG_WARN_VERSION = '[GNUPG:] WARNING server_version_mismatch'
-+  GPG_ENC_COMPLIANT_MODE = '[GNUPG:] ENCRYPTION_COMPLIANCE_MODE'
- 
-   def __init__(self, signer, force_signer, mode, keyring, gpg_path, tmpdir,
-                outdir, encrypt_outfiles, mail, mailer, verbose, sort_keyring,
-@@ -431,6 +432,9 @@ class PiusSigner(object):
-       if PiusSigner.GPG_ENC_BEG in line:
-         debug('Got GPG_ENC_BEG')
-         continue
-+      elif PiusSigner.GPG_ENC_COMPLIANT_MODE in line:
-+        debug('Got ENCRYPTION_COMPLIANCE_MODE')
-+        continue
-       elif PiusSigner.GPG_ENC_END in line:
-         debug('Got GPG_ENC_END')
-         break
diff --git a/gnu/packages/patches/qtbase-old-kernel.patch b/gnu/packages/patches/qtbase-old-kernel.patch
new file mode 100644
index 0000000000..aa26fb6c4f
--- /dev/null
+++ b/gnu/packages/patches/qtbase-old-kernel.patch
@@ -0,0 +1,25 @@
+https://672856.bugs.gentoo.org/attachment.cgi?id=557978
+https://bugs.gentoo.org/672856
+
+The patch fixes building qtbase with linux kernels < 4.11.
+See bug #34431.
+
+diff -Naurp a/src/corelib/global/minimum-linux_p.h b/src/corelib/global/minimum-linux_p.h
+--- a/src/corelib/global/minimum-linux_p.h      2018-11-25 15:51:11.000000000 +0300
++++ b/src/corelib/global/minimum-linux_p.h      2018-12-17 13:25:38.176823753 +0300
+@@ -75,14 +75,9 @@ QT_BEGIN_NAMESPACE
+  * - accept4                    2.6.28
+  * - renameat2                  3.16                    QT_CONFIG(renameat2)
+  * - getrandom                  3.17                    QT_CONFIG(getentropy)
+- * - statx                      4.11                    QT_CONFIG(statx)
+  */
+
+-#if QT_CONFIG(statx)
+-#  define MINLINUX_MAJOR        4
+-#  define MINLINUX_MINOR        11
+-#  define MINLINUX_PATCH        0
+-#elif QT_CONFIG(getentropy)
++#if QT_CONFIG(getentropy)
+ #  define MINLINUX_MAJOR        3
+ #  define MINLINUX_MINOR        17
+ #  define MINLINUX_PATCH        0
diff --git a/gnu/packages/patches/ruby-safe-yaml-add-require-time.patch b/gnu/packages/patches/ruby-safe-yaml-add-require-time.patch
new file mode 100644
index 0000000000..92e5505985
--- /dev/null
+++ b/gnu/packages/patches/ruby-safe-yaml-add-require-time.patch
@@ -0,0 +1,19 @@
+From 9dd1e8d9ad0396a8c9092c2e9f17d498c58e0208 Mon Sep 17 00:00:00 2001
+From: elifoster <elifosterwy@gmail.com>
+Date: Tue, 5 Dec 2017 14:30:13 -0800
+Subject: [PATCH] Fix uninitialized constant DateTime Close #80
+
+---
+ lib/safe_yaml/parse/date.rb | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/lib/safe_yaml/parse/date.rb b/lib/safe_yaml/parse/date.rb
+index cd3c62a..3a30a8b 100644
+--- a/lib/safe_yaml/parse/date.rb
++++ b/lib/safe_yaml/parse/date.rb
+@@ -1,3 +1,5 @@
++require 'time'
++
+ module SafeYAML
+   class Parse
+     class Date
diff --git a/gnu/packages/patches/soundconverter-remove-gconf-dependency.patch b/gnu/packages/patches/soundconverter-remove-gconf-dependency.patch
index f065b9a3d4..29cdeb6e8d 100644
--- a/gnu/packages/patches/soundconverter-remove-gconf-dependency.patch
+++ b/gnu/packages/patches/soundconverter-remove-gconf-dependency.patch
@@ -1,83 +1,29 @@
-From: Sebastian Ramacher <sebastian@ramacher.at>
-Date: Fri, 6 Apr 2018 13:25:35 +0200
-Subject: Only fetch profiles if GConf is still available
+From: Tobias Geerinckx-Rice <me@tobias.gr>
+Date: Tue, 19 Feb 2019 07:46:28 +0100
+Subject: [PATCH] gnu: soundconverter: Catch (and ignore) the right error.
 
----
- bin/soundconverter.py       |  1 -
- soundconverter/gstreamer.py | 44 ++++++++++++++++++++++++--------------------
- 2 files changed, 24 insertions(+), 21 deletions(-)
+Without this patch and GConf:
 
-diff --git a/bin/soundconverter.py b/bin/soundconverter.py
-index 39055ce..5198443 100644
---- a/bin/soundconverter.py
-+++ b/bin/soundconverter.py
-@@ -66,7 +66,6 @@ def _check_libs():
-         import gi
-         gi.require_version('Gst', '1.0')
-         gi.require_version('Gtk', '3.0')
--        gi.require_version('GConf', '2.0')
-         from gi.repository import GObject
-         # force GIL creation - see https://bugzilla.gnome.org/show_bug.cgi?id=710447
-         import threading
-diff --git a/soundconverter/gstreamer.py b/soundconverter/gstreamer.py
-index 23aaa9b..211b052 100644
---- a/soundconverter/gstreamer.py
-+++ b/soundconverter/gstreamer.py
-@@ -25,7 +25,7 @@ from urllib.parse import urlparse
- from gettext import gettext as _
- 
- import gi
--from gi.repository import Gst, Gtk, GObject, GConf, Gio
-+from gi.repository import Gst, Gtk, GObject, Gio
- 
- from soundconverter.fileoperations import vfs_encode_filename, file_encode_filename
- from soundconverter.fileoperations import unquote_filename, vfs_makedirs, vfs_unlink
-@@ -66,25 +66,29 @@ _GCONF_PROFILE_LIST_PATH = "/system/gstreamer/1.0/audio/global/profile_list"
- audio_profiles_list = []
- audio_profiles_dict = {}
- 
--_GCONF = GConf.Client.get_default()
--profiles = _GCONF.all_dirs(_GCONF_PROFILE_LIST_PATH)
--for name in profiles:
--    if _GCONF.get_bool(_GCONF_PROFILE_PATH + name + "/active"):
--        # get profile
--        description = _GCONF.get_string(_GCONF_PROFILE_PATH + name + "/name")
--        extension = _GCONF.get_string(_GCONF_PROFILE_PATH + name + "/extension")
--        pipeline = _GCONF.get_string(_GCONF_PROFILE_PATH + name + "/pipeline")
--        # check profile validity
--        if not extension or not pipeline:
--            continue
--        if not description:
--            description = extension
--        if description in audio_profiles_dict:
--            continue
--            # store
--        profile = description, extension, pipeline
--        audio_profiles_list.append(profile)
--        audio_profiles_dict[description] = profile
-+try:
-+    from gi.repository import GConf
-+    _GCONF = GConf.Client.get_default()
-+    profiles = _GCONF.all_dirs(_GCONF_PROFILE_LIST_PATH)
-+    for name in profiles:
-+        if _GCONF.get_bool(_GCONF_PROFILE_PATH + name + "/active"):
-+            # get profile
-+            description = _GCONF.get_string(_GCONF_PROFILE_PATH + name + "/name")
-+            extension = _GCONF.get_string(_GCONF_PROFILE_PATH + name + "/extension")
-+            pipeline = _GCONF.get_string(_GCONF_PROFILE_PATH + name + "/pipeline")
-+            # check profile validity
-+            if not extension or not pipeline:
-+                continue
-+            if not description:
-+                description = extension
-+            if description in audio_profiles_dict:
-+                continue
-+                # store
-+            profile = description, extension, pipeline
-+            audio_profiles_list.append(profile)
-+            audio_profiles_dict[description] = profile
-+except ImportError:
-+    pass
+  Traceback (most recent call last):
+    File "/gnu/…/bin/...soundconverter-real-real-real", line 164, in <module>
+      from soundconverter.batch import cli_convert_main
+    File "/gnu/…/lib/soundconverter/python/soundconverter/batch.py", line 31, in <module>
+      from soundconverter.gstreamer import TagReader
+    File "/gnu/…/lib/soundconverter/python/soundconverter/gstreamer.py", line 70, in <module>
+      gi.require_version('GConf', '2.0')
+    File "/gnu/…/lib/python3.7/site-packages/gi/__init__.py", line 130, in require_version
+      raise ValueError('Namespace %s not available' % namespace)
+  ValueError: Namespace GConf not available
+---
+diff -Naur soundconverter-3.0.1/soundconverter/gstreamer.py soundconverter-3.0.1/soundconverter/gstreamer.py
+--- soundconverter-3.0.1/soundconverter/gstreamer.py	2018-11-23 20:38:46.000000000 +0100
++++ soundconverter-3.0.1/soundconverter/gstreamer.py	2019-02-19 07:42:15.767684388 +0100
+@@ -88,7 +88,7 @@
+             profile = description, extension, pipeline
+             audio_profiles_list.append(profile)
+             audio_profiles_dict[description] = profile
+-except ImportError:
++except ValueError:
+     pass
  
  required_elements = ('decodebin', 'fakesink', 'audioconvert', 'typefind', 'audiorate')
- for element in required_elements:
diff --git a/gnu/packages/patches/tomsfastmath-constness.patch b/gnu/packages/patches/tomsfastmath-constness.patch
deleted file mode 100644
index 7c6ab5bbec..0000000000
--- a/gnu/packages/patches/tomsfastmath-constness.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From dac089515901d6bf315cd15a6e744b8d2c02c1cb Mon Sep 17 00:00:00 2001
-From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
-Date: Sat, 31 Oct 2015 22:48:07 +0100
-Subject: [PATCH] tfm: make a few functions static
-
-clamav expects them to be static and it does not seem bad to do so.
-
-Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
----
- src/bin/fp_read_radix.c        | 2 +-
- src/bin/fp_read_signed_bin.c   | 2 +-
- src/bin/fp_read_unsigned_bin.c | 2 +-
- src/headers/tfm.h              | 6 +++---
- 4 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/src/bin/fp_read_radix.c b/src/bin/fp_read_radix.c
-index 0b5e826..431afa0 100644
---- a/src/bin/fp_read_radix.c
-+++ b/src/bin/fp_read_radix.c
-@@ -9,7 +9,7 @@
-  */
- #include <tfm_private.h>
- 
--int fp_read_radix(fp_int *a, char *str, int radix)
-+int fp_read_radix(fp_int *a, const char *str, int radix)
- {
-   int     y, neg;
-   char    ch;
-diff --git a/src/bin/fp_read_signed_bin.c b/src/bin/fp_read_signed_bin.c
-index e2b8003..6467d19 100644
---- a/src/bin/fp_read_signed_bin.c
-+++ b/src/bin/fp_read_signed_bin.c
-@@ -9,7 +9,7 @@
-  */
- #include <tfm_private.h>
- 
--void fp_read_signed_bin(fp_int *a, unsigned char *b, int c)
-+void fp_read_signed_bin(fp_int *a, const unsigned char *b, int c)
- {
-   /* read magnitude */
-   fp_read_unsigned_bin (a, b + 1, c - 1);
-diff --git a/src/bin/fp_read_unsigned_bin.c b/src/bin/fp_read_unsigned_bin.c
-index 3ee64c0..2ee89cb 100644
---- a/src/bin/fp_read_unsigned_bin.c
-+++ b/src/bin/fp_read_unsigned_bin.c
-@@ -9,7 +9,7 @@
-  */
- #include <tfm_private.h>
- 
--void fp_read_unsigned_bin(fp_int *a, unsigned char *b, int c)
-+void fp_read_unsigned_bin(fp_int *a, const unsigned char *b, int c)
- {
-   /* zero the int */
-   fp_zero (a);
-diff --git a/src/headers/tfm.h b/src/headers/tfm.h
-index af87b56..f406388 100644
---- a/src/headers/tfm.h
-+++ b/src/headers/tfm.h
-@@ -467,14 +467,14 @@ int fp_prime_random_ex(fp_int *a, int t, int size, int flags, tfm_prime_callback
- int fp_count_bits(fp_int *a);
- 
- int fp_unsigned_bin_size(fp_int *a);
--void fp_read_unsigned_bin(fp_int *a, unsigned char *b, int c);
-+void fp_read_unsigned_bin(fp_int *a, const unsigned char *b, int c);
- void fp_to_unsigned_bin(fp_int *a, unsigned char *b);
- 
- int fp_signed_bin_size(fp_int *a);
--void fp_read_signed_bin(fp_int *a, unsigned char *b, int c);
-+void fp_read_signed_bin(fp_int *a, const unsigned char *b, int c);
- void fp_to_signed_bin(fp_int *a, unsigned char *b);
- 
--int fp_read_radix(fp_int *a, char *str, int radix);
-+int fp_read_radix(fp_int *a, const char *str, int radix);
- 
- int fp_radix_size(fp_int *a, int radix, int *size);
- int fp_toradix(fp_int *a, char *str, int radix);
diff --git a/gnu/packages/patches/xf86-video-i128-remove-mibstore.patch b/gnu/packages/patches/xf86-video-i128-remove-mibstore.patch
deleted file mode 100644
index b269d63473..0000000000
--- a/gnu/packages/patches/xf86-video-i128-remove-mibstore.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Removes references to mibstore.h and miInitializeBackingStore, which
-have been removed from xorg-server.  Zack Rusin <zackr@vmware.com>
-wrote: "It was a noop for at least 5 years and it has been removed."
-See: http://patches.openembedded.org/patch/46133/
-
---- xf86-video-i128-1.3.6/src/i128_driver.c.~1~	2012-07-17 01:21:15.000000000 -0400
-+++ xf86-video-i128-1.3.6/src/i128_driver.c	2014-12-19 00:47:16.140087736 -0500
-@@ -51,7 +51,6 @@
- #include "mipointer.h"
- 
- /* All drivers implementing backing store need this */
--#include "mibstore.h"
- #include "micmap.h"
- 
- #include "xf86DDC.h"
-@@ -1557,7 +1556,6 @@
-         return FALSE;
-     }
-     
--    miInitializeBackingStore(pScreen);
-     xf86SetBackingStore(pScreen);
-     xf86SetSilkenMouse(pScreen);
- 
diff --git a/gnu/packages/patches/xmodmap-asprintf.patch b/gnu/packages/patches/xmodmap-asprintf.patch
deleted file mode 100644
index 6dfe8514e5..0000000000
--- a/gnu/packages/patches/xmodmap-asprintf.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-This patch allows the 'asprintf' declaration to be visible, by
-including <config.h>, which defines _GNU_SOURCE.
-
-
---- xmodmap-1.0.7/xmodmap.c	2013-11-25 23:25:25.000000000 +0100
-+++ xmodmap-1.0.7/xmodmap.c	2013-11-25 23:25:27.000000000 +0100
-@@ -26,6 +26,7 @@ from The Open Group.
- 
- */
- 
-+#include <config.h>
- #include <X11/Xos.h>
- #include <X11/Xlib.h>
- #include <stdio.h>
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index e6f0ae1a74..f0841b6570 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -13,7 +13,7 @@
 ;;; Copyright © 2017, 2018 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -830,22 +830,23 @@ the PDF pages.")
 (define-public fbida
   (package
     (name "fbida")
-    (version "2.12")
+    (version "2.14")
     (home-page "https://www.kraxel.org/blog/linux/fbida/")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.kraxel.org/releases/fbida/"
-                                  name "-" version ".tar.gz"))
+                                  "fbida-" version ".tar.gz"))
               (sha256
                (base32
-                "0bw224vb7jh0lrqaf4jgxk48xglvxs674qcpj5y0axyfbh896cfk"))))
+                "0f242mix20rgsqz1llibhsz4r2pbvx6k32rmky0zjvnbaqaw1dwm"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'patch-ldconfig
+         (add-after 'unpack 'patch-FHS-file-names
            (lambda _
              (substitute* "mk/Autoconf.mk"
+               (("/bin/echo") "echo")
                (("/sbin/ldconfig -p") "echo lib")) #t))
          (delete 'configure))
         #:tests? #f
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 073cdbf482..b735b64c22 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -15,7 +15,7 @@
 ;;; Copyright © 2017 Raoul J.P. Bonnal <ilpuccio.febo@gmail.com>
 ;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
@@ -2385,7 +2385,7 @@ parsing logic.")
 (define-public perl-datetime-format-strptime
   (package
     (name "perl-datetime-format-strptime")
-    (version "1.75")
+    (version "1.76")
     (source
      (origin
        (method url-fetch)
@@ -2393,7 +2393,7 @@ parsing logic.")
                            "DateTime-Format-Strptime-" version ".tar.gz"))
        (sha256
         (base32
-         "069wmgbchydgx3nm9klqw0g6ksnja28g61d4allgzmvr9ynb5ksg"))))
+         "03dmzi9n6jmnfjmf0ld5sdmi3ib6jrhz25cjzv7d58ypdr32cg2r"))))
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-datetime" ,perl-datetime)
@@ -2414,7 +2414,7 @@ takes a string and a pattern and returns the `DateTime` object associated.")
 (define-public perl-datetime-locale
   (package
     (name "perl-datetime-locale")
-    (version "1.17")
+    (version "1.23")
     (source
      (origin
        (method url-fetch)
@@ -2422,10 +2422,11 @@ takes a string and a pattern and returns the `DateTime` object associated.")
                            "DateTime-Locale-" version ".tar.gz"))
        (sha256
         (base32
-         "1jawnci23kik5x4gln6ixvv9bxznd5f6ira024yjxsc97y5mk9hc"))))
+         "05f0jchminv5g2nrvsx5v1ihc5919fzzhh4f82dxi5ns8bkq2nis"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-file-sharedir" ,perl-file-sharedir)
+       ("perl-ipc-system-simple" ,perl-ipc-system-simple)
        ("perl-test-file-sharedir-dist" ,perl-test-file-sharedir-dist)
        ("perl-test-warnings" ,perl-test-warnings)
        ("perl-test-requires" ,perl-test-requires)
@@ -4060,16 +4061,16 @@ inc directory within a distribution and are used by Makefile.PL or Build.PL.")
 (define-public perl-inline
   (package
    (name "perl-inline")
-   (version "0.80")
+   (version "0.81")
    (source
     (origin
      (method url-fetch)
      (uri (string-append
-           "mirror://cpan/authors/id/I/IN/INGY/Inline-"
+           "mirror://cpan/authors/id/T/TI/TINITA/Inline-"
            version ".tar.gz"))
      (sha256
       (base32
-       "1xnf5hykcr54271x5jsnr61bcv1c7x39cy4kdcrkxm7bn62djavy"))))
+       "1qxi0xvn8rqj4sca9gwb1xkm6bdz33x57li5kfls6mnavil3i5qz"))))
    (build-system perl-build-system)
    (native-inputs
     `(("perl-test-warn" ,perl-test-warn)))
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index 2e08243178..4338854574 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -1,14 +1,14 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2015, 2016, 2017, 2019 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au>
 ;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com>
 ;;; Copyright © 2014, 2017 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
-;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015, 2016, 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
@@ -57,14 +57,14 @@
 (define-public python-base58
   (package
     (name "python-base58")
-    (version "1.0.0")
+    (version "1.0.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "base58" version))
        (sha256
         (base32
-         "0lgnk7ycdxwhk2bkygl30nsks56bvrdj79ix76iv965pz808pzn5"))))
+         "0q1yr0n5jaf17xq98m7dma6z4rh8p19ch55l1s09gi3rk5ckqycs"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-pyhamcrest" ,python-pyhamcrest)))
@@ -950,14 +950,14 @@ been constructed to maintain extensive documentation on how to use
 (define-public python-scrypt
   (package
     (name "python-scrypt")
-    (version "0.8.6")
+    (version "0.8.7")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "scrypt" version))
        (sha256
         (base32
-         "0b9nw10hfdl0jflm3b62q485ssc3f3f33lpg4yy407gs8wnrn8zq"))))
+         "0hjk71k3mgnl8siikm9lii9im8kv0rb7inkjzx78rnancra48xxr"))))
     (build-system python-build-system)
     (inputs
      `(("openssl" ,openssl)))
@@ -996,3 +996,73 @@ relevant RFCs too.")
 
 (define-public python2-service-identity
   (package-with-python2 python-service-identity))
+
+(define-public python-hkdf
+  (package
+    (name "python-hkdf")
+    (version "0.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "hkdf" version))
+        (sha256
+         (base32
+          "1jhxk5vhxmxxjp3zj526ry521v9inzzl8jqaaf0ma65w6k332ak2"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-nose" ,python-nose)))
+    (home-page "https://github.com/casebeer/python-hkdf")
+    (synopsis "HMAC-based Extract-and-Expand Key Derivation Function (HKDF)")
+    (description "This package provides a Python implementation of the HMAC Key
+Derivation function (HKDF) defined in RFC 5869.")
+    (license license:bsd-2)))
+
+(define-public python-spake2
+  (package
+    (name "python-spake2")
+    (version "0.8")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "spake2" version))
+        (sha256
+         (base32
+          "1x16r7lrbklvfzbacb66qv9iiih6liq1y612dqh2chgf555n2yn1"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-hkdf" ,python-hkdf)))
+    (home-page "https://github.com/warner/python-spake2")
+    (synopsis "SPAKE2 password-authenticated key exchange in Python")
+    (description "This package provides a Python implementation of the SPAKE2
+Password-Authenticated Key Exchange algorithm.")
+    (license license:expat)))
+
+(define-public python-txtorcon
+  (package
+    (name "python-txtorcon")
+    (version "19.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "txtorcon" version))
+        (sha256
+         (base32
+          "0fxzhsc62bhmr730vj9pzallmw56gz6iykvl28a5agrycm0bfc9p"))))
+    (build-system python-build-system)
+    (arguments
+      ;; The tests fail immediately due to a missing file. Reported upstream:
+      ;; <https://github.com/meejah/txtorcon/issues/330>
+     `(#:tests? #f))
+    (propagated-inputs
+     `(("python-automat" ,python-automat)
+       ("python-idna" ,python-idna)
+       ("python-incremental" ,python-incremental)
+       ("python-ipaddress" ,python-ipaddress)
+       ("python-service-identity" ,python-service-identity)
+       ("python-twisted" ,python-twisted)
+       ("python-zope-interface" ,python-zope-interface)))
+    (home-page "https://github.com/meejah/txtorcon")
+    (synopsis "Twisted-based Tor controller client")
+    (description "This package provides a Twisted-based Tor controller client,
+with state-tracking and configuration abstractions.")
+    (license license:expat)))
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 8fb546b42a..eeca90641c 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -12,9 +12,9 @@
 ;;; Copyright © 2014, 2017 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com>
-;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2015, 2016, 2017, 2019 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
-;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2015, 2017 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2015, 2016 Christopher Allan Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
@@ -56,6 +56,7 @@
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages django)
+  #:use-module (gnu packages libffi)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-crypto)
@@ -338,14 +339,14 @@ follow links and submit forms.  It doesn’t do JavaScript.")
 (define-public python-sockjs-tornado
   (package
     (name "python-sockjs-tornado")
-    (version "1.0.5")
+    (version "1.0.6")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "sockjs-tornado" version))
        (sha256
         (base32
-         "0zhq8wnnhkfbvdnsggqrc3pp97pqpilsf7fh6ymvnf52r0rwyjsc"))))
+         "15dgv6hw6c7h3m310alw1h6p5443lrm9pyqhcv2smc13fz1v04pc"))))
     (build-system python-build-system)
     (arguments
      `(;; There are no tests, and running the test phase requires missing
@@ -1566,34 +1567,18 @@ file.")
 (define-public python-webtest
   (package
     (name "python-webtest")
-    (version "2.0.30")
+    (version "2.0.33")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "WebTest" version))
        (sha256
         (base32
-         "1mb7m4ndklv84mh0pdkhv73yrflcnra61yczj5g3bvwbqlygfsaw"))))
+         "1l3z0cwqslsf4rcrhi2gr8kdfh74wn2dw76376i4g9i38gz8wd21"))))
     (build-system python-build-system)
     (arguments
-     `(;; Unfortunately we have to disable tests!
-       ;; This release of WebTest is pinned to python-nose < 1.3,
-       ;; but older versions of python-nose are plagued with the following
-       ;; bug(s), which rears its ugly head during test execution:
-       ;;   https://github.com/nose-devs/nose/issues/759
-       ;;   https://github.com/nose-devs/nose/pull/811
-       #:tests? #f))
-    ;; Commented out code is no good, but in this case, once tests
-    ;; are ready to be enabled again, we should put the following
-    ;; in place:
-    ;;  (native-inputs
-    ;;   `(("python-nose" ,python-nose) ; technially < 1.3,
-    ;;                                  ; but see above comment
-    ;;     ("python-coverage" ,python-coverage)
-    ;;     ("python-mock" ,python-mock)
-    ;;     ("python-pastedeploy" ,python-pastedeploy)
-    ;;     ("python-wsgiproxy2" ,python-wsgiproxy2)
-    ;;     ("python-pyquery" ,python-pyquery)))
+     ;; Tests require python-pyquery, which creates a circular dependency.
+     `(#:tests? #f))
     (propagated-inputs
      `(("python-waitress" ,python-waitress)
        ("python-webob" ,python-webob)
@@ -2733,14 +2718,14 @@ available in Django, but is a standalone package.")
 (define-public python-paste
   (package
     (name "python-paste")
-    (version "3.0.4")
+    (version "3.0.6")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "Paste" version))
        (sha256
         (base32
-         "01w26w9jyfkh0mfydhfz3dwy3pj3fw7mzvj0lna3vs8hyx1hwl0n"))
+         "14lbi9asn5agsdf7r97prkjpz7amgmp529lbvfhf0nv881xczah6"))
        (patches (search-patches "python-paste-remove-timing-test.patch"))
        (modules '((guix build utils)))
        (snippet
@@ -2969,3 +2954,78 @@ underlies Mozilla Persona.")
      "This is a Python library for interacting with the Firefox Accounts
 ecosystem.")
     (license license:mpl2.0)))
+
+(define-public python-hyperlink
+  (package
+    (name "python-hyperlink")
+    (version "18.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "hyperlink" version))
+        (sha256
+         (base32
+          "01m3y19arfqljksngy8grc966zdb4larysralb8cajzi8kvly6zh"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-idna" ,python-idna)))
+    (home-page "https://github.com/python-hyper/hyperlink")
+    (synopsis "Python module to create immutable URLs according to spec")
+    (description "This package provides a Python module to create immutable, and
+correct URLs for Python according to RFCs 3986 and 3987.")
+    (license license:expat)))
+
+(define-public python-treq
+  (package
+    (name "python-treq")
+    (version "18.6.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "treq" version))
+        (sha256
+         (base32
+          "0j4zwq9p1c9piv1vc66nxcv9s6hdinf90jwkbsm91k14npv9zq4i"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-attrs" ,python-attrs)
+       ("python-idna" ,python-idna)
+       ("python-incremental" ,python-incremental)
+       ("python-requests" ,python-requests)
+       ("python-service-identity" ,python-service-identity)
+       ("python-twisted" ,python-twisted)))
+    (home-page "https://github.com/twisted/treq")
+    (synopsis "Requests-like API built on top of twisted.web's Agent")
+    (description "This package provides an HTTP library inspired by
+@code{requests}} but written on top of Twisted's @code{Agents}.  It offers a
+high level API for making HTTP requests when using Twisted.")
+    (license license:expat)))
+
+(define-public python-autobahn
+  (package
+    (name "python-autobahn")
+    (version "19.2.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "autobahn" version))
+        (sha256
+         (base32
+          "1mm7j24ls01c7jb1ad5p5cpyxvzgydiyf8b04ihykh2v8g98j0x7"))))
+    (build-system python-build-system)
+    (arguments
+      ;; The tests fail to run:
+      ;; https://github.com/crossbario/autobahn-python/issues/1117
+     `(#:tests? #f))
+    (propagated-inputs
+     `(("python-cffi" ,python-cffi)
+       ("python-twisted" ,python-twisted)
+       ("python-txaio" ,python-txaio)))
+    (home-page "https://crossbar.io/autobahn/")
+    (synopsis "Web Application Messaging Protocol implementation")
+    (description "This package provides an implementation of the @dfn{Web Application
+Messaging Protocol} (WAMP).  WAMP connects components in distributed
+applications using Publish and Subscribe (PubSub) and routed Remote Procedure
+Calls (rRPC).  It is ideal for distributed, multi-client and server applications
+such as IoT applications or multi-user database-driven business applications.")
+    (license license:expat)))
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 55ac37ffb0..557a41bf28 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -11,7 +11,7 @@
 ;;; Copyright © 2015, 2016 Christopher Allan Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
 ;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
-;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2015, 2016, 2017, 2019 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2015, 2017 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2015, 2016 Erik Edrosa <erik.edrosa@gmail.com>
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
@@ -32,7 +32,7 @@
 ;;; Copyright © 2016, 2017 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2016, 2017, 2018 Julien Lepiller <julien@lepiller.eu>
-;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
 ;;; Copyright © 2017 Frederick M. Muriithi <fredmanglis@gmail.com>
@@ -2627,14 +2627,14 @@ Server (PLS).")
 (define-public python-language-server
   (package
     (name "python-language-server")
-    (version "0.22.0")
+    (version "0.23.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "python-language-server" version))
        (sha256
         (base32
-         "04pbxl06hg0ddm2xx99jn9jh40yv0mmzdjw8pqd2rbcdg42hhia6"))))
+         "1h83x5widj9p630ha9yv39cpp3djxppll3iww9nc8i3hdmyrbnnh"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-pluggy" ,python-pluggy)
@@ -2716,14 +2716,14 @@ interested parties to subscribe to events, or \"signals\".")
 (define-public pelican
   (package
     (name "pelican")
-    (version "3.7.1")
+    (version "4.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pelican" version))
        (sha256
         (base32
-         "12spygavv9b6xpb5pgp7f0p3z0mms60nx6zrpx1yfkj68zz4flra"))))
+         "05yda7n6r0ll18fpdjzkzyr0ls8hbb86fnjyb33k9jvv5avah2lr"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-feedgenerator" ,python-feedgenerator)
@@ -4682,6 +4682,31 @@ installing @code{kernelspec}s for use with Jupyter frontends.")
 (define-public python2-ipykernel
   (package-with-python2 python-ipykernel))
 
+(define-public python-pari-jupyter
+  (package
+    (name "python-pari-jupyter")
+    (version "1.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pari_jupyter" version))
+       (sha256
+        (base32
+         "1yash0p422nnin7z58b99d0p23nx79f5m0mainc9hsjg72jhdhr6"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-ipykernel" ,python-ipykernel)))
+    (inputs
+     `(("pari-gp" ,pari-gp)
+       ("readline" ,readline)))
+    (arguments
+     `(#:tests? #f)) ; no test suite
+    (home-page
+     "https://github.com/jdemeyer/pari_jupyter")
+    (synopsis "A Jupyter kernel for PARI/GP")
+    (description "The package provides a PARI/GP kernel for Jupyter.")
+    (license license:gpl3+)))
+
 ;; This is the latest release of the LTS version of ipython with support for
 ;; Python 2.7 and Python 3.x.  Later non-LTS versions starting from 6.0 have
 ;; dropped support for Python 2.7.  We may want to rename this package.
@@ -8041,9 +8066,6 @@ The API is as much as possible the similar to jQuery.  pyquery uses lxml for
 fast xml and html manipulation.")
     (license license:bsd-3)))
 
-(define-public python2-pyquery
-  (package-with-python2 python-pyquery))
-
 (define-public python-anyjson
   (package
     (name "python-anyjson")
@@ -9210,13 +9232,13 @@ format.")
 (define-public python-twisted
   (package
     (name "python-twisted")
-    (version "17.1.0")
+    (version "17.5.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "Twisted" version ".tar.bz2"))
               (sha256
                (base32
-                "1p245mg15hkxp7hy5cyq2fgvlgjkb4cg0gwkwd148nzy1bbi3wnv"))))
+                "1sh2h23nnizcdyrl2rn7zxijglikxwz7z7grqpvq496zy2aa967i"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f)) ; FIXME: Some tests are failing.
@@ -9228,6 +9250,7 @@ format.")
     (propagated-inputs
      `(("python-zope-interface" ,python-zope-interface)
        ("python-incremental" ,python-incremental)
+       ("python-hyperlink" ,python-hyperlink)
        ("python-constantly" ,python-constantly)
        ("python-automat" ,python-automat)))
     (home-page "https://twistedmatrix.com/")
@@ -10851,14 +10874,13 @@ a file-like object from which an arbitrarly-sized key can be read.")
 (define-public python-qrcode
   (package
     (name "python-qrcode")
-    (version "6.0")
+    (version "6.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "qrcode" version))
        (sha256
-        (base32
-         "1gz1g2n9kqwqkak78aavr354z1v3yyiksk7q6xp5hi1zr6s0syq3"))))
+        (base32 "0sa3n298b9jpz6zn0birnjii3mg9sihjq28n9nzjlzv09y2m6ljh"))))
     (build-system python-build-system)
     (arguments
      ;; FIXME: Tests require packaging 'pymaging'.
@@ -10867,10 +10889,6 @@ a file-like object from which an arbitrarly-sized key can be read.")
      `(("python-lxml" ,python-lxml)     ; for SVG output
        ("python-pillow" ,python-pillow) ; for PNG output
        ("python-six" ,python-six)))
-    (inputs
-     `(;; The setup.cfg file needs to be used, and support for this requires
-       ;; at least version 30.3.0 of setuptools
-       ("python-setuptools" ,python-setuptools)))
     (home-page "https://github.com/lincolnloop/python-qrcode")
     (synopsis "QR Code image generator")
     (description "This package provides a pure Python QR Code generator
@@ -15022,3 +15040,45 @@ It features bit and byte granularity, easy debugging and testing, an
 easy-to-extend subclass system, and lots of primitive constructs to
 make your work easier.")
     (license license:expat)))
+
+(define-public python-humanize
+  (package
+    (name "python-humanize")
+    (version "0.5.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "humanize" version))
+        (sha256
+         (base32
+          "06dvhm3k8lf2rayn1gxbd46y0fy1db26m3h9vrq7rb1ib08mfgx4"))))
+    (arguments
+     '(#:tests? #f)) ; tests not in pypi archive
+    (build-system python-build-system)
+    (home-page "https://github.com/jmoiron/humanize")
+    (synopsis "Print numerical information in a human-readable form")
+    (description "This package provides a Python module that displays numbers
+and dates in \"human readable\" forms.  For example, it would display
+\"12345591313\" as \"12.3 billion\".")
+    (license license:expat)))
+
+(define-public python-txaio
+  (package
+    (name "python-txaio")
+    (version "18.8.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "txaio" version))
+        (sha256
+         (base32
+          "1zmpdph6zddgrnkkcykh6qk5s46l7s5mzfqrh82m4b5iffn61qv7"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-twisted" ,python-twisted)
+       ("python-six" ,python-six)))
+    (home-page "https://github.com/crossbario/txaio")
+    (synopsis "Compatibility layer between Python asyncio and Twisted")
+    (description "Txaio provides a compatibility layer between the Python
+@code{asyncio} module and @code{Twisted}.")
+    (license license:expat)))
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 1c4ea720f1..25f2ffa73c 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -459,3 +459,65 @@ instead of @command{python3}.")))
 
 (define-public python-wrapper (wrap-python3 python))
 (define-public python-minimal-wrapper (wrap-python3 python-minimal))
+
+(define-public micropython
+  (package
+    (name "micropython")
+    (version "1.10")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "https://github.com/micropython/micropython/"
+                            "releases/download/v" version
+                            "/micropython-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1g1zjip3rkx6bp16qi1bag72wivnbh56fcsl3nffanrx4j5f4z90"))
+      (modules '((guix build utils)))
+      (snippet
+       '(begin
+          (delete-file-recursively "ports/cc3200/FreeRTOS")
+          (with-directory-excursion "lib"
+            ;; TODO: Unbundle axtls and berkley-db-1.xx
+            (for-each delete-file-recursively
+                      '("libffi" "lwip" "stm32lib" "nrfx")))
+          #t))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'preprare-build
+           (lambda _
+             (chdir "ports/unix")
+             ;; see: https://github.com/micropython/micropython/pull/4246
+             (substitute* "Makefile"
+               (("-Os") "-Os -ffp-contract=off"))
+             #t))
+         (replace 'install-license-files
+           ;; We don't build in the root directory so the file isn't found.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out  (assoc-ref outputs "out"))
+                    (dest (string-append out "/share/doc/" ,name "-" ,version "/")))
+               (install-file "../../LICENSE" dest))
+             #t))
+         (delete 'configure)) ; no configure
+       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+                          "V=1")
+       #:test-target "test"))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("libffi" ,libffi)))
+    (home-page "https://micropython.org/")
+    (synopsis "Python implementation for microcontrollers and constrained systems")
+    (description "MicroPython is a lean and efficient implementation of the
+Python 3 programming language that includes a small subset of the Python
+standard library and is optimised to run on microcontrollers and in constrained
+environments.  MicroPython is packed full of advanced features such as an
+interactive prompt, arbitrary precision integers, closures, list comprehension,
+generators, exception handling and more.  Still it is compact enough to fit and
+run within just 256k of code space and 16k of RAM.  MicroPython aims to be as
+compatible with normal Python as possible to allow you to transfer code with
+ease from the desktop to a microcontroller or embedded system.")
+    (license license:expat)))
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 6775a991b9..8179911539 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -512,7 +512,8 @@ system, and the core design of Django is reused in Grantlee.")
               (base32
                "071yc9iz14qs4s8yvrwllyfdzp5yjxsdpvbjxdrf0g5q69vqigy6"))
              ;; Use TZDIR to avoid depending on package "tzdata".
-             (patches (search-patches "qtbase-use-TZDIR.patch"))
+             (patches (search-patches "qtbase-use-TZDIR.patch"
+                                      "qtbase-old-kernel.patch"))
              (modules '((guix build utils)))
              (snippet
                ;; corelib uses bundled harfbuzz, md4, md5, sha3
@@ -2231,3 +2232,33 @@ a binding language:
 @item Creating from Singleton QML QObject defined in the binded language
 @end itemize\n")
     (license license:lgpl3)))                    ;version 3 only (+ exception)
+
+;; There have been no public releases yet.
+(define-public qtcolorwidgets
+  (let ((commit "a95f72e935fe9e046061a1d1c3930cbfbcb533e0")
+        (revision "1"))
+    (package
+      (name "qtcolorwidgets")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://gitlab.com/mattia.basaglia/Qt-Color-Widgets")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0dkiwlqh2gwhlp78c1fmchj3shl4p9inspcl96ya5aa8mn6kydy8"))))
+      (build-system cmake-build-system)
+      (arguments `(#:tests? #f)) ; There are no tests
+      (native-inputs
+       `(("qttools" ,qttools)))
+      (inputs
+       `(("qtbase" ,qtbase)))
+      (home-page "https://gitlab.com/mattia.basaglia/Qt-Color-Widgets")
+      (synopsis "Color management widgets")
+      (description "QtColorWidgets provides a Qt color dialog that is more
+user-friendly than the default @code{QColorDialog} and several other
+color-related widgets.")
+      ;; Includes a license exception for combining with GPL2 code.
+      (license license:lgpl3+))))
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 5348d914cf..2d7ccceff7 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -20,6 +20,7 @@
 (define-module (gnu packages rails)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix packages)
   #:use-module (gnu packages ruby)
   #:use-module (guix build-system ruby))
@@ -93,3 +94,374 @@ API.")
     (home-page
      "https://github.com/banister/debug_inspector")
     (license license:expat)))
+
+(define-public ruby-activemodel
+  (package
+   (name "ruby-activemodel")
+   (version "5.2.2")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (rubygems-uri "activemodel" version))
+     (sha256
+      (base32
+       "1xmwi3mw8g4shbjvkhk72ra3r5jccbdsd4piphqka2y1h8s7sxvi"))))
+   (build-system ruby-build-system)
+   (arguments
+    '(;; No included tests
+      #:tests? #f))
+   (propagated-inputs
+    `(("ruby-activesupport" ,ruby-activesupport)))
+   (synopsis "Toolkit for building modeling frameworks like Active Record")
+   (description
+    "This package provides a toolkit for building modeling frameworks like
+Active Record.  ActiveSupport handles attributes, callbacks, validations,
+serialization, internationalization, and testing.")
+   (home-page "https://rubyonrails.org/")
+   (license license:expat)))
+
+(define-public ruby-activerecord
+  (package
+   (name "ruby-activerecord")
+   (version "5.2.2")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (rubygems-uri "activerecord" version))
+     (sha256
+      (base32
+       "19a0sns6a5wz2wym25lb1dv4lbrrl5sd1n15s5ky2636znmhz30y"))))
+   (build-system ruby-build-system)
+   (arguments
+    '(;; No included tests
+      #:tests? #f))
+   (propagated-inputs
+    `(("ruby-activemodel" ,ruby-activemodel)
+      ("ruby-activesupport" ,ruby-activesupport)
+      ("ruby-arel" ,ruby-arel)))
+   (synopsis "Ruby library to connect to relational databases")
+   (description
+    "Active Record connects classes to relational database table to establish
+an almost zero-configuration persistence layer for applications.")
+   (home-page "https://rubyonrails.org")
+   (license license:expat)))
+
+(define-public ruby-rails-html-sanitizer
+  (package
+    (name "ruby-rails-html-sanitizer")
+    (version "1.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "rails-html-sanitizer" version))
+       (sha256
+        (base32
+         "1gv7vr5d9g2xmgpjfq4nxsqr70r9pr042r9ycqqnfvw5cz9c7jwr"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(;; No included tests
+       #:tests? #f))
+    (propagated-inputs
+     `(("ruby-loofah" ,ruby-loofah)))
+    (synopsis "HTML sanitization for Rails applications")
+    (description
+     "This gem is used to handle HTML sanitization in Rails applications.  If
+you need similar functionality in non Rails apps consider using Loofah
+directly.")
+    (home-page "https://github.com/rails/rails-html-sanitizer")
+    (license license:expat)))
+
+(define-public ruby-rails-dom-testing
+  (package
+   (name "ruby-rails-dom-testing")
+   (version "2.0.2")
+   (source
+    (origin
+      (method git-fetch)
+      (uri (git-reference
+            (url "https://github.com/rails/rails-dom-testing.git")
+            (commit (string-append "v" version))))
+      (file-name (git-file-name name version))
+      (sha256
+       (base32
+        "0zrg6x1w3wjgklbhcphjmggl11jx5s8cl21qjqij7wknm412i5wl"))))
+   (build-system ruby-build-system)
+   (native-inputs
+    `(("bundler" ,bundler)))
+   (propagated-inputs
+    `(("ruby-activesupport" ,ruby-activesupport)
+      ("ruby-nokogiri" ,ruby-nokogiri)))
+   (synopsis "Compare HTML DOMs and assert certain elements exists")
+   (description
+    "This gem can compare HTML and assert certain elements exists.  This is
+useful when writing tests.")
+   (home-page "https://github.com/rails/rails-dom-testing")
+   (license license:expat)))
+
+(define-public ruby-actionview
+  (package
+   (name "ruby-actionview")
+   (version "5.2.2")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (rubygems-uri "actionview" version))
+     (sha256
+      (base32
+       "1lz04drbi1z0xhvb8jnr14pbf505lilr02arahxq7y3mxiz0rs8z"))))
+   (build-system ruby-build-system)
+   (arguments
+    '(;; No included tests
+      #:tests? #f))
+   (propagated-inputs
+    `(("ruby-activesupport" ,ruby-activesupport)
+      ("ruby-builder" ,ruby-builder)
+      ("ruby-erubi" ,ruby-erubi)
+      ("ruby-rails-dom-testing" ,ruby-rails-dom-testing)
+      ("ruby-rails-html-sanitizer" ,ruby-rails-html-sanitizer)))
+   (synopsis "Conventions and helpers for building web pages")
+   (description
+    "ActionView provides conventions and helpers for building web pages in
+Ruby.")
+   (home-page "https://rubyonrails.org/")
+   (license license:expat)))
+
+(define-public ruby-actionpack
+  (package
+   (name "ruby-actionpack")
+   (version "5.2.2")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (rubygems-uri "actionpack" version))
+     (sha256
+      (base32
+       "0iwhbqqn0cm39dq040iwq8cfyclqk3kyzwlp5k3j5cz8k2668wws"))))
+   (build-system ruby-build-system)
+   (arguments
+    '(;; No included tests
+      #:tests? #f))
+   (propagated-inputs
+    `(("ruby-actionview" ,ruby-actionview)
+      ("ruby-activesupport" ,ruby-activesupport)
+      ("ruby-rack" ,ruby-rack)
+      ("ruby-rack-test" ,ruby-rack-test)
+      ("ruby-rails-dom-testing" ,ruby-rails-dom-testing)
+      ("ruby-rails-html-sanitizer" ,ruby-rails-html-sanitizer)))
+   (synopsis "Conventions for building and testing MVC web applications")
+   (description
+    "ActionPack provides conventions for building and testing MVC web
+applications.  These work with any Rack-compatible server.")
+   (home-page "https://rubyonrails.org/")
+   (license license:expat)))
+
+(define-public ruby-actioncable
+  (package
+   (name "ruby-actioncable")
+   (version "5.2.2")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (rubygems-uri "actioncable" version))
+     (sha256
+      (base32
+       "0826k5ch0l03f9yrkxy69aiv039z4qi00lnahw2rzywd2iz6r68x"))))
+   (build-system ruby-build-system)
+   (arguments
+    '(;; No included tests
+      #:tests? #f))
+   (propagated-inputs
+    `(("ruby-actionpack" ,ruby-actionpack)
+      ("ruby-nio4r" ,ruby-nio4r)
+      ("ruby-websocket-driver" ,ruby-websocket-driver)))
+   (synopsis "Integrate integrates WebSockets with Rails applications")
+   (description
+    "Action Cable integrates WebSockets with Rails applications.  Through
+WebSockets it allows for real-time features in web applications.")
+   (home-page "https://rubyonrails.org/")
+   (license license:expat)))
+
+(define-public ruby-activejob
+  (package
+   (name "ruby-activejob")
+   (version "5.2.2")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (rubygems-uri "activejob" version))
+     (sha256
+      (base32
+       "1jjkl62x2aprg55x9rpm0h2c82vr2qr989hg3l9r21l01q4822ir"))))
+   (build-system ruby-build-system)
+   (arguments
+    '(;; No included tests
+      #:tests? #f))
+   (propagated-inputs
+    `(("ruby-activesupport" ,ruby-activesupport)
+      ("ruby-globalid" ,ruby-globalid)))
+   (synopsis "Declare job classes for multiple backends")
+   (description
+    "ActiveJob allows declaring job classes in a common way across Rails
+applications.")
+   (home-page "https://rubyonrails.org/")
+   (license license:expat)))
+
+(define-public ruby-activestorage
+  (package
+    (name "ruby-activestorage")
+    (version "5.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "activestorage" version))
+       (sha256
+        (base32
+         "0c72837098sw384vk6dmrb2p7q3wx4swnibk6sw9dp4hn1vc4p31"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(;; No included tests
+       #:tests? #f))
+    (propagated-inputs
+     `(("ruby-actionpack" ,ruby-actionpack)
+       ("ruby-activerecord" ,ruby-activerecord)
+       ("ruby-marcel" ,ruby-marcel)))
+    (synopsis "Integrate file storage services in to Rails applications")
+    (description
+     "ActiveStorage integrates file storage services with Rails applications,
+allowing files to be attached to ActiveRecord models..")
+    (home-page "https://rubyonrails.org/")
+    (license license:expat)))
+
+(define-public ruby-actionmailer
+  (package
+   (name "ruby-actionmailer")
+   (version "5.2.2")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (rubygems-uri "actionmailer" version))
+     (sha256
+      (base32
+       "0sfpb8s95cmkpp9ybyp2c88r55r5llscmmnkfwcwgasz9ncjiq5n"))))
+   (build-system ruby-build-system)
+   (arguments
+    '(;; No included tests
+      #:tests? #f))
+   (propagated-inputs
+    `(("ruby-actionpack" ,ruby-actionpack)
+      ("ruby-actionview" ,ruby-actionview)
+      ("ruby-activejob" ,ruby-activejob)
+      ("ruby-mail" ,ruby-mail)
+      ("ruby-rails-dom-testing" ,ruby-rails-dom-testing)))
+   (synopsis "Work with emails using the controller/view pattern")
+   (description
+    "Compose, deliver, receive, and test emails using the controller/view
+pattern.  Including support for multipart email and attachments.")
+   (home-page "https://rubyonrails.org/")
+   (license license:expat)))
+
+(define-public ruby-railties
+  (package
+   (name "ruby-railties")
+   (version "5.2.2")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (rubygems-uri "railties" version))
+     (sha256
+      (base32
+       "00pnylmbz4c46mxw5lhxi8h39lndfg6fs1hpd0qd6swnjhkqsr1l"))))
+   (build-system ruby-build-system)
+   (arguments
+    '(;; No included tests
+      #:tests? #f))
+   (propagated-inputs
+    `(("ruby-actionpack" ,ruby-actionpack)
+      ("ruby-activesupport" ,ruby-activesupport)
+      ("ruby-method-source" ,ruby-method-source)
+      ("ruby-thor" ,ruby-thor)))
+   (synopsis "Rails internals, including application bootup and generators")
+   (description
+    "@code{railties} provides the core Rails internals including handling
+application bootup, plugins, generators, and Rake tasks.")
+   (home-page "https://rubyonrails.org/")
+   (license license:expat)))
+
+(define-public ruby-sprockets-rails
+  (package
+   (name "ruby-sprockets-rails")
+   (version "3.2.1")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (rubygems-uri "sprockets-rails" version))
+     (sha256
+      (base32
+       "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1"))))
+   (build-system ruby-build-system)
+   (arguments
+    '(;; No included tests
+      #:tests? #f))
+   (propagated-inputs
+    `(("ruby-actionpack" ,ruby-actionpack)
+      ("ruby-activesupport" ,ruby-activesupport)
+      ("ruby-sprockets" ,ruby-sprockets)))
+   (synopsis "Sprockets Rails integration")
+   (description
+    "Provides Sprockets implementation for the Rails Asset Pipeline.")
+   (home-page
+    "https://github.com/rails/sprockets-rails")
+   (license license:expat)))
+
+(define-public ruby-rails
+  (package
+   (name "ruby-rails")
+   (version "5.2.2")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (rubygems-uri "rails" version))
+     (sha256
+      (base32
+       "1m9cszds68dsiycciiayd3c9g90s2yzn1izkr3gpgqkfw6dmvzyr"))))
+   (build-system ruby-build-system)
+   (arguments
+    '(#:phases
+      (modify-phases %standard-phases
+        ;; This gem acts as glue between the gems that actually make up
+        ;; Rails. The important thing to check is that the gemspec matches up
+        ;; with the Guix packages and Rubygems can successfully activate the
+        ;; Rails gem.
+        ;;
+        ;; The following check phase tests this.
+        (delete 'check)
+        (add-after 'install 'check
+          (lambda* (#:key tests? outputs #:allow-other-keys)
+            (setenv "GEM_PATH"
+                    (string-append
+                     (getenv "GEM_PATH")
+                     ":"
+                     (assoc-ref outputs "out") "/lib/ruby/vendor_ruby"))
+            (when tests?
+              (invoke "ruby" "-e" "gem 'rails'"))
+            #t)))))
+   (propagated-inputs
+    `(("ruby-activesupport" ,ruby-activesupport)
+      ("ruby-actionpack" ,ruby-actionpack)
+      ("ruby-actionview" ,ruby-actionview)
+      ("ruby-activemodel" ,ruby-activemodel)
+      ("ruby-activerecord" ,ruby-activerecord)
+      ("ruby-actionmailer" ,ruby-actionmailer)
+      ("ruby-activejob" ,ruby-activejob)
+      ("ruby-actioncable" ,ruby-actioncable)
+      ("ruby-activestorage" ,ruby-activestorage)
+      ("ruby-railties" ,ruby-railties)
+      ("bundler" ,bundler)
+      ("ruby-sprockets-rails" ,ruby-sprockets-rails)))
+   (synopsis "Full-stack web framework optimized for programmer happiness")
+   (description
+    "Ruby on Rails is a full-stack web framework optimized for programmer
+happiness and sustainable productivity.  It encourages beautiful code by
+favoring convention over configuration.")
+   (home-page "https://rubyonrails.org/")
+   (license license:expat)))
diff --git a/gnu/packages/rdesktop.scm b/gnu/packages/rdesktop.scm
index 777606d77f..2febb1b5f4 100644
--- a/gnu/packages/rdesktop.scm
+++ b/gnu/packages/rdesktop.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -45,18 +46,18 @@
 (define-public rdesktop
   (package
     (name "rdesktop")
-    (version "1.8.3")
+    (version "1.8.4")
     (source (origin
               (method url-fetch)
-              (uri (string-append
-                    "mirror://sourceforge/rdesktop/rdesktop/" version "/"
-                    "rdesktop-" version ".tar.gz"))
+              (uri (string-append "https://github.com/rdesktop/rdesktop/"
+                                  "releases/download/v" version "/rdesktop-"
+                                  version ".tar.gz"))
               (sha256
                (base32
-                "1r7c1rjmw2xzq8fw0scyb453gy9z19774z1z8ldmzzsfndb03cl8"))))
+                "0bfd9nl2dfr1931fv6bpnrj5yf88ikijrs4s3nm96gm87bkvi64v"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:configure-flags (list (string-append "--with-openssl="
+     `(#:configure-flags (list (string-append "--with-openssl="
                                               (assoc-ref %build-inputs
                                                          "openssl"))
 
@@ -64,11 +65,22 @@
                                "--disable-credssp"
                                "--disable-smartcard")
 
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install-license-files 'delete-extraneous-files
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (license-dir (string-append out "/share/doc/"
+                                                ,name "-" ,version)))
+               ;; XXX These files are installed erroneously.
+               (delete-file (string-append license-dir "/licence.c"))
+               (delete-file (string-append license-dir "/licence.o")))
+             #t)))
        #:tests? #f))                              ;no 'check' target
     (inputs
      `(("libx11" ,libx11)
        ("openssl" ,openssl)))
-    (home-page "http://www.rdesktop.org/")
+    (home-page "https://www.rdesktop.org/")
     (synopsis "Client for Windows Terminal Services")
     (description
      "rdesktop is a client for Microsoft's Windows Remote Desktop Services,
diff --git a/gnu/packages/rrdtool.scm b/gnu/packages/rrdtool.scm
index eb9be7a4bc..fb2afe616f 100644
--- a/gnu/packages/rrdtool.scm
+++ b/gnu/packages/rrdtool.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -37,14 +37,14 @@
 (define-public rrdtool
   (package
     (name "rrdtool")
-    (version "1.7.0")
+    (version "1.7.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://oss.oetiker.ch/rrdtool/pub/rrdtool-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0ssjqpa0dwwzbylc0drmlbq922qcw8crffc0rpr805xr6n4k8zgr"))))
+                "1bhsg119j94xwykp2sbp01hhxcg78gzblfn7j98slrv9va77g6wq"))))
     (build-system gnu-build-system)
     (inputs
      `(("cairo" ,cairo)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 18c6335911..6da7109d14 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org>
-;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015, 2016, 2017 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
@@ -32,19 +32,25 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages dbm)
+  #:use-module (gnu packages rails)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages java)
   #:use-module (gnu packages libffi)
+  #:use-module (gnu packages libidn)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages lsof)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages ragel)
+  #:use-module (gnu packages rsync)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
@@ -55,7 +61,8 @@
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages web)
-  #:use-module (guix build-system ruby))
+  #:use-module (guix build-system ruby)
+  #:use-module ((srfi srfi-1) #:select (alist-delete)))
 
 (define-public ruby
   (package
@@ -150,17 +157,58 @@ a focus on simplicity and productivity.")
                    (delete-file-recursively "ext/fiddle/libffi-3.2.1")
                    #t))))))
 
+(define-public ruby-commander
+  (package
+    (name "ruby-commander")
+    (version "4.4.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "commander" version))
+       (sha256
+        (base32
+         "1pxakz596fjqak3cdbha6iva1dlqis86i3kjrgg6lf3sp8i5vhwg"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:test-target "spec"
+       #:phases
+       (modify-phases %standard-phases
+         ;; Don't run or require rubocop, the code linting tool, as this is a
+         ;; bit unnecessary.
+         (add-after 'unpack 'dont-run-rubocop
+           (lambda _
+             (substitute* "Rakefile"
+               ((".*rubocop.*") "")
+               ((".*RuboCop.*") ""))
+             #t)))))
+    (propagated-inputs
+     `(("ruby-highline" ,ruby-highline)))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-rspec-core" ,ruby-rspec-core)
+       ("ruby-rspec-expectations" ,ruby-rspec-expectations)
+       ("ruby-rspec-mocks" ,ruby-rspec-mocks)
+       ("ruby-simplecov" ,ruby-simplecov)))
+    (home-page "https://github.com/commander-rb/commander")
+    (synopsis "Library for building Ruby command-line executables")
+    (description
+     "Commander aims to be a complete solution for Ruby command-line
+executables.  Commander bridges the gap between other terminal related
+libraries (OptionParser, HighLine), while providing many new features, and an
+elegant API.")
+    (license license:expat)))
+
 (define-public ruby-highline
   (package
     (name "ruby-highline")
-    (version "1.7.10")
+    (version "2.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri "highline" version))
        (sha256
         (base32
-         "01ib7jp85xjc4gh4jg0wyzllm46hwv8p0w1m4c75pbgi41fps50y"))))
+         "0gr6pckj2jayxw1gdgh9193j5jag5zrrqqlrnl4jvcwpyd3sn2zc"))))
     (build-system ruby-build-system)
     (arguments
      `(#:tests? #f)) ;; TODO: NameError: uninitialized constant SPEC
@@ -216,6 +264,41 @@ packaging native C and Java extensions in Ruby.")
     (home-page "https://github.com/rake-compiler/rake-compiler")
     (license license:expat)))
 
+(define-public ruby-rsync
+  (package
+    (name "ruby-rsync")
+    (version "1.0.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "rsync" version))
+       (sha256
+        (base32
+         "0p8b27q1gvxilqfq2528xpwglzcm2myikkjxpqk7mwbwg9r6knxv"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:test-target "spec"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-coveralls-requirement
+           (lambda _
+             (substitute* "spec/spec_helper.rb"
+               (("require 'coveralls'") "")
+               (("Coveralls.wear!") ""))
+             #t)))))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("rsync" ,rsync)
+       ("ruby-rspec-core" ,ruby-rspec-core)
+       ("ruby-rspec-expectations" ,ruby-rspec-expectations)
+       ("ruby-rspec-mocks" ,ruby-rspec-mocks)))
+    (home-page "https://github.com/jbussdieker/ruby-rsync")
+    (synopsis "Ruby wrapper around rsync")
+    (description
+     "Ruby Rsync is a Ruby library that can synchronize files between remote
+hosts by wrapping the @file{rsync} binary.")
+    (license license:expat)))
+
 (define-public ruby-i18n
   (package
     (name "ruby-i18n")
@@ -410,20 +493,55 @@ outcomes of a code example.")
     (version "1.2.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (rubygems-uri "rspec-its" version))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rspec/rspec-its.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "1pwphny5jawcm1hda3vs9pjv1cybaxy17dc1s75qd7drrvx697p3"))))
+         "190rz7v4q4wk80fzhr5hknvxx4vb2pywmqr8wc41w2blj9ylzi0f"))
+       (patches
+        (list
+         (origin (method url-fetch)
+                 (uri (string-append
+                       "https://github.com/rspec/rspec-its/commit/"
+                       "bfaab439c7c879f5ef25552f41827891f6308373.patch"))
+                 (file-name "ruby-rspec-its-fix-specs-for-ruby-2.4.patch")
+                 (sha256
+                  (base32
+                   "0lnik0kvrpgkakvdb2fmzg22pdlraf6kiidr9sv6rnfyviiqwxgh")))))))
     (build-system ruby-build-system)
     (arguments
-     `(#:tests? #f)) ; needs cucumber.
+     `(#:test-target "spec"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'dont-install-gems-from-gemfile
+           (lambda _
+             (substitute* "Gemfile"
+               (("rspec rspec-core rspec-expectations rspec-mocks rspec-support")
+                ""))
+             #t))
+         (add-before 'build 'remove-unnecessary-dependency-versions-from-gemfile
+           (lambda _
+             (substitute* "rspec-its.gemspec"
+               (("rake.*") "rake'\n")
+               (("cucumber.*") "cucumber'\n")
+               (("bundler.*") "bundler'\n")
+               (("aruba.*") "aruba'\n"))
+             #t)))))
     (propagated-inputs
      `(("ruby-rspec-core" ,ruby-rspec-core)
        ("ruby-rspec-expectations" ,ruby-rspec-expectations)))
-    (synopsis "RSpec extension gem for attribute matching")
-    (description "@code{rspec-its} is an RSpec extension gem for attribute
-matching.")
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-cucumber" ,ruby-cucumber)
+       ("ruby-aruba" ,ruby-aruba)))
+    (synopsis "RSpec extension that provides the @code{its} method")
+    (description
+     "RSpec::Its provides the its method as a short-hand to specify the expected
+value of an attribute.  For example, one can use @code{its(:size)\\{should
+eq(1)\\}}.")
     (home-page "https://github.com/rspec/rspec-its")
     (license license:expat)))
 
@@ -461,6 +579,29 @@ support for stubbing and mocking.")
     (propagated-inputs
      `(("ruby-diff-lcs" ,ruby-diff-lcs)))))
 
+(define-public ruby-rspec-rerun
+  (package
+    (name "ruby-rspec-rerun")
+    (version "1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "rspec-rerun" version))
+       (sha256
+        (base32
+         "1gy7znkcaqhpccfnk2nvaqbsvgxy3q57cmjwkl9fi1zabaq5lbkj"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(;; No included tests
+       #:tests? #f))
+    (propagated-inputs `(("ruby-rspec" ,ruby-rspec)))
+    (synopsis "Track failed RSpec tests to re-run them")
+    (description
+     "This package provides an automated way to track, and then re-run failed
+RSpec tests.")
+    (home-page "https://github.com/dblock/rspec-rerun")
+    (license license:expat)))
+
 (define-public ruby-rspec
   (package
     (name "ruby-rspec")
@@ -546,6 +687,28 @@ supported: XML Markup and XML Events.")
     (home-page "https://github.com/jimweirich/builder")
     (license license:expat)))
 
+(define-public ruby-bump
+  (package
+    (name "ruby-bump")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "bump" version))
+       (sha256
+        (base32
+         "1xinbr9rzh6cj75x24niwgqcnbhdxc68a8bc41lk8xv6fd906fym"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(;; No included tests
+       #:tests? #f))
+    (synopsis "Tool for working with Rubygems")
+    (description
+     "Bump provides commands to manage Rubygem versioning, updating to the
+next patch version for example.")
+    (home-page "https://github.com/gregorym/bump")
+    (license license:expat)))
+
 (define-public ruby-rjb
   (package
     (name "ruby-rjb")
@@ -682,6 +845,53 @@ AsciiDoc content to HTML5, DocBook 5 (or 4.5), PDF, and other formats.")
   (home-page "https://asciidoctor.org")
   (license license:expat)))
 
+(define-public ruby-ast
+  (package
+    (name "ruby-ast")
+    (version "2.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "ast" version))
+       (sha256
+        (base32
+         "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-coveralls-requirement
+           (lambda _
+             (substitute* "test/helper.rb"
+               (("require 'coveralls'") "")
+               (("Coveralls::SimpleCov::Formatter") ""))
+             #t))
+         (add-after 'extract-gemspec 'remove-unnecessary-requirements
+           (lambda _
+             (substitute* "ast.gemspec"
+               ((".*coveralls.*") "\n")
+               (("%q<rest-client>.*") "%q<rest-client>.freeze, [\">= 0\"])\n")
+               (("%q<mime-types>.*") "%q<mime-types>.freeze, [\">= 0\"])\n")
+               (("%q<rake>.*") "%q<rake>.freeze, [\">= 0\"])\n"))
+             #t)))))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-simplecov" ,ruby-simplecov)
+       ("ruby-json-pure" ,ruby-json-pure)
+       ("ruby-mime-times" ,ruby-mime-types)
+       ("ruby-yard" ,ruby-yard)
+       ("ruby-kramdown" ,ruby-kramdown)
+       ("ruby-rest-client" ,ruby-rest-client)
+       ("ruby-bacon" ,ruby-bacon)
+       ("ruby-bacon-colored-output" ,ruby-bacon-colored-output)
+       ("ruby-racc" ,ruby-racc)))
+    (synopsis "Library for working with Abstract Syntax Trees")
+    (description
+     "@code{ast} is a Ruby library for working with Abstract Syntax Trees.
+It does this through immutable data structures.")
+    (home-page "https://whitequark.github.io/ast/")
+    (license license:expat)))
+
 (define-public ruby-sporkmonger-rack-mount
   ;; Testing the addressable gem requires a newer commit than that released, so
   ;; use an up to date version.
@@ -740,6 +950,124 @@ format.")
     (home-page "https://github.com/nicksieger/ci_reporter")
     (license license:expat)))
 
+(define-public ruby-contracts
+  (package
+    (name "ruby-contracts")
+    (version "0.16.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "contracts" version))
+       (sha256
+        (base32
+         "119f5p1n6r5svbx8h09za6a4vrsnj5i1pzr9cqdn9hj3wrxvyl3a"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:test-target "spec"
+       #:phases
+       (modify-phases %standard-phases
+         ;; Don't run or require rubocop, the code linting tool, as this is a
+         ;; bit unnecessary.
+         (add-after 'unpack 'dont-run-rubocop
+          (lambda _
+            (substitute* "Rakefile"
+              ((".*rubocop.*") "")
+              ((".*RuboCop.*") ""))
+            #t)))))
+    (native-inputs
+     `(("ruby-rspec" ,ruby-rspec)))
+    (synopsis "Method contracts for Ruby")
+    (description
+     "This library provides contracts for Ruby.  A contract describes the
+correct inputs and output for a method, and will raise an error if a incorrect
+value is found.")
+    (home-page "https://github.com/egonSchiele/contracts.ruby")
+    (license license:bsd-2)))
+
+(define-public ruby-crack
+  (package
+    (name "ruby-crack")
+    (version "0.4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "crack" version))
+       (sha256
+        (base32
+         "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (for-each (lambda (file)
+                           (display file)(display "\n")
+                           (invoke "ruby" "-Ilib" "-Itest" "-rrubygems" file))
+                         (find-files "test" ".*rb$")))
+             #t)))))
+    (propagated-inputs
+     `(("ruby-safe-yaml" ,ruby-safe-yaml)))
+    (synopsis "Simple JSON and XML parsing for Ruby")
+    (description
+     "@code{crack} provides really simple JSON and XML parsing, extracted from
+code in Merb and Rails.")
+    (home-page "https://github.com/jnunemaker/crack")
+    (license license:expat)))
+
+(define-public ruby-crass
+  (package
+    (name "ruby-crass")
+    (version "1.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "crass" version))
+       (sha256
+        (base32
+         "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi"))))
+    (build-system ruby-build-system)
+    (synopsis "Pure Ruby CSS parser based on CSS Syntax Level 3")
+    (description
+     "Crass is a pure Ruby CSS parser based on the CSS Syntax Level 3 spec.")
+    (home-page "https://github.com/rgrove/crass/")
+    (license license:expat)))
+
+(define-public ruby-cliver
+  (package
+    (name "ruby-cliver")
+    (version "0.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "cliver" version))
+       (sha256
+        (base32
+         "096f4rj7virwvqxhkavy0v55rax10r4jqf8cymbvn4n631948xc7"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         ;; Avoid a incompatibility between rspec@2 and rake. Using rspec@3
+         ;; would be nice, but the tests look to be incompatible:
+         ;;
+         ;; NoMethodError: undefined method `last_comment'
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "rspec"))
+             #t)))))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-rspec" ,ruby-rspec-2)))
+    (synopsis "Assertions for command-line dependencies in Ruby")
+    (description
+     "@code{cliver} provides a way to detect missing command-line
+dependencies, including versions.")
+    (home-page "https://github.com/yaauie/cliver")
+    (license license:expat)))
+
 (define-public ruby-czmq-ffi-gen
   (package
     (name "ruby-czmq-ffi-gen")
@@ -873,6 +1201,25 @@ functions.")
     (home-page "https://github.com/ahoward/options")
     (license license:ruby)))
 
+(define-public ruby-erubi
+  (package
+    (name "ruby-erubi")
+    (version "1.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "erubi" version))
+       (sha256
+        (base32
+         "1kagnf6ziahj0d781s6ryy6fwqwa3ad4xbzzj84p9m4nv4c2jir1"))))
+    (build-system ruby-build-system)
+    (synopsis "ERB template engine for Ruby")
+    (description
+     "Erubi is a ERB template engine for Ruby.  It is a simplified fork of
+Erubis")
+    (home-page "https://github.com/jeremyevans/erubi")
+    (license license:expat)))
+
 (define-public ruby-erubis
   (package
     (name "ruby-erubis")
@@ -1132,6 +1479,86 @@ standard output stream.")
     (home-page "https://github.com/geemus/formatador")
     (license license:expat)))
 
+(define-public ruby-fuubar
+  (package
+    (name "ruby-fuubar")
+    (version "2.3.2")
+    (source
+     (origin
+       ;; Fetch from the git repository, as the gem package doesn't include
+       ;; the tests.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/thekompanee/fuubar.git")
+             (commit (string-append "releases/v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0jm1x2xp13csbnadixaikj7mlkp5yk4byx51npm56zi13izp7259"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(;; TODO: Some tests fail, unsure why.
+       ;; 21 examples, 7 failures
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'delete-certificate
+           (lambda _
+             ;; Remove 's.cert_chain' as we do not build with a private key
+             (substitute* "fuubar.gemspec"
+               ((".*cert_chain.*") "")
+               ((".*signing_key.*") ""))
+             #t))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "rspec"))
+             #t)))))
+    (native-inputs
+     `(("bundler" ,bundler)))
+    (propagated-inputs
+     `(("ruby-rspec-core" ,ruby-rspec-core)
+       ("ruby-progressbar" ,ruby-progressbar)))
+    (synopsis "Fuubar is an RSpec formatter that uses a progress bar")
+    (description
+     "Fuubar is an RSpec formatter that uses a progress bar instead of a
+string of letters and dots as feedback.  It also stops on the first test
+failure.")
+    (home-page "https://github.com/thekompanee/fuubar")
+    (license license:expat)))
+
+(define-public ruby-hashdiff
+  (package
+    (name "ruby-hashdiff")
+    (version "0.3.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "hashdiff" version))
+       (sha256
+        (base32
+         "19ykg5pax8798nh1yv71adkx0zzs7gn2rxjj86v7nsw0jba5lask"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         ;; Run tests directly via rspec to avoid Rake issue:
+         ;; NoMethodError: undefined method `last_comment'
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "rspec"))
+             #t)))))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-rspec" ,ruby-rspec-2)))
+    (synopsis "HashDiff computes the smallest difference between two hashes")
+    (description
+     "HashDiff is a Ruby library to compute the smallest difference between
+two hashes.")
+    (home-page "https://github.com/liufengyun/hashdiff")
+    (license license:expat)))
+
 (define-public ruby-shindo
   (package
     (name "ruby-shindo")
@@ -1287,6 +1714,31 @@ User Agents.")
     (home-page "https://github.com/gshutler/useragent")
     (license license:expat)))
 
+(define-public ruby-backports
+  (package
+  (name "ruby-backports")
+  (version "3.11.4")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (rubygems-uri "backports" version))
+      (sha256
+        (base32
+          "1hshjxww2h7s0dk57njrygq4zpp0nlqrjfya7zwm27iq3rhc3y8g"))))
+  (build-system ruby-build-system)
+  (arguments
+   '(;; TODO: This should be default, but there is one test failure
+     #:test-target "all_spec"))
+  (native-inputs
+   `(("ruby-mspec" ,ruby-mspec)
+     ("ruby-activesupport" ,ruby-activesupport)))
+  (synopsis "Backports of the features in newer Ruby versions")
+  (description
+    "Backports enables more compatibility across Ruby versions by providing
+backports of some features.")
+  (home-page "https://github.com/marcandre/backports")
+  (license license:expat)))
+
 (define-public ruby-bacon
   (package
     (name "ruby-bacon")
@@ -1328,6 +1780,30 @@ disable tests, have before and after blocks that run once and more.")
     (home-page "https://github.com/cldwalker/bacon-bits")
     (license license:expat)))
 
+(define-public ruby-bacon-colored-output
+  (package
+    (name "ruby-bacon-colored-output")
+    (version "1.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "bacon-colored_output" version))
+       (sha256
+        (base32
+         "1znyh3vkfdlmf19p3k4zip88ibym41dn5g4p4n5hmks2iznb7qpx"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(;; No included tests
+       #:tests? #f))
+    (propagated-inputs
+     `(("ruby-bacon" ,ruby-bacon)))
+    (synopsis "Colored output for Bacon test framework")
+    (description
+     "This package adds color through ANSI escape codes to Bacon test
+output.")
+    (home-page "https://github.com/whitequark/bacon-colored_output")
+    (license license:expat)))
+
 (define-public ruby-connection-pool
   (package
     (name "ruby-connection-pool")
@@ -1386,6 +1862,32 @@ assertion messages for tests.")
     (home-page "https://github.com/k-tsj/power_assert")
     (license (list license:bsd-2 license:ruby))))
 
+(define-public ruby-powerpack
+  (package
+    (name "ruby-powerpack")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "powerpack" version))
+       (sha256
+        (base32
+         "1r51d67wd467rpdfl6x43y84vwm8f5ql9l9m85ak1s2sp3nc5hyv"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:test-target "spec"))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-rspec" ,ruby-rspec)
+       ("ruby-yard" ,ruby-yard)))
+    (synopsis "Useful extensions to core Ruby classes")
+    (description
+     "This package provides a few useful extensions to core Ruby classes,
+including @code{Array}, @code{Enumerable}, @code{Hash}, @code{Numeric}, and
+@code{String}.")
+    (home-page "https://github.com/bbatsov/powerpack")
+    (license license:expat)))
+
 (define-public ruby-locale
   (package
     (name "ruby-locale")
@@ -1508,6 +2010,39 @@ It allows writing tests, checking results and automated testing in Ruby.")
     (home-page "https://test-unit.github.io/")
     (license (list license:psfl license:ruby))))
 
+(define-public ruby-maruku
+  (package
+    (name "ruby-maruku")
+    (version "0.7.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "maruku" version))
+       (sha256
+        (base32
+         "1r7bxpgnx2hp3g12bjrmdrpv663dfqxsdp0af69kjhxmaxpia56x"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(;; TODO: 3 tests seem to fail due to HTML encoding issues
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "rspec"))
+             #t)))))
+    (native-inputs
+     `(("ruby-rspec" ,ruby-rspec)
+       ("ruby-simplecov" ,ruby-simplecov)
+       ("ruby-nokogiri-diff" ,ruby-nokogiri-diff)))
+    (synopsis "Markdown interpreter in Ruby")
+    (description
+     "Maruku is a Markdown interpreter in Ruby.  It can export Markdown to
+HTML, and PDF through LaTeX.")
+    (home-page "https://github.com/bhollis/maruku")
+    (license license:expat)))
+
 (define-public ruby-metaclass
   (package
     (name "ruby-metaclass")
@@ -1543,6 +2078,107 @@ objects.")
     (home-page "https://github.com/floehopper/metaclass")
     (license license:expat)))
 
+(define-public ruby-mspec
+  (package
+    (name "ruby-mspec")
+    (version "1.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "mspec" version))
+       (sha256
+        (base32
+         "0wmyh2n40m4srwdx9z6h6g6p46k02pzyhcsja3hqcw5h5b0hfmhd"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(;; TODO: 3 test failures
+       ;; ./spec/mocks/mock_spec.rb:82
+       ;; ./spec/utils/name_map_spec.rb:151
+       ;; ./spec/utils/name_map_spec.rb:155
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'extract-gemspec 'change-dependency-constraints
+           (lambda _
+             (substitute* "mspec.gemspec"
+               (("rake.*") "rake>)\n")
+               (("rspec.*") "rspec>)\n"))
+             #t))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "rspec" "spec"))
+             #t)))))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-rake" ,ruby-rake)
+       ("ruby-rspec" ,ruby-rspec)))
+    (synopsis "MSpec is a specialized framework for RubySpec")
+    (description
+     "MSpec is a specialized framework that is syntax-compatible with RSpec 2
+for basic features.  MSpec contains additional features that assist in writing
+specs for Ruby implementations in ruby/spec.")
+    (home-page "http://rubyspec.org")
+    (license license:expat)))
+
+(define-public ruby-mysql2
+  (package
+    (name "ruby-mysql2")
+    (version "0.5.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/brianmario/mysql2.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "11lvfgc2rmvkm52jp0nbi6pvhk06klznghr7llldfw8basl9n5wv"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(;; TODO: Tests require a running MySQL/MariaDB service
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'replace-git-ls-files
+           (lambda _
+             (substitute* "mysql2.gemspec"
+               (("git ls-files .*`") "find . -type f |sort`"))
+             #t))
+         (add-before 'install 'set-MAKEFLAGS
+           (lambda* (#:key outputs #:allow-other-keys)
+             (setenv "MAKEFLAGS"
+                     (string-append
+                      "V=1 "
+                      "prefix=" (assoc-ref outputs "out")))
+             #t))
+         ;; Move the 'check phase to after 'install, as then you can test
+         ;; using the installed mysql2 gem in the store.
+         (delete 'check)
+         (add-after 'install 'check
+           (lambda* (#:key outputs tests? #:allow-other-keys)
+             (setenv "GEM_PATH"
+                     (string-append
+                      (getenv "GEM_PATH")
+                      ":"
+                      (assoc-ref outputs "out") "/lib/ruby/vendor_ruby"))
+             (when tests?
+               (invoke "rspec"))
+             #t)))))
+    (inputs
+     `(("mariadb" ,mariadb)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("ruby-rspec" ,ruby-rspec)
+       ("ruby-rake-compiler" ,ruby-rake-compiler)))
+    (synopsis "MySQL library for Ruby, binding to libmysql")
+    (description
+     "This package provides a simple, fast MySQL library for Ruby, binding to
+libmysql.")
+    (home-page "https://github.com/brianmario/mysql2")
+    (license license:expat)))
+
 (define-public ruby-blankslate
   (package
     (name "ruby-blankslate")
@@ -1599,6 +2235,52 @@ irb's last-word approach.")
     (home-page "http://tagaholic.me/bond/")
     (license license:expat)))
 
+(define-public ruby-idn-ruby
+  (package
+    (name "ruby-idn-ruby")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "idn-ruby" version))
+       (sha256
+        (base32
+         "07vblcyk3g72sbq12xz7xj28snpxnh3sbcnxy8bglqbfqqhvmawr"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (delete 'check)
+         (add-after 'install 'check
+           (lambda* (#:key tests? outputs #:allow-other-keys)
+             (when tests?
+               (let* ((gem-file (cadr (find-files "." "\\.gem")))
+                      (name-and-version (basename gem-file ".gem")))
+                 (apply invoke
+                        "ruby" "--verbose"
+                        (string-append "-I"
+                                       (assoc-ref outputs "out")
+                                       "/lib/ruby/vendor_ruby/gems/"
+                                       name-and-version
+                                       "/lib")
+                        (find-files "./test" ".*\\.rb"))))
+             #t)))))
+    (inputs
+     `(("libidn" ,libidn)))
+    (synopsis "Ruby Bindings for the GNU LibIDN library")
+    (description
+     "Ruby Bindings for the GNU LibIDN library, an implementation of the
+Stringprep, Punycode and IDNA specifications.  These are used to encode and
+decode internationalized domain + names according to the IDNA2003
+specifications.
+
+Included are the most important parts of the Stringprep, Punycode and IDNA
+APIs like performing Stringprep processings, encoding to and decoding from
+Punycode strings and converting entire domain names to and from the ACE
+encoded form.")
+    (home-page "https://github.com/deepfryed/idn-ruby")
+    (license license:asl2.0)))
+
 (define-public ruby-instantiator
   (package
     (name "ruby-instantiator")
@@ -1839,13 +2521,13 @@ client protocol.")
 (define-public ruby-minitest
   (package
     (name "ruby-minitest")
-    (version "5.10.3")
+    (version "5.11.3")
     (source (origin
               (method url-fetch)
               (uri (rubygems-uri "minitest" version))
               (sha256
                (base32
-                "05521clw19lrksqgvg2kmm025pvdhdaniix52vmbychrn2jm7kz2"))))
+                "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq"))))
     (build-system ruby-build-system)
     (native-inputs
      `(("ruby-hoe" ,ruby-hoe)))
@@ -2051,6 +2733,51 @@ instance, it provides @code{assert_true}, @code{assert_false} and
     (home-page "https://github.com/halostatue/minitest-bonus-assertions")
     (license license:expat)))
 
+(define-public ruby-minitest-reporters
+  (package
+    (name "ruby-minitest-reporters")
+    (version "1.3.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "minitest-reporters" version))
+       (sha256
+        (base32
+         "1a3das80rwgys5rj48i5ly144nvszyqyi748bk9bss74jblcf5ay"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         ;; Remove the requirement on Rubocop, as it isn't useful to run, and
+         ;; including it as an input can lead to circular dependencies.
+         (add-after 'unpack 'remove-rubocop-from-Rakefile
+           (lambda _
+             (substitute* "Rakefile"
+               (("require 'rubocop/rake\\_task'") "")
+               (("RuboCop::RakeTask\\.new\\(:rubocop\\)") "[].each"))
+             #t))
+         (add-after 'extract-gemspec 'remove-rubocop-from-gemspec
+           (lambda _
+             (substitute* "minitest-reporters.gemspec"
+               ((".*%q<rubocop>.*") "\n"))
+             #t)))))
+    (propagated-inputs
+     `(("ruby-ansi" ,ruby-ansi)
+       ("ruby-builder" ,ruby-builder)
+       ("ruby-minitest" ,ruby-minitest)
+       ("ruby-progressbar" ,ruby-progressbar)))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-maruku" ,ruby-maruku)))
+    (synopsis "Enhanced reporting for Minitest tests")
+    (description
+     "@code{minitest/reporters} provides a custom Minitest runner to improve
+how the test state is reported.  A number of different reporters are
+available, including a spec reporter, progress bar reporter, a HTML
+reporter.")
+    (home-page "https://github.com/kern/minitest-reporters")
+    (license license:expat)))
+
 (define-public ruby-minitest-rg
   (package
     (name "ruby-minitest-rg")
@@ -2294,13 +3021,13 @@ rogue test/unit/autorun requires.")
 (define-public ruby-arel
   (package
     (name "ruby-arel")
-    (version "8.0.0")
+    (version "9.0.0")
     (source (origin
               (method url-fetch)
               (uri (rubygems-uri "arel" version))
               (sha256
                (base32
-                "0nw0qbc6ph625p6n3maqq9f527vz3nbl0hk72fbyka8jzsmplxzl"))))
+                "1jk7wlmkr61f6g36w9s2sn46nmdg6wn2jfssrhbhirv5x9n95nk0"))))
     (build-system ruby-build-system)
     (arguments '(#:tests? #f)) ; no tests
     (home-page "https://github.com/rails/arel")
@@ -2310,6 +3037,30 @@ Ruby.  It simplifies the generation of complex SQL queries and adapts to
 various relational database implementations.")
     (license license:expat)))
 
+(define-public ruby-marcel
+  (package
+    (name "ruby-marcel")
+    (version "0.3.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "marcel" version))
+       (sha256
+        (base32
+         "1nxbjmcyg8vlw6zwagf17l9y2mwkagmmkg95xybpn4bmf3rfnksx"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(;; No included tests
+       #:tests? #f))
+    (propagated-inputs
+     `(("ruby-mimemagic" ,ruby-mimemagic)))
+    (synopsis "MIME type detection using magic numbers, filenames and extensions")
+    (description
+     "@code{marcel} provides @acronym{MIME, Multipurpose Internet Mail
+Extensions} type detection using magic numbers, filenames, and extensions")
+    (home-page "https://github.com/basecamp/marcel")
+    (license license:expat)))
+
 (define-public ruby-minitar
   ;; We package from the GitHub source to fix the security issue reported at
   ;; https://github.com/halostatue/minitar/issues/16.
@@ -2461,6 +3212,67 @@ for select languages.")
     (home-page "http://coderay.rubychan.de")
     (license license:expat)))
 
+(define-public ruby-parser
+  (package
+    (name "ruby-parser")
+    (version "2.6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "parser" version))
+       (sha256
+        (base32
+         "1hhz2k5417vr2k1llwqgjdnmyrhlpqicy0y2arr6r1gp04fg9wlm"))))
+    (build-system ruby-build-system)
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-cliver" ,ruby-cliver)
+       ("ruby-simplecov" ,ruby-simplecov)
+       ("ruby-racc" ,ruby-racc)))
+    (inputs
+     `(("ragel" ,ragel)))
+    (propagated-inputs
+     `(("ruby-ast" ,ruby-ast)))
+    (synopsis "Ruby parser written in pure Ruby")
+    (description
+     "This package provides a Ruby parser written in pure Ruby.")
+    (home-page "https://github.com/whitequark/parser")
+    (license license:expat)))
+
+(define-public ruby-prawn-manual-builder
+  (package
+    (name "ruby-prawn-manual-builder")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "prawn-manual_builder" version))
+       (sha256
+        (base32
+         "0wbjnkqp55p5wmz85ldypcray223glckd209hmdxhnzk8s5pb3za"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(;; No included tests
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'extract-gemspec 'patch-gemspec
+           (lambda _
+             (substitute* ".gemspec"
+               ;; Loosen the requirement for pdf-inspector
+               (("~> 1\\.0\\.7") ">= 0")))))))
+    (propagated-inputs
+     `(("ruby-coderay" ,ruby-coderay)))
+    (synopsis "Tool for writing manuals for Prawn and Prawn accessories")
+    (description
+     "This package provides a tool for writing manuals for Prawn and Prawn
+accessories")
+    (home-page "https://github.com/prawnpdf/prawn-manual_builder")
+    (license (list
+              ;; GPLv2 or GPLv3 or custom license described in LICENSE file
+              license:gpl2
+              license:gpl3))))
+
 (define-public ruby-progress_bar
   (package
     (name "ruby-progress_bar")
@@ -2492,6 +3304,28 @@ rate.")
     (home-page "https://github.com/paul/progress_bar")
     (license license:wtfpl2)))
 
+(define-public ruby-progressbar
+  (package
+    (name "ruby-progressbar")
+    (version "1.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "ruby-progressbar" version))
+       (sha256
+        (base32
+         "1cv2ym3rl09svw8940ny67bav7b2db4ms39i4raaqzkf59jmhglk"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(;; TODO: There looks to be a circular dependency with ruby-fuubar.
+       #:tests? #f))
+    (synopsis "Text progress bar library for Ruby")
+    (description
+     "Ruby/ProgressBar is an flexible text progress bar library for Ruby.
+The output can be customized with a formatting system.")
+    (home-page "https://github.com/jfelchner/ruby-progressbar")
+    (license license:expat)))
+
 (define-public ruby-pry
   (package
     (name "ruby-pry")
@@ -2921,6 +3755,29 @@ when working with Ruby code.")
     ;; There is no mention of the "or later" clause.
     (license license:gpl2)))
 
+(define-public ruby-jaro-winkler
+  (package
+    (name "ruby-jaro-winkler")
+    (version "1.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "jaro_winkler" version))
+       (sha256
+        (base32
+         "1zz27z88qznix4r65gd9h56gl177snlfpgv10b0s69vi8qpl909l"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(;; No included tests
+       #:tests? #f))
+    (synopsis "Ruby implementation of Jaro-Winkler distance algorithm")
+    (description
+     "@code{jaro_winkler} is an implementation of Jaro-Winkler distance
+algorithm.  It is written as a C extension and will fallback to a pure Ruby
+implementation on platforms where this is unsupported.")
+    (home-page "https://github.com/tonytonyjan/jaro_winkler")
+    (license license:expat)))
+
 (define-public ruby-json
   (package
     (name "ruby-json")
@@ -3041,17 +3898,55 @@ you about the changes.")
                (base32
                 "1l0y7hbyfiwpvk172r28hsdqsifq1ls39hsfmzi1vy4ll0smd14i"))))))
 
+(define-public ruby-loofah
+  (package
+    (name "ruby-loofah")
+    (version "2.2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "loofah" version))
+       (sha256
+        (base32
+         "1ccsid33xjajd0im2xv941aywi58z7ihwkvaf1w2bv89vn5bhsjg"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-unnecessary-dependencies
+           (lambda _
+             ;; concourse is a development tool which is unused, so remove it
+             ;; so it's not required.
+             (substitute* "Gemfile"
+               ((".*\"concourse\".*") "\n"))
+             (substitute* "Rakefile"
+               (("require 'concourse'") "")
+               (("Concourse\\.new.*") "\n"))
+             #t)))))
+    (native-inputs
+     `(("ruby-hoe" ,ruby-hoe)
+       ("ruby-rr" ,ruby-rr)))
+    (propagated-inputs
+     `(("ruby-nokogiri" ,ruby-nokogiri)
+       ("ruby-crass" ,ruby-crass)))
+    (synopsis "Ruby library for manipulating and transforming HTML/XML")
+    (description
+     "Loofah is a general library for manipulating and transforming HTML/XML
+documents and fragments.  It's built on top of Nokogiri and libxml2.")
+    (home-page "https://github.com/flavorjones/loofah")
+    (license license:expat)))
+
 (define-public ruby-activesupport
   (package
     (name "ruby-activesupport")
-    (version "5.2.1")
+    (version "5.2.2")
     (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri "activesupport" version))
        (sha256
         (base32
-         "0ziy6xk31k4fs115cdkba1ys4i8nzcyri7a2jig7nx7k5h7li6l2"))))
+         "1iya7vxqwxysr74s7b4z1x19gmnx5advimzip3cbmsd5bd43wfgz"))))
     (build-system ruby-build-system)
     (arguments
      `(#:phases
@@ -3442,6 +4337,32 @@ differences (added or removed nodes) between two XML/HTML documents.")
       (home-page "https://github.com/postmodern/nokogiri-diff")
       (license license:expat))))
 
+(define-public ruby-racc
+  (package
+    (name "ruby-racc")
+    (version "1.4.14")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "racc" version))
+       (sha256
+        (base32
+         "00yhs2ag7yy5v83mqvkbnhk9bvsh6mx3808k53n61ddzx446v1zl"))))
+    (build-system ruby-build-system)
+    (native-inputs
+     `(("ruby-hoe" ,ruby-hoe)
+       ("ruby-rake-compiler" ,ruby-rake-compiler)))
+    (synopsis "LALR(1) parser generator for Ruby")
+    (description
+     "Racc is a LALR(1) parser generator.  It is written in Ruby itself, and
+generates Ruby program.")
+    (home-page "http://i.loveruby.net/en/projects/racc/")
+    (license (list
+              ;; Generally licensed under the LGPL2.1, and some files also
+              ;; available under the same license as Ruby.
+              license:lgpl2.1
+              license:ruby))))
+
 (define-public ruby-rack
   (package
     (name "ruby-rack")
@@ -3558,6 +4479,140 @@ clickjacking, directory traversal, session hijacking and IP spoofing.")
     (home-page "https://github.com/sinatra/sinatra/tree/master/rack-protection")
     (license license:expat)))
 
+(define-public ruby-rainbow
+  (package
+    (name "ruby-rainbow")
+    (version "3.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "rainbow" version))
+       (sha256
+        (base32
+         "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         ;; Run rspec directly, to avoid requiring Rubocop which is used from
+         ;; the Rakefile.
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "rspec"))
+             #t)))))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-rspec" ,ruby-rspec)))
+    (synopsis "Colorize printed text on ANSI terminals")
+    (description
+     "@code{rainbow} provides a string presenter object to colorize strings by
+wrapping them in ANSI escape codes.")
+    (home-page "https://github.com/sickill/rainbow")
+    (license license:expat)))
+
+(define-public ruby-rr
+  (package
+    (name "ruby-rr")
+    (version "1.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "rr" version))
+       (sha256
+        (base32
+         "1n9g78ba4c2zzmz8cdb97c38h1xm0clircag00vbcxwqs4dq0ymp"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:tests? #f)) ; test files not included
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-rspec" ,ruby-rspec)))
+    (synopsis "Ruby test double framework")
+    (description
+     "RR is a test double framework that features a rich selection of double
+techniques and a terse syntax.")
+    (home-page "https://rr.github.io/rr/")
+    (license license:expat)))
+
+(define-public ruby-rest-client
+  (package
+    (name "ruby-rest-client")
+    (version "2.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "rest-client" version))
+       (sha256
+        (base32
+         "1hzcs2r7b5bjkf2x2z3n8z6082maz0j8vqjiciwgg3hzb63f958j"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'remove-unnecessary-development-dependencies
+           (lambda _
+             (substitute* "rest-client.gemspec"
+               ;; Remove rubocop as it's unused. Rubocop also indirectly
+               ;; depends on this package through ruby-parser and ruby-ast so
+               ;; this avoids a dependency loop.
+               ((".*rubocop.*") "\n")
+               ;; Remove pry as it's unused, it's a debugging tool
+               ((".*pry.*") "\n")
+               ;; Remove an unnecessarily strict rdoc dependency
+               ((".*rdoc.*") "\n"))
+             #t))
+         (add-before 'check 'delete-network-dependent-tests
+           (lambda _
+             (delete-file "spec/integration/request_spec.rb")
+             (delete-file "spec/integration/httpbin_spec.rb")
+             #t)))))
+    (propagated-inputs
+     `(("ruby-http-cookie" ,ruby-http-cookie)
+       ("ruby-mime-types" ,ruby-mime-types)
+       ("ruby-netrc" ,ruby-netrc)))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-webmock", ruby-webmock-2)
+       ("ruby-rspec", ruby-rspec)))
+    (synopsis "Simple HTTP and REST client for Ruby")
+    (description
+     "@code{rest-client} provides a simple HTTP and REST client for Ruby,
+inspired by the Sinatra microframework style of specifying actions:
+@code{get}, @code{put}, @code{post}, @code{delete}.")
+    (home-page "https://github.com/rest-client/rest-client")
+    (license license:expat)))
+
+(define-public ruby-rubocop
+  (package
+    (name "ruby-rubocop")
+    (version "0.64.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "rubocop" version))
+       (sha256
+        (base32
+         "07shi6kncwhkvlh9ci9rgccrjsq4448hbic3yrakh2w65ppynvbj"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(;; No included tests
+       #:tests? #f))
+    (propagated-inputs
+     `(("ruby-parser" ,ruby-parser)
+       ("ruby-powerpack" ,ruby-powerpack)
+       ("ruby-rainbow" ,ruby-rainbow)
+       ("ruby-progressbar" ,ruby-progressbar)
+       ("ruby-parallel" ,ruby-parallel)
+       ("ruby-jaro-winkler" ,ruby-jaro-winkler)
+       ("ruby-unicode-display-width" ,ruby-unicode-display-width)))
+    (synopsis "Ruby code style checking tool")
+    (description
+     "@code{rubocop} is a Ruby code style checking tool.  It aims to enforce
+the community-driven Ruby Style Guide.")
+    (home-page "https://github.com/rubocop-hq/rubocop")
+    (license license:expat)))
+
 (define-public ruby-contest
   (package
     (name "ruby-contest")
@@ -3622,14 +4677,14 @@ Ruby classes.")
 (define-public ruby-gherkin
   (package
     (name "ruby-gherkin")
-    (version "4.1.3")
+    (version "5.1.0")
     (source
       (origin
         (method url-fetch)
         (uri (rubygems-uri "gherkin" version))
         (sha256
           (base32
-            "1d18r8mf2qyd9jbq9xxvca8adyysdzvwdy8v9c2s5hrd6p02kg79"))))
+            "1cgcdchwwdm10rsk44frjwqd4ihprhxjbm799nscqy2q1raqfj5s"))))
     (build-system ruby-build-system)
     (native-inputs
      `(("bundler" ,bundler)))
@@ -3637,25 +4692,172 @@ Ruby classes.")
      '(#:tests? #f)) ; needs simplecov, among others
     (synopsis "Gherkin parser for Ruby")
     (description "Gherkin is a parser and compiler for the Gherkin language.
-It is intended be used by all Cucumber implementations to parse '.feature'
-files.")
-    (home-page "https://github.com/cucumber/gherkin3")
+It is intended be used by all Cucumber implementations to parse
+@file{.feature} files.")
+    (home-page "https://github.com/cucumber-attic/gherkin")
+    (license license:expat)))
+
+(define-public ruby-aruba
+  (package
+    (name "ruby-aruba")
+    (version "0.14.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "aruba" version))
+       (sha256
+        (base32
+         "0zdd81l1lp0x78sxa6kkfqclpj5il3xl70nz05wqv2sfzzhqydxh"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:test-target "spec"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch
+           (lambda _
+             (substitute* "spec/aruba/api_spec.rb"
+               ;; This resolves some errors in the specs
+               ;;
+               ;; undefined method `parse' for Time:Class
+               (("require 'spec_helper'")
+                "require 'spec_helper'\nrequire 'time'"))
+             ;; Avoid shebang issues in this spec file
+             (substitute* "spec/aruba/matchers/command_spec.rb"
+               (("/usr/bin/env bash")
+                (which "bash")))
+             #t))
+         (add-before 'check 'remove-unnecessary-dependencies
+           (lambda _
+             (substitute* "Gemfile"
+               ((".*byebug.*") "\n")
+               ((".*pry.*") "\n")
+               ((".*yaml.*") "\n")
+               ((".*bcat.*") "\n")
+               ((".*kramdown.*") "\n")
+               ((".*rubocop.*") "\n")
+               ((".*cucumber-pro.*") "\n")
+               ((".*cucumber.*") "\n")
+               ((".*license_finder.*") "\n")
+               ((".*rake.*") "gem 'rake'\n")
+               ((".*simplecov.*") "\n")
+               ((".*relish.*") "\n"))
+             (substitute* "spec/spec_helper.rb"
+               ((".*simplecov.*") "")
+               (("^SimpleCov.*") ""))
+             (substitute* "aruba.gemspec"
+               (("spec\\.add\\_runtime\\_dependency 'cucumber'.*")
+                "spec.add_runtime_dependency 'cucumber'"))
+             #t))
+         (add-before 'check 'set-home
+           (lambda _ (setenv "HOME" "/tmp") #t)))))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-rspec" ,ruby-rspec)
+       ("ruby-fuubar" ,ruby-fuubar)))
+    (propagated-inputs
+     `(("ruby-childprocess" ,ruby-childprocess)
+       ("ruby-contracts" ,ruby-contracts)
+       ("ruby-cucumber" ,ruby-cucumber)
+       ("ruby-ffi" ,ruby-ffi)
+       ("ruby-rspec-expectations" ,ruby-rspec-expectations)
+       ("ruby-thor" ,ruby-thor)
+       ("ruby-yard" ,ruby-yard)))
+    (synopsis "Test command-line applications with Cucumber, RSpec or Minitest")
+    (description
+     "Aruba is an extension for Cucumber, RSpec and Minitest for testing
+command-line applications.  It supports applications written in any
+language.")
+    (home-page "https://github.com/cucumber/aruba")
+    (license license:expat)))
+
+;; A version of ruby-aruba without tests run so that circular dependencies can
+;; be avoided.
+(define ruby-aruba-without-tests
+  (package
+    (inherit ruby-aruba)
+    (arguments '(#:tests? #f))
+    (propagated-inputs
+     `(("ruby-cucumber" ,ruby-cucumber-without-tests)
+       ,@(alist-delete "ruby-cucumber"
+                       (package-propagated-inputs ruby-aruba))))
+    (native-inputs '())))
+
+(define-public ruby-cucumber
+  (package
+    (name "ruby-cucumber")
+    (version "3.1.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cucumber/cucumber-ruby.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0764wp2cjg60qa3l69q1dxda5g06a01n5w92szqbf89d2hgl47n3"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:test-target "spec"
+       #:phases
+       (modify-phases %standard-phases
+         ;; Don't run or require rubocop, the code linting tool, as this is a
+         ;; bit unnecessary.
+         (add-after 'unpack 'dont-run-rubocop
+           (lambda _
+             (substitute* "Rakefile"
+               ((".*rubocop/rake\\_task.*") "")
+               ((".*RuboCop.*") ""))
+             #t)))))
+    (propagated-inputs
+     `(("ruby-builder" ,ruby-builder)
+       ("ruby-cucumber-core" ,ruby-cucumber-core)
+       ("ruby-cucumber-wire" ,ruby-cucumber-wire)
+       ("ruby-cucumber-expressions" ,ruby-cucumber-expressions)
+       ("ruby-diff-lcs" ,ruby-diff-lcs)
+       ("ruby-gherkin" ,ruby-gherkin)
+       ("ruby-multi-json" ,ruby-multi-json)
+       ("ruby-multi-test" ,ruby-multi-test)))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ;; Use a untested version of aruba, to avoid a circular dependency, as
+       ;; ruby-aruba depends on ruby-cucumber.
+       ("ruby-aruba", ruby-aruba-without-tests)
+       ("ruby-rspec" ,ruby-rspec)
+       ("ruby-pry" ,ruby-pry)
+       ("ruby-nokogiri" ,ruby-nokogiri)))
+    (synopsis "Describe automated tests in plain language")
+    (description
+     "Cucumber is a tool for running automated tests written in plain
+language.  It's designed to support a Behaviour Driven Development (BDD)
+software development workflow.")
+    (home-page "https://cucumber.io/")
     (license license:expat)))
 
+(define ruby-cucumber-without-tests
+  (package (inherit ruby-cucumber)
+    (arguments
+     '(#:tests? #f))
+    (native-inputs
+     '())))
+
 (define-public ruby-cucumber-core
   (package
     (name "ruby-cucumber-core")
-    (version "2.0.0")
+    ;; Stick to major version 3, until version 4 of Cucumber is released.
+    (version "3.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri "cucumber-core" version))
        (sha256
         (base32
-         "136hnvqv444qyxzcgy1k60y4i6cn3sn9lbqr4wan9dzz1yzllqbm"))))
+         "1iavlh8hqj9lwljbpkw06259gdicbr1bdb6pbj5yy3n8szgr8k3c"))))
     (build-system ruby-build-system)
     (propagated-inputs
-     `(("ruby-gherkin" ,ruby-gherkin)))
+     `(("ruby-backports" ,ruby-backports)
+       ("ruby-gherkin" ,ruby-gherkin)
+       ("ruby-cucumber-tag-expressions" ,ruby-cucumber-tag-expressions)))
     (native-inputs
      `(("bundler" ,bundler)))
     (arguments
@@ -3669,6 +4871,94 @@ and trust on your team.")
     (home-page "https://cucumber.io/")
     (license license:expat)))
 
+(define-public ruby-cucumber-expressions
+  (package
+    (name "ruby-cucumber-expressions")
+    (version "6.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "cucumber-expressions" version))
+       (sha256
+        (base32
+         "0zwmv6hznyz9vk81f5dhwcr9jhxx2vmbk8yyazayvllvhy0fkpdw"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:test-target "spec"))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-rspec" ,ruby-rspec)
+       ("ruby-simplecov" ,ruby-simplecov)))
+    (synopsis "Simpler alternative to Regular Expressions")
+    (description "Cucumber Expressions offer similar functionality to Regular
+Expressions, with a syntax that is easier to read and write.  Cucumber
+Expressions are extensible with parameter types.")
+    (home-page "https://github.com/cucumber/cucumber-expressions-ruby")
+    (license license:expat)))
+
+(define-public ruby-cucumber-wire
+  (package
+    (name "ruby-cucumber-wire")
+    ;; Package version 0.0.1 initially, as this is what's needed by Cucumber
+    ;; 3, and Cucumber 4 hasn't been released yet.
+    (version "0.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "cucumber-wire" version))
+       (sha256
+        (base32
+         "09ymvqb0sbw2if1nxg8rcj33sf0va88ancq5nmp8g01dfwzwma2f"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(;; TODO: Currently, the tests can't be run as cucumber is required,
+       ;; which would lead to a circular dependency.
+       #:tests? #f
+       #:test-target "default"
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'set-CUCUMBER_USE_RELEASED_GEMS
+           (lambda _
+             (setenv "CUCUMBER_USE_RELEASED_GEMS" "true")
+             #t)))))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-rspec" ,ruby-rspec)))
+    (synopsis "Cucumber wire protocol plugin")
+    (description
+     "Cucumber's wire protocol allows step definitions to be implemented and
+invoked on any platform.")
+    (home-page "https://github.com/cucumber/cucumber-ruby-wire")
+    (license license:expat)))
+
+(define-public ruby-cucumber-tag-expressions
+  (package
+    (name "ruby-cucumber-tag-expressions")
+    (version "1.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "cucumber-tag_expressions" version))
+       (sha256
+        (base32
+         "0cvmbljybws0qzjs1l67fvr9gqr005l8jk1ni5gcsis9pfmqh3vc"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             (invoke "rspec")
+             #t)))))
+    (native-inputs
+     `(("ruby-rspec" ,ruby-rspec)))
+    (synopsis "Cucumber tag expressions for Ruby")
+    (description
+     "Cucumber tag expression parser for Ruby.  A tag expression is an infix
+boolean expression used by Cucumber.")
+    (home-page "https://github.com/cucumber/tag-expressions-ruby")
+    (license license:expat)))
+
 (define-public ruby-bio-logger
   (package
     (name "ruby-bio-logger")
@@ -4228,6 +5518,147 @@ support to both Ruby and JRuby.  It uses @code{unf_ext} on CRuby and
     (home-page "https://github.com/knu/ruby-unf")
     (license license:bsd-2)))
 
+(define-public ruby-webmock-2
+  (package
+    (name "ruby-webmock")
+    (version "2.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "webmock" version))
+       (sha256
+        (base32
+         "04hkcqsmbfnp8g237pisnc834vpgildklicbjbyikqg0bg1rwcy5"))))
+    (build-system ruby-build-system)
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-rspec" ,ruby-rspec)))
+    (propagated-inputs
+     `(("ruby-addressable" ,ruby-addressable)
+       ("ruby-crack" ,ruby-crack)
+       ("ruby-hashdiff" ,ruby-hashdiff)))
+    (synopsis "Allows stubbing and setting expectations on HTTP requests")
+    (description
+     "WebMock allows stubbing HTTP requests and setting expectations on HTTP
+requests.  This is useful when testing software.")
+    (home-page "https://github.com/bblimke/webmock")
+    (license license:expat)))
+
+(define-public ruby-unicode-display-width
+  (package
+    (name "ruby-unicode-display-width")
+    (version "1.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "unicode-display_width" version))
+       (sha256
+        (base32
+         "0bq528fibi8s0jmxz0xzlgzggdq0x4fx46wfqz49478pv8gb2diq"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(;; Test data not included.
+       #:tests? #f))
+    (synopsis "Determine the monospace display width of Ruby strings")
+    (description
+     "@code{Unicode::DisplayWidth} is a Ruby library which can determine the
+display width of strings in Ruby.")
+    (home-page "https://github.com/janlelis/unicode-display_width")
+    (license license:expat)))
+
+;; There is another gem called 'ruby-version' so we use an underscore in this
+;; name
+(define-public ruby_version
+  (package
+    (name "ruby_version")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "ruby_version" version))
+       (sha256
+        (base32
+         "0854i1bjy56176anr05l5m0vc81nl53c7fyfg7sljj62m1d64dgj"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'fix-dependencies
+           (lambda _
+             ;; Remove the Gemfile.lock, as we want to use Guix packages at
+             ;; whatever versions.
+             (delete-file "Gemfile.lock")
+             ;; Remove the incldued gem file as it's unnecessary.
+             (delete-file "pkg/ruby_version-1.0.0.gem")
+             (substitute* "ruby_version.gemspec"
+               ;; Don't require rdoc and rubygems-tasks as they're unnecessary
+               ((".*rdoc.*") "\n")
+               ((".*rubygems-tasks.*") "\n")
+               ;; Accept any version of rake and rspec
+               (("%q<rake.*") "%q<rake>)\n")
+               (("%q<rspec.*") "%q<rspec>)\n"))
+             ;; Remove the use of rubygems-tasks from the Rakefile, as it's
+             ;; unnecessary.
+             (substitute* "Rakefile"
+               (("^require 'rubygems/tasks'") "")
+               (("Gem::Tasks.new") ""))
+             #t)))))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-rspec" ,ruby-rspec)))
+    (synopsis "Ruby library to help check the Ruby version")
+    (description
+     "@code{ruby_version} provides a @code{RubyVersion} module to simplify
+checking for the right Ruby version in software.")
+    (home-page "https://github.com/janlelis/ruby_version")
+    (license license:expat)))
+
+(define-public ruby-websocket-driver
+  (package
+   (name "ruby-websocket-driver")
+   (version "0.7.0")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (rubygems-uri "websocket-driver" version))
+     (sha256
+      (base32
+       "1551k3fs3kkb3ghqfj3n5lps0ikb9pyrdnzmvgfdxy8574n4g1dn"))))
+   (build-system ruby-build-system)
+   (arguments
+    '(;; No included tests
+      #:tests? #f))
+   (propagated-inputs
+    `(("ruby-websocket-extensions" ,ruby-websocket-extensions)))
+   (synopsis "WebSocket protocol handler with pluggable I/O")
+   (description
+    "@code{websocket-driver} provides a complete implementation of the
+WebSocket protocols that can be hooked up to any TCP library")
+   (home-page "https://github.com/faye/websocket-driver-ruby")
+   (license license:expat)))
+
+(define-public ruby-websocket-extensions
+  (package
+    (name "ruby-websocket-extensions")
+    (version "0.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "websocket-extensions" version))
+       (sha256
+        (base32
+         "034sdr7fd34yag5l6y156rkbhiqgmy395m231dwhlpcswhs6d270"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(;; No included tests
+       #:tests? #f))
+    (synopsis "Generic extension manager for WebSocket connections")
+    (description
+     "@code{websocket-extensions} provides a container for registering
+extension plugins.")
+    (home-page "https://github.com/faye/websocket-extensions-ruby")
+    (license license:expat)))
+
 (define-public ruby-domain-name
   (package
     (name "ruby-domain-name")
@@ -5213,8 +6644,21 @@ programs running in the background, in Ruby.")
                 "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l"))))
     (build-system ruby-build-system)
     (arguments
-     ;; Tests require network
-     `(#:tests? #f))
+     '(#:phases
+       (modify-phases %standard-phases
+         ;; Remove the requirement on Rubocop, as it isn't useful to run, and
+         ;; including it as an input can lead to circular dependencies.
+         (add-after 'unpack 'remove-rubocop-from-Rakefile
+           (lambda _
+             (substitute* "Rakefile"
+               (("require \"rubocop/rake\\_task\"") "")
+               (("RuboCop::RakeTask\\.new") ""))
+             #t)))))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-yard" ,ruby-yard)
+       ("ruby-mocha" ,ruby-mocha)
+       ("ruby-minitest-reporters" ,ruby-minitest-reporters)))
     (home-page "https://simonecarletti.com/code/publicsuffix-ruby/")
     (synopsis "Domain name parser")
     (description "The gem @code{public_suffix} is a domain name parser,
@@ -5228,19 +6672,40 @@ all known public suffixes.")
 (define-public ruby-addressable
   (package
     (name "ruby-addressable")
-    (version "2.5.2")
+    (version "2.6.0")
     (source (origin
               (method url-fetch)
               (uri (rubygems-uri "addressable" version))
               (sha256
                (base32
-                "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk"))))
+                "0bcm2hchn897xjhqj9zzsxf3n9xhddymj4lsclz508f4vw3av46l"))))
     (build-system ruby-build-system)
+    (arguments
+     '(#:test-target "spec"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-unnecessary-dependencies-from-Gemfile
+          (lambda _
+            (substitute* "Gemfile"
+              (("git: 'https://github.com/sporkmonger/rack-mount.git',") "")
+              ((".*launchy.*") "")
+              ((".*rake.*") "gem 'rake'\n")
+              ((".*redcarpet.*") ""))
+            #t))
+         (add-before 'check 'delete-network-dependent-test
+           (lambda _
+             (delete-file "spec/addressable/net_http_compat_spec.rb")
+             #t)))))
+    (native-inputs
+     `(("ruby-rspec" ,ruby-rspec)
+       ("bundler" ,bundler)
+       ("ruby-idn-ruby" ,ruby-idn-ruby)
+       ("ruby-sporkmonger-rack-mount" ,ruby-sporkmonger-rack-mount)
+       ("ruby-rspec-its", ruby-rspec-its)
+       ("ruby-yard" ,ruby-yard)
+       ("ruby-simplecov" ,ruby-simplecov)))
     (propagated-inputs
      `(("ruby-public-suffix" ,ruby-public-suffix)))
-    (arguments
-     ;; No test target
-     `(#:tests? #f))
     (home-page "https://github.com/sporkmonger/addressable")
     (synopsis "Alternative URI implementation")
     (description "Addressable is a replacement for the URI implementation that
@@ -5509,15 +6974,58 @@ interface.  It allows Jekyll to rebuild your site when a file changes.")
 (define-public ruby-parallel
   (package
     (name "ruby-parallel")
-    (version "1.12.1")
-    (source (origin
-              (method url-fetch)
-              (uri (rubygems-uri "parallel" version))
-              (sha256
-               (base32
-                "01hj8v1qnyl5ndrs33g8ld8ibk0rbcqdpkpznr04gkbxd11pqn67"))))
+    (version "1.13.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/grosser/parallel.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1isqzbqxz2ndad4i5z3lb9ldrhaijfncj8bmffv04sq44sv87ikv"))))
     (build-system ruby-build-system)
-    (arguments `(#:tests? #f)); No rakefile
+    (arguments
+     `(;; TODO 3 test failures
+       ;; rspec ./spec/parallel_spec.rb:190 # Parallel.in_processes does not
+       ;; open unnecessary pipes
+       ;; rspec './spec/parallel_spec.rb[1:9:7]' # Parallel.each works with
+       ;; SQLite in processes
+       ;; rspec './spec/parallel_spec.rb[1:9:16]' # Parallel.each works with
+       ;; SQLite in threads
+       #:tests? #f
+       #:test-target "rspec-rerun:spec"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-Gemfile
+           (lambda _
+             (substitute* "Gemfile"
+               (("gem 'rspec-legacy_formatters'") "")
+               (("gem 'activerecord.*$") "gem 'activerecord'\n"))))
+         (add-before 'check 'delete-Gemfile.lock
+           (lambda _
+             ;; Bundler isn't being used for fetching dependendencies, so
+             ;; delete the Gemfile.lock
+             (delete-file "Gemfile.lock")
+             #t))
+         (add-before 'build 'patch-gemspec
+           (lambda _
+             (substitute* "parallel.gemspec"
+               (("git ls-files") "find"))
+             #t)))))
+    (native-inputs
+     `(("ruby-rspec" ,ruby-rspec)
+       ("ruby-rspec-rerun" ,ruby-rspec-rerun)
+       ("bundler" ,bundler)
+       ("ruby-activerecord" ,ruby-activerecord)
+       ("ruby-progressbar" ,ruby-progressbar)
+       ("ruby-bump" ,ruby-bump)
+       ("procps" ,procps)
+       ("lsof" ,lsof)
+       ("ruby-mysql2" ,ruby-mysql2)
+       ("ruby-sqlite3" ,ruby-sqlite3)
+       ("ruby-i18n" ,ruby-i18n)))
     (home-page "https://github.com/grosser/parallel")
     (synopsis "Parallel processing in Ruby")
     (description "Parallel allows you to run any code in parallel Processes
@@ -5683,9 +7191,40 @@ functionality from Prawn.")
                (base32
                 "1nxd6qmxqwl850icp18wjh5k0s3amxcajdrkjyzpfgq0kvilcv9k"))))
     (build-system ruby-build-system)
-    (arguments `(#:tests? #f)); No rakefile
     (propagated-inputs
-     `(("ruby-prawn" ,ruby-prawn)))
+     `(("ruby-prawn" ,ruby-prawn)
+       ("ruby-pdf-inspector" ,ruby-pdf-inspector)))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-yard" ,ruby-yard)
+       ("ruby-mocha" ,ruby-mocha)
+       ("ruby-coderay" ,ruby-coderay)
+       ("ruby-prawn-manual-builder" ,ruby-prawn-manual-builder)
+       ("ruby-simplecov" ,ruby-simplecov)
+       ("ruby-rspec-2" ,ruby-rspec-2)))
+    (arguments
+     '(;; TODO: 1 test fails
+       ;; Failure/Error: pdf.page_count.should == 1
+       ;;   expected: 1
+       ;;        got: 2 (using ==)
+       ;; # ./spec/table_spec.rb:1308
+       ;;
+       ;; 225 examples, 1 failure
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'patch-gemspec
+           (lambda _
+             (substitute* "prawn-table.gemspec"
+               ;; Loosen the requirement for pdf-inspector
+               (("~> 1\\.1\\.0") ">= 0")
+               ;; Loosen the requirement for pdf-reader
+               (("~> 1\\.2") ">= 0"))))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "rspec"))
+             #t)))))
     (home-page "https://github.com/prawnpdf/prawn-table")
     (synopsis "Tables support for Prawn")
     (description "This gem provides tables support for Prawn.")
@@ -5849,19 +7388,36 @@ indentation will probably be an issue and hence this gem.")
   (package
     (name "ruby-safe-yaml")
     (version "1.0.4")
-    (source (origin
-              (method url-fetch)
-              (uri (rubygems-uri "safe_yaml" version))
-              (sha256
-               (base32
-                "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094"))))
+    (source
+     (origin
+       ;; TODO Fetch from the git repository so a patch can be applied
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/dtao/safe_yaml.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1wnln8xdy8g6kwdj4amm8773xwffqxpf2sxslk6jjh2wxsy1lrig"))
+       (patches
+        (search-patches "ruby-safe-yaml-add-require-time.patch"))))
     (build-system ruby-build-system)
     (native-inputs
      `(("ruby-rspec" ,ruby-rspec)
        ("ruby-hashie" ,ruby-hashie)
        ("ruby-heredoc-unindent" ,ruby-heredoc-unindent)))
-    (arguments `(#:test-target "spec"
-                 #:tests? #f));; FIXME: one failure
+    (arguments
+     '(#:test-target "spec"
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'set-TZ
+           (lambda _
+             ;; This test is dependent on the timezone
+             ;; spec/transform/to_date_spec.rb:35
+             ;; # SafeYAML::Transform::ToDate converts times to the local
+             ;; timezone
+             (setenv "TZ" "UTC-11")
+             #t)))))
     (home-page "https://github.com/dtao/safe_yaml")
     (synopsis "YAML parser")
     (description "The SafeYAML gem provides an alternative implementation of
@@ -6006,3 +7562,124 @@ Pathname.")
     (description "The Pagination Generator forms the core of the pagination
 logic in Jekyll.  It calculates and generates the pagination pages.")
     (license license:expat)))
+
+(define-public ruby-faraday
+  (package
+    (name "ruby-faraday")
+    (version "0.15.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "faraday" version))
+       (sha256
+        (base32
+         "0s72m05jvzc1pd6cw1i289chas399q0a14xrwg4rvkdwy7bgzrh0"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(#:tests? #f))
+    (propagated-inputs
+     `(("ruby-multipart-post" ,ruby-multipart-post)))
+    (synopsis "Ruby HTTP/REST API client library")
+    (description
+     "Faraday is a HTTP/REST API client library which provides a common
+interface over different adapters.")
+    (home-page "https://github.com/lostisland/faraday")
+    (license license:expat)))
+
+(define-public ruby-nio4r
+  (package
+   (name "ruby-nio4r")
+   (version "2.3.1")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (rubygems-uri "nio4r" version))
+     (sha256
+      (base32
+       "1a41ca1kpdmrypjp9xbgvckpy8g26zxphkja9vk7j5wl4n8yvlyr"))))
+   (build-system ruby-build-system)
+   (arguments
+    '(#:phases
+      (modify-phases %standard-phases
+        (add-after 'unpack 'remove-unnecessary-dependencies
+          (lambda _
+            (substitute* "spec/spec_helper.rb"
+              ;; Coveralls is for uploading test coverage information to an
+              ;; online service, and thus unnecessary for building the Guix
+              ;; package
+              (("require \"coveralls\"") "")
+              (("Coveralls\\.wear!") "")
+              ;; Remove rspec/retry as we are not retrying the tests
+              (("require \"rspec/retry\"") "")
+              (("config\\.display_try_failure_messages = true") "")
+              (("config\\.verbose_retry = true") ""))
+            #t))
+        (add-before 'check 'compile
+          (lambda _
+            (invoke "rake" "compile")
+            #t))
+        (replace 'check
+          (lambda* (#:key tests? #:allow-other-keys)
+            (when tests?
+              (invoke "rspec"))
+            #t)))))
+   (native-inputs
+    `(("bundler" ,bundler)
+      ("ruby-rake-compiler" ,ruby-rake-compiler)
+      ("ruby-rspec" ,ruby-rspec)
+      ("ruby-rubocop" ,ruby-rubocop)))
+   (synopsis "New I/O for Ruby")
+   (description
+    "@code{nio} provides cross-platform asynchronous I/O primitives in Ruby
+for scalable network clients and servers.")
+   (home-page "https://github.com/socketry/nio4r")
+   (license license:expat)))
+
+(define-public ruby-globalid
+  (package
+   (name "ruby-globalid")
+   (version "0.4.2")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (rubygems-uri "globalid" version))
+     (sha256
+      (base32
+       "1zkxndvck72bfw235bd9nl2ii0lvs5z88q14706cmn702ww2mxv1"))))
+   (build-system ruby-build-system)
+   (arguments
+    '(;; No included tests
+      #:tests? #f))
+   (propagated-inputs
+    `(("ruby-activesupport" ,ruby-activesupport)))
+   (synopsis "Generate URIs idenfitying model instances in Ruby")
+   (description
+    "@code{GlobalID} provides a way to generate URIs from a model in Ruby that
+uniquely identify it.")
+   (home-page "https://rubyonrails.org/")
+   (license license:expat)))
+
+(define-public ruby-sprockets
+  (package
+    (name "ruby-sprockets")
+    (version "3.7.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "sprockets" version))
+       (sha256
+        (base32
+         "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay"))))
+    (build-system ruby-build-system)
+    (arguments
+     '(;; No included tests
+       #:tests? #f))
+    (propagated-inputs
+     `(("ruby-concurrent" ,ruby-concurrent)
+       ("ruby-rack" ,ruby-rack)))
+    (synopsis "Sprockets is a Rack-based asset packaging system")
+    (description
+     "Sprockets is a Rack-based asset packaging system that concatenates and
+serves JavaScript, CoffeeScript, CSS, LESS, Sass, and SCSS.")
+    (home-page "https://github.com/rails/sprockets")
+    (license license:expat)))
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index ca4d0a8a8d..6b95e20134 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -751,7 +751,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
                    (("fn thin_lto_works") "#[ignore]\nfn thin_lto_works"))
                  #t)))))))))
 
-(define-public rust
+(define-public rust-1.28
   (let ((base-rust
          (rust-bootstrapped-package rust-1.27 "1.28.0"
                                     "11k4rn77bca2rikykkk9fmprrgjswd4x4kaq7fia08vgkir82nhx"
@@ -784,3 +784,13 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
                  #t))
              ;; The thinlto test should pass with llvm 6.
              (delete 'disable-thinlto-test))))))))
+
+(define-public rust
+  (let ((base-rust
+         (rust-bootstrapped-package rust-1.28 "1.29.2"
+                                    "1jb787080z754caa2w3w1amsygs4qlzj9rs1vy64firfmabfg22h"
+                                    #:patches
+                                    '("rust-1.25-accept-more-detailed-gdb-lines.patch"
+                                      "rust-reproducible-builds.patch"))))
+    (package
+      (inherit base-rust))))
diff --git a/gnu/packages/sagemath.scm b/gnu/packages/sagemath.scm
index dd8c062d31..baa79ab1c0 100644
--- a/gnu/packages/sagemath.scm
+++ b/gnu/packages/sagemath.scm
@@ -22,39 +22,70 @@
   #:use-module (guix download)
   #:use-module (guix build-system python)
   #:use-module (gnu packages algebra)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz))
 
 
 (define-public python-cypari2
- (package
-   (name "python-cypari2")
-   (version "2.0.3")
-   (source
+  (package
+    (name "python-cypari2")
+    (version "2.0.3")
+    (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "cypari2" version))
        (sha256
-         (base32
-           "0mghbmilmy34xp1d50xdx76sijqxmpkm2bcgx2v1mdji2ff7n0yc"))))
-   (build-system python-build-system)
-   (native-inputs
+        (base32
+         "0mghbmilmy34xp1d50xdx76sijqxmpkm2bcgx2v1mdji2ff7n0yc"))))
+    (build-system python-build-system)
+    (native-inputs
      `(("python-cython" ,python-cython)))
-   (propagated-inputs
+    (propagated-inputs
      `(("python-cysignals" ,python-cysignals)))
-   (inputs
+    (inputs
      `(("gmp" ,gmp)
        ("pari-gp", pari-gp)))
-   (home-page "https://cypari2.readthedocs.io/")
-   (synopsis
+    (home-page "https://cypari2.readthedocs.io/")
+    (synopsis
      "Python interface to the number theory library libpari")
-   (description
+    (description
      "Cypari2 provides a Python interface to the number theory library
 PARI/GP.  It has been spun off from the SageMath mathematics software system,
 but it can be used independently.")
-   (license license:gpl2+)))
+    (license license:gpl2+)))
 
 (define-public python2-cypari2
   (package-with-python2 python-cypari2))
 
+;; The stable version of the following package is not young enough to be
+;; used with Sage, since it does not support cython. One would need to
+;; use an alpha release. On the other hand, Sage can be built without it.
+(define-public python-gmpy2
+  (package
+    (name "python-gmpy2")
+    (version "2.0.8")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "gmpy2" version ".zip"))
+              (sha256
+               (base32
+                "0grx6zmi99iaslm07w6c2aqpnmbkgrxcqjrqpfq223xri0r3w8yx"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("unzip" ,unzip)))
+    (inputs
+     `(("gmp" ,gmp)
+       ("mpfr" ,mpfr)
+       ("mpc" ,mpc)))
+    (home-page "https://github.com/aleaxit/gmpy")
+    (synopsis
+     "GMP/MPIR, MPFR, and MPC interface to Python 2.6+ and 3.x")
+    (description
+     "This package provides a Python interface to the GNU multiprecision
+libraries GMO, MPFR and MPC.")
+    (license license:lgpl3+)))
+
+(define-public python2-gmpy2
+  (package-with-python2 python-gmpy2))
diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm
index ee143497e5..a1522792a7 100644
--- a/gnu/packages/sdl.scm
+++ b/gnu/packages/sdl.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -351,35 +351,35 @@ directory.")
 (define-public sdl2-image
   (package (inherit sdl-image)
     (name "sdl2-image")
-    (version "2.0.3")
-    (source (origin
-              (method url-fetch)
-              (uri
-               (string-append "https://www.libsdl.org/projects/SDL_image/release/SDL2_image-"
-                              version ".tar.gz"))
-              (sha256
-               (base32
-                "0s13dmakn21q6yw8avl67d4zkxzl1wap6l5nwf6cvzrmlxfw441m"))))
+    (version "2.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://www.libsdl.org/projects/SDL_image/release/"
+                       "SDL2_image-" version ".tar.gz"))
+       (sha256
+        (base32 "1b6f7002bm007y3zpyxb5r6ag0lml51jyvx1pwpj9sq24jfc8kp7"))))
     (propagated-inputs
      (propagated-inputs-with-sdl2 sdl-image))))
 
 (define-public sdl2-mixer
   (package (inherit sdl-mixer)
     (name "sdl2-mixer")
-    (version "2.0.2")
-    (source (origin
-              (method url-fetch)
-              (uri
-               (string-append "http://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-"
-                              version ".tar.gz"))
-              (modules '((guix build utils)))
-              (snippet '(begin
-                          ;; Remove bundled libraries.
-                          (delete-file-recursively "external")
-                          #t))
-              (sha256
-               (base32
-                "1fw3kkqi5346ai5if4pxrcbhs5c4vv3a4smgz6fl6kyaxwkmwqaf"))))
+    (version "2.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "http://www.libsdl.org/projects/SDL_mixer/release/"
+                       "SDL2_mixer-" version ".tar.gz"))
+       (modules '((guix build utils)))
+       (snippet '(begin
+                   ;; Remove bundled libraries.
+                   (delete-file-recursively "external")
+                   #t))
+       (sha256
+        (base32 "0694vsz5bjkcdgfdra6x9fq8vpzrl8m6q96gh58df7065hw5mkxl"))))
     (propagated-inputs
      (propagated-inputs-with-sdl2 sdl-mixer))))
 
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index fb2526c04a..ba5bb5b4c6 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2016 Mike Gerwitz <mtg@gnu.org>
 ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
@@ -95,7 +95,7 @@ readers and is needed to communicate with such devices through the
 (define-public eid-mw
   (package
     (name "eid-mw")
-    (version "4.4.3")
+    (version "4.4.13")
     (source
      (origin
        (method git-fetch)
@@ -103,7 +103,7 @@ readers and is needed to communicate with such devices through the
              (url "https://github.com/Fedict/eid-mw")
              (commit (string-append "v" version))))
        (sha256
-        (base32 "1h90iz4l85drchpkmhlsvg7f9abhw6890fdr9x5n5ir3kxikwcdm"))))
+        (base32 "14bgn2k0xbd6241qdghg787pgxy7k9rvcspaf74zwwyibaqknzyx"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -130,7 +130,7 @@ readers and is needed to communicate with such devices through the
              ;; Patch it to just return the real version number directly.
              (substitute* "scripts/build-aux/genver.sh"
                (("/bin/sh") (which "sh"))
-               (("\\$GITDESC") ,version))
+               (("^(GITDESC=).*" match) (string-append match ,version "\n")))
              (invoke "sh" "./bootstrap.sh"))))))
     (synopsis "Belgian eID Middleware")
     (description "The Belgian eID Middleware is required to authenticate with
diff --git a/gnu/packages/simh.scm b/gnu/packages/simh.scm
index 8547b705e0..bbca246bc1 100644
--- a/gnu/packages/simh.scm
+++ b/gnu/packages/simh.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.com>
+;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,6 +21,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages admin))
 
@@ -27,14 +29,15 @@
   (package
     (name "simh")
     (version "3.9-0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/" name "/" name
-                                  "/archive/v" version ".tar.gz"))
-              (sha256
-               (base32
-                "1ymfy8j15d1aa4ai5xv9w7mk6lk4zx3zhfv0mfn66pdhrc8jlh0g"))
-              (file-name (string-append name "-" version ".tar.gz"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/simh/simh.git")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "1jiq6shj6a9xvzacvmyhxxd6xdyica8q4006qqjh5mh96rxrp15c"))
+       (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (inputs
      `(("libpcap" ,libpcap)))
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 04b49def54..e1f48db22d 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -8,7 +8,7 @@
 ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2016, 2017 Raoul Bonnal <ilpuccio.febo@gmail.com>
 ;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com>
 ;;;
@@ -150,6 +150,27 @@ simulation not wholly unlike BUGS.  JAGS was written with three aims in mind:
 @end enumerate\n")
     (license license:gpl2)))
 
+(define-public libxls
+  (package
+    (name "libxls")
+    (version "1.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/libxls/libxls/releases/download/"
+                           "v" version "/libxls-" version ".tar.gz"))
+       (sha256
+        (base32 "00j2lrcvvhclmh3z9vy7myqq1br1jnnqkz2wzgk4a1gbg8c5afn5"))))
+    (build-system gnu-build-system)
+    (home-page "https://github.com/libxls/libxls")
+    (synopsis "Read binary (.xls) Excel spreadsheet files")
+    (description
+     "libxls is a C library to read .xls spreadsheet files in the binary OLE
+BIFF8 format as created by Excel 97 and later versions.  It cannot write them.
+
+This package also provides @command{xls2csv} to export Excel files to CSV.")
+    (license license:bsd-2)))
+
 ;; Update this package together with the set of recommended packages: r-boot,
 ;; r-class, r-cluster, r-codetools, r-foreign, r-kernsmooth, r-lattice,
 ;; r-mass, r-matrix, r-mgcv, r-nlme, r-nnet, r-rpart, r-spatial, r-survival.
diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm
index 421e362cde..1aae3a8ed6 100644
--- a/gnu/packages/sync.scm
+++ b/gnu/packages/sync.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;;
@@ -48,14 +48,14 @@
 (define-public owncloud-client
   (package
     (name "owncloud-client")
-    (version "2.5.1.10973")
+    (version "2.5.3.11470")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.owncloud.com/desktop/stable/"
                            "owncloudclient-" version ".tar.xz"))
        (sha256
-        (base32 "19x4rbnqg7f7hspz1xy86b1q51q1n5y7yvq8kqc1m64n2r2s3srk"))
+        (base32 "0cznis8qadsnlgm046lxn8vmbxli6zp4b8nk93n53mkfxlcw355n"))
        (patches (search-patches "owncloud-disable-updatecheck.patch"))
        (modules '((guix build utils)))
        (snippet
@@ -79,7 +79,13 @@
              (substitute* "test/CMakeLists.txt"
                           (("owncloud_add_test\\(Utility \"\"\\)" test)
                            (string-append "#" test)))
-             #t)))
+             #t))
+         (add-after 'unpack 'dont-embed-store-path
+           (lambda _
+             (substitute* "src/common/utility_unix.cpp"
+               (("QCoreApplication::applicationFilePath\\()") "\"owncloud\""))
+             #t))
+         (delete 'patch-dot-desktop-files))
        #:configure-flags '("-DUNIT_TESTING=ON"
                            ;; build without qtwebkit, which causes the
                            ;; package to FTBFS while looking for QWebView.
@@ -162,13 +168,13 @@ their folder.
     (version "2.2.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/axkibe/lsyncd/archive/release-"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/axkibe/lsyncd.git")
+             (commit (string-append "release-" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "02g054qv8rnbxywd4f0gnd13lrlns9175d3ciqnyslhs1zs15nqb"))))
+        (base32 "1q2ixp52r96ckghgmxdbms6xrq8dbziimp8gmgzqfq4lk1v1w80y"))))
     (build-system cmake-build-system)
     (arguments
      `(;; The "tests" target is broken and assumes that tests are run in the
@@ -184,10 +190,7 @@ their folder.
                     (bin (string-append out "/bin"))
                     (man (string-append out "/share/man/man1")))
                (install-file "lsyncd" bin)
-               (install-file (string-append "../lsyncd-release-"
-                                            ,version
-                                            "/doc/manpage/lsyncd.1")
-                             man)
+               (install-file "../source/doc/manpage/lsyncd.1" man)
                #t))))))
     (native-inputs
      `(("lua" ,lua-5.2)))
@@ -249,7 +252,7 @@ over the Internet in an HTTP and CDN friendly way;
 (define-public rclone
   (package
     (name "rclone")
-    (version "1.45")
+    (version "1.46")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -258,19 +261,13 @@ over the Internet in an HTTP and CDN friendly way;
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "06xg0ibv9pnrnmabh1kblvxx1pk8h5rmkr9mjbymv497sx3zgz26"))))
+                "1fl52dl41n76r678nzkxa2kgk9khn1fxraxgk8jd3ayc787qs9ia"))))
     ;; FIXME: Rclone bundles some libraries Guix already provides.  Need to
     ;; un-bundle them.
     (build-system go-build-system)
     (arguments
      '(#:import-path "github.com/ncw/rclone"
-       #:install-source? #f
-       #:phases
-       (modify-phases %standard-phases
-         ;; Fix failure during "check" phase: "mkdir /homeless-shelter:
-         ;; permission denied".
-         (add-after 'unpack 'set-home-directory
-           (lambda _ (setenv "HOME" "/tmp") #t)))))
+       #:install-source? #f))
     (synopsis "@code{rsync} for cloud storage")
     (description "@code{Rclone} is a command line program to sync files and
 directories to and from different cloud storage providers.
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 1c38cb3834..a9c19cdf82 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2017 José Miguel Sánchez García <jmi2k@openmailbox.org>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Petter <petter@mykolab.ch>
@@ -47,6 +47,7 @@
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
@@ -308,20 +309,20 @@ multi-seat support, a replacement for @command{mingetty}, and more.")
 (define-public libtermkey
   (package
     (name "libtermkey")
-    (version "0.20")
+    (version "0.21")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://www.leonerd.org.uk/code/"
-                                  name "/" name "-" version ".tar.gz"))
+              (uri (string-append "http://www.leonerd.org.uk/code/libtermkey/"
+                                  "libtermkey-" version ".tar.gz"))
               (sha256
-               (base32 "1xfj6lchhfljmbcl6dz8dpakppyy13nbl4ykxiv5x4dr9b4qf3bc"))))
+               (base32 "0fzb5pvj139di02saffhy3ajchmksn1rs41kplkv2zjyjv7xbsvr"))))
     (build-system gnu-build-system)
     (arguments
      '(#:make-flags (list
                      "CC=gcc"
                      (string-append "PREFIX=" (assoc-ref %outputs "out")))
        #:phases (modify-phases %standard-phases
-                  (delete 'configure))
+                  (delete 'configure))  ; no configure script
        #:test-target "test"))
     (inputs `(("ncurses" ,ncurses)))
     (native-inputs `(("libtool" ,libtool)
@@ -372,36 +373,38 @@ types of devices that provide serial consoles.")
 (define-public beep
   (package
     (name "beep")
-    (version "1.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "http://www.johnath.com/" name "/"
-                                  name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0bgch6jq5cahakk3kbr9549iysf2dik09afixxy5brbxk1xfzb2r"))))
+    (version "1.4.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             ;; The original beep 1.3 at <http://www.johnath.com/beep> has been
+             ;; unmaintained for some time, and vulnerable to at least two CVEs:
+             ;; https://github.com/johnath/beep/issues/11#issuecomment-454056858
+             ;; Use this maintained fork instead.
+             (url "https://github.com/spkr-beep/beep.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1gramwa2zm59kqjhv96fi8vg7l6lyffv02h0310vb90naschi99g"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f                      ; no tests.
+     `(#:tests? #f                      ; no tests
+       #:make-flags
+       (list (string-append "prefix=" (assoc-ref %outputs "out"))
+             (string-append "pkgdocdir=$(docdir)/" ,name "-" ,version))
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)
-         (add-after 'unpack 'patch-makefile
-           (lambda* (#:key outputs #:allow-other-keys)
-             (substitute* "Makefile" (("/usr") (assoc-ref outputs "out")))
-             #t))
-         (add-before 'install 'create-output-directories
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref %outputs "out")))
-               (mkdir-p (string-append out "/bin"))
-               (mkdir-p (string-append out "/man/man1"))))))))
+         (delete 'configure))))         ; no configure script
+    (native-inputs
+     `(("gcc" ,gcc-8)))                 ; for ‘-fstack-clash-protection’
     (synopsis "Linux command-line utility to control the PC speaker")
     (description "beep allows the user to control the PC speaker with precision,
 allowing different sounds to indicate different events.  While it can be run
 quite happily on the command line, its intended place of residence is within
 scripts, notifying the user when something interesting occurs.  Of course, it
 has no notion of what's interesing, but it's very good at that notifying part.")
-    (home-page "http://www.johnath.com/beep")
+    (home-page "https://github.com/spkr-beep/beep")
     (license license:gpl2+)))
 
 (define-public unibilium
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index d2f84420c6..b0a4462227 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -341,7 +341,7 @@ as existing hashing techniques, with provably negligible risk of collisions.")
 (define-public oniguruma
   (package
     (name "oniguruma")
-    (version "6.9.0")
+    (version "6.9.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/kkos/"
@@ -349,7 +349,7 @@ as existing hashing techniques, with provably negligible risk of collisions.")
                                   "/onig-" version ".tar.gz"))
               (sha256
                (base32
-                "1jg76i2ksf3s4bz4h3g2f9ac19q31lzxs11j900w7qqc0mgb5gwi"))))
+                "04pa6dk946xbzy8wz6d2zrpjwhks6559n8zc5ngwr9a5psvzxhy7"))))
     (build-system gnu-build-system)
     (home-page "https://github.com/kkos/oniguruma")
     (synopsis "Regular expression library")
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index e9ee79e508..c10b1a5320 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -277,10 +277,10 @@ required structures.")
              (uri (list (string-append "https://www.openssl.org/source/openssl-"
                                        version ".tar.gz")
                         (string-append "ftp://ftp.openssl.org/source/"
-                                       name "-" version ".tar.gz")
+                                       "openssl-" version ".tar.gz")
                         (string-append "ftp://ftp.openssl.org/source/old/"
                                        (string-trim-right version char-set:letter)
-                                       "/" name "-" version ".tar.gz")))
+                                       "/openssl-" version ".tar.gz")))
              (sha256
               (base32
                "003xh9f898i56344vpvpxxxzmikivxig4xwlm7vbi7m8n43qxaah"))
@@ -409,10 +409,10 @@ required structures.")
              (uri (list (string-append "https://www.openssl.org/source/openssl-"
                                        version ".tar.gz")
                         (string-append "ftp://ftp.openssl.org/source/"
-                                       name "-" version ".tar.gz")
+                                       "openssl-" version ".tar.gz")
                         (string-append "ftp://ftp.openssl.org/source/old/"
                                        (string-trim-right version char-set:letter)
-                                       "/" name "-" version ".tar.gz")))
+                                       "/openssl-" version ".tar.gz")))
               (patches (search-patches "openssl-1.1-c-rehash-in.patch"))
               (sha256
                (base32
@@ -448,15 +448,7 @@ required structures.")
                                         "/share/openssl-" ,version)
 
                          (string-append "--prefix=" out)
-                         (string-append "-Wl,-rpath," lib)
-
-                         ;; XXX FIXME: Work around a code generation bug in GCC
-                         ;; 4.9.3 on ARM when compiled with -mfpu=neon.  See:
-                         ;; <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66917>
-                         ,@(if (and (not (%current-target-system))
-                                    (string-prefix? "armhf" (%current-system)))
-                               '("-mfpu=vfpv3")
-                               '())))))
+                         (string-append "-Wl,-rpath," lib)))))
 
            (delete 'move-man3-pages)
            (add-after 'install 'move-extra-documentation
diff --git a/gnu/packages/tmux.scm b/gnu/packages/tmux.scm
index d8af54ce57..e09e6c1fbe 100644
--- a/gnu/packages/tmux.scm
+++ b/gnu/packages/tmux.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
 ;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
+;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -61,21 +62,19 @@ continue running in the background, then later reattached.")
         (revision "1"))
     (package
       (name "tmux-themepack")
-      (version
-       (string-append "0.0.0-" revision "." (string-take commit 7))) ;; No version tags
+      (version (git-version "0.0.0" revision commit)) ; no version tags
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
-                      (url
-                       (string-append "https://github.com/jimeh/" name ".git"))
+                      (url "https://github.com/jimeh/tmux-themepack.git")
                       (commit commit)))
                 (sha256
                  (base32
                   "1d3k87mq5lca042jbap5kxskjy3kg79wjhhpnm6jacbn3anc67zl"))
-                (file-name (string-append name "-" version "-checkout"))))
+                (file-name (git-file-name name version))))
       (build-system gnu-build-system)
       (arguments
-       `(#:tests? #f ; No test suite.
+       `(#:tests? #f                    ; no test suite
          #:phases (modify-phases %standard-phases
                     (delete 'configure)
                     (delete 'build)
@@ -96,14 +95,14 @@ continue running in the background, then later reattached.")
     (name "tmuxifier")
     (version "0.13.0")
     (source (origin
-             (method url-fetch)
-             (uri (string-append
-                    "https://github.com/jimeh/tmuxifier/archive/v"
-                    version ".tar.gz"))
-             (file-name (string-append name "-" version ".tar.gz"))
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/jimeh/tmuxifier.git")
+                   (commit (string-append "v" version))))
+             (file-name (git-file-name name version))
              (sha256
               (base32
-               "1j9fj6zg0j3sdn7svpybzsqh7876rv81zi437976kj7hxnyjkcz7"))))
+               "1b6a1cw2mnml84k5vhbcp58kvp94xlnlpp4kwdhqw4jrzfgcjfzd"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f
diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm
index ec86d7d241..c5346e04a2 100644
--- a/gnu/packages/tor.scm
+++ b/gnu/packages/tor.scm
@@ -160,7 +160,7 @@ networks.")
 (define-public onionshare
   (package
     (name "onionshare")
-    (version "1.3.1")
+    (version "1.3.2")
     (source
       (origin
         (method git-fetch)
@@ -169,8 +169,7 @@ networks.")
               (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32
-          "02zic4cxwrcfdg22dq9c2rzni3l18wynjxd38scc59s37vlw7w2r"))))
+         (base32 "19zrz9kh7k4pdk4lh3cm0kv02ngdqkrggwma1xdskrrmp2rjkgz7"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -182,7 +181,7 @@ networks.")
                (substitute* '("setup.py" "onionshare/common.py")
                  (("sys.prefix,") (string-append "'" out "',")))
                (substitute* "setup.py"
-                 ;; for the nautilus plugin
+                 ;; For the nautilus plugin.
                  (("/usr/share/nautilus") "share/nautilus"))
                (substitute* "install/onionshare.desktop"
                  (("/usr") out))
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index b8e967bf69..5ca9471a43 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -995,14 +995,15 @@ lot easier.")
   (package
     (name "stgit")
     (version "0.18")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/ctmarinas/stgit/archive/v"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "19fk6vw3pgp2a98wpd4j3kyiyll5dy9bi4921wq1mrky0l53mj00"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ctmarinas/stgit.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0ydgg744m671nkhg7h4q2z3b9vpbc9914rbc0wcgimqfqsxkxx2y"))))
     (build-system python-build-system)
     (inputs
      `(("git" ,git)))
@@ -1012,7 +1013,7 @@ lot easier.")
        (modify-phases %standard-phases
          (replace 'check
            (lambda _
-             ;; two tests will fail -> disable them. TODO: fix the failing tests
+             ;; Two tests will fail -> disable them. TODO: fix the failing tests
              (delete-file "t/t3300-edit.sh")
              (delete-file "t/t7504-commit-msg-hook.sh")
              (invoke "make" "test"))))))
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index ece66a3745..8eb755b135 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1478,7 +1478,7 @@ other site that youtube-dl supports.")
 (define-public you-get
   (package
     (name "you-get")
-    (version "0.4.1077")
+    (version "0.4.1210")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1487,7 +1487,7 @@ other site that youtube-dl supports.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1rwkn3wb3r70b8cqj40qdknkg9kqbgzkvi901hbpy2a8s1b7858n"))))
+                "1plw518hzpzzcr38phlnsbpq7aqnps8iwrgr68f6d41rppl1qb25"))))
     (build-system python-build-system)
     (inputs
      `(("ffmpeg" ,ffmpeg)))             ; for multi-part and >=1080p videos
@@ -1517,7 +1517,7 @@ audio, images) from the Web.  It can use either mpv or vlc for playback.")
 (define-public youtube-viewer
   (package
     (name "youtube-viewer")
-    (version "3.5.0")
+    (version "3.5.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1526,7 +1526,7 @@ audio, images) from the Web.  It can use either mpv or vlc for playback.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1s7hv2a46cx2nbdykrijqfh8hdkf3zqn6q8sg3ajnnc5agaspyrg"))))
+                "0sx0f7jgc41a4anflw02zqk5yivydn02nn78kxkn3fik6xdmv3yd"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-build" ,perl-module-build)))
@@ -1634,15 +1634,15 @@ players, like VLC or MPlayer.")
 (define-public libdvdread
   (package
     (name "libdvdread")
-    (version "6.0.0")
+    (version "6.0.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.videolan.org/videolan/"
-                                  name "/" version "/"
-                                  name "-" version ".tar.bz2"))
+                                  "libdvdread/" version "/"
+                                  "libdvdread-" version ".tar.bz2"))
               (sha256
                (base32
-                "0dgr23fzcjhb7ck54xkr9zmf4jcq3ph0dz3fbyvla1c6ni9ijfxk"))))
+                "1gfmh8ii3s2fw1c8vn57piwxc0smd3va4h7xgp9s8g48cc04zki8"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--with-libdvdcss=yes")))
@@ -2039,7 +2039,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
 (define-public mlt
   (package
     (name "mlt")
-    (version "6.10.0")
+    (version "6.12.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2048,16 +2048,10 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0ki86yslr5ywa6sz8pjrgd9a4rn2rr4mss2zkmqi7pq8prgsm1fr"))
-              (modules '((guix build utils)))
-              (snippet '(begin
-                          ;; As of glibc 2.26, <xlocale.h> no longer is.
-                          (substitute* "src/framework/mlt_property.h"
-                            (("xlocale\\.h") "locale.h"))
-                          #t))))
+                "0pzm3mjbbdl2rkbswgyfkx552xlxh2qrwzsi2a4dicfr92rfgq6w"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; no tests
+     `(#:tests? #f                      ; no tests
        #:make-flags '("CC=gcc" "CXX=g++ -std=gnu++11")
        #:configure-flags
        (list "--enable-gpl3"
@@ -2065,14 +2059,14 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
        #:phases
        (modify-phases %standard-phases
          (add-after
-          'configure 'override-LDFLAGS
-          (lambda* (#:key outputs #:allow-other-keys)
-            (substitute* "config.mak"
-              (("LDFLAGS\\+=")
-               (string-append "LDFLAGS+=-Wl,-rpath="
-                              (assoc-ref outputs "out")
-                              "/lib ")))
-            #t)))))
+             'configure 'override-LDFLAGS
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "config.mak"
+               (("LDFLAGS\\+=")
+                (string-append "LDFLAGS+=-Wl,-rpath="
+                               (assoc-ref outputs "out")
+                               "/lib ")))
+             #t)))))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("ffmpeg" ,ffmpeg-3.4)
@@ -3032,7 +3026,7 @@ It counts more than 100 plugins.")
 (define-public motion
   (package
     (name "motion")
-    (version "4.2")
+    (version "4.2.2")
     (home-page "https://motion-project.github.io/")
     (source (origin
               (method git-fetch)
@@ -3041,7 +3035,7 @@ It counts more than 100 plugins.")
                     (commit (string-append "release-" version))))
               (sha256
                (base32
-                "0c0q6dl4v561m5y8bp0c0h4p3s52fjgcdnsrrf5ygdi288d3rfxv"))
+                "05c1gx75xy2hw49x6vkydvwxbr80kipsc3nr906k3hq8735svx6f"))
               (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (native-inputs
@@ -3065,7 +3059,7 @@ It counts more than 100 plugins.")
                                          (assoc-ref %outputs "out")
                                          "/etc"))
 
-       #:tests? #f))                              ;no 'check' target
+       #:tests? #f))                    ; no 'check' target
     (synopsis "Detect motion from video signals")
     (description
      "Motion is a program that monitors the video signal from one or more
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index 8da08c41b0..5e1e9b852c 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -675,7 +675,7 @@ are detected, the user is notified.")))
 (define-public neovim
   (package
     (name "neovim")
-    (version "0.3.1")
+    (version "0.3.4")
     (source
      (origin
        (method url-fetch)
@@ -684,7 +684,7 @@ are detected, the user is notified.")))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "08mdffcw4k503bccm1plq8r7hjx4w61w5jyfdj80fr079hnkjpmw"))))
+         "03mwfhr9rq86p8lypbdfyl7c7xyn6nzv2ipd8jc33bxzvs5i0hd6"))))
     (build-system cmake-build-system)
     (arguments
      `(#:modules ((srfi srfi-26)
@@ -730,7 +730,7 @@ are detected, the user is notified.")))
      `(("pkg-config" ,pkg-config)
        ("gettext" ,gettext-minimal)
        ("gperf" ,gperf)))
-    (home-page "http://neovim.io")
+    (home-page "https://neovim.io")
     (synopsis "Fork of vim focused on extensibility and agility")
     (description "Neovim is a project that seeks to aggressively
 refactor Vim in order to:
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 8a5af2e8ea..e0fd217730 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -571,7 +571,7 @@ virtualization library.")
 (define-public virt-manager
   (package
     (name "virt-manager")
-    (version "2.0.0")
+    (version "2.1.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://virt-manager.org/download/sources"
@@ -579,10 +579,10 @@ virtualization library.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1b48xbrx99mfiv80c60k3ydzkpcpbq57c8h8dl0gnffmnzbs8vzb"))))
+                "1m038kyngmxlgz91c7z8g73lb2wy0ajyah871a3g3wb5cnd0dsil"))))
     (build-system python-build-system)
     (arguments
-     `(#:use-setuptools? #f ; Uses custom distutils 'install' command.
+     `(#:use-setuptools? #f          ; uses custom distutils 'install' command
        ;; Some of the tests seem to require network access to install virtual
        ;; machines.
        #:tests? #f
@@ -602,7 +602,7 @@ virtualization library.")
              #t))
          (add-after 'unpack 'fix-default-uri
            (lambda* (#:key inputs #:allow-other-keys)
-             ;; xen is not available for now - so only patch qemu
+             ;; Xen is not available for now - so only patch qemu.
              (substitute* "virtManager/connect.py"
                (("/usr(/bin/qemu-system)" _ suffix)
                 (string-append (assoc-ref inputs "qemu") suffix)))
@@ -650,7 +650,7 @@ virtualization library.")
     (propagated-inputs
      `(("qemu" ,qemu)))
     (native-inputs
-     `(("glib" ,glib "bin")             ; glib-compile-schemas.
+     `(("glib" ,glib "bin")             ; glib-compile-schemas
        ("gtk+" ,gtk+ "bin")             ; gtk-update-icon-cache
        ("perl" ,perl)                   ; pod2man
        ("intltool" ,intltool)))
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index c9038ed8c7..a19a0dc7c3 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -144,14 +144,14 @@ features including, tables, builtin image display, bookmarks, SSL and more.")
 (define-public luakit
   (package
     (name "luakit")
-    (version "2017.08.10")
+    (version "2.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/luakit/luakit/archive/" version
                                   ".tar.gz"))
               (sha256
                (base32
-                "0dwxhnq90whakgdg21lzcf03n2g1c7hqgliwhav8av5na5mqpn93"))
+                "09kgsm2w2xa4xwylsi0bwjvdl9k6hkyjyyrq2i3l8bvi2qrs5gzc"))
               (file-name (string-append name "-" version ".tar.gz"))))
     (inputs
      `(("lua-5.1" ,lua-5.1)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index f7f8e157e5..d58eed5786 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -3517,15 +3517,14 @@ WWW::Mechanize that incorporates features for web application testing.")
 (define-public perl-test-www-mechanize-catalyst
   (package
     (name "perl-test-www-mechanize-catalyst")
-    (version "0.60")
+    (version "0.62")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
+       (uri (string-append "mirror://cpan/authors/id/M/MS/MSTROUT/"
                            "Test-WWW-Mechanize-Catalyst-" version ".tar.gz"))
        (sha256
-        (base32
-         "0nhhfrrai3ndziz873vpa1j0vljjnib4wqafd6yyvkf58ad7v0lv"))))
+        (base32 "1cdc2q16vs6fb335pzaislz2rx1ph9acaxyp7v5hv9xbwwddwfqq"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
@@ -3884,14 +3883,14 @@ a pure C99 library.")
 (define-public uwsgi
   (package
     (name "uwsgi")
-    (version "2.0.17.1")
+    (version "2.0.18")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://projects.unbit.it/downloads/uwsgi-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0xxjb9dyivq5531birvxq2gnyxf2x5q7gz54440acra6qwsq4cfj"))))
+                "10zmk4npknigmbqcq1wmhd461dk93159px172112vyq0i19sqwj9"))))
     (build-system gnu-build-system)
     (outputs '("out" "python"))
     (arguments
@@ -4959,7 +4958,7 @@ functions of Tidy.")
 (define-public hiawatha
   (package
     (name "hiawatha")
-    (version "10.8.3")
+    (version "10.9")
     (source
      (origin
        (method url-fetch)
@@ -4969,11 +4968,10 @@ functions of Tidy.")
        (snippet '(begin
                    ;; We use packaged libraries, so delete the bundled copies.
                    (for-each delete-file-recursively
-                             (list "nghttp2" "mbedtls"))
+                             (list "extra/nghttp2.tgz" "mbedtls"))
                    #t))
        (sha256
-        (base32
-         "0w7047pwijhsbvvv1qjynp7gvn0nil56w82f7ax0gabrg7ddzk6s"))))
+        (base32 "1f2j2x1ziawz8ijg3s3izqpyzpiwfyhlsvbv0szxvhvj4a0l7pbl"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; no tests included
diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 9881386583..67da5b455e 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -310,7 +310,7 @@ integrate Windows applications into your desktop.")
 (define-public wine-staging-patchset-data
   (package
     (name "wine-staging-patchset-data")
-    (version "4.1")
+    (version "4.2")
     (source
      (origin
        (method git-fetch)
@@ -320,7 +320,7 @@ integrate Windows applications into your desktop.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1jp5s4k3cwiw6jy8lih25n0c7nyrddr6dm7vlyfdfrl2gkah94z0"))))
+         "1dhv6y60g64bj3kgfknbfzxfzmy686dh7svxlvi4lfis2faikxmk"))))
     (build-system trivial-build-system)
     (native-inputs
      `(("bash" ,bash)
@@ -366,7 +366,7 @@ integrate Windows applications into your desktop.")
               (file-name (string-append name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1b8vwid8wsy1ss2q27bqkd9sdl67qqh0kmazi87vspi40nz7bxyf"))))
+                "1ysvq2jyvh7r27iwpsrlrwzj672jnrihry91bx3m3fysz3sl3ld1"))))
     (inputs `(("autoconf" ,autoconf) ; for autoreconf
               ("ffmpeg" ,ffmpeg)
               ("gtk+" ,gtk+)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index f1f3c25391..554a14154c 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -15,7 +15,7 @@
 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; 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>
 ;;;
@@ -190,17 +190,12 @@ commands would.")
                 "0xl56y196vxv001gvx35xwfr25zah8m3xwizp9ycdgdc0rfc4rdb"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:make-flags
-       (list "CC=gcc"
-             (string-append "PREFIX=" %output)
-             ;; This works around the following error:
-             ;; 'error: ‘for’ loop initial declarations are only allowed in C99
-             ;; or C11 mode'
-             "CFLAGS=-std=c11")
+     `(#:configure-flags
        ;; The build system tries to build in a separate directory, but that
        ;; seems to be unnecessary.
-       #:configure-flags '("--disable-builddir")
-       ;; The test suite appears to require the unpackaged Perl module AnyEvent.
+       (list "--disable-builddir")
+
+       ;; The test suite requires the unpackaged Xephyr X server.
        #:tests? #f))
     (inputs
      `(("libxcb" ,libxcb)
@@ -228,10 +223,16 @@ commands would.")
        ("libxml2" ,libxml2)
        ("docbook-xsl" ,docbook-xsl)))
     (home-page "https://i3wm.org/")
-    (synopsis "Improved tiling window manager")
-    (description "A tiling window manager, completely written
-from scratch.  i3 is primarily targeted at advanced users and
-developers.")
+    (synopsis "Tiling window manager")
+    (description "i3 is a tiling X11 window manager that dynamically manages
+tiled, stacked, and tabbed window layouts.
+
+i3 primarily targets advanced users.  Windows are managed manually and organised
+inside containers, which can be split vertically or horizontally, and optionally
+resized.
+
+i3 uses a plain-text configuration file, and can be extended and controlled from
+many programming languages.")
     (license license:bsd-3)))
 
 (define-public i3blocks
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index ce8f6b522e..9588f39f80 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -18,7 +18,7 @@
 ;;; Copyright © 2016 Petter <petter@mykolab.ch>
 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
 ;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Marek Benc <dusxmt@gmx.com>
 ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
 ;;; Copyright © 2018 Thomas Sigurdsen <tonton@riseup.net>
@@ -455,39 +455,24 @@ move windows, switch between desktops, etc.).")
 (define-public scrot
   (package
     (name "scrot")
-    (version "0.8")
-    (source (origin
-              (method url-fetch)
-              (uri (list (string-append
-                           "http://linuxbrit.co.uk/downloads/scrot-"
-                           version ".tar.gz")
-                         (string-append
-                           "https://fossies.org/linux/privat/old/scrot-"
-                           version ".tar.gz")))
-              (sha256
-               (base32
-                "1wll744rhb49lvr2zs6m93rdmiq59zm344jzqvijrdn24ksiqgb1"))))
+    (version "0.9")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/resurrecting-open-source-projects/scrot.git")
+         (commit version)))
+       (sha256
+        (base32 "1dg0pnmk09p7zlbyxv7d40vf54amrv73y976ds5p7096x6lmlndy"))))
     (build-system gnu-build-system)
-    (arguments
-     ;; By default, man and doc are put in PREFIX/{man,doc} instead of
-     ;; PREFIX/share/{man,doc}.
-     '(#:configure-flags
-       (list (string-append "--mandir="
-                            (assoc-ref %outputs "out")
-                            "/share/man"))
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'install
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (doc (string-append out "/share/doc/scrot")))
-               (mkdir-p doc)
-               (invoke "make" "install"
-                       (string-append "docsdir=" doc))))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)))
     (inputs
-     `(("libx11" ,libx11)
-       ("giblib" ,giblib)))
-    (home-page "http://linuxbrit.co.uk/software/")
+     `(("giblib" ,giblib)
+       ("libx11" ,libx11)))
+    (home-page "https://github.com/resurrecting-open-source-projects/scrot")
     (synopsis "Command-line screen capture utility for X Window System")
     (description
      "Scrot allows to save a screenshot of a full screen, a window or a part
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 52f1533699..c80dfb1eac 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -404,7 +404,7 @@ combination with @code{XML::Parser}, PerlSAX, @code{XML::DOM},
 (define-public perl-xml-libxml
   (package
     (name "perl-xml-libxml")
-    (version "2.0132")
+    (version "2.0134")
     (source
      (origin
        (method url-fetch)
@@ -412,7 +412,7 @@ combination with @code{XML::Parser}, PerlSAX, @code{XML::DOM},
                            "XML-LibXML-" version ".tar.gz"))
        (sha256
         (base32
-         "0xnl281hb590i287fxpl947f1s4zl9dnvc4ajvsqi89w23im453j"))))
+         "1ks69xymv6zkj7hvaymjvb78ch81abri7kg4zrwxhdfsqb8a9g7h"))))
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
@@ -1254,38 +1254,6 @@ files.  It is designed to be fast and to handle large input files.")
 (define-public python2-defusedxml
   (package-with-python2 python-defusedxml))
 
-(define-public libxls
-  (package
-    (name "libxls")
-    (version "1.4.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://sourceforge.net/projects/"
-                                  name "/files/" name "-"
-                                  version ".zip"))
-              (sha256
-               (base32
-                "1g8ds7wbhsa4hdcn77xc2c0l3vvz5bx2hx9ng9c9n7aii92ymfnk"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         ;; Bootstrapping is required in order to fix the test driver script.
-         (replace 'bootstrap
-           (lambda _
-             (invoke "bash" "bootstrap"))))))
-    (native-inputs
-     `(("unzip" ,unzip)
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
-    (home-page "http://libxls.sourceforge.net/")
-    (synopsis "Read Excel files")
-    (description
-     "libxls is a C library which can read Excel (xls) files since Excel 97 (the BIFF8 format).
-libxls cannot write Excel files.")
-    (license license:bsd-2)))
-
 (define-public freexl
   (package
     (name "freexl")
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index e99d1850cc..b286048b10 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -2083,17 +2083,14 @@ legacy X clients.")
 (define-public xcalc
   (package
     (name "xcalc")
-    (version "1.0.6")
+    (version "1.0.7")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "mirror://xorg/individual/app/" name "-"
-             version
-             ".tar.gz"))
+       (uri (string-append "mirror://xorg/individual/app/"
+                           "xcalc-" version ".tar.gz"))
        (sha256
-        (base32
-         "1lg8xwj0nr8anbd77n3cs87s57sr4gmb3pxs3k22a28n6ndcvmbz"))))
+        (base32 "1xgih1iq9498m7vk22qrdsck1rb905sn395azjn4a6pmhfai401b"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -2204,7 +2201,7 @@ X11 Inter-Client Communication Conventions Manual (ICCCM).")
 (define-public xcursor-themes
   (package
     (name "xcursor-themes")
-    (version "1.0.5")
+    (version "1.0.6")
     (source
       (origin
         (method url-fetch)
@@ -2214,7 +2211,7 @@ X11 Inter-Client Communication Conventions Manual (ICCCM).")
                ".tar.bz2"))
         (sha256
           (base32
-            "0whjiq6d5z4z75zh37pji6llfcyrg6q3mg9zx5zqyncnj39q30xf"))))
+            "16a96li0s0ggg60v7f6ywxmsrmxdfizcw55ccv7sp4qjfisca7pf"))))
     (build-system gnu-build-system)
     (inputs
       `(("libxcursor" ,libxcursor)
@@ -2331,7 +2328,7 @@ DRI (Direct Rendering Infrastructure) drivers.")
 (define-public xev
   (package
     (name "xev")
-    (version "1.2.2")
+    (version "1.2.3")
     (source
       (origin
         (method url-fetch)
@@ -2341,7 +2338,7 @@ DRI (Direct Rendering Infrastructure) drivers.")
                ".tar.bz2"))
         (sha256
           (base32
-            "0krivhrxpq6719103r541xpi3i3a0y15f7ypc4lnrx8sdhmfcjnr"))))
+            "02ddsdx138g7szhwklpbzi0cxr34871iay3k28kdcihrz8f4zg36"))))
     (build-system gnu-build-system)
     (inputs
       `(("libxrender" ,libxrender)
@@ -2350,7 +2347,7 @@ DRI (Direct Rendering Infrastructure) drivers.")
         ("libx11" ,libx11)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "https://www.x.org/wiki/")
+    (home-page "https://gitlab.freedesktop.org/xorg/app/xev")
     (synopsis "Print contents of X events")
     (description
      "XEv creates a window and then asks the X server to send it X11
@@ -2452,7 +2449,7 @@ including most mice, keyboards, tablets and touchscreens.")
 (define-public xf86-input-libinput
   (package
     (name "xf86-input-libinput")
-    (version "0.28.1")
+    (version "0.28.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2460,7 +2457,7 @@ including most mice, keyboards, tablets and touchscreens.")
                     name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "12yr0yki94j2416bfhmkz5jpacffm27jkra89fl7h03c0y749nls"))))
+                "0818vr0yhk9j1y1wcbxzcd458vrvp06rrhi8k43bhqkb5jb4dcxq"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
@@ -2908,7 +2905,7 @@ X server.")
 (define-public xf86-video-i128
   (package
     (name "xf86-video-i128")
-    (version "1.3.6")
+    (version "1.4.0")
     (source
       (origin
         (method url-fetch)
@@ -2918,8 +2915,7 @@ X server.")
                ".tar.bz2"))
         (sha256
           (base32
-           "171b8lbxr56w3isph947dnw7x87hc46v6m3mcxdcz44gk167x0pq"))
-        (patches (search-patches "xf86-video-i128-remove-mibstore.patch"))))
+           "1snhpv1igrhifcls3r498kjd14ml6x2xvih7zk9xlsd1ymmhlb4g"))))
     (build-system gnu-build-system)
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
@@ -2932,8 +2928,8 @@ X server.")
 
 
 (define-public xf86-video-intel
-  (let ((commit "0932a6b37ba6d5c9e916a1cb6ab89c3205b81a0c")
-        (revision "11"))
+  (let ((commit "33ee0c3b21ea279e08d0863fcb2e874f0974b00e")
+        (revision "12"))
     (package
       (name "xf86-video-intel")
       (version (git-version "2.99.917" revision commit))
@@ -2946,7 +2942,7 @@ X server.")
                (commit commit)))
          (sha256
           (base32
-           "10pqxp7n53ddiypd3l1i9gkbgzdpi6rz9vksbd16biq7pbijc2xf"))
+           "1ryjaj52nd2fbrjf1id5fr5vndzvv287rggbj3lzhbwzxv52r0gj"))
          (file-name (git-file-name name version))))
       (build-system gnu-build-system)
       (inputs `(("mesa" ,mesa)
@@ -3015,7 +3011,7 @@ the same level of support for generic VGA or 8514/A adapters.")
 (define-public xf86-video-mga
   (package
     (name "xf86-video-mga")
-    (version "1.6.5")
+    (version "2.0.0")
     (source
       (origin
         (method url-fetch)
@@ -3025,7 +3021,7 @@ the same level of support for generic VGA or 8514/A adapters.")
                ".tar.bz2"))
         (sha256
           (base32
-           "08ll52hlar9z446v0wwca5qkj3hxhswwm7vvcgic9xv4cf7csqxn"))))
+           "0yaxpgyyj9398nzzr5vnsfxcis76z46p9814yzj8179yl7hld296"))))
     (build-system gnu-build-system)
     (inputs `(("mesa" ,mesa)
               ("xorgproto" ,xorgproto)
@@ -3040,7 +3036,7 @@ the same level of support for generic VGA or 8514/A adapters.")
 (define-public xf86-video-neomagic
   (package
     (name "xf86-video-neomagic")
-    (version "1.2.9")
+    (version "1.3.0")
     (source
       (origin
         (method url-fetch)
@@ -3050,7 +3046,7 @@ the same level of support for generic VGA or 8514/A adapters.")
                ".tar.bz2"))
         (sha256
           (base32
-            "1whb2kgyqaxdjim27ya404acz50izgmafwnb6y9m89q5n6b97y3j"))))
+            "0r4h673kw8fl7afc30anwbjlbhp82mg15fvaxf470xg7z983k0wk"))))
     (build-system gnu-build-system)
     (inputs `(("xorgproto" ,xorgproto)
               ("xorg-server" ,xorg-server)))
@@ -3119,7 +3115,7 @@ supported, and the RENDER extension is not accelerated by this driver.")
 (define-public xf86-video-nouveau
   (package
     (name "xf86-video-nouveau")
-    (version "1.0.15")
+    (version "1.0.16")
     (source
      (origin
        (method url-fetch)
@@ -3129,7 +3125,7 @@ supported, and the RENDER extension is not accelerated by this driver.")
              ".tar.bz2"))
        (sha256
         (base32
-         "0k0xah72ryjwak4dc4crszxrlkmi9x1s7p3sd4la642n77yi1pmf"))))
+         "01mz8gnq7j6bvrqb2ljm3d1wpjhi9p2z2w8zbkdrqmqmcj060h1h"))))
     (build-system gnu-build-system)
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
@@ -3355,7 +3351,7 @@ This driver supports SiS chipsets of 300/315/330/340 series.")
 (define-public xf86-video-tdfx
   (package
     (name "xf86-video-tdfx")
-    (version "1.4.7")
+    (version "1.5.0")
     (source
       (origin
         (method url-fetch)
@@ -3365,7 +3361,7 @@ This driver supports SiS chipsets of 300/315/330/340 series.")
                ".tar.bz2"))
         (sha256
           (base32
-           "0hia45z4jc472fxp00803nznizcn4h1ybp63jcsb4lmd9vhqxx2c"))))
+           "0qc5wzwf1n65si9rc37bh224pzahh7gp67vfimbxs0b9yvhq0i9g"))))
     (build-system gnu-build-system)
     (inputs `(("mesa" ,mesa)
               ("xorgproto" ,xorgproto)
@@ -3652,7 +3648,7 @@ monitor via the X video mode extension.")
 (define-public xhost
   (package
     (name "xhost")
-    (version "1.0.7")
+    (version "1.0.8")
     (source
       (origin
         (method url-fetch)
@@ -3662,7 +3658,7 @@ monitor via the X video mode extension.")
                ".tar.bz2"))
         (sha256
           (base32
-            "16n26xw6l01zq31d4qvsaz50misvizhn7iihzdn5f7s72pp1krlk"))))
+            "15n3mnd4i5kh4z32qv11580qjgvnng0wry2y753ljrqkkrbkrp52"))))
     (build-system gnu-build-system)
     (inputs
       `(("libxmu" ,libxmu)
@@ -3670,7 +3666,7 @@ monitor via the X video mode extension.")
         ("libx11" ,libx11)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "https://www.x.org/wiki/")
+    (home-page "https://gitlab.freedesktop.org/xorg/app/xhost")
     (synopsis "Xorg server access control utility")
     (description
      "XHost is used to manage the list of host names or user names
@@ -3917,7 +3913,7 @@ programs that have displayed undesired windows on a user's screen.")
 (define-public xlsatoms
   (package
     (name "xlsatoms")
-    (version "1.1.2")
+    (version "1.1.3")
     (source
       (origin
         (method url-fetch)
@@ -3927,13 +3923,13 @@ programs that have displayed undesired windows on a user's screen.")
                ".tar.bz2"))
         (sha256
           (base32
-            "196yjik910xsr7dwy8daa0amr0r22ynfs360z0ndp9mx7mydrra7"))))
+            "10m3a046jvaw5ywx4y65kl84lsxqan70gww1g1r7cf96ijaqz1jp"))))
     (build-system gnu-build-system)
     (inputs
       `(("libxcb" ,libxcb)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "https://www.x.org/wiki/")
+    (home-page "https://gitlab.freedesktop.org/xorg/app/xlsatoms")
     (synopsis "List interned X server atoms")
     (description
      "XLsAtoms is used to list the interned atoms defined on X server.")
@@ -4065,7 +4061,7 @@ containing one glyph per cell.")
 (define-public xmodmap
   (package
     (name "xmodmap")
-    (version "1.0.9")
+    (version "1.0.10")
     (source
       (origin
         (method url-fetch)
@@ -4075,15 +4071,14 @@ containing one glyph per cell.")
                ".tar.bz2"))
         (sha256
           (base32
-            "0y649an3jqfq9klkp9y5gj20xb78fw6g193f5mnzpl0hbz6fbc5p"))
-        (patches (search-patches "xmodmap-asprintf.patch"))))
+            "0z28331i2pm16x671fa9qwsfqdmr6a43bzwmp0dm17a3sx0hjgs7"))))
     (build-system gnu-build-system)
     (inputs
       `(("xorgproto" ,xorgproto)
         ("libx11" ,libx11)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "https://www.x.org/wiki/")
+    (home-page "https://gitlab.freedesktop.org/xorg/app/xmodmap")
     (synopsis "Modify keymaps and button mappings on X server")
     (description
      "Xmodmap is used to display and edit the keyboard modifier map and
@@ -4215,7 +4210,7 @@ and Reflect (RandR) extension.")
 (define-public xrdb
   (package
     (name "xrdb")
-    (version "1.1.1")
+    (version "1.2.0")
     (source
       (origin
         (method url-fetch)
@@ -4225,14 +4220,14 @@ and Reflect (RandR) extension.")
                ".tar.bz2"))
         (sha256
           (base32
-            "1dqp486nd5sagbg572kl0k839nwvpqnb7jvppyb7jj5vrpkss8rd"))))
+            "0ik9gh6363c47pr0dp7q22nfs8vmavjg2v4bsr0604ppl77nafpj"))))
     (build-system gnu-build-system)
     (inputs
       `(("libxmu" ,libxmu)
         ("libx11" ,libx11)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "https://www.x.org/wiki/")
+    (home-page "https://gitlab.freedesktop.org/xorg/app/xrdb")
     (synopsis "X server resource database utility")
     (description
      "XRDB is used to get or set the contents of the RESOURCE_MANAGER
@@ -4358,7 +4353,7 @@ libICE, the X font server, and related components.")
 (define-public xvinfo
   (package
     (name "xvinfo")
-    (version "1.1.3")
+    (version "1.1.4")
     (source
       (origin
         (method url-fetch)
@@ -4368,7 +4363,7 @@ libICE, the X font server, and related components.")
                ".tar.bz2"))
         (sha256
           (base32
-            "1sz5wqhxd1fqsfi1w5advdlwzkizf2fgl12hdpk66f7mv9l8pflz"))))
+            "0gz7fvxavqlrqynpfbrm2nc9yx8h0ksnbnv34fj7n1q6cq6j4lq3"))))
     (build-system gnu-build-system)
     (inputs
       `(("libxext" ,libxext)
@@ -4376,7 +4371,7 @@ libICE, the X font server, and related components.")
         ("libx11" ,libx11)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "https://www.x.org/wiki/")
+    (home-page "https://gitlab.freedesktop.org/xorg/app/xvinfo")
     (synopsis "Print out X-Video extension adaptor information")
     (description
      "XVInfo is used to print out the capabilities of any video adaptors
@@ -5728,14 +5723,14 @@ Intrinsics (Xt) Library.")
 (define-public xclock
   (package
     (name "xclock")
-    (version "1.0.7")
+    (version "1.0.8")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.x.org/releases/individual/app/"
                            name "-" version ".tar.bz2"))
        (sha256
-        (base32 "1l3xv4bsca6bwxx73jyjz0blav86i7vwffkhdb1ac81y9slyrki3"))))
+        (base32 "0m92zhamh15my9f2rqa14q41d6k2cn468azm3g7g3w9n7942024k"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -5750,7 +5745,7 @@ Intrinsics (Xt) Library.")
        ("libxkbfile" ,libxkbfile)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "https://www.x.org/")
+    (home-page "https://gitlab.freedesktop.org/xorg/app/xclock")
     (synopsis "Analog / digital clock for X")
     (description "The xclock program displays the time in analog or digital
 form.")
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index a93fa3c356..ce63969dc8 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
 ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017, 2019 Christopher Baines <mail@cbaines.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -50,6 +51,7 @@
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages mate)
   #:use-module (gnu packages enlightenment)
+  #:use-module (guix deprecation)
   #:use-module (guix records)
   #:use-module (guix packages)
   #:use-module (guix store)
@@ -57,8 +59,22 @@
   #:use-module (guix gexp)
   #:use-module (srfi srfi-1)
   #:use-module (ice-9 match)
-  #:export (upower-configuration
+  #:export (<upower-configuration>
+            upower-configuration
             upower-configuration?
+            upower-configuration-upower
+            upower-configuration-watts-up-pro?
+            upower-configuration-poll-batteries?
+            upower-configuration-ignore-lid?
+            upower-configuration-use-percentage-for-policy?
+            upower-configuration-percentage-low
+            upower-configuration-percentage-critical
+            upower-configuration-percentage-action
+            upower-configuration-time-low
+            upower-configuration-time-critical
+            upower-configuration-time-action
+            upower-configuration-critical-power-action
+
             upower-service
             upower-service-type
 
@@ -174,23 +190,33 @@ is set to @var{value} when the bus daemon launches it."
 ;;; Upower D-Bus service.
 ;;;
 
-;; TODO: Export.
 (define-record-type* <upower-configuration>
   upower-configuration make-upower-configuration
   upower-configuration?
-  (upower        upower-configuration-upower
-                 (default upower))
-  (watts-up-pro? upower-configuration-watts-up-pro?)
-  (poll-batteries? upower-configuration-poll-batteries?)
-  (ignore-lid? upower-configuration-ignore-lid?)
-  (use-percentage-for-policy? upower-configuration-use-percentage-for-policy?)
-  (percentage-low upower-configuration-percentage-low)
-  (percentage-critical upower-configuration-percentage-critical)
-  (percentage-action upower-configuration-percentage-action)
-  (time-low upower-configuration-time-low)
-  (time-critical upower-configuration-time-critical)
-  (time-action upower-configuration-time-action)
-  (critical-power-action upower-configuration-critical-power-action))
+  (upower                     upower-configuration-upower
+                              (default upower))
+  (watts-up-pro?              upower-configuration-watts-up-pro?
+                              (default #f))
+  (poll-batteries?            upower-configuration-poll-batteries?
+                              (default #t))
+  (ignore-lid?                upower-configuration-ignore-lid?
+                              (default #f))
+  (use-percentage-for-policy? upower-configuration-use-percentage-for-policy?
+                              (default #f))
+  (percentage-low             upower-configuration-percentage-low
+                              (default 10))
+  (percentage-critical        upower-configuration-percentage-critical
+                              (default 3))
+  (percentage-action          upower-configuration-percentage-action
+                              (default 2))
+  (time-low                   upower-configuration-time-low
+                              (default 1200))
+  (time-critical              upower-configuration-time-critical
+                              (default 300))
+  (time-action                upower-configuration-time-action
+                              (default 120))
+  (critical-power-action      upower-configuration-critical-power-action
+                              (default 'hybrid-sleep)))
 
 (define* upower-configuration-file
   ;; Return an upower-daemon configuration file.
@@ -248,6 +274,11 @@ is set to @var{value} when the bus daemon launches it."
 (define upower-service-type
   (let ((upower-package (compose list upower-configuration-upower)))
     (service-type (name 'upower)
+                  (description
+                   "Run @command{upowerd}}, a system-wide monitor for power
+consumption and battery levels, with the given configuration settings.  It
+implements the @code{org.freedesktop.UPower} D-Bus interface, and is notably
+used by GNOME.")
                   (extensions
                    (list (service-extension dbus-root-service-type
                                             upower-dbus-service)
@@ -260,20 +291,21 @@ is set to @var{value} when the bus daemon launches it."
 
                          ;; Make the 'upower' command visible.
                          (service-extension profile-service-type
-                                            upower-package))))))
-
-(define* (upower-service #:key (upower upower)
-                         (watts-up-pro? #f)
-                         (poll-batteries? #t)
-                         (ignore-lid? #f)
-                         (use-percentage-for-policy? #f)
-                         (percentage-low 10)
-                         (percentage-critical 3)
-                         (percentage-action 2)
-                         (time-low 1200)
-                         (time-critical 300)
-                         (time-action 120)
-                         (critical-power-action 'hybrid-sleep))
+                                            upower-package)))
+                  (default-value (upower-configuration)))))
+
+(define-deprecated (upower-service #:key (upower upower)
+                                   (watts-up-pro? #f)
+                                   (poll-batteries? #t)
+                                   (ignore-lid? #f)
+                                   (use-percentage-for-policy? #f)
+                                   (percentage-low 10)
+                                   (percentage-critical 3)
+                                   (percentage-action 2)
+                                   (time-low 1200)
+                                   (time-critical 300)
+                                   (time-action 120)
+                                   (critical-power-action 'hybrid-sleep))
   "Return a service that runs @uref{http://upower.freedesktop.org/,
 @command{upowerd}}, a system-wide monitor for power consumption and battery
 levels, with the given configuration settings.  It implements the
@@ -1004,7 +1036,7 @@ as expected.")))
          (service wpa-supplicant-service-type)    ;needed by NetworkManager
          (service avahi-service-type)
          (udisks-service)
-         (upower-service)
+         (service upower-service-type)
          (accountsservice-service)
          (service cups-pk-helper-service-type)
          (colord-service)
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 1efb275794..f2a3c28c90 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -2,7 +2,8 @@
 ;;; Copyright © 2017 Andy Wingo <wingo@igalia.com>
 ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
-;;; Copyright © 2018 Timothy Sample <samplet@ngyro.com>
+;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
+;;; Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,7 +29,9 @@
   #:use-module ((gnu packages base) #:select (canonical-package))
   #:use-module (gnu packages guile)
   #:use-module (gnu packages xorg)
+  #:use-module (gnu packages fonts)
   #:use-module (gnu packages gl)
+  #:use-module (gnu packages glib)
   #:use-module (gnu packages display-managers)
   #:use-module (gnu packages gnustep)
   #:use-module (gnu packages gnome)
@@ -290,7 +293,8 @@ in place of @code{/usr/bin/X}."
                              (configuration-file
                               (xorg-configuration-file #:modules modules
                                                        #:fonts fonts))
-                             (xorg-server xorg-server))
+                             (xorg-server xorg-server)
+                             (xserver-arguments '("-nolisten" "tcp")))
   "Return a @code{startx} script in which @var{modules}, a list of X module
 packages, and @var{fonts}, a list of X font directories, are available.  See
 @code{xorg-wrapper} for more details on the arguments.  The result should be
@@ -303,8 +307,8 @@ used in place of @code{startx}."
   (define exp
     ;; Write a small wrapper around the X server.
     #~(apply execl #$X #$X ;; Second #$X is for argv[0].
-             "-logverbose" "-verbose" "-nolisten" "tcp" "-terminate"
-             (cdr (command-line))))
+             "-logverbose" "-verbose" "-terminate" #$@xserver-arguments
+              (cdr (command-line))))
 
   (program-file "startx" exp))
 
@@ -623,48 +627,59 @@ makes the good ol' XlockMore usable."
          (home-directory "/var/lib/gdm")
          (shell (file-append shadow "/sbin/nologin")))))
 
+(define dbus-daemon-wrapper
+  (program-file "gdm-dbus-wrapper"
+                #~(begin
+                    (setenv "XDG_CONFIG_DIRS"
+                            "/run/current-system/profile/etc/xdg")
+                    (setenv "XDG_DATA_DIRS"
+                            "/run/current-system/profile/share")
+                    (apply execl (string-append #$dbus "/bin/dbus-daemon")
+                           (program-arguments)))))
+
 (define-record-type* <gdm-configuration>
   gdm-configuration make-gdm-configuration
   gdm-configuration?
   (gdm gdm-configuration-gdm (default gdm))
   (allow-empty-passwords? gdm-configuration-allow-empty-passwords? (default #t))
   (auto-login? gdm-configuration-auto-login? (default #f))
+  (dbus-daemon gdm-configuration-dbus-daemon (default dbus-daemon-wrapper))
   (default-user gdm-configuration-default-user (default #f))
+  (gnome-shell-assets gdm-configuration-gnome-shell-assets
+                      (default (list adwaita-icon-theme font-cantarell)))
   (x-server gdm-configuration-x-server
-            (default (xorg-wrapper))))
-
-(define (gdm-etc-service config)
-  (define gdm-configuration-file
-    (mixed-text-file "gdm-custom.conf"
-                     "[daemon]\n"
-                     "#User=gdm\n"
-                     "#Group=gdm\n"
-                     (if (gdm-configuration-auto-login? config)
-                         (string-append
-                          "AutomaticLoginEnable=true\n"
-                          "AutomaticLogin="
-                          (or (gdm-configuration-default-user config)
-                              (error "missing default user for auto-login"))
-                          "\n")
-                         (string-append
-                          "AutomaticLoginEnable=false\n"
-                          "#AutomaticLogin=\n"))
-                     "#TimedLoginEnable=false\n"
-                     "#TimedLogin=\n"
-                     "#TimedLoginDelay=0\n"
-                     "#InitialSetupEnable=true\n"
-                     ;; Enable me once X is working.
-                     "WaylandEnable=false\n"
-                     "\n"
-                     "[debug]\n"
-                     "#Enable=true\n"
-                     "\n"
-                     "[security]\n"
-                     "#DisallowTCP=true\n"
-                     "#AllowRemoteAutoLogin=false\n"))
-  `(("gdm" ,(file-union
-             "gdm"
-             `(("custom.conf" ,gdm-configuration-file))))))
+            (default (xorg-wrapper)))
+  (x-session gdm-configuration-x-session
+             (default (xinitrc))))
+
+(define (gdm-configuration-file config)
+  (mixed-text-file "gdm-custom.conf"
+                   "[daemon]\n"
+                   "#User=gdm\n"
+                   "#Group=gdm\n"
+                   (if (gdm-configuration-auto-login? config)
+                       (string-append
+                        "AutomaticLoginEnable=true\n"
+                        "AutomaticLogin="
+                        (or (gdm-configuration-default-user config)
+                            (error "missing default user for auto-login"))
+                        "\n")
+                       (string-append
+                        "AutomaticLoginEnable=false\n"
+                        "#AutomaticLogin=\n"))
+                   "#TimedLoginEnable=false\n"
+                   "#TimedLogin=\n"
+                   "#TimedLoginDelay=0\n"
+                   "#InitialSetupEnable=true\n"
+                   ;; Enable me once X is working.
+                   "WaylandEnable=false\n"
+                   "\n"
+                   "[debug]\n"
+                   "#Enable=true\n"
+                   "\n"
+                   "[security]\n"
+                   "#DisallowTCP=true\n"
+                   "#AllowRemoteAutoLogin=false\n"))
 
 (define (gdm-pam-service config)
   "Return a PAM service for @command{gdm}."
@@ -698,15 +713,27 @@ makes the good ol' XlockMore usable."
                                           "/bin/gdm"))
                      #:environment-variables
                      (list (string-append
+                            "GDM_CUSTOM_CONF="
+                            #$(gdm-configuration-file config))
+                           (string-append
+                            "GDM_DBUS_DAEMON="
+                            #$(gdm-configuration-dbus-daemon config))
+                           (string-append
                             "GDM_X_SERVER="
                             #$(gdm-configuration-x-server config))
-                           ;; XXX: GDM requires access to a handful of
-                           ;; programs and components from Gnome (gnome-shell,
-                           ;; dbus, and gnome-session among others). The
-                           ;; following variables only work provided Gnome is
-                           ;; installed.
-                           "XDG_DATA_DIRS=/run/current-system/profile/share"
-                           "PATH=/run/current-system/profile/bin"))))
+                           (string-append
+                            "GDM_X_SESSION="
+                            #$(gdm-configuration-x-session config))
+                           (string-append
+                            "XDG_DATA_DIRS="
+                            ((lambda (ls) (string-join ls ":"))
+                             (map (lambda (path)
+                                    (string-append path "/share"))
+                                  ;; XXX: Remove gnome-shell below when GDM
+                                  ;; can depend on GNOME Shell directly.
+                                  (cons #$gnome-shell
+                                        '#$(gdm-configuration-gnome-shell-assets
+                                            config)))))))))
          (stop #~(make-kill-destructor))
          (respawn? #t))))
 
@@ -719,8 +746,8 @@ makes the good ol' XlockMore usable."
                                           (const %gdm-accounts))
                        (service-extension pam-root-service-type
                                           gdm-pam-service)
-                       (service-extension etc-service-type
-                                          gdm-etc-service)
+                       (service-extension profile-service-type
+                                          gdm-configuration-gnome-shell-assets)
                        (service-extension dbus-root-service-type
                                           (compose list
                                                    gdm-configuration-gdm))))
diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm
index bfd47a831d..36b3c930d7 100644
--- a/guix/gnu-maintenance.scm
+++ b/guix/gnu-maintenance.scm
@@ -623,8 +623,7 @@ releases are on gnu.org."
       (package-upstream-name package)
       #:server "mirrors.mit.edu"
       #:directory
-      (string-append "/kde" (dirname (dirname (uri-path uri))))
-      #:file->signature (const #f)))))
+      (string-append "/kde" (dirname (dirname (uri-path uri))))))))
 
 (define (latest-xorg-release package)
   "Return the latest release of PACKAGE, the name of an X.org package."
diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm
index 3143ea9281..3966531efa 100644
--- a/guix/scripts/environment.scm
+++ b/guix/scripts/environment.scm
@@ -57,20 +57,27 @@
 (define %default-shell
   (or (getenv "SHELL") "/bin/sh"))
 
-(define (purify-environment)
-  "Unset almost all environment variables.  A small number of variables such
-as 'HOME' and 'USER' are left untouched."
+(define (purify-environment white-list)
+  "Unset all environment variables except those that match the regexps in
+WHITE-LIST and those listed in %PRECIOUS-VARIABLES.  A small number of
+variables such as 'HOME' and 'USER' are left untouched."
   (for-each unsetenv
-            (remove (cut member <> %precious-variables)
+            (remove (lambda (variable)
+                      (or (member variable %precious-variables)
+                          (find (cut regexp-exec <> variable)
+                                white-list)))
                     (match (get-environment-variables)
                       (((names . _) ...)
                        names)))))
 
-(define* (create-environment profile manifest #:key pure?)
-  "Set the environment variables specified by MANIFEST for PROFILE.  When PURE?
-is #t, unset the variables in the current environment.  Otherwise, augment
-existing environment variables with additional search paths."
-  (when pure? (purify-environment))
+(define* (create-environment profile manifest
+                             #:key pure? (white-list '()))
+  "Set the environment variables specified by MANIFEST for PROFILE.  When
+PURE?  is #t, unset the variables in the current environment except those that
+match the regexps in WHITE-LIST.  Otherwise, augment existing environment
+variables with additional search paths."
+  (when pure?
+    (purify-environment white-list))
   (for-each (match-lambda
               ((($ <search-path-specification> variable _ separator) . value)
                (let ((current (getenv variable)))
@@ -134,6 +141,8 @@ COMMAND or an interactive shell in that environment.\n"))
   (display (G_ "
       --pure             unset existing environment variables"))
   (display (G_ "
+      --inherit=REGEXP   inherit environment variables that match REGEXP"))
+  (display (G_ "
       --search-paths     display needed environment variable definitions"))
   (display (G_ "
   -s, --system=SYSTEM    attempt to build for SYSTEM--e.g., \"i686-linux\""))
@@ -206,6 +215,11 @@ COMMAND or an interactive shell in that environment.\n"))
          (option '("pure") #f #f
                  (lambda (opt name arg result)
                    (alist-cons 'pure #t result)))
+         (option '("inherit") #t #f
+                 (lambda (opt name arg result)
+                   (alist-cons 'inherit-regexp
+                               (make-regexp* arg)
+                               result)))
          (option '(#\E "exec") #t #f ; deprecated
                  (lambda (opt name arg result)
                    (alist-cons 'exec (list %default-shell "-c" arg) result)))
@@ -397,25 +411,30 @@ and suitable for 'exit'."
 (define primitive-exit/status (compose primitive-exit status->exit-code))
 
 (define* (launch-environment command profile manifest
-                             #:key pure?)
+                             #:key pure? (white-list '()))
   "Run COMMAND in a new environment containing INPUTS, using the native search
 paths defined by the list PATHS.  When PURE?, pre-existing environment
-variables are cleared before setting the new ones."
+variables are cleared before setting the new ones, except those matching the
+regexps in WHITE-LIST."
   ;; Properly handle SIGINT, so pressing C-c in an interactive terminal
   ;; application works.
   (sigaction SIGINT SIG_DFL)
-  (create-environment profile manifest #:pure? pure?)
+  (create-environment profile manifest
+                      #:pure? pure? #:white-list white-list)
   (match command
     ((program . args)
      (apply execlp program program args))))
 
-(define* (launch-environment/fork command profile manifest #:key pure?)
+(define* (launch-environment/fork command profile manifest
+                                  #:key pure? (white-list '()))
   "Run COMMAND in a new process with an environment containing PROFILE, with
 the search paths specified by MANIFEST.  When PURE?, pre-existing environment
-variables are cleared before setting the new ones."
+variables are cleared before setting the new ones, except those matching the
+regexps in WHITE-LIST."
   (match (primitive-fork)
     (0 (launch-environment command profile manifest
-                           #:pure? pure?))
+                           #:pure? pure?
+                           #:white-list white-list))
     (pid (match (waitpid pid)
            ((_ . status) status)))))
 
@@ -672,7 +691,8 @@ message if any test fails."
                                ;; within the container.
                                '("/bin/sh")
                                (list %default-shell))))
-           (mappings   (pick-all opts 'file-system-mapping)))
+           (mappings   (pick-all opts 'file-system-mapping))
+           (white-list (pick-all opts 'inherit-regexp)))
 
       (when container? (assert-container-features))
 
@@ -741,4 +761,5 @@ message if any test fails."
                     (return
                      (exit/status
                       (launch-environment/fork command profile manifest
+                                               #:white-list white-list
                                                #:pure? pure?))))))))))))))
diff --git a/guix/self.scm b/guix/self.scm
index a45470a0a6..ccff9be5b3 100644
--- a/guix/self.scm
+++ b/guix/self.scm
@@ -390,6 +390,10 @@ that provide Guile modules."
                        guile (guile-version (effective-version)))
   "Return the 'guix' command such that it adds MODULES and DEPENDENCIES in its
 load path."
+  (define glibc-utf8-locales
+    (module-ref (resolve-interface '(gnu packages base))
+                'glibc-utf8-locales))
+
   (define module-directory
     ;; To minimize the number of 'stat' calls needed to locate a module,
     ;; create the union of all the module directories.
@@ -410,6 +414,16 @@ load path."
                                            "/site-ccache")
                             %load-compiled-path))
 
+                    ;; To maximize the chances that locales are set up right
+                    ;; out-of-the-box, bundle "common" UTF-8 locales.
+                    (let ((locpath (getenv "GUIX_LOCPATH")))
+                      (setenv "GUIX_LOCPATH"
+                              (string-append (if locpath
+                                                 (string-append locpath ":")
+                                                 "")
+                                             #$(file-append glibc-utf8-locales
+                                                            "/lib/locale"))))
+
                     (let ((guix-main (module-ref (resolve-interface '(guix ui))
                                                  'guix-main)))
                       #$(if source
@@ -757,7 +771,7 @@ Info manual."
                                ((_ variable rest ...)
                                 (cons `(variable . ,variable)
                                       (variables rest ...))))))
-    (variables %localstatedir %storedir %sysconfdir %system)))
+    (variables %localstatedir %storedir %sysconfdir)))
 
 (define* (make-config.scm #:key zlib gzip xz bzip2
                           (package-name "GNU Guix")
@@ -775,6 +789,7 @@ Info manual."
                                %guix-version
                                %guix-bug-report-address
                                %guix-home-page-url
+                               %system
                                %store-directory
                                %state-directory
                                %store-database-directory
@@ -784,6 +799,9 @@ Info manual."
                                %bzip2
                                %xz))
 
+                   (define %system
+                     #$(%current-system))
+
                    #$@(map (match-lambda
                              ((name . value)
                               #~(define-public #$name #$value)))
diff --git a/po/guix/da.po b/po/guix/da.po
index 1a8a9b3646..6af971f89a 100644
--- a/po/guix/da.po
+++ b/po/guix/da.po
@@ -21,7 +21,7 @@ msgstr ""
 "Project-Id-Version: guix 0.16.0\n"
 "Report-Msgid-Bugs-To: ludo@gnu.org\n"
 "POT-Creation-Date: 2018-11-28 15:05+0100\n"
-"PO-Revision-Date: 2019-02-05 14:10+0200\n"
+"PO-Revision-Date: 2019-02-14 14:10+0200\n"
 "Last-Translator: joe Hansen <joedalton2@yahoo.dk>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
 "Language: da\n"
@@ -1462,7 +1462,7 @@ msgstr "    commit: ~a~%"
 msgid "  ~h new package: ~a~%"
 msgid_plural "  ~h new packages: ~a~%"
 msgstr[0] "  ~h: ny pakke: ~a~%"
-msgstr[1] "  ~h: nye pakker ~a~%"
+msgstr[1] "  ~h: nye pakker: ~a~%"
 
 #: guix/scripts/pull.scm:387
 msgid "  ~h package upgraded: ~a~%"
@@ -1765,7 +1765,7 @@ msgid ""
 "upgrade, and restart each service that was not automatically restarted.\n"
 msgstr ""
 "For at fuldføre opgraderingen, kør »herd restart SERVICE« for at\n"
-"stoppe og genstarte hver tjeneste, der ikke blev genstartet\n"
+"stoppe, opgradere og genstarte hver tjeneste, der ikke blev genstartet\n"
 "automatisk.\n"
 
 #: guix/scripts/system.scm:393
@@ -2607,7 +2607,7 @@ msgid ""
 "  -s, --system=SYSTEM    consider packages for SYSTEM--e.g., \"i686-linux\""
 msgstr ""
 "\n"
-"  -s, --system=SYSTEM    tag i betragtning pakker for SYSTEM--f.eks., »i686-linux«"
+"  -s, --system=SYSTEM    tag pakker i betragtning for SYSTEM--f.eks., »i686-linux«"
 
 #. TRANSLATORS: "closure" and "self" must not be translated.
 #: guix/scripts/size.scm:229
@@ -3382,14 +3382,14 @@ msgid ""
 "See the \"Application Setup\" section in the manual, for more info.\n"
 msgstr ""
 "Overvej at installere enten pakken @code{glibc-utf8-locales} eller\n"
-"@code{glibc-locales} og definere @code{GUIX_LOCPATH}; på denne måde:\n"
+"@code{glibc-locales} og definere code{GUIX_LOCPATH} på denne måde:\n"
 "\n"
 "@example\n"
 "guix package -i glibc-utf8-locales\n"
 "export GUIX_LOCPATH=\"$HOME/.guix-profile/lib/locale\"\n"
 "@end example\n"
 "\n"
-"Se afsnittet »Programopsætning« i manualen, for yderligere info.\n"
+"Se afsnittet »Programopsætning« i manualen for yderligere info.\n"
 
 #. TRANSLATORS: Translate "(C)" to the copyright symbol
 #. (C-in-a-circle), if this symbol is available in the user's
@@ -3811,7 +3811,7 @@ msgstr "Vis kompileringslog ved »~a«."
 #: guix/status.scm:366
 #, scheme-format
 msgid "substituting ~a..."
-msgstr "erstatter ~a..."
+msgstr "substituere ~a..."
 
 #: guix/status.scm:369
 #, scheme-format
@@ -3826,7 +3826,7 @@ msgstr "substitution af ~a færdig"
 #: guix/status.scm:397
 #, scheme-format
 msgid "substitution of ~a failed"
-msgstr "substituion af ~a mislykkedes"
+msgstr "substitution af ~a mislykkedes"
 
 #. TRANSLATORS: The final string looks like "sha256 hash mismatch for
 #. /gnu/store/…-sth:", where "sha256" is the hash algorithm.
@@ -3918,7 +3918,7 @@ msgstr "under oprettelse af mappen »~a«: ~a"
 #: guix/profiles.scm:1635
 #, scheme-format
 msgid "Please create the @file{~a} directory, with you as the owner."
-msgstr "Opret venligst mappen @file{~a}, med dig som ejer."
+msgstr "Opret venligst mappen @file{~a} med dig som ejer."
 
 #: guix/profiles.scm:1644
 #, scheme-format
diff --git a/tests/guix-environment.sh b/tests/guix-environment.sh
index 30b21028aa..ccbe027c7b 100644
--- a/tests/guix-environment.sh
+++ b/tests/guix-environment.sh
@@ -1,5 +1,5 @@
 # GNU Guix --- Functional package management for GNU
-# Copyright © 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 #
 # This file is part of GNU Guix.
 #
@@ -49,6 +49,19 @@ test -x `sed -r 's/^export PATH="(.*)"/\1/' "$tmpdir/a"`/guile
 
 cmp "$tmpdir/a" "$tmpdir/b"
 
+# Check '--inherit'.
+GUIX_TEST_ABC=1
+GUIX_TEST_DEF=2
+GUIX_TEST_XYZ=3
+export GUIX_TEST_ABC GUIX_TEST_DEF GUIX_TEST_XYZ
+guix environment --bootstrap --ad-hoc guile-bootstrap --pure	\
+     --inherit='^GUIX_TEST_A' --inherit='^GUIX_TEST_D'		\
+     -- "$SHELL" -c set > "$tmpdir/a"
+grep '^PATH=' "$tmpdir/a"
+grep '^GUIX_TEST_ABC=' "$tmpdir/a"
+grep '^GUIX_TEST_DEF=' "$tmpdir/a"
+if grep '^GUIX_TEST_XYZ=' "$tmpdir/a"; then false; else true; fi
+
 # Make sure the exit value is preserved.
 if guix environment --bootstrap --ad-hoc guile-bootstrap --pure \
         -- guile -c '(exit 42)'
diff --git a/tests/packages.scm b/tests/packages.scm
index e5704ae4b9..4e4bffc48c 100644
--- a/tests/packages.scm
+++ b/tests/packages.scm
@@ -1037,7 +1037,8 @@
                                                       result))
                                               '()))))))
 
-    (lset= equal? no-cache from-cache)))
+    (and (equal? (delete-duplicates from-cache) from-cache)
+         (lset= equal? no-cache from-cache))))
 
 (test-assert "find-packages-by-name"
   (match (find-packages-by-name "hello")