summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/admin.scm9
-rw-r--r--gnu/packages/aidc.scm6
-rw-r--r--gnu/packages/algebra.scm4
-rw-r--r--gnu/packages/audio.scm13
-rw-r--r--gnu/packages/avahi.scm31
-rw-r--r--gnu/packages/bioconductor.scm5
-rw-r--r--gnu/packages/bioinformatics.scm2
-rw-r--r--gnu/packages/bittorrent.scm4
-rw-r--r--gnu/packages/boost.scm6
-rw-r--r--gnu/packages/c.scm4
-rw-r--r--gnu/packages/check.scm2
-rw-r--r--gnu/packages/cran.scm21
-rw-r--r--gnu/packages/emacs.scm2454
-rw-r--r--gnu/packages/emulators.scm5
-rw-r--r--gnu/packages/engineering.scm4
-rw-r--r--gnu/packages/enlightenment.scm5
-rw-r--r--gnu/packages/freeipmi.scm4
-rw-r--r--gnu/packages/game-development.scm24
-rw-r--r--gnu/packages/games.scm182
-rw-r--r--gnu/packages/gimp.scm121
-rw-r--r--gnu/packages/gl.scm6
-rw-r--r--gnu/packages/gnome.scm95
-rw-r--r--gnu/packages/gnupg.scm25
-rw-r--r--gnu/packages/gnuzilla.scm2
-rw-r--r--gnu/packages/groff.scm2
-rw-r--r--gnu/packages/guile.scm37
-rw-r--r--gnu/packages/linux.scm36
-rw-r--r--gnu/packages/mail.scm30
-rw-r--r--gnu/packages/man.scm15
-rw-r--r--gnu/packages/maths.scm35
-rw-r--r--gnu/packages/messaging.scm40
-rw-r--r--gnu/packages/nano.scm4
-rw-r--r--gnu/packages/networking.scm63
-rw-r--r--gnu/packages/ocaml.scm35
-rw-r--r--gnu/packages/package-management.scm9
-rw-r--r--gnu/packages/patches/amule-crypto-6.patch45
-rw-r--r--gnu/packages/patches/gegl-CVE-2012-4433.patch117
-rw-r--r--gnu/packages/patches/gimp-CVE-2017-17784.patch41
-rw-r--r--gnu/packages/patches/gimp-CVE-2017-17785.patch171
-rw-r--r--gnu/packages/patches/gimp-CVE-2017-17786.patch94
-rw-r--r--gnu/packages/patches/gimp-CVE-2017-17787.patch42
-rw-r--r--gnu/packages/patches/gimp-CVE-2017-17789.patch48
-rw-r--r--gnu/packages/patches/liboop-mips64-deplibs-fix.patch17
-rw-r--r--gnu/packages/patches/shadow-CVE-2018-7169.patch191
-rw-r--r--gnu/packages/pdf.scm32
-rw-r--r--gnu/packages/perl.scm4
-rw-r--r--gnu/packages/photo.scm4
-rw-r--r--gnu/packages/plotutils.scm4
-rw-r--r--gnu/packages/python.scm54
-rw-r--r--gnu/packages/qt.scm4
-rw-r--r--gnu/packages/ruby.scm22
-rw-r--r--gnu/packages/samba.scm20
-rw-r--r--gnu/packages/security-token.scm90
-rw-r--r--gnu/packages/serialization.scm6
-rw-r--r--gnu/packages/shells.scm4
-rw-r--r--gnu/packages/ssh.scm9
-rw-r--r--gnu/packages/statistics.scm40
-rw-r--r--gnu/packages/syncthing.scm28
-rw-r--r--gnu/packages/tls.scm18
-rw-r--r--gnu/packages/upnp.scm4
-rw-r--r--gnu/packages/video.scm3
-rw-r--r--gnu/packages/virtualization.scm4
-rw-r--r--gnu/packages/web.scm34
-rw-r--r--gnu/packages/wm.scm45
-rw-r--r--gnu/packages/xorg.scm11
65 files changed, 3401 insertions, 1145 deletions
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 3d69f682a9..83b1d08687 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -358,16 +358,15 @@ hostname.")
 (define-public shadow
   (package
     (name "shadow")
-    (version "4.5")
+    (version "4.6")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://github.com/shadow-maint/shadow/releases/"
                     "download/" version "/shadow-" version ".tar.xz"))
-              (patches (search-patches "shadow-CVE-2018-7169.patch"))
               (sha256
                (base32
-                "0hdpai78n63l3v3fgr3kkiqzhd0awrpfnnzz4mf7lmxdh61qb37w"))))
+                "10smy01km2bqjjvsd2jz17zvrxbzj89qczyb1amk38j28bcci609"))))
     (build-system gnu-build-system)
     (arguments
      `(;; Assume System V `setpgrp (void)', which is the default on GNU
@@ -959,7 +958,7 @@ system administrator.")
 (define-public sudo
   (package
     (name "sudo")
-    (version "1.8.22")
+    (version "1.8.23")
     (source (origin
               (method url-fetch)
               (uri
@@ -969,7 +968,7 @@ system administrator.")
                                     version ".tar.gz")))
               (sha256
                (base32
-                "00pxp74xkwdcmrjwy55j0k8p684jk1zx3nzdc11v30q8q8kwnmkj"))
+                "0yg62wq8rcrbr7qvh3wgfg2g4bwanbi50cr2lf2cfyy8dydx4qyq"))
               (modules '((guix build utils)))
               (snippet
                '(begin
diff --git a/gnu/packages/aidc.scm b/gnu/packages/aidc.scm
index 7093c7467c..4615b346d6 100644
--- a/gnu/packages/aidc.scm
+++ b/gnu/packages/aidc.scm
@@ -51,15 +51,15 @@ formats.")
 (define-public qrencode
   (package
     (name "qrencode")
-    (version "3.4.4")
+    (version "4.0.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://fukuchi.org/works/qrencode/qrencode-" version
-                    ".tar.gz"))
+                    ".tar.bz2"))
               (sha256
                (base32
-                "0wiagx7i8p9zal53smf5abrnh9lr31mv0p36wg017401jrmf5577"))))
+                "02vx69fl52jbcrmnydsaxcmy6nxqm9jyxzd7hr07s491d7hka069"))))
     (build-system gnu-build-system)
     (inputs `(("libpng" ,libpng)))
     (native-inputs `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 57cf583e44..7cf086cec8 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -211,7 +211,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.")
 (define-public giac-xcas
   (package
     (name "giac-xcas")
-    (version "1.4.9-45")
+    (version "1.4.9-59")
     (source (origin
               (method url-fetch)
               ;; "~parisse/giac" is not used because the maintainer regularly
@@ -223,7 +223,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.")
                                   "source/giac_" version ".tar.gz"))
               (sha256
                (base32
-                "11za5rznr2dgy6598y4iwrcyi86w7f601ci9i794kl8k22pqhcd8"))))
+                "0dv5p5y6gkrsmz3xa7fw87rjyabwdwk09mqb09kb7gai9n9dgayk"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 83fde34325..6e1e8e847a 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2016 Nils Gillmann <ng0@n0.is>
 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
@@ -572,16 +572,7 @@ based on human speech recordings.")
        (modify-phases %standard-phases
          (add-after 'unpack 'remove-compiler-flags
            (lambda _
-             (substitute* '("src/casynth/CMakeLists.txt"
-                            "src/cheapdist/CMakeLists.txt"
-                            "src/duffer/CMakeLists.txt"
-                            "src/envfollower/CMakeLists.txt"
-                            "src/ewham/CMakeLists.txt"
-                            "src/hip2b/CMakeLists.txt"
-                            "src/lushlife/CMakeLists.txt"
-                            "src/powercut/CMakeLists.txt"
-                            "src/powerup/CMakeLists.txt"
-                            "src/stuck/CMakeLists.txt")
+             (substitute* (find-files "." "CMakeLists.txt")
                (("-msse2 -mfpmath=sse") ""))
              #t)))))
     (inputs
diff --git a/gnu/packages/avahi.scm b/gnu/packages/avahi.scm
index 7734028dc3..df74437631 100644
--- a/gnu/packages/avahi.scm
+++ b/gnu/packages/avahi.scm
@@ -77,7 +77,7 @@ DNS-SD (for \"DNS-Based Service Discovery\") protocols.")
 (define-public nss-mdns
   (package
     (name "nss-mdns")
-    (version "0.12")
+    (version "0.14.1")
     (home-page "https://github.com/lathiat/nss-mdns")
     (source (origin
               (method url-fetch)
@@ -85,32 +85,13 @@ DNS-SD (for \"DNS-Based Service Discovery\") protocols.")
                                   name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1p2vj9fz4kzrjrj81ipf4qwgnr2n7a8cbzw4bpk18xyqhdx8h775"))
-              (patches
-               (list (origin
-                       ;; See
-                       ;; <https://github.com/lathiat/nss-mdns/issues/26#issuecomment-364781799>.
-                       (uri (string-append
-                             home-page
-                             "/commit/31ccbec3b4f054e590c7c880d8a8a50cfc97127d.patch"))
-                       (sha256
-                        (base32
-                         "0b1jmhnkpsczbph4ala7x3rafwxdg93277s30iaxh37jnvgjnhsd"))
-                       (method url-fetch))))))
+                "134wdr0n9cm5ab4g6dwq76lvzqns9dcylr470i2xxjimnw0l22d2"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'set-avahi-socket-name
-                    (lambda _
-                      ;; The Avahi daemon socket is expected by
-                      ;; src/Makefile.am to be at
-                      ;; "$(localstatedir)/run/avahi-daemon/socket", but
-                      ;; nowadays it lives in /run/avahi-daemon/socket.
-                      ;; Remove the "$(localstatedir)" bit.
-                      (substitute* "src/Makefile.in"
-                        (("\\$\\(localstatedir)/run/avahi-daemon/socket")
-                         "/run/avahi-daemon/socket"))
-                      #t)))))
+     ;; The Avahi daemon socket is expected by 'configure.ac' to be at
+     ;; "$(localstatedir)/run/avahi-daemon/socket", but nowadays it lives in
+     ;; /run/avahi-daemon/socket.  Remove the "$(localstatedir)" bit.
+     '(#:configure-flags '("AVAHI_SOCKET=/run/avahi-daemon/socket")))
     (synopsis "Multicast DNS Name Service Switch (@dfn{NSS}) plug-in")
     (description
      "Nss-mdns is a plug-in for the GNU C Library's Name Service Switch
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index 76ff773ef1..3e6df50653 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Roel Janssen <roel@gnu.org>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -151,14 +152,14 @@ processing to visualization and annotation.")
 (define-public r-multtest
   (package
     (name "r-multtest")
-    (version "2.34.0")
+    (version "2.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "multtest" version))
        (sha256
         (base32
-         "0n11rd49xl2vn3ldmfips7d3yb70l8npjcqsxyswr9ypjhgzkv9j"))))
+         "11949h2kglw13x8haaj4clg4jim1mwh5n98n9zxp9mmgn01z1lp0"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-survival" ,r-survival)
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 61e5d8bc34..ae021f8179 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -11748,7 +11748,7 @@ accurate as existing quantification tools.")
 code that is used in the Cufflinks codebase.  The goal of this library is to
 provide this functionality without the necessity of drawing in a heavy-weight
 dependency like SeqAn.")
-    (license (license:x11-style "http://www.boost.org/LICENSE_1_0.txt"))))
+    (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt"))))
 
 (define-public libdivsufsort
   (package
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index 9df4f097ac..a1de2baa7f 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -62,7 +62,7 @@
 (define-public transmission
   (package
     (name "transmission")
-    (version "2.93")
+    (version "2.94")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -70,7 +70,7 @@
                     "master/transmission-" version ".tar.xz"))
               (sha256
                (base32
-                "02xrp49gsv4jkbzp37qrwlnb9nlja08s92dyvgdbr6a4187945c8"))))
+                "0zbbj7rlm6m7vb64x68a64cwmijhsrwx9l63hbwqs7zr9742qi1m"))))
     (build-system glib-or-gtk-build-system)
     (outputs '("out"                      ; library and command-line interface
                "gui"))                    ; graphical user interface
diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm
index 6b17e30a8e..d8ce30cd88 100644
--- a/gnu/packages/boost.scm
+++ b/gnu/packages/boost.scm
@@ -111,12 +111,12 @@
            (lambda* (#:key make-flags #:allow-other-keys)
              (apply invoke "./b2" "install" make-flags))))))
 
-    (home-page "http://www.boost.org")
+    (home-page "https://www.boost.org")
     (synopsis "Peer-reviewed portable C++ source libraries")
     (description
      "A collection of libraries intended to be widely useful, and usable
 across a broad spectrum of applications.")
-    (license (license:x11-style "http://www.boost.org/LICENSE_1_0.txt"
+    (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt"
                                 "Some components have other similar licences."))))
 
 (define-public boost-sync
@@ -149,7 +149,7 @@ across a broad spectrum of applications.")
       (description "The Boost.Sync library provides mutexes, semaphores, locks
 and events and other thread related facilities.  Boost.Sync originated from
 Boost.Thread.")
-      (license (license:x11-style "http://www.boost.org/LICENSE_1_0.txt")))))
+      (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt")))))
 
 (define-public mdds
   (package
diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm
index b4e17cb53a..bc6042874b 100644
--- a/gnu/packages/c.scm
+++ b/gnu/packages/c.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
@@ -83,7 +83,7 @@ standard.")
     (build-system trivial-build-system)
     (native-inputs '())
     (inputs `(("tcc" ,tcc)
-              ("guile" ,guile-2.0)))
+              ("guile" ,guile-2.2)))
 
     ;; By default TCC does not honor any search path environment variable.
     ;; This wrapper adds them.
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 4578961acc..6f88885545 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -396,6 +396,8 @@ test coverage and has a web user interface that will refresh automatically.")
     (home-page "https://github.com/smartystreets/goconvey")
     (license license:expat)))
 
+;; XXX When updating, check whether ZNC's GOOGLETEST-SOURCES can be
+;; switched back to simply using (PACKAGE-SOURCE ...).
 (define-public googletest
   (package
     (name "googletest")
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index bc95fd2aa4..5cda0e3fe1 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -653,14 +653,14 @@ rows, dropping names) to see if the modified versions are identical.")
 (define-public r-dendextend
   (package
     (name "r-dendextend")
-    (version "1.7.0")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "dendextend" version))
        (sha256
         (base32
-         "1krvqadnnh53xx5ql7bwzxaif6a317jzbs1m00gnc6jnj03rfl5d"))))
+         "1virn3c232xwcq3d0hhkgjh5gpzl01s39iwii5gxcm9mnsxjzdrh"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-fpc" ,r-fpc)
@@ -1537,14 +1537,14 @@ Delaunay triangulation and convex hull computation.")
 (define-public r-ddalpha
   (package
     (name "r-ddalpha")
-    (version "1.3.2")
+    (version "1.3.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ddalpha" version))
        (sha256
         (base32
-         "1i2zcz20zy9xd42kdz09njbkq07mj2pp6f07z6dnwi5hrmvhbh9r"))))
+         "0g4iqhrz2gym05q40ih6srilyajw2l2mv46pchn65bc7hw4vkgrk"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-bh" ,r-bh)
@@ -2370,14 +2370,14 @@ timeout.  It can also poll several processes at once.")
 (define-public r-tsp
   (package
     (name "r-tsp")
-    (version "1.1-5")
+    (version "1.1-6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "TSP" version))
        (sha256
         (base32
-         "03xxfr5kk4zhzpb1q1pwncdp0dhchm9b48wzhvvxn2dxf3mnby2w"))))
+         "1ym97xl2icjpfkrici0wig29w06bb704hp51v7h5liygjlwpkhlc"))))
     (properties `((upstream-name . "TSP")))
     (build-system r-build-system)
     (propagated-inputs `(("r-foreach" ,r-foreach)))
@@ -3125,18 +3125,19 @@ creation and manipulation of WAVE audio files.")
 (define-public r-np
   (package
     (name "r-np")
-    (version "0.60-6")
+    (version "0.60-7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "np" version))
        (sha256
         (base32
-         "1y72x5j9j9mcgcy2xizk31gl843hfkngxdn8s4qw7yhw2qj79hsr"))))
+         "02h62n5xclr01fx88ayp7y1s9gcnb11zb1vqshvdcq31v18h7kf2"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-boot" ,r-boot)
        ("r-cubature" ,r-cubature)
+       ("r-quadprog" ,r-quadprog)
        ("r-quantreg" ,r-quantreg)))
     (home-page "https://github.com/JeffreyRacine/R-Package-np")
     (synopsis "Non-parametric kernel smoothing methods for mixed data types")
@@ -3853,14 +3854,14 @@ exchanging spatial objects with other R packages.")
 (define-public r-later
   (package
     (name "r-later")
-    (version "0.7.1")
+    (version "0.7.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "later" version))
        (sha256
         (base32
-         "0z9jymmclkq9zcg1fd8p6gsnm5z1sn3n9pfz3bs03qjrkbizgrvz"))))
+         "0l5ln7sjyi2rj7bx8iamxykqlfarv05zb9882ikizppb1cr1hgyw"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-bh" ,r-bh)
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index fcb4390358..0b19586d7f 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2016, 2017 Chris Marusich <cmmarusich@gmail.com>
+;;; Copyright © 2016, 2017, 2018 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2015, 2016 Christopher Allan Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com>
 ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
@@ -65,6 +65,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages bash)
+  #:use-module (gnu packages cmake)
   #:use-module (gnu packages code)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages guile)
@@ -340,7 +341,7 @@ editor (without an X toolkit)" )
                                      "/share/emacs/site-lisp/"
                                      "geiser-autoloads.el"))
              #t)))))
-    (inputs `(("guile" ,guile-2.0)))
+    (inputs `(("guile" ,guile-2.2)))
     (native-inputs `(("emacs" ,emacs-minimal)))
     (home-page "https://nongnu.org/geiser/")
     (synopsis "Collection of Emacs modes for Guile and Racket hacking")
@@ -430,7 +431,7 @@ on stdout instead of using a socket as the Emacsclient does.")
 (define-public magit
   (package
     (name "magit")
-    (version "2.11.0")
+    (version "2.12.1")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -438,7 +439,7 @@ on stdout instead of using a socket as the Emacsclient does.")
                    version "/" name "-" version ".tar.gz"))
              (sha256
               (base32
-               "11xly5bma9jc1jhs8fqbqrci8kz1y26yfq7dqjkqfy956wvfg6hz"))))
+               "1czzknmhzbggcv3bxl5amvfpp0zrkdwl1x05qarsq6qakvc85xy3"))))
     (build-system gnu-build-system)
     (native-inputs `(("texinfo" ,texinfo)
                      ("emacs" ,emacs-minimal)))
@@ -447,7 +448,8 @@ on stdout instead of using a socket as the Emacsclient does.")
        ("perl" ,perl)))
     (propagated-inputs
      `(("dash" ,emacs-dash)
-       ;; XXX Add 'magit-popup' dependency for the next release (after 2.11.0).
+       ("ghub" ,emacs-ghub)
+       ("magit-popup" ,emacs-magit-popup)
        ("with-editor" ,emacs-with-editor)))
     (arguments
      `(#:test-target "test"
@@ -461,6 +463,14 @@ on stdout instead of using a socket as the Emacsclient does.")
                             (assoc-ref %build-inputs "dash")
                             "/share/emacs/site-lisp/guix.d/dash-"
                             ,(package-version emacs-dash))
+             (string-append "GHUB_DIR="
+                            (assoc-ref %build-inputs "ghub")
+                            "/share/emacs/site-lisp/guix.d/ghub-"
+                            ,(package-version emacs-ghub))
+             (string-append "MAGIT_POPUP_DIR="
+                            (assoc-ref %build-inputs "magit-popup")
+                            "/share/emacs/site-lisp/guix.d/magit-popup-"
+                            ,(package-version emacs-magit-popup))
              (string-append "WITH_EDITOR_DIR="
                             (assoc-ref %build-inputs "with-editor")
                             "/share/emacs/site-lisp/guix.d/with-editor-"
@@ -476,7 +486,7 @@ on stdout instead of using a socket as the Emacsclient does.")
               (substitute* "lisp/magit-sequence.el"
                 (("perl") (string-append perl "/bin/perl")))
               #t))))))
-    (home-page "http://magit.github.io/")
+    (home-page "https://magit.vc/")
     (synopsis "Emacs interface for the Git version control system")
     (description
      "With Magit, you can inspect and modify your Git repositories with Emacs.
@@ -584,6 +594,37 @@ these arguments.  The prototypical use is for the command to call an external
 process, passing on the arguments as command line arguments.")
     (license license:gpl3+)))
 
+(define-public emacs-ghub
+  (package
+    (name "emacs-ghub")
+    (version "2.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/magit/ghub/archive/v"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1zrb3xk04a228g2ahx0r02d0d3xskj60q73qavvmm2i56r66cxvc"))))
+    (build-system emacs-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'install 'make-info
+           (lambda _
+             (zero? (system* "make" "info")))))))
+    (native-inputs
+     `(("texinfo" ,texinfo)))
+    (home-page "https://github.com/magit/ghub")
+    (synopsis "Emacs client library for Github API and Gitlab API")
+    (description
+     "This package provides 2 files: @file{ghub.el} and @file{glab.el},
+which are the libraries that provide basic support for using the Github and
+Gitlab APIs from Emacs packages.  It abstracts access to API resources using
+only a handful of functions that are not resource-specific.")
+    (license license:gpl3+)))
+
 (define-public haskell-mode
   (package
     (name "haskell-mode")
@@ -832,14 +873,14 @@ provides an optional IDE-like error list.")
 (define-public emms
   (package
     (name "emacs-emms")
-    (version "4.4")
+    (version "5.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/emms/emms-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1b0kalhn81dir26jgsma30i5bbly7d3s1ngqpf01zjjpr7lw5v0h"))
+                "08f9lj77jlk96grqgjsv63s2i8ywvp4wvnmgmhnslwyx2lsdxza3"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -1185,6 +1226,42 @@ or XEmacs.")
 a set of simplified face specifications and a user-supplied color palette")
     (license license:gpl3+)))
 
+(define-public emacs-howm
+  (package
+    (name "emacs-howm")
+    (version "1.4.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://howm.sourceforge.jp/a/howm-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "0ddm91l6z58j7x59fa966j6q1rg4cinyza4r8ibg80hprn5h31qk"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("emacs" ,emacs-minimal)))
+    (arguments
+     `(#:configure-flags
+       (list (string-append "--with-howmdir=" %output
+                            "/share/emacs/site-lisp/guix.d/howm-" ,version))
+       #:modules ((guix build gnu-build-system)
+                  ((guix build emacs-build-system) #:prefix emacs:)
+                  (guix build utils))
+       #:imported-modules (,@%gnu-build-system-modules
+                           (guix build emacs-build-system)
+                           (guix build emacs-utils))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'rename-lispdir 'make-autoloads
+           (assoc-ref emacs:%standard-phases 'make-autoloads)))))
+    (home-page "http://howm.osdn.jp/")
+    (synopsis "Note-taking tool for Emacs")
+    (description "Howm is a note-taking tool for Emacs.  Like
+code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
+searches.  Unlike code@{emacs-wiki.el}, it can be combined with any format.")
+    (license license:gpl1+)))
+
 (define-public emacs-calfw
   (package
     (name "emacs-calfw")
@@ -1200,6 +1277,8 @@ a set of simplified face specifications and a user-supplied color palette")
         (base32
          "17ssg8gx66yp63nhygjq2r6kgl4h45cacmrxsxs9f0lrfcx37k0l"))))
     (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-howm" ,emacs-howm)))
     (home-page "https://github.com/kiwanami/emacs-calfw/")
     (synopsis "Calendar framework for Emacs")
     (description
@@ -2495,17 +2574,19 @@ framework for Emacs Lisp to be used with @code{ert}.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'set-shell
+           ;; Setting the SHELL environment variable is required for the tests
+           ;; to find sh.
+           (lambda _
+             (setenv "SHELL" (which "sh"))
+             #t))
          (add-before 'check 'fix-makefile
            (lambda _
              (substitute* "Makefile"
                (("\\$\\(CASK\\) exec ") ""))
              #t)))
        #:tests? #t
-       ;; FIXME: Normally we'd run the "test" target but for some reason the
-       ;; test-deferred target fails when run in the Guix build environment
-       ;; with the error: (file-error "Searching for program" "No such file or
-       ;; directory" "/bin/sh").
-       #:test-command '("make" "test-concurrent" "test-concurrent-compiled")))
+       #:test-command '("make" "test")))
     (native-inputs
      `(("emacs-ert-expectations" ,emacs-ert-expectations)
        ("emacs-undercover" ,emacs-undercover)
@@ -2677,6 +2758,57 @@ implementation in Emacs.  To use it just load this file and bind that function
 to a key in your preferred mode.")
       (license license:public-domain))))
 
+(define-public emacs-scel
+  (let ((version "20170629")
+        (revision "1")
+        (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
+    (package
+      (name "emacs-scel")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/supercollider/scel.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
+      (build-system emacs-build-system)
+      (arguments
+       `(#:modules ((guix build emacs-build-system)
+                    ((guix build cmake-build-system) #:prefix cmake:)
+                    (guix build utils))
+         #:imported-modules (,@%emacs-build-system-modules
+                             (guix build cmake-build-system))
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'configure
+             (lambda* (#:key outputs #:allow-other-keys)
+               (substitute* "el/CMakeLists.txt"
+                 (("share/emacs/site-lisp/SuperCollider")
+                  (string-append
+                   "share/emacs/site-lisp/guix.d/scel-" ,version)))
+               ((assoc-ref cmake:%standard-phases 'configure)
+                #:outputs outputs
+                #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
+           (add-after 'set-emacs-load-path 'add-el-dir-to-emacs-load-path
+             (lambda _
+               (setenv "EMACSLOADPATH"
+                       (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
+               #t))
+           (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
+      (inputs
+       `(("supercollider" ,supercollider)))
+      (native-inputs
+       `(("cmake" ,cmake)))
+      (home-page "https://github.com/supercollider/scel")
+      (synopsis "SuperCollider Emacs interface")
+      (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
+SuperCollider is a platform for audio synthesis and algorithmic composition.")
+      (license license:gpl2+))))
+
 (define-public emacs-mit-scheme-doc
   (package
     (name "emacs-mit-scheme-doc")
@@ -3581,7 +3713,7 @@ navigate code in a tree-like fashion.")
 (define-public emacs-lispy
   ;; Release 0.26.0 was almost 3 years ago, and there have been ~772 commits
   ;; since.
-  (let ((commit "a7e1cf742e72199cc75aa5e1e686991ba4a23bc4")
+  (let ((commit "c2a358a7a15fcf056a5b7461a8e690b481b03b80")
         (revision "0"))
     (package
       (name "emacs-lispy")
@@ -3592,7 +3724,7 @@ navigate code in a tree-like fashion.")
                 (uri (git-reference (url home-page) (commit commit)))
                 (sha256
                  (base32
-                  "0qg85gz5akayvhb5fmn1qx7s9847gry4g20xcnq8llr839lq28dl"))
+                  "1g6756qqx2n4cx8jac6mlwayilsiyc5rz8nrqjnywvzc75xdinjd"))
                 (file-name (git-file-name name version))))
       (build-system emacs-build-system)
       (propagated-inputs
@@ -4698,7 +4830,8 @@ reproducible research.")
                  (for-each delete-file duplicates))
                #t))))))
     (propagated-inputs
-     `(("emacs-org" ,emacs-org)))
+     `(("emacs-org" ,emacs-org)
+       ("emacs-scel" ,emacs-scel)))
     (synopsis "Contributed packages to Org mode")
     (description "Org is an Emacs mode for keeping notes, maintaining TODO
 lists, and project planning with a fast and effective plain-text system.
@@ -8013,3 +8146,2292 @@ Emacs.")
 in @code{emacs-lisp-mode}, together with an elisp equivalent of
 @code{slime-describe-symbol}.")
     (license license:gpl3+)))
+
+(define-public emacs-dedicated
+  (package
+    (name "emacs-dedicated")
+    (version "1.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/emacsorphanage/dedicated/archive/"
+                    version
+                    ".tar.gz"))
+              (sha256
+               (base32
+                "0nhbkp278cvcznb5rp3jp9ii3mjgb79zx8iwfrw7zfk3yg8688ni"))
+              (file-name (string-append name "-" version ".tar.gz"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/emacsorphanage/dedicated")
+    (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
+    (description
+     "This simple Emacs minor mode allows you to toggle a window's
+\"dedicated\" flag.  When a window is \"dedicated\", Emacs will not select
+files into that window.  This can be quite handy since many commands will use
+another window to show results (compilation mode, starting info, and so on).
+A dedicated window won't be used for such a purpose.  For details, please read
+the source file.")
+    (license license:gpl2+)))
+
+(define-public emacs-nnreddit
+  (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
+        (revision "1"))
+    (package
+      (name "emacs-nnreddit")
+      (version (string-append "0.0.1-" revision "."
+                              (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/paul-issartel/nnreddit.git")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32
+                  "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/paul-issartel/nnreddit")
+      (synopsis "Reddit backend for the Gnus newsreader")
+      (description "@url{https://www.reddit.com} backend for the Gnus
+newsreader.")
+      (license license:gpl3+))))
+
+(define-public emacs-makey
+  (package
+    (name "emacs-makey")
+    (version "0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/mickeynp/makey/archive/"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0kzl4q1wf2zhkx9nrymxa67n99iq0bj7zqhpaz4byksna1hsxfmv"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/mickeynp/makey")
+    (synopsis "Emacs interactive command-line mode")
+    (description
+     "This package provides an Emacs interactive command-line mode.")
+    (license license:gpl3+)))
+
+(define-public emacs-outorg
+  (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
+    (package
+      (name "emacs-outorg")
+      (version (git-version "2.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/alphapapa/outorg")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/alphapapa/outorg")
+      (synopsis "Org-style comment editing")
+      (description "Outorg is for editing comment-sections of source-code
+files in temporary Org-mode buffers.  It turns conventional
+literate-programming upside-down in that the default mode is the
+programming-mode, and special action has to be taken to switch to the
+text-mode (i.e. Org-mode).")
+      (license license:gpl3+))))
+
+(define-public emacs-outshine
+  (let ((commit "5f1a6b70231d2811c522e4e5e8c89ff461b311d6"))
+    (package
+      (name "emacs-outshine")
+      (version (git-version "2.0" "1" commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/alphapapa/outshine.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1l9v1dfhgg7il11ifbhvcvrg3acfjk9sdxlc3lja1k54d7dp60jv"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-outorg" ,emacs-outorg)))
+      (home-page "https://github.com/alphapapa/outshine")
+      (synopsis "Emacs outline with outshine")
+      (description "Outshine attempts to bring the look and feel of
+@code{org-mode} to an Emacs outside of the Org major-mode.  It is an extension
+of @code{outline-minor-mode} (@code{org-mode} itself derives from
+outline-mode), so there is no such thing like an outshine mode, only
+@code{outline-minor-mode} with outshine extensions loaded.")
+      (license license:gpl3+))))
+
+(define-public emacs-parsebib
+  (package
+    (name "emacs-parsebib")
+    (version "2.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/joostkremers/parsebib/archive/"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0cxagnmc5ab6idmb26axpizhr4sqglkncc59768yavn3p04jyq63"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/joostkremers/parsebib")
+    (synopsis "Library for parsing bib files")
+    (description
+     "This package provides an Emacs library for parsing bib files.")
+    (license license:gpl3+)))
+
+(define-public emacs-biblio
+  (package
+    (name "emacs-biblio")
+    (version "0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/cpitclaudel/biblio.el/archive/"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "109fvivsb4r0rbqljngqrmxqvbnbkqlivczx6brrvlr7ci625lhf"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/cpitclaudel/biblio.el")
+    (synopsis "Browse and import bibliographic references")
+    (description "This package provides an extensible Emacs package for
+browsing and fetching references.
+
+@file{biblio.el} makes it easy to browse and gather bibliographic references
+and publications from various sources, by keywords or by DOI.  References are
+automatically fetched from well-curated sources, and formatted as BibTeX.")
+    (license license:gpl3+)))
+
+(define-public emacs-helm-bibtex
+  (let ((commit "8ed898fb5a68f18e9bb9973832a5c1f8abcfc463")
+        (revision "1"))
+    (package
+      (name "emacs-helm-bibtex")
+      (version (string-append "2.0.0" "-" revision "."
+                              (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/tmalsburg/helm-bibtex.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "14lyx0vbqr97p3anzrsp7m3q0kqclyjcdwplpraim403fcklzbnz"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-helm" ,emacs-helm)
+         ("emacs-parsebib" ,emacs-parsebib)
+         ("emacs-s" ,emacs-s)
+         ("emacs-dash" ,emacs-dash)
+         ("emacs-f" ,emacs-f)
+         ("emacs-biblio" ,emacs-biblio)))
+      (home-page "https://github.com/tmalsburg/helm-bibtex")
+      (synopsis "Bibliography manager based on Helm")
+      (description "This package provides bibliography manager for Emacs,
+based on Helm and the bibtex-completion backend.
+
+Key features:
+
+@itemize
+@item Quick access to your bibliography from within Emacs
+@item Powerful search capabilities
+@item Provides instant search results as you type
+@item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
+@item Open the PDFs, URLs, or DOIs associated with an entry
+@item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
+BibTeX entries, or plain text references at point, attach PDFs to emails
+@item Support for note taking
+@item Quick access to online bibliographic databases such as Pubmed,
+arXiv, Google Scholar, Library of Congress, etc.
+@item Imports BibTeX entries from CrossRef and other sources.
+@end itemize\n")
+      (license license:gpl3+))))
+
+(define-public emacs-ewmctrl
+  (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf")
+        (revision "1"))
+    (package
+      (name "emacs-ewmctrl")
+      (version (string-append "0.0.1" "-" revision "."
+                              (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/flexibeast/ewmctrl.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/flexibeast/ewmctrl")
+      (synopsis "Emacs interface to @code{wmctrl}")
+      (description "@code{ewmctrl} provides an Emacs interface to
+@code{wmctrl} command-line window-management program.")
+      (license license:gpl3+))))
+
+(define-public emacs-helm-gtags
+  (package
+    (name "emacs-helm-gtags")
+    (version "1.5.6")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/syohex/emacs-helm-gtags/archive/"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1a10snhg6nnnan6w9a7mcziy26vxbsr3c35i0gcarnkdp2yqng36"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/syohex/emacs-helm-gtags")
+    (synopsis "Emacs Helm interface to GNU Global")
+    (description
+     "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
+    (license license:gpl3+)))
+
+(define-public emacs-list-utils
+  (package
+    (name "emacs-list-utils")
+    (version "0.4.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/rolandwalker/list-utils/archive/"
+                           "v" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1xc1xh8c82h5gdjbgpdsdclgwxkxbb7h3x3a2bscpm41g8pnan4p"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/rolandwalker/list-utils")
+    (synopsis "List-manipulation utility functions")
+    (description "This package provides a list manipulation library for Emacs.")
+    (license license:gpl3+)))
+
+(define-public emacs-move-text
+  (package
+    (name "emacs-move-text")
+    (version "2.0.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/emacsfodder/move-text/archive/"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1sjfja9r25692pgcldgnjzkapzy970m14jh9l4pajysiqcdk72g0"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/emacsfodder/move-text")
+    (synopsis "Move current line or region with M-up or M-down")
+    (description "This package provide functions to move the current line
+using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
+region instead.")
+    (license license:gpl3+)))
+
+(define-public emacs-validate
+  (package
+    (name "emacs-validate")
+    (version "1.0.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/Malabarba/validate.el"
+                                  "/archive/" version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "125mbd111f1h1baw0z3fzm48y1bvaigljyzvvnqgrn0shxbj0khg"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/Malabarba/validate.el")
+    (synopsis "Emacs library for scheme validation")
+    (description "This Emacs library provides two functions that perform
+schema validation.")
+    (license license:gpl3+)))
+
+(define-public emacs-load-relative
+  (let ((commit "738896e3da491b35399178ed2c6bc92cc728d119")
+        (revision "1"))
+    (package
+      (name "emacs-load-relative")
+      (version (string-append "0.0.1" "-" revision "."
+                              (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/rocky/emacs-load-relative")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "1rpy5mfncncl6gqgg53d3g25g1700g4b9bivd4c0cfcv5dbxhp73"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/rocky/emacs-load-relative")
+      (synopsis "Relative loads for Emacs Lisp files")
+      (description "@code{load-relative} allows to write small Emacs
+functions or modules in a larger multi-file Emacs package and
+facilitate running from the source tree without having to install the
+code or fiddle with evil @code{load-path}.")
+      (license license:gpl3+))))
+
+(define-public emacs-rainbow-blocks
+  (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
+    (package
+      (name "emacs-rainbow-blocks")
+      (version (git-version "1.0.0" "1" commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/istib/rainbow-blocks.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/istib/rainbow-blocks")
+      (synopsis "Highlight sexp blocks")
+      (description "Rainbow-blocks is an Emacs mode that highlights blocks
+made of parentheses, brackets, and braces according to their depth.  Each
+successive level is highlighted in a different color.  This makes it easy to
+orient yourself in the code, and tell which statements are at a given level.")
+      (license license:gpl3+))))
+
+(define-public emacs-hierarchy
+  (package
+    (name "emacs-hierarchy")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/DamienCassou/hierarchy/archive/"
+             "v" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1a463v5zk6zis2p8cs4mads3iyxh266yahi6j6y0paggfl2yhkc8"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/DamienCassou/hierarchy")
+    (synopsis "Library to create and display hierarchy structures")
+    (description "This package provides an Emacs library to create, query,
+navigate and display hierarchy structures.")
+    (license license:gpl3+)))
+
+(define-public emacs-tree-mode
+  (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
+        (revision "1"))
+    (package
+      (name "emacs-tree-mode")
+      (version (string-append "0.0.1" "-" revision "."
+                              (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/emacsorphanage/tree-mode.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/emacsorphanage/tree-mode")
+      (synopsis "Emacs mode to manage tree widgets")
+      (description
+       "This package provides an Emacs library to manage tree widgets.")
+      (license license:gpl3+))))
+
+(define-public emacs-md4rd
+  (let ((commit "be0fc4951b2d1f5194ffa1fcaac706dbac560500")
+        (revision "1"))
+    (package
+      (name "emacs-md4rd")
+      (version (string-append "0.0.1" "-" revision "."
+                              (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/ahungry/md4rd.git")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32
+                  "1i93shx5x192gd7cl2r6gvcvhhwyi1k08abi5w3izv1hn3pmksgq"))))
+      (propagated-inputs
+       `(("emacs-hierarchy" ,emacs-hierarchy)
+         ("emacs-request" ,emacs-request)
+         ("emacs-dash" ,emacs-dash)
+         ("emacs-s" ,emacs-s)
+         ("emacs-tree-mode" ,emacs-tree-mode)))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/ahungry/md4rd")
+      (synopsis "Emacs Mode for Reddit")
+      (description
+       "This package allows to read Reddit from within Emacs interactively.")
+      (license license:gpl3+))))
+
+(define-public emacs-pulseaudio-control
+  (let ((commit "08c59e1dc45ec96edb62f34036e82cf5f14c0e8b")
+        (revision "1"))
+    (package
+      (name "emacs-pulseaudio-control")
+      (version (string-append "0.0.1" "-" revision "."
+                              (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/flexibeast/pulseaudio-control.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "10cgg1r00kz2fsnnryvzay5pf8s1pwb1dzlds1fbjdnyfvdgammv"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/flexibeast/pulseaudio-control")
+      (synopsis "Control @code{pulseaudio} from Emacs")
+      (description
+       "This package allows to control @code{pulseaudio} from Emacs.")
+      (license license:gpl3+))))
+
+(define-public emacs-datetime
+  (package
+    (name "emacs-datetime")
+    (version "0.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/doublep/datetime/archive/"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "12wqpj67rjij2ki7nmw38rz3k2bsq68pk6zswknlcn9qhp1zd9w9"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/doublep/datetime/")
+    (synopsis "Library to work with dates in Emacs")
+    (description "Parsing, formatting, matching and recoding
+timestamps and date-time format strings library for Emacs.")
+    (license license:gpl3+)))
+
+(define-public emacs-org-mind-map
+  (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
+        (revision "1"))
+    (package
+      (name "emacs-org-mind-map")
+      (version (string-append "0.0.1" "-" revision "."
+                              (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/theodorewiles/org-mind-map.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
+      (propagated-inputs
+       `(("emacs-dash" ,emacs-dash)))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/theodorewiles/org-mind-map")
+      (synopsis "Create Graphviz directed graphs from Org files")
+      (description
+       "This package creates Graphviz directed graphs from Org files.")
+      (license license:gpl3+))))
+
+(define-public emacs-npm-mode
+  (package
+    (name "emacs-npm-mode")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/mojochao/npm-mode/archive/"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1kq1ww22dwf8c2i2b4z2ldbbmnihj65kb7n5vzvwkch9h4hxpqh5"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/mojochao/npm-mode")
+    (synopsis "Minor mode for working with @code{npm} projects")
+    (description
+     "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
+    (license license:gpl3+)))
+
+(define-public emacs-seq
+  (package
+    (name "emacs-seq")
+    (version "2.20")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://elpa.gnu.org/packages/seq-" version ".tar"))
+       (sha256
+        (base32
+         "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
+    (build-system emacs-build-system)
+    (home-page "http://elpa.gnu.org/packages/seq.html")
+    (synopsis "Sequence manipulation functions")
+    (description "Sequence-manipulation functions that complement basic
+functions provided by @file{subr.el}.")
+    (license license:gpl3+)))
+
+(define-public emacs-itail
+  (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
+        (revision "1"))
+    (package
+      (name "emacs-itail")
+      (version (string-append "0.0.1" "-" revision "."
+                              (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/re5et/itail.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/re5et/itail")
+      (synopsis "Interactive @code{tail} Emacs mode")
+      (description "@code{itail} provides interactive @code{tail} mode
+that allows you to filter the tail with unix pipes and highlight the
+contents of the tailed file.  Works locally or on remote files using
+tramp.")
+      (license license:gpl3+))))
+
+(define-public emacs-loop
+  (package
+    (name "emacs-loop")
+    (version "1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/Wilfred/loop.el/archive/"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1z3rhh3zyjabz36410yz0lp4a0qwwj0387as662wvx3z9y54jia9"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/Wilfred/loop.el")
+    (synopsis "Imperative loop structures for Emacs")
+    (description "Loop structures familiar to users of other languages.  This
+library adds a selection of popular loop structures as well as break and
+continue.")
+    (license license:gpl3+)))
+
+(define-public emacs-elisp-refs
+  (package
+    (name "emacs-elisp-refs")
+    (version "1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/Wilfred/elisp-refs/archive/"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0fj6wphwrvbslw46w7wgdk3b4bfr312ygj3lbgr9qw63lpqw26nl"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-dash" ,emacs-dash)
+       ("emacs-f" ,emacs-f)
+       ("emacs-list-utils" ,emacs-list-utils)
+       ("emacs-loop" ,emacs-loop)
+       ("emacs-s" ,emacs-s)))
+    (home-page "https://github.com/Wilfred/elisp-refs")
+    (synopsis "Find callers of elisp functions or macros")
+    (description "Find references to functions, macros or variables.  Unlike a
+dumb text search, @code{elisp-refs} actually parses the code, so it's never
+confused by comments or @code{foo-bar} matching @code{foo}.")
+    (license license:gpl3+)))
+
+(define-public emacs-crux
+  (let ((commit "4f5c8fefd5a6aa52e128c4a0401cc86410d6ac8f")
+        (revision "1"))
+    (package
+      (name "emacs-crux")
+      (version (string-append "0.3.0" "-" revision "."
+                              (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/bbatsov/crux.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "1fdxvv25cs01sg6fmvmzxpzvs50i6v8n2jya60lbavxqqhi0sbxd"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/bbatsov/crux")
+      (synopsis "Collection of useful functions for Emacs")
+      (description
+       "@code{crux} provides a collection of useful functions for Emacs.")
+      (license license:gpl3+))))
+
+(define-public emacs-edit-server
+  (package
+    (name "emacs-edit-server")
+    (version "1.13")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/stsquad/emacs_chrome/archive/"
+                           "v" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1r92kqggslqasza718z4ka883mqfbnibdm43f0j9gaipk0msm2wf"))))
+    (build-system emacs-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir-elisp
+           ;; Elisp directory is not in root of the source.
+           (lambda _
+             (chdir "servers"))))))
+    (home-page "https://github.com/stsquad/emacs_chrome")
+    (synopsis "Server that responds to edit requests from Chromium")
+    (description
+     "This package provides an edit server to respond to requests from Emacs.")
+    (license license:gpl3+)))
+
+(define-public emacs-m-buffer-el
+  (package
+    (name "emacs-m-buffer-el")
+    (version "0.15")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/phillord/m-buffer-el"
+                           "/archive/" "v" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "17vdcc8q37q9db98jyww1c0ivinmwfcw4l04zccfacalra63a214"))))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'install 'check
+           (lambda* (#:key inputs #:allow-other-keys)
+             (zero? (system* "emacs" "--batch" "-L" "."
+                             "-l" "test/m-buffer-test.el"
+                             "-l" "test/m-buffer-at-test.el"
+                             "-f" "ert-run-tests-batch-and-exit")))))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/phillord/m-buffer-el")
+    (synopsis "List oriented buffer operations for Emacs")
+    (description "@code{m-buffer} provides a set of list-orientated functions
+for operating over the contents of Emacs buffers.")
+    (license license:gpl3+)))
+
+(define-public emacs-let-alist
+  (package
+    (name "emacs-let-alist")
+    (version "1.0.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://elpa.gnu.org/packages/let-alist-" version ".el"))
+       (sha256
+        (base32
+         "0r7b9jni50la1m79kklml11syg8d2fmdlr83pv005sv1wh02jszw"))))
+    (build-system emacs-build-system)
+    (home-page "https://elpa.gnu.org/packages/let-alist.html")
+    (synopsis "Easily let-bind values of an assoc-list by their names")
+    (description "This package offers a single macro, @code{let-alist}.  This
+macro takes a first argument (whose value must be an alist) and a body.")
+    (license license:gpl3+)))
+
+(define-public emacs-esup
+  (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
+        (revision "1"))
+    (package
+      (name "emacs-esup")
+      (version (string-append "0.6" "-" revision "."
+                              (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/jschaf/esup.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
+      ;; TODO: Add tests
+      (build-system emacs-build-system)
+      (home-page "https://github.com/jschaf/esup")
+      (synopsis "Emacs start up profiler")
+      (description "Benchmark Emacs Startup time without ever leaving
+your Emacs.")
+      (license license:gpl2+))))
+
+(define-public emacs-sourcemap
+  (package
+    (name "emacs-sourcemap")
+    (version "0.03")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/syohex/emacs-sourcemap/archive/"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0bmd5l3cx2iyl7vxn84xdhs80b07kpdpfwki28lh5d0kmm5qs6m6"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/syohex/emacs-sourcemap")
+    (synopsis "Sourcemap parser")
+    (description "Sourcemap parser")
+    (license license:gpl3+)))
+
+(define-public emacs-macrostep
+  (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
+    (package
+      (name "emacs-macrostep")
+      (version (git-version "0.9" "1" commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/joddie/macrostep.git")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32
+                  "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
+      (build-system emacs-build-system)
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-before 'check 'remove-test
+             ;; Fails because of requirement ‘/bin/sh’.
+             (lambda _
+               (let ((file "macrostep-test.el"))
+                 (chmod file #o644)
+                 (emacs-batch-edit-file file
+                   `(progn (progn (goto-char (point-min))
+                                  (re-search-forward
+                                   "(ert-deftest macrostep-expand-c-macros")
+                                  (beginning-of-line)
+                                  (kill-sexp))
+                           (basic-save-buffer))))))
+           (add-before 'install 'check
+             (lambda _
+               (invoke "emacs" "--batch" "-L" "."
+                       "-l" "macrostep-test.el"
+                       "-f" "ert-run-tests-batch-and-exit"))))))
+      (home-page "https://github.com/joddie/macrostep")
+      (synopsis "Interactive macro-expander for Emacs")
+      (description "@code{macrostep} is an Emacs minor mode for interactively
+stepping through the expansion of macros in Emacs Lisp source code.  It lets
+you see exactly what happens at each step of the expansion process by
+pretty-printing the expanded forms inline in the source buffer, which is
+temporarily read-only while macro expansions are visible.  You can expand and
+collapse macro forms one step at a time, and evaluate or instrument the
+expansions for debugging with Edebug as normal (but see “Bugs and known
+limitations”, below).  Single-stepping through the expansion is particularly
+useful for debugging macros that expand into another macro form.  These can be
+difficult to debug with Emacs’ built-in macroexpand, which continues expansion
+until the top-level form is no longer a macro call.")
+      (license license:gpl3+))))
+
+(define-public emacs-parent-mode
+  (package
+    (name "emacs-parent-mode")
+    (version "2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/Fanael/parent-mode/archive/"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0gxbl5s1w96v6v55b7aaansgw4sxhzfx9nrsvpk3pfhsibs6yqjd"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/Fanael/parent-mode")
+    (synopsis "Get major mode's parent modes")
+    (description "Get major mode's parent modes")
+    (license license:gpl3+)))
+
+(define-public emacs-lacarte
+  (package
+    (name "emacs-lacarte")
+    (version "0.1")
+    (source (origin
+              (method url-fetch)
+              (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
+              (sha256
+               (base32
+                "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
+    (build-system emacs-build-system)
+    (home-page "https://www.emacswiki.org/emacs/lacarte.el")
+    (synopsis "Execute menu items as commands, with completion")
+    (description "Execute menu items as commands, with completion.")
+    (license license:gpl3)))
+
+(define-public emacs-company-lua
+  (let ((commit "0be8122f3adf57ad27953bf4b03545d6298d3da4"))
+    (package
+      (name "emacs-company-lua")
+      (version (git-version "0.1" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/ptrv/company-lua.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1d9i165apgmwns7b2fd5wcpjpkah3dyj20v5sb8ynvz6qhhr5r9c"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-company" ,emacs-company)
+         ("emacs-s" ,emacs-s)
+         ("emacs-f" ,emacs-f)
+         ("emacs-lua-mode" ,emacs-lua-mode)))
+      (home-page "https://github.com/ptrv/company-lua")
+      (synopsis "Company backend for Lua")
+      (description
+       "This package provides Company backend for Lua programming language.")
+      (license license:gpl3+))))
+
+(define-public emacs-beginend
+  (package
+    (name "emacs-beginend")
+    (version "2.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/DamienCassou/beginend/archive/"
+                           "v" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0z4rbwffh9vxfvcrlvym4p73z7gf72q0b5iv33llbpcpbijknnrq"))))
+    ;; TODO: Run tests.
+    (build-system emacs-build-system)
+    (inputs
+     `(("emacs-undercover" ,emacs-undercover))) ; For tests.
+    (home-page "https://github.com/DamienCassou/beginend")
+    (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
+    (description "@code{beginend} redefines @code{M-<} and @code{M->}
+keybindings for Emacs modes so that point moves to meaningful
+locations.  Redefined keys are still accessible by pressing the same
+key again.")
+    (license license:gpl3+)))
+
+(define-public emacs-mbsync
+  (let ((commit "42077e83ae2db778ce0f8e22f8357b40355526b3")
+        (revision "1"))
+    (package
+      (name "emacs-mbsync")
+      (version (string-append "0.0.1" "-" revision "."
+                              (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/dimitri/mbsync-el.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "0yj93y2mpxlir8x73znlg1slxlv4blm1vjv5h2w3j8lxg8bxvmn6"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/dimitri/mbsync-el")
+      (synopsis "Interface to mbsync for Emacs")
+      (description "This package allows to call the @code{mbsync} from
+within Emacs.")
+      (license license:gpl3+))))
+
+(define-public emacs-ibuffer-projectile
+  (let ((commit "c18ac540ee46cb759fc5df18747f6e8d23563011")
+        (revision "1"))
+    (package
+      (name "emacs-ibuffer-projectile")
+      (version (string-append "0.2" "-" revision "."
+                              (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/purcell/ibuffer-projectile.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "1nd26cwwdpnwj0g4w393rd59klpyr6wqrnyr6scmwb5d06bsm44n"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-projectile" ,emacs-projectile)))
+      (home-page "https://github.com/purcell/ibuffer-projectile")
+      (synopsis "Group ibuffer's list by projectile root")
+      (description "Adds functionality to Emacs @code{ibuffer} for
+grouping buffers by their projectile root directory.")
+      (license license:gpl3+))))
+
+(define-public emacs-helm-mode-manager
+  (package
+    (name "emacs-helm-mode-manager")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/istib/helm-mode-manager/"
+                           "archive/" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0wllj321z16hgrx0ddwzk5wz4mnnx5am7w5nclqclfc5dfdn92wm"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-helm" ,emacs-helm)))
+    (home-page "https://github.com/istib/helm-mode-manager/")
+    (synopsis "Switch and toggle Emacs major and minor modes using Helm")
+    (description "This package provides a Helm interface for toggling Emacs
+major or minor mode.
+
+@itemize
+@item @code{helm-switch-major-mode} list of all major modes
+@item @code{helm-enable-minor-mode} list of all inactive minor modes
+@item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
+@end itemize\n
+
+Hitting @code{RET} enables the mode, @code{C-z} shows the mode
+documentation.")
+    (license license:gpl3+)))
+
+(define-public emacs-hy-mode
+  (package
+    (name "emacs-hy-mode")
+    (version "1.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/hylang/hy-mode/archive/"
+                           "v" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0sbga36zkyhzrzcczsyjzll7b9qsa215pnlw51m4li2irm23jh17"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-dash" ,emacs-dash)
+       ("emacs-s" ,emacs-s)))
+    (home-page "https://github.com/hylang/hy-mode")
+    (synopsis "Major mode for Hylang")
+    (description "This package provides a major mode for Hylang.")
+    (license license:gpl3+)))
+
+(define-public emacs-web-beautify
+  (package
+    (name "emacs-web-beautify")
+    (version "0.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/yasuyk/web-beautify/archive/"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1j57hwid74id4swkx2g0iljfawx0k9c7qjrwqc0mv657x9p78hcs"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/yasuyk/web-beautify")
+    (synopsis "Format HTML, CSS and JavaScript, JSON")
+    (description "This package provides an Emacs functions to format HTML,
+CSS, JavaScript, JSON.")
+    (license license:gpl3+)))
+
+(define-public emacs-helm-shell-history
+  (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
+    (package
+      (name "emacs-helm-shell-history")
+      (version (git-version "0.1" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/yuutayamada/helm-shell-history.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
+      (build-system emacs-build-system)
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-before 'check 'patch-helm-shell-history-file
+             (lambda _
+               (let ((file "helm-shell-history.el"))
+                 (chmod file #o644)
+                 (emacs-substitute-sexps file
+                   ("(defvar helm-shell-history-file"
+                    `(expand-file-name "~/.bash_history"))))
+               #t)))))
+      (home-page "https://github.com/yuutayamada/helm-shell-history")
+      (synopsis "Find shell history with Emacs Helm")
+      (description "This package provides an Emacs Helm interface to search
+throw a shell history.")
+      (license license:gpl3+))))
+
+(define-public emacs-discover-my-major
+  (package
+    (name "emacs-discover-my-major")
+    (version "1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://github.com/steckerhalter/discover-my-major"
+                       "/archive/" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0nah41f92rrl2l405kpqr6iaks11jyclgl4z7ilfymbr4ifmsiyl"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-makey" ,emacs-makey)))
+    (home-page "https://github.com/steckerhalter/discover-my-major")
+    (synopsis "Discover key bindings for the current Emacs major mode")
+    (description "This package provides allows to discover key bindings and
+their meaning for the current Emacs major-mode.")
+    (license license:gpl3+)))
+
+(define-public emacs-org-ref
+  (let ((commit "8c9b5d7efb9f0c1ad5186b8203bdd017f4249129")
+        (revision "1"))
+    (package
+      (name "emacs-org-ref")
+      (version (string-append "1.1.1" "-" revision "."
+                              (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/jkitchin/org-ref.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "1rxz0bjdsayk0slv23i07d9xhj2m7s4hsc81wc2d1cs52dkr5zmz"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-dash" ,emacs-dash)
+         ("emacs-helm" ,emacs-helm)
+         ("emacs-helm-bibtex" ,emacs-helm-bibtex)
+         ("emacs-ivy" ,emacs-ivy)
+         ("emacs-hydra" ,emacs-hydra)
+         ("emacs-key-chord" ,emacs-key-chord)
+         ("emacs-s" ,emacs-s)
+         ("emacs-f" ,emacs-f)
+         ("emacs-pdf-tools" ,emacs-pdf-tools)))
+      (home-page "https://github.com/jkitchin/org-ref")
+      (synopsis "Citations, cross-references and bibliographies in org-mode")
+      (description
+       "Lisp code to setup bibliography, cite, ref and label org-mode links.
+Also sets up reftex and helm for org-mode citations.  The links are
+clickable and do things that are useful.
+
+The default setup uses helm-bibtex.
+
+You should really read org-ref.org in this package for details.")
+      (license license:gpl3+))))
+
+(define-public emacs-add-hooks
+  (package
+    (name "emacs-add-hooks")
+    (version "3.1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/nickmccurdy/add-hooks/archive/"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "03a28gb3298g7pc2qji9hi44p4d99ljp5mpi9cmg42ldv8fl6549"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/nickmccurdy/add-hooks/")
+    (synopsis "Emacs function for setting multiple hooks")
+    (description "This package provides a @code{add-hooks} function tidies up
+duplicate hook and function names further into a single declarative call.")
+    (license license:gpl3+)))
+
+(define-public emacs-fancy-narrow
+  (package
+    (name "emacs-fancy-narrow")
+    (version "0.9.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/Malabarba/fancy-narrow/archive/"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0rf2rnzg82pdqch041yyx3f9ddixffkk9s2ydzg8hwy66sg3385n"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/Malabarba/fancy-narrow/releases")
+    (synopsis "Immitate narrow-to-region with more eye-candy")
+    (description "Unlike narrow-to-region, which completely hides text outside
+the narrowed region, this package simply deemphasizes the text, makes it
+readonly, and makes it unreachable.  This leads to a much more natural
+feeling, where the region stays static (instead of being brutally moved to a
+blank slate) and is clearly highlighted with respect to the rest of the
+buffer.")
+    (license license:gpl2+)))
+
+(define-public emacs-know-your-http-well
+  (package
+    (name "emacs-know-your-http-well")
+    (version "0.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/for-GET/know-your-http-well/archive/"
+             "v" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1y3kwz88awcgwaivlswq0q4g2i02762r23lpwg61bfqy5lrjjqnj"))))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'install-json-files
+           (lambda* (#:key outputs #:allow-other-keys)
+             (for-each (lambda (directory)
+                         (copy-recursively directory
+                                           (string-append
+                                            (assoc-ref outputs "out")
+                                            directory)))
+                       '("js" "json"))))
+         (add-after 'unpack 'chdir-elisp
+           ;; Elisp directory is not in root of the source.
+           (lambda _
+             (chdir "emacs"))))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/for-GET/know-your-http-well")
+    (synopsis "Meaning of HTTP headers codes")
+    (description "Meaning of HTTP headers codes.")
+    (license license:gpl3+)))
+
+(define-public emacs-navi-mode
+  (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
+    (package
+      (name "emacs-navi-mode")
+      (version (git-version "2.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/alphapapa/navi.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-outshine" ,emacs-outshine)
+         ("emacs-outorg" ,emacs-outorg)))
+      (home-page "https://github.com/alphapapa/navi")
+      (synopsis "Emacs major-mode for easy buffer-navigation")
+      (description
+       "This package provides an Emacs major-mode for easy buffer-navigation")
+      (license license:gpl3+))))
+
+(define-public emacs-download-region
+  (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
+        (revision "1"))
+    (package
+      (name "emacs-download-region")
+      (version (string-append "0.0.1" "-" revision "."
+                              (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/zk-phi/download-region.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/zk-phi/download-region")
+      (synopsis "In buffer download manager for Emacs")
+      (description "@code{download-region} provides in buffer
+downloading manager for Emacs.")
+      (license license:gpl3+))))
+
+(define-public emacs-csv-mode
+  (package
+    (name "emacs-csv-mode")
+    (version "1.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://elpa.gnu.org/packages/csv-mode-"
+                           version ".el"))
+       (sha256
+        (base32
+         "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6"))))
+    (build-system emacs-build-system)
+    (home-page "http://elpa.gnu.org/packages/csv-mode.html")
+    (synopsis "Major mode for editing comma or char separated values")
+    (description
+     "This package provides an Emacs CSV mode, a major mode for editing
+records in a generalized CSV (character-separated values) format.")
+    (license license:gpl3+)))
+
+(define-public emacs-helpful
+  (package
+    (name "emacs-helpful")
+    (version "0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/Wilfred/helpful/archive/"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "16dx566qzrjj0bf43lnw7h1qlvgs94brqplamw8kppp2ylr72qs9"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-elisp-refs" ,emacs-elisp-refs)))
+    (home-page "https://github.com/Wilfred/helpful")
+    (synopsis "More contextual information in Emacs help")
+    (description "@code{helpful} is an alternative to the built-in Emacs help
+that provides much more contextual information.
+
+@itemize
+@item Show the source code for interactively defined functions (unlike the
+built-in Help).
+@item Fall back to the raw sexp if no source is available.
+@item Show where a function is being called.
+@item Docstrings will Highlight the summary (the first sentence), include
+cross-references, hide superfluous puncuation.
+@item Show you the properties that have been applied to the current
+symbol.  This provides visibility of features like edebug or byte-code
+optimisation.
+@item Provide a separate @code{helpful-command} function to view interactive
+functions.
+@item Display any keybindings that apply to interactive functions.
+@item Trace, disassemble functions from inside Helpful.  This is discoverable
+and doesn't require memorisation of commands.
+@end itemize\n")
+    (license license:gpl3+)))
+
+(define-public emacs-logview
+  (package
+    (name "emacs-logview")
+    (version "0.9")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/doublep/logview/archive/"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1vd11ppm46ldqsiwhqgw91p34gbjh1y82r9mxcn9r2gj65nvhxcp"))))
+    (propagated-inputs
+     `(("emacs-datetime" ,emacs-datetime)))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/doublep/logview/")
+    (synopsis "Emacs mode for viewing log files")
+    (description "@code{logview} provides an Emacs mode to view log files.")
+    (license license:gpl3+)))
+
+(define-public emacs-suggest
+  (package
+    (name "emacs-suggest")
+    (version "0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/Wilfred/suggest.el/archive/"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1760fm3j19w8xxcawq6s859h86q1rdg69pg9yz48n76kwfk3vlgp"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-loop" ,emacs-loop)
+       ("emacs-dash" ,emacs-dash)
+       ("emacs-s" ,emacs-s)
+       ("emacs-f" ,emacs-f)))
+    (home-page "https://github.com/Wilfred/suggest.el")
+    (synopsis "Suggest Elisp functions that give the output requested")
+    (description "Suggest.el will find functions that give the output
+requested.  It's a great way of exploring list, string and arithmetic
+functions.")
+    (license license:gpl3+)))
+
+(define-public emacs-benchmark-init
+  (package
+    (name "emacs-benchmark-init")
+    (version "1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/dholm/benchmark-init-el/archive/"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0szyqr4nncwz4vd5gww1vz31kf9r2lx25p4d0d09pm35974x53kz"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/dholm/benchmark-init-el")
+    (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
+    (description "@code{benchmark-init} provides a way to keep track of where
+time is being spent during Emacs startup in order to optimize startup time.")
+    (license license:gpl3+)))
+
+(define-public emacs-emms-player-simple-mpv
+  (let ((commit "101d120ccdee1c2c213fd2f0423c858b21649c00")
+        (revision "1"))
+    (package
+      (name "emacs-emms-player-simple-mpv")
+      (version (string-append "0.4.0" "-" revision "."
+                              (string-take commit 7)))
+
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/momomo5717/emms-player-simple-mpv.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1i6rxkm0ra0jbkkwgkwxg3vk5xfl794h1gkgnlpscynz0v94b6ll"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-emms" ,emms)))
+      (home-page "https://github.com/momomo5717/emms-player-simple-mpv")
+      (synopsis "Extension of @file{emms-player-simple.el} for mpv JSON IPC")
+      (description "@code{emms-player-simple-mpv} provides macros and
+functions for defining emms simple players of mpv.")
+      (license license:gpl3+))))
+
+(define-public emacs-magit-org-todos-el
+  (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
+    (package
+      (name "emacs-magit-org-todos-el")
+      (version (git-version "0.1.1" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/danielma/magit-org-todos.el.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/danielma/magit-org-todos.el")
+      (synopsis "Get todo.org into Emacs Magit status")
+      (description "This package allows you to get @file{todo.org} into your
+magit status.
+
+If you have a @file{todo.org} file with @code{TODO} items in the root of your
+repository, @code{magit-org-todos} will create a section in your Magit status
+buffer with each of your todos.")
+      (license license:gpl3+))))
+
+(define-public emacs-f3
+  (package
+    (name "emacs-f3")
+    (version "0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/cosmicexplorer/f3/archive/"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "06b8i1jvklm5k3k90n65f197l1miq1xlxqkqpbppw4h3rhl4y98h"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-helm" ,emacs-helm)))
+    (home-page "https://github.com/cosmicexplorer/f3")
+    (synopsis "Fantastic File Finder for Emacs")
+    (description
+     "The Fantastic File Finder for Emacs.  Find files fast, using helm.")
+    (license license:gpl3+)))
+
+(define-public emacs-dumb-jump
+  (package
+    (name "emacs-dumb-jump")
+    (version "0.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/jacktasia/dumb-jump/archive/"
+                           "v" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "07n0xjgpxjpf3vp9gxchkjpydyj0zm166930as0kwiwkhjlsirsf"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-f" ,emacs-f)
+       ("emacs-s" ,emacs-s)
+       ("emacs-dash" ,emacs-dash)
+       ("emacs-popup" ,emacs-popup)))
+    (home-page "https://github.com/jacktasia/dumb-jump")
+    (synopsis "Jump to definition for multiple languages without configuration")
+    (description "Dumb Jump is an Emacs \"jump to definition\" package with
+support for multiple programming languages that favors \"just working\" over
+speed or accuracy.  This means minimal -- and ideally zero -- configuration
+with absolutely no stored indexes (TAGS) or persistent background processes.
+Dumb Jump performs best with The Silver Searcher `ag` or ripgrep `rg`
+installed.  Dumb Jump requires at least GNU Emacs 24.3. ")
+    (license license:gpl3+)))
+
+(define-public emacs-lice-el
+  (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
+    (package
+      (name "emacs-lice-el")
+      (version (git-version "0.2" "1" commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/buzztaiki/lice-el.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/buzztaiki/lice-el")
+      (synopsis "License and header template for Emacs")
+      (description "@code{lice.el} provides following features:
+
+@itemize
+@item License template management.
+@item File header insertion.
+@end itemize\n")
+      (license license:gpl3+))))
+
+(define-public emacs-academic-phrases
+  (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
+    (package
+      (name "emacs-academic-phrases")
+      (version (git-version "0.1" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/nashamri/academic-phrases.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-dash" ,emacs-dash)
+         ("emacs-s" ,emacs-s)
+         ("emacs-ht" ,emacs-ht)))
+      (home-page "https://github.com/nashamri/academic-phrases")
+      (synopsis "Bypass that mental block when writing your papers")
+      (description
+       "When writing your academic paper, you might get stuck trying to find
+the right phrase that captures your intention.  This package tries to
+alleviate that problem by presenting you with a list of phrases organized by
+the topic or by the paper section that you are writing.  This package has
+around 600 phrases so far.
+
+Using this package is easy, just call @code{academic-phrases} to get a list of
+phrases organized by topic, or call @code{academic-phrases-by-section} to
+browse the phrases by the paper section and fill-in the blanks if required.")
+      (license license:gpl3+))))
+
+(define-public emacs-auto-yasnippet
+  (let ((commit "d1ccfea87312c6dd8cf8501ab5b71b1d3d44d95b"))
+    (package
+      (name "emacs-auto-yasnippet")
+      (version (git-version "0.3.0" "1" commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/abo-abo/auto-yasnippet.git")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32
+                  "1i8k2qiyzd5rq0zplk4xb5nfa5mp0ibxbzwqj6c7877waq7244xk"))))
+      (build-system emacs-build-system)
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-before 'install 'check
+             (lambda _
+               (invoke "emacs" "--batch"
+                       "-l" "auto-yasnippet.el"
+                       "-l" "auto-yasnippet-test.el"
+                       "-f" "ert-run-tests-batch-and-exit"))))))
+      (propagated-inputs
+       `(("emacs-yasnippet" ,emacs-yasnippet)))
+      (home-page "https://github.com/abo-abo/auto-yasnippet/")
+      (synopsis "Quickly create disposable yasnippets")
+      (description "This package provides a hybrid of keyboard macros and
+yasnippet.  You create the snippet on the go, usually to be used just in the
+one place.  It's fast, because you're not leaving the current buffer, and all
+you do is enter the code you'd enter anyway, just placing ~ where you'd like
+yasnippet fields and mirrors to be.")
+      (license license:gpl3+))))
+
+(define-public emacs-highlight-numbers
+  (package
+    (name "emacs-highlight-numbers")
+    (version "0.2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/Fanael/highlight-numbers/archive/"
+             version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "030v5p11d4n0581ncv499l1fqrmfziy756q6378x2bv22ixghqqp"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-parent-mode" ,emacs-parent-mode)))
+    (home-page "https://github.com/Fanael/highlight-numbers")
+    (synopsis "Highlight numbers in source code")
+    (description "@code{highlight-numbers-mode} provides a minor mode for
+syntax highlighting of numeric literals in source code.
+
+It s customizable: it's easy to add or redefine what exactly consitutes a
+\"number\" in given major mode.  See @code{highlight-numbers-modelist}.")
+    (license license:gpl3+)))
+
+(define-public emacs-darkroom
+  (package
+    (name "emacs-darkroom")
+    (version "0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://elpa.gnu.org/packages/darkroom-"
+                                  version ".el"))
+              (sha256
+               (base32
+                "0fif8fm1h7x7g16949shfnaik5f5488clsvkf8bi5izpqp3vi6ak"))))
+    (build-system emacs-build-system)
+    (home-page "https://elpa.gnu.org/packages/darkroom.html")
+    (synopsis "Remove visual distractions and focus on writing")
+    (description "@code{darkroom-mode} makes visual distractions disappear.
+The mode-line is temporarily elided, text is enlarged and margins are adjusted
+so that it's centered on the window.
+
+@code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
+@code{darkroom-mode}, unless the current buffer lives in the sole window of
+the Emacs frame (i.e. all other windows are deleted).  Whenever the frame is
+split to display more windows and more buffers, the buffer exits
+@code{darkroom-mode}.  Whenever they are deleted, the buffer re-enters
+@code{darkroom-mode}.")
+    (license license:gpl3+)))
+
+(define-public emacs-rsw-elisp
+  (package
+    (name "emacs-rsw-elisp")
+    (version "1.0.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/rswgnu/rsw-elisp"
+                                  "/archive/" version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1jnn7xfwl3wxc87v44ccsf1wwp80par3xgcvfb1icd6zchjmlcps"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/rswgnu/rsw-elisp")
+    (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
+    (description "This package improves and replaces the GNU Emacs commands
+that interactively evaluate Emacs Lisp expressions.  The new commands replace
+standard key bindings and are all prefixed with rsw-elisp-.  They work the
+same way as the old commands when called non-interactively; only the
+interactive behavior should be different.")
+    (license license:gpl3+)))
+
+(define-public emacs-default-text-scale
+  (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
+        (revision "1"))
+    (package
+      (name "emacs-default-text-scale")
+      (version (string-append "0.1" "-" revision "."
+                              (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/purcell/default-text-scale")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32
+                  "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/purcell/default-text-scale")
+      (synopsis "Adjust the font size in all Emacs frames")
+      (description "This package provides commands for increasing or
+decreasing the default font size in all GUI Emacs frames.")
+      (license license:gpl3+))))
+
+(define-public emacs-visual-regexp
+  (package
+    (name "emacs-visual-regexp")
+    (version "1.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/benma/visual-regexp.el/archive/"
+                           "v" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1czmhvcivlcdyz7rfm0vd4a3xsgmy4qbvbl6yjxc217wrxqflr92"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/benma/visual-regexp.el/")
+    (synopsis "Regexp command with interactive visual feedback")
+    (description "This package provides an Emacs regexp command with
+interactive visual feedback.")
+    (license license:gpl3+)))
+
+(define-public emacs-faceup
+  (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
+        (revision "1"))
+    (package
+      (name "emacs-faceup")
+      (version (string-append "0.0.1" "-" revision "."
+                              (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Lindydancer/faceup.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/Lindydancer/faceup")
+      (synopsis "Markup language for faces and font-lock regression testing")
+      (description "Emacs is capable of highlighting buffers based on
+language-specific @code{font-lock} rules.  This package makes it possible to
+perform regression test for packages that provide font-lock rules.")
+      (license license:gpl3+))))
+
+(define-public emacs-racket-mode
+  (let ((commit "33877b1bb24faea68842e0396bd5718b84e47451")
+        (revision "1"))
+    (package
+      (name "emacs-racket-mode")
+      (version (string-append "0.0.1" "-" revision "."
+                              (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/greghendershott/racket-mode")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "0681mzwx08zwbh8qg3s26jw1jn4fw2ljp1akxqkhy08sxhafqvb1"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-faceup" ,emacs-faceup)
+         ("emacs-s" ,emacs-s)))
+      (home-page "https://github.com/greghendershott/racket-mode")
+      (synopsis "Major mode for Racket language")
+      (description "@code{racket-mode} provides:
+
+@itemize
+@item Focus on Racket (not various Schemes).
+@item Follow DrRacket concepts where applicable.
+@item Thorough font-lock and indent.
+@end itemize\n")
+      (license license:gpl3+))))
+
+(define-public emacs-grep-context
+  (let ((commit "a17c57e66687a54e195e08afe776bdd60cb6c0a7"))
+    (package
+      (name "emacs-grep-context")
+      (version (git-version "0.1" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/mkcms/grep-context.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "1nqfa6kjzjshww4hnwg1c0vcr90bdjihy3kmixq3c3jkvxg99b62"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-dash" ,emacs-dash)))
+      (home-page "https://github.com/nashamri/academic-phrases")
+      (synopsis "Increase context in compilation and grep buffers")
+      (description
+       "This package provides an Emacs package for more context in
+compilation/grep buffers.  Works with @code{wgrep}, @code{ack}, @code{ag},
+@code{ivy}.")
+      (license license:gpl3+))))
+
+(define-public emacs-helm-firefox
+  (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
+        (revision "1"))
+    (package
+      (name "emacs-helm-firefox")
+      (version (string-append "0.0.1" "-" revision "."
+                              (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/emacs-helm/helm-firefox.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/emacs-helm/helm-firefox")
+      (synopsis "Display firefox bookmarks with Emacs Helm interface")
+      (description "Display firefox bookmarks with Emacs Helm interface")
+      (license license:gpl3+))))
+
+(define-public emacs-interactive-align
+  (package
+    (name "emacs-interactive-align")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/mkcms/interactive-align/"
+                           "archive/" "v" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0sibpgb4lp6yy3pziak8f3hz4b28yj0dqy2nzh51z3d0b63h528m"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/mkcms/interactive-align/")
+    (synopsis "Interactive align-regexp command in Emacs")
+    (description "Interactive align-regexp command in Emacs")
+    (license license:gpl3+)))
+
+(define-public emacs-shift-number
+  (package
+    (name "emacs-shift-number")
+    (version "0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/alezost/shift-number.el"
+                           "/archive/" "v" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1g79m0hqn9jgpm565vvh8pdfzndc4vw7xisnh5qysj55qfg8cb1x"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/alezost/shift-number.el")
+    (synopsis "Increase or decrease the number at point")
+    (description "@code{emacs-shift-number} provides commands
+@code{shift-number-up} to increase and @code{shift-number-down} to
+decrease the number at point.")
+    (license license:gpl3+)))
+
+(define-public emacs-highlight-defined
+  (package
+    (name "emacs-highlight-defined")
+    (version "0.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/Fanael/highlight-defined/archive/"
+             version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1ryd66989b5byqdw8jmjrjf0c78iiz72wibld750skcnj5h5h506"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/Fanael/highlight-defined")
+    (synopsis "Syntax highlighting of known Elisp symbols")
+    (description "Minor mode providing syntax highlighting of known Emacs Lisp
+symbols.  Currently the code distinguishes Lisp functions, built-in functions,
+macros, faces and variables.  To enable call @code{highlight-defined-mode}. ")
+    (license license:gpl3+)))
+
+(define-public emacs-parinfer-mode
+  (package
+    (name "emacs-parinfer-mode")
+    (version "0.4.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/DogLooksGood/parinfer-mode/archive/"
+                           "v" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "06ba9qi59sm9ih9m38fbr8kj4qkvrm58n0c0ngfjz60gnr9x9pcv"))))
+    (propagated-inputs
+     `(("emacs-dash" ,emacs-dash)
+       ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
+       ("emacs-company" ,emacs-company)))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/DogLooksGood/parinfer-mode/")
+    (synopsis "Lisp structure editing mode")
+    (description "@code{parinfer-mode} is a proof-of-concept editor
+mode for Lisp programming languages.  It will infer some changes to
+keep Parens and Indentation inline with one another.")
+    (license license:gpl3+)))
+
+(define-public emacs-helm-eww
+  (let ((commit "5d6c2c66d4694415ef8a16a6d38a37aeae76c5ac"))
+    (package
+      (name "emacs-helm-eww")
+      (version (git-version "0.1" "1" 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
+                  "1x442ylrr7cx587s4rvfh187h3qbkr79qp95qr57a4igxkkw6183"))))
+      (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+))))
+
+(define-public emacs-stumpwm-mode
+  (let ((commit "8fbe071d2c6c040794060a354eb377218dc10b35")
+        (revision "1"))
+    (package
+      (name "emacs-stumpwm-mode")
+      (version (string-append "0.0.1-" revision "."
+                              (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/stumpwm/stumpwm-contrib.git")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32
+                  "1dfwsvz1c8w6j4jp0kzaz78ml3f5dp0a5pvf090kwpbpg176r7iq"))))
+      (build-system emacs-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'chdir-elisp
+             ;; Elisp directory is not in root of the source.
+             (lambda _
+               (chdir "util/swm-emacs"))))))
+      (home-page "https://github.com/stumpwm/stumpwm-contrib")
+      (synopsis "Emacs minor-mode for Stumpwm")
+      (description "Emacs minor-mode for Stumpwm")
+      (license license:gpl3+))))
+
+(define-public emacs-irfc
+  (package
+    (name "emacs-irfc")
+    (version "20130824.507")
+    (source
+     (origin
+       (method url-fetch)
+       (uri "https://www.emacswiki.org/emacs/download/irfc.el")
+       (file-name (string-append "irfc-" version ".el"))
+       (sha256
+        (base32
+         "197ybqwbj8qjh2p9pkf5mvqnrkpcgmv8c5s2gvl6msyrabk0mnca"))))
+    (build-system emacs-build-system)
+    (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
+    (synopsis "Interface for IETF RFC document")
+    (description
+     "This package provides an Emacs interface for IETF RFC document.")
+    (license license:gpl3+)))
+
+(define-public emacs-ido-vertical-mode
+  (package
+    (name "emacs-ido-vertical-mode")
+    (version "0.1.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/creichert/ido-vertical-mode.el/archive/"
+             "v" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0dprdxq8wvqd45dinwj92k0kixr07c8xvspa6i613mjcpxgwjg53"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/creichert/ido-vertical-mode.el")
+    (synopsis "Makes ido-mode display vertically")
+    (description "Makes ido-mode display prospects vertically.")
+    (license license:gpl3+)))
+
+(define-public emacs-wordgen
+  (package
+    (name "emacs-wordgen")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/Fanael/wordgen.el/archive/"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1h2iyixdm49h53pwj9ics9gb9h3g6wa4hainpnjg6mfarf49jkmg"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/Fanael/wordgen.el")
+    (synopsis "Random word generator")
+    (description "This package provides functions to generate random words
+using user-provided rules.")
+    (license license:gpl3+)))
+
+(define-public emacs-on-screen
+  (package
+    (name "emacs-on-screen")
+    (version "1.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "http://elpa.gnu.org/packages/on-screen-" version ".el"))
+       (file-name (string-append name "-" version ".el"))
+       (sha256
+        (base32
+         "15d18mjgv1pnwl6kf3pr5w64q1322p1l1qlfvnckglwmzy5sl2qv"))))
+    (build-system emacs-build-system)
+    (home-page
+     "https://github.com/michael-heerdegen/on-screen.el")
+    (synopsis "Guide your eyes while scrolling")
+    (description
+     "Scrolling can be distracting because your eyes may lose
+orientation.  This library implements a minor mode that highlights
+the previously visible buffer part after each scroll.")
+    (license license:gpl3+)))
+
+(define-public emacs-highlight-escape-sequences
+  (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
+        (revision "1"))
+    (package
+      (name "emacs-highlight-escape-sequences")
+      (version (string-append "0.0.1" "-" revision "."
+                              (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/dgutov/highlight-escape-sequences.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/dgutov/highlight-escape-sequences")
+      (synopsis "Highlight escape sequences in Emacs")
+      (description "@code{highlight-escape-sequences} provides an
+Emacs minor mode to escape sequences in code.")
+      (license license:gpl3+))))
+
+(define-public emacs-dashboard
+  (package
+    (name "emacs-dashboard")
+    (version "1.2.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/rakanalh/emacs-dashboard/archive/"
+             version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1738lmbgq6gk24hcwic0qjyajr21l5xzhya4pv58dw1bhd6vxv9g"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-page-break-lines" ,emacs-page-break-lines)))
+    (arguments '(#:include '("\\.el$" "\\.txt$" "\\.png$")))
+    (home-page "https://github.com/rakanalh/emacs-dashboard")
+    (synopsis "Startup screen extracted from Spacemacs")
+    (description "This package provides an extensible Emacs dashboard, with
+sections for bookmarks, projectil projects, org-agenda and more. ")
+    (license license:gpl3+)))
+
+(define-public emacs-slime-company
+  (package
+    (name "emacs-slime-company")
+    (version "1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/anwyn/slime-company/archive/"
+                           "v" version ".tar.gz"))
+       (sha256
+        (base32
+         "1myl79pxj501xfr5qc5a24qddsn2l5iaamg7rf7fpny7mr9v70ar"))
+       (file-name (string-append name "-" version ".tar.gz"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-slime" ,emacs-slime)
+       ("emacs-company" ,emacs-company)))
+    (home-page "https://company-mode.github.io")
+    (synopsis "SLIME completion backend for @code{company-mode}")
+    (description
+     "This is a backend implementation for the completion package
+@code{company-mode} which supports the normal and the fuzzy completion
+modes of SLIME.")
+    (license license:gpl3+)))
+
+(define-public emacs-sml-mode
+  (package
+    (name "emacs-sml-mode")
+    (version "6.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://elpa.gnu.org/packages/sml-mode-"
+                           version ".el"))
+       (sha256
+        (base32
+         "105fcrz5qp95f2n3fdm3awr6z58sbrjihjss6qnrg4lz2ggbc328"))))
+    (build-system emacs-build-system)
+    (home-page "http://elpa.gnu.org/packages/sml-mode.html")
+    (synopsis "Major mode for editing (Standard) ML")
+    (description "SML-MODE is a major Emacs mode for editing Standard ML.
+It provides syntax highlighting and automatic indentation and
+comes with sml-proc which allows interaction with an inferior SML
+interactive loop.")
+    (license license:gpl3+)))
+
+(define-public emacs-eros
+  (let ((commit "a42e45c9b2397156c684330b0fc90ee0eba773f5")
+        (revision "1"))
+    (package
+      (name "emacs-eros")
+      (version (string-append "0.0.1" "-" revision "."
+                              (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/xiongtx/eros.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "0whlsq90v13fz69k3wjrwcwb9gkpfxqjd75mg3nrp85j9nwhb5i4"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/xiongtx/eros")
+      (synopsis "Evaluation result overlays")
+      (description "@code{eros} provides evaluation result overlays.")
+      (license license:gpl3+))))
+
+(define-public emacs-stickyfunc-enhance
+  (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
+        (revision "1"))
+    (package
+      (name "emacs-stickyfunc-enhance")
+      (version "0.1")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
+      (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
+      (description
+       "@code{semantic-stickyfunc-mode} shows the function point is currently
+in at the first line of the current buffer.  This is useful when you have a
+very long function that spreads more than a screen, and you don't have to
+scroll up to read the function name and then scroll down to original position.")
+      (license license:gpl3+))))
+
+(define-public emacs-git-auto-commit-mode
+  (package
+    (name "emacs-git-auto-commit-mode")
+    (version "4.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/ryuslash/git-auto-commit-mode/archive/"
+             version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "04avxmalsl3b7zi2vipfw9rb4wrwysnipsbch96skviql9axk870"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/ryuslash/git-auto-commit-mode")
+    (synopsis "Emacs Minor mode to automatically commit and push")
+    (description "@code{git-auto-commit-mode} is an Emacs minor mode that
+tries to commit changes to a file after every save.
+
+When @code{gac-automatically-push-p} is non-nil, it also tries to push to
+the current upstream.")
+    (license license:gpl3+)))
+
+(define-public emacs-company-restclient
+  (package
+    (name "emacs-company-restclient")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/iquiw/company-restclient/archive/"
+             "v" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1kr3f0wgqlk7r171bvb2kinv7fanwj2md01wdpx04qkgwcr1as00"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-company" ,emacs-company)
+       ("emacs-know-your-http-well" ,emacs-know-your-http-well)
+       ("emacs-restclient" ,emacs-restclient)))
+    (home-page "https://github.com/iquiw/company-restclient")
+    (synopsis "Company-mode completion back-end for restclient-mode")
+    (description "@code{company-mode} back-end for
+@code{restclient-mode}.
+
+It provides auto-completion for HTTP methods and headers in
+@code{restclient-mode}.  Completion source is given by
+@code{know-your-http-well}.")
+    (license license:gpl3+)))
+
+(define-public emacs-noflet
+  (let ((version "20170629")
+        (revision "1")
+        (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
+    (package
+      (name "emacs-noflet")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/nicferrier/emacs-noflet")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
+      (build-system emacs-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'require-dash
+             ;; noflet.el uses -map from dash, but (require 'dash) is
+             ;; missing. So, add it.
+             (lambda _
+               (substitute* "noflet.el"
+                 ((";;; Code:") ";;; Code:\n(require 'dash)"))
+               #t)))))
+      (propagated-inputs
+       `(("emacs-dash" ,emacs-dash)))
+      (home-page "https://github.com/nicferrier/emacs-noflet")
+      (synopsis "Locally override functions")
+      (description "@code{emacs-noflet} let's you locally override functions,
+in the manner of @command{flet}, but with access to the original function
+through the symbol: @command{this-fn}.")
+      (license license:gpl3+))))
+
+(define-public emacs-dumb-jump
+  (package
+    (name "emacs-dumb-jump")
+    (version "0.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/jacktasia/dumb-jump/archive/v"
+             version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "07n0xjgpxjpf3vp9gxchkjpydyj0zm166930as0kwiwkhjlsirsf"))))
+    (build-system emacs-build-system)
+    (arguments
+     `(#:tests? #f ; FIXME: Tests freeze when run.
+       #:test-command '("ert-runner")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'set-shell
+           (lambda _
+             ;; Setting the SHELL environment variable is required for the
+             ;; tests to find sh.
+             (setenv "SHELL" (which "sh"))
+             #t)))))
+    (native-inputs
+     `(("emacs-el-mock" ,emacs-el-mock)
+       ("emacs-noflet" ,emacs-noflet)
+       ("emacs-undercover" ,emacs-undercover)
+       ("ert-runner" ,ert-runner)))
+    (propagated-inputs
+     `(("emacs-f" ,emacs-f)
+       ("emacs-popup" ,emacs-popup)))
+    (home-page "https://github.com/jacktasia/dumb-jump")
+    (synopsis "Jump to definition for multiple languages without configuration")
+    (description "Dumb Jump is an Emacs \"jump to definition\" package with
+support for multiple programming languages that favors \"just working\" over
+speed or accuracy.  This means minimal --- and ideally zero --- configuration
+with absolutely no stored indexes (tags) or persistent background processes.
+Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
+@command{rg} installed.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 7943d51cf4..7a11eb33ca 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -1046,7 +1046,7 @@ emulation community.  It provides highly accurate emulation.")
 (define-public retroarch
   (package
     (name "retroarch")
-    (version "1.7.2")
+    (version "1.7.3")
     (source
      (origin
        (method url-fetch)
@@ -1054,7 +1054,7 @@ emulation community.  It provides highly accurate emulation.")
                            version ".tar.gz"))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1y9fakr41h6xpddpkj12mcw1kgldvy76nzvxm5jk5v7iyiks4c6k"))))
+        (base32 "1si78dbwbsq4i0r42q94nmlpaxdyqch113nxavdprf4vc1224356"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f                      ; no tests
@@ -1088,6 +1088,7 @@ emulation community.  It provides highly accurate emulation.")
        ("openal" ,openal)
        ("pulseaudio" ,pulseaudio)
        ("python" ,python)
+       ("qtbase" ,qtbase)
        ("sdl" ,sdl2)
        ("udev" ,eudev)
        ("vulkan-icd-loader" ,vulkan-icd-loader)
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index ed0239a613..13d24997ed 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -1082,14 +1082,14 @@ bindings for Python, Java, OCaml and more.")
 (define-public radare2
   (package
     (name "radare2")
-    (version "1.6.0")
+    (version "2.5.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://radare.mikelloc.com/get/" version "/"
                                   name "-" version ".tar.gz"))
               (sha256
                (base32
-                "16ggsk40zz6hyvclvqj1r4bh4hb78jf0d6ppry1jk4r0j30wm7cm"))
+                "17h4ba5qqahfi8mi4x2dcvq87cqpir5v2dlaqbvmay6vby4zh4v7"))
               (modules '((guix build utils)))
               (snippet
                 '(begin
diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm
index ef2be9ad41..ed249df97f 100644
--- a/gnu/packages/enlightenment.scm
+++ b/gnu/packages/enlightenment.scm
@@ -262,8 +262,7 @@ Libraries with some extra bells and whistles.")
                 "16zydv7z94aw3rywmb9gr8ya85k7b75h22wng95lfx1x0y1yb0ad"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:configure-flags '("--enable-mount-eeze")
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-before 'configure 'set-system-actions
            (lambda* (#:key inputs #:allow-other-keys)
@@ -275,6 +274,8 @@ Libraries with some extra bells and whistles.")
                  (("/usr/share/X11/xkb/rules/xorg.lst")
                   (string-append xkeyboard
                                  "/share/X11/xkb/rules/base.lst")))
+               (substitute* "src/modules/everything/evry_plug_apps.c"
+                 (("/usr/bin/") ""))
                (substitute* "configure"
                  (("/bin/mount") (string-append utils "/bin/mount"))
                  (("/bin/umount") (string-append utils "/bin/umount"))
diff --git a/gnu/packages/freeipmi.scm b/gnu/packages/freeipmi.scm
index 77400d51f3..523f9e6334 100644
--- a/gnu/packages/freeipmi.scm
+++ b/gnu/packages/freeipmi.scm
@@ -27,14 +27,14 @@
 (define-public freeipmi
   (package
     (name "freeipmi")
-    (version "1.6.1")
+    (version "1.6.2")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/freeipmi/freeipmi-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "0jdm1nwsnkj0nzjmcqprmjk25449mhjj25khwzpq3mpjw440wmd2"))))
+               "0jhjf21gn1m9lhjsc1ard9zymq25mk7rxcyygjfxgy0vb4j36l9i"))))
     (build-system gnu-build-system)
     (inputs
      `(("libgcrypt" ,libgcrypt)))
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 3ff27b4a1b..61943e8ed5 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -233,10 +233,19 @@ PCM data.")
                (base32
                 "13j1m92zhxwkaaja3lg5x0h0b28mrrawdzk9d3hd19031akfxwb3"))))
     (build-system gnu-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (add-before 'build 'no-Werror
+                    (lambda _
+                      ;; Don't abort builds due to things like GLib
+                      ;; deprecation warnings.
+                      (substitute* (find-files "." "^Makefile\\.in$")
+                        (("-Werror") ""))
+                      #t)))))
     (native-inputs `(("pkgconfig" ,pkg-config)))
     (inputs `(("bdb" ,bdb)
               ("glib" ,glib)
-              ("guile" ,guile-2.0)
+              ("guile" ,guile-2.2)
               ("libmicrohttpd" ,libmicrohttpd)
               ("ncurses" ,ncurses)
               ("sdl" ,sdl)
@@ -541,22 +550,15 @@ archive on a per-file basis.")
 (define-public love
   (package
     (name "love")
-    (version "0.10.2")
+    (version "11.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://bitbucket.org/rude/love/downloads/"
                                  "love-" version "-linux-src.tar.gz"))
              (sha256
               (base32
-               "11x346pw0gqad8nmkmywzx4xpcbfc3dslbrdw5x94n1i25mk0sxj"))
-             (modules '((guix build utils)))
-             (snippet
-              '(begin
-                 ;; Build with luajit 2.1.0-beta3.  Fixed in love 0.11.
-                 ;; See <https://bitbucket.org/rude/love/issues/1277>.
-                 (substitute* "src/libraries/luasocket/libluasocket/lua.h"
-                   (("> 501") ">= 501"))
-                 #t))))
+               "1pkwiszmjs0xrwk0wqbc5cp9108b1y8gwsid0gqk1s0x09q9lpmw"))
+             (modules '((guix build utils)))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index b62d679a91..f5d5bb5172 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -777,90 +777,110 @@ utilizing the art assets from the @code{SuperTux} project.")
                    license:gpl3+))))
 
 (define-public roguebox-adventures
-  (let ((commit "19a2c340b34d5b4e7cc89118c7aedc058babbd93")
-        (revision "1"))
-      (package
-        (name "roguebox-adventures")
-        (version (git-version "2.1.2" revision commit))
-        (source
-         (origin
-           (method git-fetch)
-           (uri
-            (git-reference
-             (url "https://git.postactiv.com/themightyglider/RogueBoxAdventures.git")
-                 (commit commit)))
-           (file-name (git-file-name name version))
-           (sha256
-            (base32
-             "0afmg8fjdcs3sqdp5rc7irgr7riil8jwysfjn1imfxslf1wcx5ah"))))
-        (build-system python-build-system)
-        (arguments
-         '(#:tests? #f ; no check target
-           #:phases
-           (modify-phases %standard-phases
-             ;; no setup.py script
-             (replace 'build
-               (lambda* (#:key outputs #:allow-other-keys)
-                 (let* ((out (assoc-ref outputs "out"))
-                        (data (string-append
-                               out "/share/games/roguebox-adventures")))
-                   ;; Use the correct data directory.
-                   (substitute* '("main.py" "LIB/getch.py" "LIB/getch_gcwz.py")
-                     (("basic_path + os\\.sep + 'DATA'")
-                      (string-append "'" data "'"))
-                     (("^basic_path.*$")
-                      (string-append "basic_path ='" data "'\n")))
-                   (substitute* "LIB/gra_files.py"
-                     (("basic_path = b_path\\.replace\\('/LIB',''\\)")
-                      (string-append "basic_path ='" data "'\n")))
-
-                   ;; The game must save in the user's home directory because
-                   ;; the store is read-only.
-                   (substitute* "main.py"
-                     (("home_save = False") "home_save = True")
-                     (("'icon_small.png'")
-                      (string-append "'" data "/icon_small.png'"))))
-                 #t))
-             (replace 'install
-               (lambda* (#:key outputs #:allow-other-keys)
-                 (let* ((out (assoc-ref outputs "out"))
-                        (bin (string-append out "/bin"))
-                        (data (string-append
-                               out "/share/games/roguebox-adventures"))
-                        (doc (string-append
-                              out "/share/doc/roguebox-adventures")))
-                   (mkdir-p bin)
-                   (mkdir-p doc)
-                   (copy-file "main.py"
-                              (string-append bin "/roguebox-adventures"))
-                   (chmod (string-append bin "/roguebox-adventures") #o555)
-
-                   (for-each (lambda (file)
-                               (copy-recursively file
-                                                 (string-append data "/" file)))
-                             '("AUDIO" "FONT" "GRAPHIC" "LIB" "LICENSE"
-                               "icon_big.png" "icon_small.png"))
-
-                   (copy-recursively "DOC" doc)
-
-                   (wrap-program (string-append bin "/roguebox-adventures")
-                     `("PYTHONPATH" ":" prefix (,(string-append data "/LIB")))))
-                 #t)))))
-        (inputs
-         `(("python-pygame" ,python-pygame)
-           ("python-tmx" ,python-tmx)))
-        (home-page "https://rogueboxadventures.tuxfamily.org")
-        (synopsis "A classical roguelike/sandbox game")
-        (description
-         "RogueBox Adventures is a graphical roguelike with strong influences
+  (package
+    (name "roguebox-adventures")
+    (version "2.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "http://download.tuxfamily.org/rba/RogueBoxAdventures_v"
+             (string-join (string-split version #\.) "_") "_Source.zip"))
+       (file-name (string-append name "-" version ".zip"))
+       (sha256
+        (base32
+         "0kmzdgnik8fsf3bg55546l77p3mfxn2awkzfzzdn20n82rd2babw"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f ; no check target
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'unpack
+           (lambda* (#:key source #:allow-other-keys)
+             (and (invoke "unzip" source)
+                  ;; The actual source is buried a few directories deep.
+                  (chdir (string-append "RogueBoxAdventures_v"
+                                        (string-join
+                                         (string-split ,version #\.) "_")
+                                        "_Source")))))
+         ;; no setup.py script
+         (replace 'build
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (data (string-append
+                           out "/share/games/roguebox-adventures")))
+               ;; Use the correct data directory.
+               (substitute* '("main.py" "LIB/getch.py" "LIB/getch_gcwz.py")
+                 (("basic_path + os\\.sep + 'DATA'")
+                  (string-append "'" data "'"))
+                 (("^basic_path.*$")
+                  (string-append "basic_path ='" data "'\n")))
+               (substitute* "LIB/gra_files.py"
+                 (("basic_path = b_path\\.replace\\('/LIB',''\\)")
+                  (string-append "basic_path ='" data "'\n")))
+
+               ;; The game must save in the user's home directory because
+               ;; the store is read-only.
+               (substitute* "main.py"
+                 (("home_save = False") "home_save = True")
+                 (("'icon_small.png'")
+                  (string-append "'" data "/icon_small.png'"))))
+             #t))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (roguebox-adventures
+                     (string-append bin "/roguebox-adventures"))
+                    (data (string-append
+                           out "/share/games/roguebox-adventures"))
+                    (lib (string-append data "/LIB"))
+                    (doc (string-append
+                          out "/share/doc/roguebox-adventures")))
+               (mkdir-p bin)
+               (mkdir-p doc)
+
+               (for-each (lambda (file)
+                           (copy-recursively file
+                                             (string-append data "/" file)))
+                         '("AUDIO" "FONT" "GRAPHIC" "LIB" "LICENSE"
+                           "icon_big.png" "icon_small.png"))
+               (for-each (lambda (file)
+                           (chmod file #o555)
+                           (install-file file lib))
+                         '("main.py" "run.py"))
+
+               (copy-recursively "DOC" doc)
+
+               (call-with-output-file
+                   roguebox-adventures
+                 (lambda (p)
+                   (format p "\
+#!~a
+export PYTHONPATH=~a/LIB:~a
+exec -a \"~a\" ~a \"$@\"\n"
+                           (which "bash") data (getenv "PYTHONPATH")
+                           (which "python3")
+                           (string-append lib "/main.py"))))
+               (chmod roguebox-adventures #o555))
+             #t)))))
+    (native-inputs
+     `(("unzip" ,unzip)))
+    (inputs
+     `(("python-pygame" ,python-pygame)
+       ("python-tmx" ,python-tmx)))
+    (home-page "https://rogueboxadventures.tuxfamily.org")
+    (synopsis "A classical roguelike/sandbox game")
+    (description
+     "RogueBox Adventures is a graphical roguelike with strong influences
 from sandbox games like Minecraft or Terraria.  The main idea of RogueBox
 Adventures is to offer the player a kind of roguelike toy-world.  This world
 can be explored and changed freely.")
-        ;; The GPL3+ is for code, the rest are for art.
-        (license (list license:cc0
-                       license:cc-by3.0
-                       license:gpl3+
-                       license:silofl1.1)))))
+    ;; The GPL3+ is for code, the rest are for art.
+    (license (list license:cc0
+                   license:cc-by3.0
+                   license:gpl3+
+                   license:silofl1.1))))
 
 (define-public xshogi
   (package
diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index 2483885c95..f2e020b560 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,6 +29,7 @@
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
@@ -39,12 +41,13 @@
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages web)
   #:use-module (gnu packages xorg))
 
 (define-public babl
   (package
     (name "babl")
-    (version "0.1.40")
+    (version "0.1.46")
     (source (origin
               (method url-fetch)
               (uri (list (string-append "https://download.gimp.org/pub/babl/"
@@ -58,7 +61,7 @@
                                         "/babl-" version ".tar.bz2")))
               (sha256
                (base32
-                "08cdl6rcfvkhqsnhb214xzr0wbrv0956xzlrzqxcb1k1madgjanh"))))
+                "0nwyhvfca6m35wjcccvwca7fcihzgdfyc012qi703y5d3cxl1hmv"))))
     (build-system gnu-build-system)
     (home-page "http://gegl.org/babl/")
     (synopsis "Image pixel format conversion library")
@@ -75,43 +78,25 @@ provided, as well as a framework to add new color models and data types.")
 (define-public gegl
   (package
     (name "gegl")
-    (version "0.2.0")
+    (version "0.4.0")
     (source (origin
               (method url-fetch)
-              (uri (list (string-append "http://download.gimp.org/pub/gegl/"
+              (uri (list (string-append "https://download.gimp.org/pub/gegl/"
                                         (string-take version 3)
                                         "/" name "-" version ".tar.bz2")))
               (sha256
                (base32
-                "09nlv06li9nrn74ifpm7223mxpg0s7cii702z72cpbwrjh6nlbnz"))
-              (patches (search-patches "gegl-CVE-2012-4433.patch"))))
+                "1ighk4z8nlqrzyj8w97s140hzj59564l3xv6fpzbr97m1zx2nkfh"))))
     (build-system gnu-build-system)
     (arguments
-     '(;; More than just the one test disabled below now fails; disable them
-       ;; all according to the rationale given below.
-       #:tests? #f
-       #:configure-flags '("LDFLAGS=-lm")
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'pre-build
-           (lambda _
-             ;; This test program seems to crash on exit. Specifically, whilst
-             ;; g_object_unreffing bufferA and bufferB - This seems to be a bug
-             ;; in the destructor.  This is just a test program so will not have
-             ;; any wider effect, although might be hiding another problem.
-             ;; According to advice received on irc.gimp.org#gegl although 0.2.0
-             ;; is the latest released version, any bug reports against it will
-             ;; be ignored.  So we are on our own.
-             (substitute* "tools/img_cmp.c"
-               (("g_object_unref \\(buffer.\\);") ""))
-
-             (substitute* "tests/compositions/Makefile"
-               (("/bin/sh") (which "sh")))
-             #t)))))
-    (inputs
+     '(#:configure-flags '("LDFLAGS=-lm")))
+    ;; These are propagated to satisfy 'gegl-0.4.pc'.
+    (propagated-inputs
      `(("babl" ,babl)
        ("glib" ,glib)
-       ("cairo" ,cairo)
+       ("json-glib" ,json-glib)))
+    (inputs
+     `(("cairo" ,cairo)
        ("pango" ,pango)
        ("libpng" ,libpng)
        ("libjpeg" ,libjpeg-8)))
@@ -131,23 +116,18 @@ buffers.")
 (define-public gimp
   (package
     (name "gimp")
-    (version "2.8.22")
+    (version "2.10.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://download.gimp.org/pub/gimp/v"
+              (uri (string-append "https://download.gimp.org/pub/gimp/v"
                                   (version-major+minor version)
                                   "/gimp-" version ".tar.bz2"))
-              (patches (search-patches "gimp-CVE-2017-17784.patch"
-                                       "gimp-CVE-2017-17785.patch"
-                                       "gimp-CVE-2017-17786.patch"
-                                       "gimp-CVE-2017-17787.patch"
-                                       "gimp-CVE-2017-17789.patch"))
               (sha256
                (base32
-                "12k3lp938qdc9cqj29scg55f3bb8iav2fysd29w0s49bqmfa71wi"))))
+                "1qkxaigbfkx26xym5nzrgfrmn97cbnhn63v1saaha2nbi3xrdk3z"))))
     (build-system gnu-build-system)
     (outputs '("out"
-               "doc"))                            ;5 MiB of gtk-doc HTML
+               "doc"))                            ;9 MiB of gtk-doc HTML
     (arguments
      '(#:configure-flags (list (string-append "--with-html-dir="
                                               (assoc-ref %outputs "doc")
@@ -171,21 +151,27 @@ buffers.")
     (inputs
      `(("babl" ,babl)
        ("glib" ,glib)
+       ("glib-networking" ,glib-networking)
        ("libtiff" ,libtiff)
        ("libjpeg" ,libjpeg-8)
        ("atk" ,atk)
+       ("gexiv2" ,gexiv2)
        ("gtk+" ,gtk+-2)
+       ("libmypaint" ,libmypaint)
+       ("mypaint-brushes" ,mypaint-brushes)
        ("exif" ,libexif)                ; optional, EXIF + XMP support
        ("lcms" ,lcms)                   ; optional, color management
        ("librsvg" ,librsvg)             ; optional, SVG support
        ("poppler" ,poppler)             ; optional, PDF support
+       ("poppler-data" ,poppler-data)
        ("python" ,python-2)             ; optional, Python support
        ("python2-pygtk" ,python2-pygtk) ; optional, Python support
        ("gegl" ,gegl)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("glib:bin" ,glib "bin") ; for glib-compile-resources and gdbus-codegen
+       ("pkg-config" ,pkg-config)
        ("intltool" ,intltool)))
-    (home-page "http://gimp.org")
+    (home-page "https://www.gimp.org")
     (synopsis "GNU Image Manipulation Program")
     (description
      "GIMP is an application for image manipulation tasks such as photo
@@ -243,3 +229,58 @@ an image, allowing you to work with the transformed image inside GIMP.  You
 can draw or apply filters in fourier space and get the modified image with an
 inverse fourier transform.")
     (license license:gpl3+)))
+
+(define-public libmypaint
+  (package
+    (name "libmypaint")
+    (version "1.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/mypaint/libmypaint/"
+                                  "releases/download/v" version "/libmypaint-"
+                                  version ".tar.xz"))
+              (sha256
+               (base32
+                "0wd6jk69vmhsq1mdw96v0fh7b28n3glkr5ca466zcq7agzaxj1va"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    ;; As needed by 'libmypaint.pc'.
+    (propagated-inputs
+     `(("json-c" ,json-c)
+       ("gobject-introspection" ,gobject-introspection)))
+    (inputs
+     `(("glib" ,glib)))
+    (synopsis "Artistic brushes library")
+    (description "Libmypaint, also called \"brushlib\", is a library for making
+brushstrokes which is used by MyPaint and GIMP.")
+    (home-page "http://mypaint.org")
+    (license license:isc)))
+
+(define-public mypaint-brushes
+  (package
+    (name "mypaint-brushes")
+    (version "1.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/Jehan/mypaint-brushes/"
+                                  "archive/v" version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "055j2rgkav2024zl6y5hxb2ra0vbx58607d6sz7ml2351r1bcjvh"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'bootstrap
+           (lambda _ (invoke "sh" "./autogen.sh"))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)))
+    (synopsis "Default brushes for MyPaint")
+    (description "This package provides the default set of brushes for
+MyPaint.")
+    (home-page "https://github.com/Jehan/mypaint-brushes")
+    (license license:cc0)))
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index f5f8320fc5..503308ac16 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -55,7 +55,8 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils)
-  #:use-module (ice-9 match))
+  #:use-module (ice-9 match)
+  #:use-module ((srfi srfi-1) #:hide (zip)))
 
 (define-public glu
   (package
@@ -211,7 +212,8 @@ also known as DXTn or DXTC) for Mesa.")
     (package
       (inherit libva)
       (name "libva-without-mesa")
-      (inputs (alist-delete "mesa" (package-inputs libva)))
+      (inputs `(,@(fold alist-delete (package-inputs libva)
+                        '("mesa" "wayland"))))
       (arguments
        (strip-keyword-arguments
         '(#:make-flags)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 319c2e6fd0..2f2124518a 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -29,6 +29,7 @@
 ;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
 ;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley@openmailbox.org>
 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -146,6 +147,7 @@
   #:use-module (gnu packages virtualization)
   #:use-module (gnu packages vpn)
   #:use-module (gnu packages xorg)
+  #:use-module (ice-9 match)
   #:use-module (srfi srfi-1))
 
 (define-public brasero
@@ -5815,7 +5817,7 @@ files.")
 (define-public baobab
   (package
     (name "baobab")
-    (version "3.26.1")
+    (version "3.28.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -5824,11 +5826,15 @@ files.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0zkqxyqyxd6j270jf5hbcrb3yh4k31ddh40v4cjhgngm8mcsnnbs"))))
-    (build-system glib-or-gtk-build-system)
+                "0qsx7vx5c3n4yxlxbr11sppw7qwcv9z3g45b5xb9y7wxw5lv42sk"))))
+    (build-system meson-build-system)
+    (arguments
+     '(#:glib-or-gtk? #t))
     (native-inputs
      `(("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
+       ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
+       ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
        ("itstool" ,itstool)
        ("xmllint" ,libxml2)
        ("glib" ,glib "bin")
@@ -7192,3 +7198,86 @@ into audio files that a personal computer or digital audio player can play.
 It supports ripping to any audio codec supported by a GStreamer plugin, such as
 mp3, Ogg Vorbis and FLAC")
     (license license:gpl2+)))
+
+(define-public workrave
+  (let ((commit "v1_10_20"))
+    (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 (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32
+                  "099a87zkrkmsgfz9isrfm89dh545x52891jh6qxmn19h6wwsi941"))))
+      (build-system glib-or-gtk-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'autogen
+             (lambda _
+               (invoke "sh" "autogen.sh")
+               #t)))))
+      (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 (RSI).  The program frequently alerts
+you to take micro-pauses, rest breaks and restricts you to your daily limit")
+      (home-page "http://www.workrave.org")
+      (license license:gpl3+))))
+
+(define-public ghex
+  (package
+    (name "ghex")
+    (version "3.18.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1lq8920ad2chi9ibmyq0x9hg9yk63b0kdbzid03w42cwdzw50x66"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("gnome-common" ,gnome-common)
+       ("which" ,which)
+       ("intltool" ,intltool)
+       ("yelp-tools" ,yelp-tools)
+       ("desktop-file-utils" ,desktop-file-utils))) ;for 'desktop-file-validate'
+    (inputs
+     `(("atk" ,atk)
+       ("gtk" ,gtk+)))
+    (synopsis "GNOME hexadecimal editor")
+    (description "The GHex program can view and edit files in two ways:
+hexadecimal or ASCII.  It is useful for editing binary files in general.")
+    (home-page "https://wiki.gnome.org/Apps/Ghex")
+    (license license:gpl2)))
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 17207e2173..c88ed3e520 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Petter <petter@mykolab.ch>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -91,6 +92,20 @@ Daemon and possibly more in the future.")
     (properties '((ftp-server . "ftp.gnupg.org")
                   (ftp-directory . "/gcrypt/libgpg-error")))))
 
+;; Some packages (e.g. GPGME) require a newer libgpg-error to deal with
+;; error codes from recent GnuPG.  Remove this in the next rebuild cycle.
+(define-public libgpg-error-1.31
+  (package
+    (inherit libgpg-error)
+    (version "1.31")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnupg/libgpg-error/libgpg-error-"
+                                  version ".tar.bz2"))
+              (sha256
+               (base32
+                "1vx4nw6rxh2biy3h8n96fyr86q29h8gjl6837437i51jr4isil20"))))))
+
 (define-public libgcrypt
   (package
     (name "libgcrypt")
@@ -216,14 +231,14 @@ compatible to GNU Pth.")
 (define-public gnupg
   (package
     (name "gnupg")
-    (version "2.2.6")
+    (version "2.2.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
                                   ".tar.bz2"))
               (sha256
                (base32
-                "110rf476l3cgn52gh9ia5y0y06y2ialq9dqc12jkhnfhl9gqqkg6"))))
+                "0vlpis0q7gvq9mhdc43hkyn3cdriz4mwgj20my3gyzpgwqg3cnyr"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -361,7 +376,7 @@ libskba (working with X.509 certificates and CMS data).")
 (define-public gpgme
   (package
     (name "gpgme")
-    (version "1.10.0")
+    (version "1.11.1")
     (source
      (origin
       (method url-fetch)
@@ -369,13 +384,13 @@ libskba (working with X.509 certificates and CMS data).")
                           ".tar.bz2"))
       (sha256
        (base32
-        "14q619lxbk64vz7lih5gjb928qm28jrnn1h3yhsrrff3jw8yv3qs"))))
+        "0vxx5xaag3rhp4g2arp5qm77gvz4kj0m3hnpvhkdvqyjfhbi26rd"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("gnupg" ,gnupg)))
     (propagated-inputs
      ;; Needs to be propagated because gpgme.h includes gpg-error.h.
-     `(("libgpg-error" ,libgpg-error)))
+     `(("libgpg-error" ,libgpg-error-1.31)))
     (inputs
      `(("libassuan" ,libassuan)))
     (home-page "https://www.gnupg.org/related_software/gpgme/")
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 0b7dd462d5..1681e37172 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -551,7 +551,7 @@ security standards.")
        ("libxcomposite" ,libxcomposite)
        ("libxt" ,libxt)
        ("libffi" ,libffi)
-       ("ffmpeg" ,ffmpeg)
+       ("ffmpeg" ,ffmpeg-3.4)
        ("libvpx" ,libvpx)
        ("icu4c" ,icu4c)
        ("pixman" ,pixman)
diff --git a/gnu/packages/groff.scm b/gnu/packages/groff.scm
index 5f1b8d0ed6..77728a5d78 100644
--- a/gnu/packages/groff.scm
+++ b/gnu/packages/groff.scm
@@ -101,7 +101,7 @@ is usually the formatter of \"man\" documentation pages.")
                    ;; Keep only the programs that man-db needs at run time,
                    ;; and make sure we don't pull in Perl.
                    (let ((out  (assoc-ref outputs "out"))
-                         (kept '("eqn" "neqn" "pic" "tbl" "refer"
+                         (kept '("eqn" "neqn" "pic" "tbl" "refer" "preconv"
                                  "nroff" "groff" "troff" "grotty")))
                      (for-each (lambda (file)
                                  (unless (member (basename file) kept)
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index c9497225a9..ae7813c739 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -723,16 +723,16 @@ format is also supported.")
 (define-public guile-ics
   (package
     (name "guile-ics")
-    (version "0.1.1")
+    (version "0.2.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/artyom-poptsov/guile-ics")
-                    (commit "v0.1.1")))
+                    (commit (string-append "v" version))))
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "1pvg6j48inpbq47hq00yh5hhl2qd2srvrx5yjl7w7ky1jsjadp86"))))
+                "0qjjvadr7gibdq9jvwkmlkb4afsw9n2shfj9phpiadinxk3p4m2g"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -749,8 +749,8 @@ format is also supported.")
        ;; Gettext brings 'AC_LIB_LINKFLAGS_FROM_LIBS'.
        ("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
-    (inputs `(("guile" ,guile-2.0) ("which" ,which)))
-    (propagated-inputs `(("guile-lib" ,guile2.0-lib)))
+    (inputs `(("guile" ,guile-2.2) ("which" ,which)))
+    (propagated-inputs `(("guile-lib" ,guile-lib)))
     (home-page "https://github.com/artyom-poptsov/guile-ics")
     (synopsis "Guile parser library for the iCalendar format")
     (description
@@ -919,7 +919,7 @@ specification.  These are the main features:
 
            #t))))
     (inputs
-     `(("guile" ,guile-2.0)))
+     `(("guile" ,guile-2.2)))
     (home-page "https://github.com/ijp/minikanren")
     (synopsis "MiniKanren declarative logic system, packaged for Guile")
     (description
@@ -934,8 +934,11 @@ slightly from miniKanren mainline.
 See http://minikanren.org/ for more on miniKanren generally.")
     (license license:expat)))
 
+(define-public guile2.0-minikanren
+  (package-for-guile-2.0 guile-minikanren))
+
 (define-public guile2.2-minikanren
-  (package-for-guile-2.2 guile-minikanren))
+  (deprecated-package "guile2.2-minikanren" guile-minikanren))
 
 (define-public guile-miniadapton
   (let ((commit "1b5749422304567c96ac5367f2221dda9eff5880")
@@ -1076,7 +1079,7 @@ understand, extend, and port to host languages other than Scheme.")
                (install-file "irregex.html" doc)
                #t))))))
     (inputs
-     `(("guile" ,guile-2.0)))
+     `(("guile" ,guile-2.2)))
     (home-page "http://synthcode.com/scheme/irregex")
     (synopsis "S-expression based regular expressions")
     (description
@@ -1085,8 +1088,11 @@ string-based regular expressions.  It implements SRFI 115 and is deeply
 inspired by the SCSH regular expression system.")
     (license license:bsd-3)))
 
+(define-public guile2.0-irregex
+  (package-for-guile-2.0 guile-irregex))
+
 (define-public guile2.2-irregex
-  (package-for-guile-2.2 guile-irregex))
+  (deprecated-package "guile2.2-irregex" guile-irregex))
 
 ;; There are two guile-gdbm packages, one using the FFI and one with
 ;; direct C bindings, hence the verbose name.
@@ -1368,15 +1374,18 @@ above command-line parameters.")
                   #t))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("guile" ,guile-2.0)))
+     `(("guile" ,guile-2.2)))
     (home-page "https://savannah.nongnu.org/projects/guile-redis/")
     (synopsis "Redis client library for Guile")
     (description "Guile-redis provides a Scheme interface to the Redis
 key-value cache and store.")
     (license license:lgpl3+)))
 
+(define-public guile2.0-redis
+  (package-for-guile-2.0 guile-redis))
+
 (define-public guile2.2-redis
-  (package-for-guile-2.2 guile-redis))
+  (deprecated-package "guile2.2-redis" guile-redis))
 
 (define-public guile-wisp
   (package
@@ -1559,19 +1568,19 @@ provides access to that interface and its types from the Scheme level.")
     (arguments
      '(#:configure-flags
        (list (string-append
-              "--with-guile-site-dir=" %output "/share/guile/site/2.0"))
+              "--with-guile-site-dir=" %output "/share/guile/site/2.2"))
        #:phases
        (modify-phases %standard-phases
          (add-after 'install 'patch-extension-path
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out     (assoc-ref outputs "out"))
                     (dbi.scm (string-append
-                              out "/share/guile/site/2.0/dbi/dbi.scm"))
+                              out "/share/guile/site/2.2/dbi/dbi.scm"))
                     (ext     (string-append out "/lib/libguile-dbi")))
                (substitute* dbi.scm (("libguile-dbi") ext))
                #t))))))
     (propagated-inputs
-     `(("guile" ,guile-2.0)))
+     `(("guile" ,guile-2.2)))
     (synopsis "Guile database abstraction layer")
     (home-page "http://home.gna.org/guile-dbi/guile-dbi.html")
     (description
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 35dc6eee7c..00f1c66643 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -392,8 +392,8 @@ It has been modified to remove all non-free binary blobs.")
 ;; supports qemu "virt" machine and possibly a large number of ARM boards.
 ;; See : https://wiki.debian.org/DebianKernel/ARMMP.
 
-(define %linux-libre-version "4.16.6")
-(define %linux-libre-hash "069bxqx27xib1gz4aayy8ar2hfp68cpdi8h51g6453k0w14pkchn")
+(define %linux-libre-version "4.16.7")
+(define %linux-libre-hash "145hv7paw5zd6bnkk0agxyg2a37066xhrxszbq3d03mjvi8ap117")
 
 (define-public linux-libre
   (make-linux-libre %linux-libre-version
@@ -401,8 +401,8 @@ It has been modified to remove all non-free binary blobs.")
                     %linux-compatible-systems
                     #:configuration-file kernel-config))
 
-(define %linux-libre-4.14-version "4.14.38")
-(define %linux-libre-4.14-hash "09lmz8zbd3c1qf8z3d2lkhcqcwawajh76s85zdhgqdmd2idpwach")
+(define %linux-libre-4.14-version "4.14.39")
+(define %linux-libre-4.14-hash "0r6fydsgspnskh5n1hfrkyrlrmql635zqr44ajafmqimldc0bplz")
 
 (define-public linux-libre-4.14
   (make-linux-libre %linux-libre-4.14-version
@@ -411,14 +411,14 @@ It has been modified to remove all non-free binary blobs.")
                     #:configuration-file kernel-config))
 
 (define-public linux-libre-4.9
-  (make-linux-libre "4.9.97"
-                    "1xc3mj1qi51n1kr5bxmdf1rlpyj78x9imhfc7gihn8qjc6zsf1sp"
+  (make-linux-libre "4.9.98"
+                    "14mqg2hvxg4zwajwly18akyaca821sp4iz5w3xmikwndn2j8y1lw"
                     %intel-compatible-systems
                     #:configuration-file kernel-config))
 
 (define-public linux-libre-4.4
-  (make-linux-libre "4.4.130"
-                    "15cayafj7d9y5fs9flg115kzrcrjycbvax9hgfzz6yym94v9k8lk"
+  (make-linux-libre "4.4.131"
+                    "1phah297rxjwy22wfaqlzpbk71ddp3drma5dx3i8xv6g8vijd08x"
                     %intel-compatible-systems
                     #:configuration-file kernel-config))
 
@@ -1937,17 +1937,27 @@ for systems using the Linux kernel.  This includes commands such as
 (define-public inotify-tools
   (package
     (name "inotify-tools")
-    (version "3.13")
+    (version "3.20.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "mirror://sourceforge/inotify-tools/inotify-tools/"
-                    version "/inotify-tools-" version ".tar.gz"))
+                    "https://github.com/rvoicilas/inotify-tools/archive/"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0icl4bx041axd5dvhg89kilfkysjj86hjakc7bk8n49cxjn4cha6"))))
+                "1b22c8x4pjnz3abx4dikpbj43zprjw79pdkd4xw111dsxlfwqcx4"))))
     (build-system gnu-build-system)
-    (home-page "http://inotify-tools.sourceforge.net/")
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'bootstrap
+                    (lambda _
+                      (invoke "autoreconf" "-vif"))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)))
+    (home-page "https://github.com/rvoicilas/inotify-tools/wiki")
     (synopsis "Monitor file accesses")
     (description
      "The inotify-tools packages provides a C library and command-line tools
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 8980b3df74..178c58ed3a 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -19,7 +19,7 @@
 ;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
-;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016, 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -397,7 +397,7 @@ It adds a large amount of new and improved features to mutt.")
 (define-public gmime
   (package
     (name "gmime")
-    (version "2.6.23")
+    (version "3.2.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/gmime/"
@@ -405,7 +405,7 @@ It adds a large amount of new and improved features to mutt.")
                                   "/gmime-" version ".tar.xz"))
               (sha256
                (base32
-                "0slzlzcr3h8jikpz5a5amqd0csqh2m40gdk910ws2hnaf5m6hjbi"))))
+                "1q6palbpf6lh6bvy9ly26q5apl5k0z0r4mvl6zzqh90rz4rn1v3m"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -429,8 +429,8 @@ It adds a large amount of new and improved features to mutt.")
                  (let* ((base (basename prog-path))
                         (prog (which base)))
                    (string-append pre
-                                  (or prog (error "not found: " base))))))
-              #t))))))
+                                  (or prog (error "not found: " base)))))))
+            #t)))))
     (home-page "http://spruce.sourceforge.net/gmime/")
     (synopsis "MIME message parser and creator library")
     (description
@@ -439,6 +439,20 @@ the creation and parsing of messages using the Multipurpose Internet Mail
 Extension (MIME).")
     (license (list lgpl2.1+ gpl2+ gpl3+))))
 
+;; Some packages are not ready for GMime 3 yet.
+(define-public gmime-2.6
+  (package
+    (inherit gmime)
+    (version "2.6.23")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/gmime/"
+                                  (version-major+minor version)
+                                  "/gmime-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0slzlzcr3h8jikpz5a5amqd0csqh2m40gdk910ws2hnaf5m6hjbi"))))))
+
 (define-public bogofilter
   (package
     (name "bogofilter")
@@ -598,7 +612,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
      `(("xapian" ,xapian)
        ("guile" ,guile-2.2)
        ("glib" ,glib)
-       ("gmime" ,gmime)))
+       ("gmime" ,gmime-2.6)))
     (arguments
      `(#:modules ((guix build gnu-build-system)
                   (guix build utils)
@@ -2429,7 +2443,7 @@ tools and applications:
      `(("cyrus-sasl" ,cyrus-sasl)
        ("enchant" ,enchant)
        ("gdk-pixbuf" ,gdk-pixbuf)
-       ("gmime" ,gmime)
+       ("gmime" ,gmime-2.6)
        ("gnutls" ,gnutls)
        ("gpgme" ,gpgme)
        ("gtk+" ,gtk+)
@@ -2506,7 +2520,7 @@ killed threads.")
                                             "/bin/gpg\"")))
              #t)))))
     (inputs
-     `(("gmime" ,gmime)
+     `(("gmime" ,gmime-2.6)
        ("gnupg" ,gnupg)
        ("gnutls" ,gnutls)
        ("gtk+" ,gtk+)
diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm
index 3455a9c126..046b0e3f39 100644
--- a/gnu/packages/man.scm
+++ b/gnu/packages/man.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -81,11 +82,19 @@ a flexible and convenient way.")
                          (remove file-is-directory?
                                  (find-files "src/tests" ".*")))
                #t)))
-         (add-after 'unpack 'patch-iconv-path
+         (add-after 'unpack 'patch-absolute-paths
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "src/man.c"
                (("\"iconv\"")
                 (string-append "\"" (which "iconv") "\"")))
+             ;; Embed an absolute reference to "preconv", otherwise it
+             ;; falls back to searching in PATH and ultimately fails
+             ;; to render unicode data (see <https://bugs.gnu.org/30785>).
+             (substitute* "lib/encodings.c"
+               (("groff_preconv = NULL")
+                (string-append "groff_preconv = \""
+                               (assoc-ref inputs "groff-minimal")
+                               "/bin/preconv\"")))
              #t)))
        #:configure-flags
        (let ((groff (assoc-ref %build-inputs "groff"))
@@ -151,7 +160,7 @@ the traditional flat-text whatis databases.")
 (define-public man-pages
   (package
     (name "man-pages")
-    (version "4.15")
+    (version "4.16")
     (source (origin
               (method url-fetch)
               (uri
@@ -164,7 +173,7 @@ the traditional flat-text whatis databases.")
                     "man-pages-" version ".tar.xz")))
               (sha256
                (base32
-                "01n1rq1kvambax85xamriawbga94mh63s5mgjmjljjgf50m7yw6f"))))
+                "1d2d6llazg3inwjiz22cn46mbm5ydpbyh9qb55z4j3nm4w6wrzs7"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases (delete 'configure))
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index a2bf14ea84..2b21e839a6 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -25,6 +25,8 @@
 ;;; Copyright © 2018 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
 ;;; Copyright © 2018 Nadya Voronova <voronovank@gmail.com>
+;;; Copyright © 2018 Adam Massmann <massmannak@gmail.com>
+;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -53,6 +55,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system ocaml)
+  #:use-module (guix build-system python)
   #:use-module (guix build-system r)
   #:use-module (guix build-system ruby)
   #:use-module (gnu packages algebra)
@@ -564,7 +567,7 @@ singular value problems.")
 (define-public gnuplot
   (package
     (name "gnuplot")
-    (version "5.0.6")
+    (version "5.2.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/gnuplot/gnuplot/"
@@ -572,7 +575,7 @@ singular value problems.")
                                   version ".tar.gz"))
        (sha256
         (base32
-         "0q5lr6nala3ln6f3yp6g17ziymb9r9gx9zylnw1y3hjmwl9lggjv"))))
+         "18diyy7aib9mn098x07g25c7jij1x7wbfpicz0z8gwxx08px45m4"))))
     (build-system gnu-build-system)
     (inputs `(("readline" ,readline)
               ("cairo" ,cairo)
@@ -582,6 +585,9 @@ singular value problems.")
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("texlive" ,texlive-tiny)))
+    (arguments `(#:configure-flags (list (string-append
+                                          "--with-texdir=" %output
+                                          "/texmf-local/tex/latex/gnuplot"))))
     (home-page "http://www.gnuplot.info")
     (synopsis "Command-line driven graphing utility")
     (description "Gnuplot is a portable command-line driven graphing
@@ -1677,6 +1683,31 @@ scientific applications modeled by partial differential equations.")
            ,@(delete "--with-mpi=0" ,cf)))))
     (synopsis "Library to solve PDEs (with complex scalars and MPI support)")))
 
+
+(define-public python-kiwisolver
+  (package
+    (name "python-kiwisolver")
+    (version "1.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "kiwisolver" version))
+              (sha256
+               (base32
+                "0y22ci86znwwwfhbmvbgdfnbi6lv5gv2xkdlxvjw7lml43ayafyf"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/nucleic/kiwi")
+    (synopsis "Fast implementation of the Cassowary constraint solver")
+    (description
+     "Kiwi is an efficient C++ implementation of the Cassowary constraint
+solving algorithm.  Kiwi has been designed from the ground up to be
+lightweight and fast.  Kiwi ranges from 10x to 500x faster than the original
+Cassowary solver with typical use cases gaining a 40x improvement.  Memory
+savings are consistently > 5x.")
+    (license license:bsd-3)))
+
+(define-public python2-kiwisolver
+  (package-with-python2 python-kiwisolver))
+
 (define-public slepc
   (package
     (name "slepc")
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 3a1a0176ef..c74977eea8 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -440,32 +440,48 @@ compromised.")
 (define-public znc
   (package
     (name "znc")
-    (version "1.6.6")
+    (version "1.7.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://znc.in/releases/archive/znc-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "09cmsnxvi7jg9a0dicf60fxnxdff4aprw7h8vjqlj5ywf6y43f3z"))))
+                "0vxra50418bsjfdpf8vl70fijv8syvasjqdxfyjliff6k91k2zn0"))))
+    ;; TODO: autotools support has been deprecated, and new features like i18n
+    ;; are only supported when building with cmake.
     (build-system gnu-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'unpack-googletest
            (lambda* (#:key inputs #:allow-other-keys)
-             (zero? (system* "tar" "xf"
-                             (assoc-ref inputs "googletest-source"))))))
+             (mkdir-p "googletest")
+             (copy-recursively (assoc-ref inputs "googletest-source")
+                               "googletest")
+             #t)))
        #:configure-flags '("--enable-python"
                            "--enable-perl"
                            "--enable-cyrus"
-                           ,(string-append "--with-gtest="
-                                          "googletest-release-"
-                                          (package-version googletest)
-                                          "/googletest"))
+                           "--with-gmock=googletest/googlemock"
+                           "--with-gtest=googletest/googletest")
        #:test-target "test"))
     (native-inputs
-     `(("googletest-source" ,(package-source googletest))
+     `(("googletest-source"
+        ;; ZNC 1.7 needs a newer, unreleased googletest (a release is planned
+        ;; <https://github.com/google/googletest/issues/1583>, so don't update
+        ;; the public GOOGLETEST to an unstable version).  The commit is taken
+        ;; from ‘third_party/googletest’ in the ZNC git repository.
+        ,(let ((commit "9737e63c69e94ac5777caa0bc77c77d5206467f3"))
+           (origin
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/google/googletest")
+                   (commit commit)))
+             (file-name (git-file-name "googletest-for-znc" commit))
+             (sha256
+              (base32
+               "0ya36n8d62zbxk6p22yffgx43mqhx2fz41gqqwbpdshjryf3wvxj")))))
        ("pkg-config" ,pkg-config)
        ("perl" ,perl)
        ("python" ,python)))
@@ -476,9 +492,9 @@ compromised.")
        ("cyrus-sasl" ,cyrus-sasl)))
     (home-page "https://znc.in")
     (synopsis "IRC network bouncer")
-    (description "ZNC is an IRC network bouncer or BNC.  It can detach the
-client from the actual IRC server, and also from selected channels.  Multiple
-clients from different locations can connect to a single ZNC account
+    (description "ZNC is an @dfn{IRC network bouncer} or @dfn{BNC}.  It can
+detach the client from the actual IRC server, and also from selected channels.
+Multiple clients from different locations can connect to a single ZNC account
 simultaneously and therefore appear under the same nickname on IRC.")
     (license license:asl2.0)))
 
diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm
index 6bb8c3f3ad..21ef9d5592 100644
--- a/gnu/packages/nano.scm
+++ b/gnu/packages/nano.scm
@@ -30,7 +30,7 @@
 (define-public nano
   (package
     (name "nano")
-    (version "2.9.5")
+    (version "2.9.6")
     (source
      (origin
       (method url-fetch)
@@ -38,7 +38,7 @@
                           version ".tar.xz"))
       (sha256
        (base32
-        "06af9dzhgab53drpyq430fv5kf5sdba9mfw0lf3glhkznlf1i3bv"))))
+        "1inl8ljkc711969ncwy7irf0464psasikg1g42l0g4sfpdz50wx3"))))
     (build-system gnu-build-system)
     (inputs
      `(("gettext" ,gettext-minimal)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 5cba694b6e..4049cde8b9 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -19,6 +19,7 @@
 ;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2018 Adam Van Ymeren <adam@vany.ca>
+;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -56,6 +57,7 @@
   #:use-module (gnu packages check)
   #:use-module (gnu packages code)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages crypto)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages dejagnu)
@@ -66,6 +68,7 @@
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages image)
   #:use-module (gnu packages libidn)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lua)
@@ -84,6 +87,7 @@
   #:use-module (gnu packages tls)
   #:use-module (gnu packages valgrind)
   #:use-module (gnu packages wm)
+  #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages xml)
   #:use-module (ice-9 match))
 
@@ -1702,3 +1706,62 @@ file for more details.")
            ;; src/libstrongswan/plugins/blowfish/blowfish_crypter.c
            ;; src/libstrongswan/plugins/des/des_crypter.c
            license:bsd-4))))
+
+(define-public amule
+  (package
+    (name "amule")
+    (version "2.3.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/amule-project/amule/archive/"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1wvcj0n9xz03xz5c2xwp6dwfp7sqjhhwbki3m0lwikskpn9lkzk2"))
+              ;; Patch for adopting crypto++ >= 6.0.
+              (patches (search-patches "amule-crypto-6.patch"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'patch-source-shebangs 'autogen
+           (lambda _
+             (invoke "sh" "autogen.sh")
+             #t)))
+       #:configure-flags
+       '("--disable-rpath"
+         "--enable-wxcas"
+         "--enable-cas"
+         "--enable-alc"
+         "--enable-alcc"
+         "--enable-xas"
+         "--enable-amulecmd"
+         "--enable-geoip"
+         "--enable-ccache"
+         "--enable-nls"
+         "--enable-optimize"
+         "--enable-amule-gui"
+         "--enable-amule-daemon"
+         "--enable-webserver"
+         "--with-denoise-level=0")))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("gettext-minimal" ,gettext-minimal)
+       ("perl" ,perl)))
+    (inputs
+     `(("zlib" ,zlib)
+       ("crypto++" ,crypto++)
+       ("libpng" ,libpng)
+       ("wxwidgets-gtk2", wxwidgets-gtk2)))
+    (home-page "http://amule.org/")
+    (synopsis "Peer-to-peer client for the eD2K and Kademlia networks")
+    (description
+     "aMule is an eMule-like client for the eD2k and Kademlia peer-to-peer
+file sharing networks.  It includes a graphical user interface (GUI), a daemon
+allowing you to run a client with no graphical interface, and a Web GUI for
+remote access.  The @command{amulecmd} command allows you to control aMule
+remotely.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 0f5fa0f09a..864038fe99 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -456,14 +456,15 @@ written in Objective Caml.")
 (define-public coq
   (package
     (name "coq")
-    (version "8.7.0")
+    (version "8.8.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://coq.inria.fr/distrib/V" version
-                                  "/files/" name "-" version ".tar.gz"))
+              (uri (string-append "https://github.com/coq/coq/archive/V"
+                                  version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "15wjngjd5pyfqdl5yw92rvdxvy15xcjlpx0rqlkzvcsis1z20xpk"))))
+                "0g96k2x6lbddlmkmdaczvcpb2gwqi1ydbq9bv4gf9q38kv9w3xya"))))
     (native-search-paths
      (list (search-path-specification
             (variable "COQPATH")
@@ -3874,15 +3875,15 @@ cross-platform SDL C library.")
 (define-public coq-flocq
   (package
     (name "coq-flocq")
-    (version "2.6.0")
+    (version "2.6.1")
     (source (origin
               (method url-fetch)
               ;; Use the ‘Latest version’ link for a stable URI across releases.
               (uri (string-append "https://gforge.inria.fr/frs/download.php/"
-                                  "latestfile/2228/flocq-" version ".tar.gz"))
+                                  "file/37454/flocq-" version ".tar.gz"))
               (sha256
                (base32
-                "13fv150dcwnjrk00d7zj2c5x9jwmxgrq0ay440gkr730l8mvk3l3"))))
+                "06msp1fwpqv6p98a3i1nnkj7ch9rcq3rm916yxq8dxf51lkghrin"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("ocaml" ,ocaml)
@@ -3924,14 +3925,14 @@ inside Coq.")
 (define-public coq-gappa
   (package
     (name "coq-gappa")
-    (version "1.3.1")
+    (version "1.3.2")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://gforge.inria.fr/frs/download.php/file/36351/gappa-"
+              (uri (string-append "https://gforge.inria.fr/frs/download.php/file/36397/gappa-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0924jr6f15fx22qfsvim5vc0qxqg30ivg9zxj34lf6slbgdl3j39"))))
+                "19kg2zldaqs4smy7bv9hp650sqg46xbx1ss7jnyagpxdscwn9apd"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("ocaml" ,ocaml)
@@ -3976,14 +3977,14 @@ assistant.")
 (define-public coq-mathcomp
   (package
     (name "coq-mathcomp")
-    (version "1.6.2")
+    (version "1.7.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/math-comp/math-comp/archive/mathcomp-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0lg5ncr7p4y8qqq6pfw6brqc6a9xzlfa0drprwfdn0rnyaq5nca6"))))
+                "05zgyi4wmasi1rcyn5jq42w0bi9713q9m8dl1fdgl66nmacixh39"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("ocaml" ,ocaml)
@@ -4039,6 +4040,12 @@ part of the distribution.")
                             "/lib/coq/user-contrib/Coquelicot"))
        #:phases
        (modify-phases %standard-phases
+         (add-before 'configure 'fix-coq8.8
+           (lambda _
+             ; appcontext has been removed from coq 8.8
+             (substitute* "theories/AutoDerive.v"
+               (("appcontext") "context"))
+             #t))
          (add-before 'configure 'fix-remake
            (lambda _
              (substitute* "remake.cpp"
@@ -4068,7 +4075,7 @@ theorems between the two libraries.")
 (define-public coq-bignums
   (package
     (name "coq-bignums")
-    (version "8.7.0")
+    (version "8.8.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/coq/bignums/archive/V"
@@ -4076,7 +4083,7 @@ theorems between the two libraries.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "03iw9jiwq9jx45gsvp315y3lxr8m9ksppmcjvxs5c23qnky6zqjx"))))
+                "08m1cmq4hkaf4sb0vy978c11rgzvds71cphyadmr2iirpr5815r0"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("ocaml" ,ocaml)
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index ea90e78547..0a7caf2e7a 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -295,6 +295,15 @@ the Nix package manager.")
     (inherit guix)
     (properties `((hidden? . #t)))
     (name "guix-register")
+
+    ;; Use a minimum set of dependencies.
+    (native-inputs
+     (fold alist-delete (package-native-inputs guix)
+           '("po4a" "graphviz" "help2man")))
+    (propagated-inputs
+     `(("gnutls" ,gnutls)
+       ("guile-git" ,guile-git)))
+
     (arguments
      (substitute-keyword-arguments (package-arguments guix)
        ((#:tests? #f #f)
diff --git a/gnu/packages/patches/amule-crypto-6.patch b/gnu/packages/patches/amule-crypto-6.patch
new file mode 100644
index 0000000000..21a86ab0fa
--- /dev/null
+++ b/gnu/packages/patches/amule-crypto-6.patch
@@ -0,0 +1,45 @@
+From d1d1368c7909ffd8423730afaa811ce7b6a3a8aa Mon Sep 17 00:00:00 2001
+From: Tommy Jerry Mairo <tommy.mairo@gmail.com>
+Date: Sun, 4 Feb 2018 12:42:00 -0800
+Subject: [PATCH 1/2] Bugfix: API mismatch with crypto++ 6.0.0
+
+---
+ src/ClientCreditsList.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/ClientCreditsList.cpp b/src/ClientCreditsList.cpp
+index 3bea9fe2d..a7ae1e34c 100644
+--- a/src/ClientCreditsList.cpp
++++ b/src/ClientCreditsList.cpp
+@@ -312,7 +312,7 @@ void CClientCreditsList::InitalizeCrypting()
+ 		// calculate and store public key
+ 		CryptoPP::RSASSA_PKCS1v15_SHA_Verifier pubkey(*static_cast<CryptoPP::RSASSA_PKCS1v15_SHA_Signer *>(m_pSignkey));
+ 		CryptoPP::ArraySink asink(m_abyMyPublicKey, 80);
+-		pubkey.DEREncode(asink);
++		pubkey.AccessMaterial().Save(asink);
+ 		m_nMyPublicKeyLen = asink.TotalPutLength();
+ 		asink.MessageEnd();
+ 	} catch (const CryptoPP::Exception& e) {
+
+From 88ba0ac952b78382445f2fff73c6792c0474dc62 Mon Sep 17 00:00:00 2001
+From: Tommy Jerry Mairo <tommy.mairo@gmail.com>
+Date: Wed, 21 Mar 2018 11:56:28 -0700
+Subject: [PATCH 2/2] Update: Change AccessMaterial to GetMaterial
+
+---
+ src/ClientCreditsList.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/ClientCreditsList.cpp b/src/ClientCreditsList.cpp
+index a7ae1e34c..69e881fd8 100644
+--- a/src/ClientCreditsList.cpp
++++ b/src/ClientCreditsList.cpp
+@@ -312,7 +312,7 @@ void CClientCreditsList::InitalizeCrypting()
+ 		// calculate and store public key
+ 		CryptoPP::RSASSA_PKCS1v15_SHA_Verifier pubkey(*static_cast<CryptoPP::RSASSA_PKCS1v15_SHA_Signer *>(m_pSignkey));
+ 		CryptoPP::ArraySink asink(m_abyMyPublicKey, 80);
+-		pubkey.AccessMaterial().Save(asink);
++		pubkey.GetMaterial().Save(asink);
+ 		m_nMyPublicKeyLen = asink.TotalPutLength();
+ 		asink.MessageEnd();
+ 	} catch (const CryptoPP::Exception& e) {
diff --git a/gnu/packages/patches/gegl-CVE-2012-4433.patch b/gnu/packages/patches/gegl-CVE-2012-4433.patch
deleted file mode 100644
index 7352b78dba..0000000000
--- a/gnu/packages/patches/gegl-CVE-2012-4433.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-From: Michael Gilbert <mgilbert@debian.org>
-Date: Mon, 9 Sep 2013 17:34:32 +0200
-Subject: Fix_CVE-2012-4433
-
-Multiple buffer overflow issues.
-
-Closes: #692435
----
- operations/external/ppm-load.c | 62 ++++++++++++++++++++++++++++++++++++------
- 1 file changed, 53 insertions(+), 9 deletions(-)
-
-diff --git a/operations/external/ppm-load.c b/operations/external/ppm-load.c
-index efe6d56..465096d 100644
---- a/operations/external/ppm-load.c
-+++ b/operations/external/ppm-load.c
-@@ -36,6 +36,7 @@ gegl_chant_file_path (path, _("File"), "", _("Path of file to load."))
- #include "gegl-chant.h"
- #include <stdio.h>
- #include <stdlib.h>
-+#include <errno.h>
- 
- typedef enum {
-   PIXMAP_ASCII  = 51,
-@@ -44,8 +45,8 @@ typedef enum {
- 
- typedef struct {
- 	map_type   type;
--	gint       width;
--	gint       height;
-+	glong      width;
-+	glong      height;
-         gsize      numsamples; /* width * height * channels */
-         gsize      bpc;        /* bytes per channel */
- 	guchar    *data;
-@@ -82,12 +83,33 @@ ppm_load_read_header(FILE       *fp,
-       }
- 
-     /* Get Width and Height */
--    img->width  = strtol (header,&ptr,0);
--    img->height = atoi (ptr);
--    img->numsamples = img->width * img->height * CHANNEL_COUNT;
-+    errno = 0;
-+    img->width  = strtol (header,&ptr,10);
-+    if (errno)
-+      {
-+        g_warning ("Error reading width: %s", strerror(errno));
-+        return FALSE;
-+      }
-+    else if (img->width < 0)
-+      {
-+        g_warning ("Error: width is negative");
-+        return FALSE;
-+      }
-+
-+    img->height = strtol (ptr,&ptr,10);
-+    if (errno)
-+      {
-+        g_warning ("Error reading height: %s", strerror(errno));
-+        return FALSE;
-+      }
-+    else if (img->width < 0)
-+      {
-+        g_warning ("Error: height is negative");
-+        return FALSE;
-+      }
- 
-     fgets (header,MAX_CHARS_IN_ROW,fp);
--    maxval = strtol (header,&ptr,0);
-+    maxval = strtol (header,&ptr,10);
- 
-     if ((maxval != 255) && (maxval != 65535))
-       {
-@@ -109,6 +131,16 @@ ppm_load_read_header(FILE       *fp,
-       g_warning ("%s: Programmer stupidity error", G_STRLOC);
-     }
- 
-+    /* Later on, img->numsamples is multiplied with img->bpc to allocate
-+     * memory. Ensure it doesn't overflow. */
-+    if (!img->width || !img->height ||
-+        G_MAXSIZE / img->width / img->height / CHANNEL_COUNT < img->bpc)
-+      {
-+        g_warning ("Illegal width/height: %ld/%ld", img->width, img->height);
-+        return FALSE;
-+      }
-+    img->numsamples = img->width * img->height * CHANNEL_COUNT;
-+
-     return TRUE;
- }
- 
-@@ -229,12 +261,24 @@ process (GeglOperation       *operation,
-   if (!ppm_load_read_header (fp, &img))
-     goto out;
- 
--  rect.height = img.height;
--  rect.width = img.width;
--
-   /* Allocating Array Size */
-+
-+  /* Should use g_try_malloc(), but this causes crashes elsewhere because the
-+   * error signalled by returning FALSE isn't properly acted upon. Therefore
-+   * g_malloc() is used here which aborts if the requested memory size can't be
-+   * allocated causing a controlled crash. */
-   img.data = (guchar*) g_malloc (img.numsamples * img.bpc);
- 
-+  /* No-op without g_try_malloc(), see above. */
-+  if (! img.data)
-+    {
-+      g_warning ("Couldn't allocate %" G_GSIZE_FORMAT " bytes, giving up.", ((gsize)img.numsamples * img.bpc));
-+      goto out;
-+    }
-+
-+  rect.height = img.height;
-+  rect.width = img.width;
-+
-   switch (img.bpc)
-     {
-     case 1:
diff --git a/gnu/packages/patches/gimp-CVE-2017-17784.patch b/gnu/packages/patches/gimp-CVE-2017-17784.patch
deleted file mode 100644
index c791772fb5..0000000000
--- a/gnu/packages/patches/gimp-CVE-2017-17784.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-Fix CVE-2017-17784:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17784
-https://bugzilla.gnome.org/show_bug.cgi?id=790784
-
-Patch copied from upstream source repository:
-
-https://git.gnome.org/browse/gimp/commit/?id=c57f9dcf1934a9ab0cd67650f2dea18cb0902270
-
-From c57f9dcf1934a9ab0cd67650f2dea18cb0902270 Mon Sep 17 00:00:00 2001
-From: Jehan <jehan@girinstud.io>
-Date: Thu, 21 Dec 2017 12:25:32 +0100
-Subject: [PATCH] Bug 790784 - (CVE-2017-17784) heap overread in gbr parser /
- load_image.
-
-We were assuming the input name was well formed, hence was
-nul-terminated. As any data coming from external input, this has to be
-thorougly checked.
-Similar to commit 06d24a79af94837d615d0024916bb95a01bf3c59 but adapted
-to older gimp-2-8 code.
----
- plug-ins/common/file-gbr.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/plug-ins/common/file-gbr.c b/plug-ins/common/file-gbr.c
-index b028100bef..d3f01d9c56 100644
---- a/plug-ins/common/file-gbr.c
-+++ b/plug-ins/common/file-gbr.c
-@@ -443,7 +443,8 @@ load_image (const gchar  *filename,
-     {
-       gchar *temp = g_new (gchar, bn_size);
- 
--      if ((read (fd, temp, bn_size)) < bn_size)
-+      if ((read (fd, temp, bn_size)) < bn_size ||
-+          temp[bn_size - 1] != '\0')
-         {
-           g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
-                        _("Error in GIMP brush file '%s'"),
--- 
-2.15.1
-
diff --git a/gnu/packages/patches/gimp-CVE-2017-17785.patch b/gnu/packages/patches/gimp-CVE-2017-17785.patch
deleted file mode 100644
index 939b01f214..0000000000
--- a/gnu/packages/patches/gimp-CVE-2017-17785.patch
+++ /dev/null
@@ -1,171 +0,0 @@
-Fix CVE-2017-17785:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17785
-https://bugzilla.gnome.org/show_bug.cgi?id=739133
-
-Patch copied from upstream source repository:
-
-https://git.gnome.org/browse/gimp/commit/?id=1882bac996a20ab5c15c42b0c5e8f49033a1af54
-
-From 1882bac996a20ab5c15c42b0c5e8f49033a1af54 Mon Sep 17 00:00:00 2001
-From: Tobias Stoeckmann <tobias@stoeckmann.org>
-Date: Sun, 29 Oct 2017 15:19:41 +0100
-Subject: [PATCH] Bug 739133 - (CVE-2017-17785) Heap overflow while parsing FLI
- files.
-
-It is possible to trigger a heap overflow while parsing FLI files. The
-RLE decoder is vulnerable to out of boundary writes due to lack of
-boundary checks.
-
-The variable "framebuf" points to a memory area which was allocated
-with fli_header->width * fli_header->height bytes. The RLE decoder
-therefore must never write beyond that limit.
-
-If an illegal frame is detected, the parser won't stop, which means
-that the next valid sequence is properly parsed again. This should
-allow GIMP to parse FLI files as good as possible even if they are
-broken by an attacker or by accident.
-
-While at it, I changed the variable xc to be of type size_t, because
-the multiplication of width and height could overflow a 16 bit type.
-
-Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
-(cherry picked from commit edb251a7ef1602d20a5afcbf23f24afb163de63b)
----
- plug-ins/file-fli/fli.c | 50 ++++++++++++++++++++++++++++++++++---------------
- 1 file changed, 35 insertions(+), 15 deletions(-)
-
-diff --git a/plug-ins/file-fli/fli.c b/plug-ins/file-fli/fli.c
-index 313efeb977..ffb651e2af 100644
---- a/plug-ins/file-fli/fli.c
-+++ b/plug-ins/file-fli/fli.c
-@@ -25,6 +25,8 @@
- 
- #include "config.h"
- 
-+#include <glib/gstdio.h>
-+
- #include <string.h>
- #include <stdio.h>
- 
-@@ -461,23 +463,27 @@ void fli_read_brun(FILE *f, s_fli_header *fli_header, unsigned char *framebuf)
- 	unsigned short yc;
- 	unsigned char *pos;
- 	for (yc=0; yc < fli_header->height; yc++) {
--		unsigned short xc, pc, pcnt;
-+		unsigned short pc, pcnt;
-+		size_t n, xc;
- 		pc=fli_read_char(f);
- 		xc=0;
- 		pos=framebuf+(fli_header->width * yc);
-+		n=(size_t)fli_header->width * (fli_header->height-yc);
- 		for (pcnt=pc; pcnt>0; pcnt--) {
- 			unsigned short ps;
- 			ps=fli_read_char(f);
- 			if (ps & 0x80) {
- 				unsigned short len;
--				for (len=-(signed char)ps; len>0; len--) {
-+				for (len=-(signed char)ps; len>0 && xc<n; len--) {
- 					pos[xc++]=fli_read_char(f);
- 				}
- 			} else {
- 				unsigned char val;
-+				size_t len;
-+				len=MIN(n-xc,ps);
- 				val=fli_read_char(f);
--				memset(&(pos[xc]), val, ps);
--				xc+=ps;
-+				memset(&(pos[xc]), val, len);
-+				xc+=len;
- 			}
- 		}
- 	}
-@@ -564,25 +570,34 @@ void fli_read_lc(FILE *f, s_fli_header *fli_header, unsigned char *old_framebuf,
- 	memcpy(framebuf, old_framebuf, fli_header->width * fli_header->height);
- 	firstline = fli_read_short(f);
- 	numline = fli_read_short(f);
-+	if (numline > fli_header->height || fli_header->height-numline < firstline)
-+		return;
-+
- 	for (yc=0; yc < numline; yc++) {
--		unsigned short xc, pc, pcnt;
-+		unsigned short pc, pcnt;
-+		size_t n, xc;
- 		pc=fli_read_char(f);
- 		xc=0;
- 		pos=framebuf+(fli_header->width * (firstline+yc));
-+		n=(size_t)fli_header->width * (fli_header->height-firstline-yc);
- 		for (pcnt=pc; pcnt>0; pcnt--) {
- 			unsigned short ps,skip;
- 			skip=fli_read_char(f);
- 			ps=fli_read_char(f);
--			xc+=skip;
-+			xc+=MIN(n-xc,skip);
- 			if (ps & 0x80) {
- 				unsigned char val;
-+				size_t len;
- 				ps=-(signed char)ps;
- 				val=fli_read_char(f);
--				memset(&(pos[xc]), val, ps);
--				xc+=ps;
-+				len=MIN(n-xc,ps);
-+				memset(&(pos[xc]), val, len);
-+				xc+=len;
- 			} else {
--				fread(&(pos[xc]), ps, 1, f);
--				xc+=ps;
-+				size_t len;
-+				len=MIN(n-xc,ps);
-+				fread(&(pos[xc]), len, 1, f);
-+				xc+=len;
- 			}
- 		}
- 	}
-@@ -689,7 +704,8 @@ void fli_read_lc_2(FILE *f, s_fli_header *fli_header, unsigned char *old_framebu
- 	yc=0;
- 	numline = fli_read_short(f);
- 	for (lc=0; lc < numline; lc++) {
--		unsigned short xc, pc, pcnt, lpf, lpn;
-+		unsigned short pc, pcnt, lpf, lpn;
-+		size_t n, xc;
- 		pc=fli_read_short(f);
- 		lpf=0; lpn=0;
- 		while (pc & 0x8000) {
-@@ -700,26 +716,30 @@ void fli_read_lc_2(FILE *f, s_fli_header *fli_header, unsigned char *old_framebu
- 			}
- 			pc=fli_read_short(f);
- 		}
-+		yc=MIN(yc, fli_header->height);
- 		xc=0;
- 		pos=framebuf+(fli_header->width * yc);
-+		n=(size_t)fli_header->width * (fli_header->height-yc);
- 		for (pcnt=pc; pcnt>0; pcnt--) {
- 			unsigned short ps,skip;
- 			skip=fli_read_char(f);
- 			ps=fli_read_char(f);
--			xc+=skip;
-+			xc+=MIN(n-xc,skip);
- 			if (ps & 0x80) {
- 				unsigned char v1,v2;
- 				ps=-(signed char)ps;
- 				v1=fli_read_char(f);
- 				v2=fli_read_char(f);
--				while (ps>0) {
-+				while (ps>0 && xc+1<n) {
- 					pos[xc++]=v1;
- 					pos[xc++]=v2;
- 					ps--;
- 				}
- 			} else {
--				fread(&(pos[xc]), ps, 2, f);
--				xc+=ps << 1;
-+				size_t len;
-+				len=MIN((n-xc)/2,ps);
-+				fread(&(pos[xc]), len, 2, f);
-+				xc+=len << 1;
- 			}
- 		}
- 		if (lpf) pos[xc]=lpn;
--- 
-2.15.1
-
diff --git a/gnu/packages/patches/gimp-CVE-2017-17786.patch b/gnu/packages/patches/gimp-CVE-2017-17786.patch
deleted file mode 100644
index 851227ac1d..0000000000
--- a/gnu/packages/patches/gimp-CVE-2017-17786.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-Fix CVE-2017-17786:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17786
-https://bugzilla.gnome.org/show_bug.cgi?id=739134
-
-Both patches copied from upstream source repository:
-
-https://git.gnome.org/browse/gimp/commit/?id=ef9c821fff8b637a2178eab1c78cae6764c50e12
-https://git.gnome.org/browse/gimp/commit/?id=22e2571c25425f225abdb11a566cc281fca6f366
-
-From ef9c821fff8b637a2178eab1c78cae6764c50e12 Mon Sep 17 00:00:00 2001
-From: Jehan <jehan@girinstud.io>
-Date: Wed, 20 Dec 2017 13:02:38 +0100
-Subject: [PATCH] Bug 739134 - (CVE-2017-17786) Out of bounds read / heap
- overflow in...
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-... TGA importer.
-
-Be more thorough on valid TGA RGB and RGBA images.
-In particular current TGA plug-in can import RGBA as 32 bits (8 bits per
-channel) and 16 bits (5 bits per color channel and 1 bit for alpha), and
-RGB as 15 and 24 bits.
-Maybe there exist more variants, but if they do exist, we simply don't
-support them yet.
-
-Thanks to Hanno Böck for the report and a first patch attempt.
-
-(cherry picked from commit 674b62ad45b6579ec6d7923dc3cb1ef4e8b5498b)
----
- plug-ins/common/file-tga.c | 12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/plug-ins/common/file-tga.c b/plug-ins/common/file-tga.c
-index aef98702d4..426acc2925 100644
---- a/plug-ins/common/file-tga.c
-+++ b/plug-ins/common/file-tga.c
-@@ -564,12 +564,16 @@ load_image (const gchar  *filename,
-           }
-         break;
-       case TGA_TYPE_COLOR:
--        if (info.bpp != 15 && info.bpp != 16 &&
--            info.bpp != 24 && info.bpp != 32)
-+        if ((info.bpp != 15 && info.bpp != 16 &&
-+             info.bpp != 24 && info.bpp != 32)      ||
-+            ((info.bpp == 15 || info.bpp == 24) &&
-+             info.alphaBits != 0)                   ||
-+            (info.bpp == 16 && info.alphaBits != 1) ||
-+            (info.bpp == 32 && info.alphaBits != 8))
-           {
--            g_message ("Unhandled sub-format in '%s' (type = %u, bpp = %u)",
-+            g_message ("Unhandled sub-format in '%s' (type = %u, bpp = %u, alpha = %u)",
-                        gimp_filename_to_utf8 (filename),
--                       info.imageType, info.bpp);
-+                       info.imageType, info.bpp, info.alphaBits);
-             return -1;
-           }
-         break;
--- 
-2.15.1
-
-From 22e2571c25425f225abdb11a566cc281fca6f366 Mon Sep 17 00:00:00 2001
-From: Jehan <jehan@girinstud.io>
-Date: Wed, 20 Dec 2017 13:26:26 +0100
-Subject: [PATCH] plug-ins: TGA 16-bit RGB (without alpha bit) is also valid.
-
-According to some spec on the web, 16-bit RGB is also valid. In this
-case, the last bit is simply ignored (at least that's how it is
-implemented right now).
-
-(cherry picked from commit 8ea316667c8a3296bce2832b3986b58d0fdfc077)
----
- plug-ins/common/file-tga.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/plug-ins/common/file-tga.c b/plug-ins/common/file-tga.c
-index 426acc2925..eb14a1dadc 100644
---- a/plug-ins/common/file-tga.c
-+++ b/plug-ins/common/file-tga.c
-@@ -568,7 +568,8 @@ load_image (const gchar  *filename,
-              info.bpp != 24 && info.bpp != 32)      ||
-             ((info.bpp == 15 || info.bpp == 24) &&
-              info.alphaBits != 0)                   ||
--            (info.bpp == 16 && info.alphaBits != 1) ||
-+            (info.bpp == 16 && info.alphaBits != 1 &&
-+             info.alphaBits != 0)                   ||
-             (info.bpp == 32 && info.alphaBits != 8))
-           {
-             g_message ("Unhandled sub-format in '%s' (type = %u, bpp = %u, alpha = %u)",
--- 
-2.15.1
-
diff --git a/gnu/packages/patches/gimp-CVE-2017-17787.patch b/gnu/packages/patches/gimp-CVE-2017-17787.patch
deleted file mode 100644
index b5310d33d9..0000000000
--- a/gnu/packages/patches/gimp-CVE-2017-17787.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-Fix CVE-2017-17787:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17787
-https://bugzilla.gnome.org/show_bug.cgi?id=790853
-
-Patch copied from upstream source repository:
-
-https://git.gnome.org/browse/gimp/commit/?id=87ba505fff85989af795f4ab6a047713f4d9381d
-
-From 87ba505fff85989af795f4ab6a047713f4d9381d Mon Sep 17 00:00:00 2001
-From: Jehan <jehan@girinstud.io>
-Date: Thu, 21 Dec 2017 12:49:41 +0100
-Subject: [PATCH] Bug 790853 - (CVE-2017-17787) heap overread in psp importer.
-
-As any external data, we have to check that strings being read at fixed
-length are properly nul-terminated.
-
-(cherry picked from commit eb2980683e6472aff35a3117587c4f814515c74d)
----
- plug-ins/common/file-psp.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/plug-ins/common/file-psp.c b/plug-ins/common/file-psp.c
-index 4cbafe37b1..e350e4d88d 100644
---- a/plug-ins/common/file-psp.c
-+++ b/plug-ins/common/file-psp.c
-@@ -890,6 +890,12 @@ read_creator_block (FILE     *f,
-               g_free (string);
-               return -1;
-             }
-+          if (string[length - 1] != '\0')
-+            {
-+              g_message ("Creator keyword data not nul-terminated");
-+              g_free (string);
-+              return -1;
-+            }
-           switch (keyword)
-             {
-             case PSP_CRTR_FLD_TITLE:
--- 
-2.15.1
-
diff --git a/gnu/packages/patches/gimp-CVE-2017-17789.patch b/gnu/packages/patches/gimp-CVE-2017-17789.patch
deleted file mode 100644
index 6dfa435fd0..0000000000
--- a/gnu/packages/patches/gimp-CVE-2017-17789.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-Fix CVE-2017-17789:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17789
-https://bugzilla.gnome.org/show_bug.cgi?id=790849
-
-Patch copied from upstream source repository:
-
-https://git.gnome.org/browse/gimp/commit/?id=01898f10f87a094665a7fdcf7153990f4e511d3f
-
-From 01898f10f87a094665a7fdcf7153990f4e511d3f Mon Sep 17 00:00:00 2001
-From: Jehan <jehan@girinstud.io>
-Date: Wed, 20 Dec 2017 16:44:20 +0100
-Subject: [PATCH] Bug 790849 - (CVE-2017-17789) CVE-2017-17789 Heap buffer
- overflow...
-
-... in PSP importer.
-Check if declared block length is valid (i.e. within the actual file)
-before going further.
-Consider the file as broken otherwise and fail loading it.
-
-(cherry picked from commit 28e95fbeb5720e6005a088fa811f5bf3c1af48b8)
----
- plug-ins/common/file-psp.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/plug-ins/common/file-psp.c b/plug-ins/common/file-psp.c
-index ac0fff78f0..4cbafe37b1 100644
---- a/plug-ins/common/file-psp.c
-+++ b/plug-ins/common/file-psp.c
-@@ -1771,6 +1771,15 @@ load_image (const gchar  *filename,
-     {
-       block_start = ftell (f);
- 
-+      if (block_start + block_total_len > st.st_size)
-+        {
-+          g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
-+                       _("Could not open '%s' for reading: %s"),
-+                       gimp_filename_to_utf8 (filename),
-+                       _("invalid block size"));
-+          goto error;
-+        }
-+
-       if (id == PSP_IMAGE_BLOCK)
-         {
-           if (block_number != 0)
--- 
-2.15.1
-
diff --git a/gnu/packages/patches/liboop-mips64-deplibs-fix.patch b/gnu/packages/patches/liboop-mips64-deplibs-fix.patch
deleted file mode 100644
index b91754a8cc..0000000000
--- a/gnu/packages/patches/liboop-mips64-deplibs-fix.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Patch configure script to choose pass_all deplibs check method for
-linux-gnu* systems on mips64.  This is a temporary hack until liboop
-bootstraps their build system with a newer libtool.
-
-Patch by Mark H Weaver <mhw@netris.org>.
-
---- liboop/configure.orig	2003-10-26 11:41:19.000000000 -0500
-+++ liboop/configure	2013-11-02 18:09:11.079995796 -0400
-@@ -3395,7 +3395,7 @@
- # This must be Linux ELF.
- linux*)
-   case $host_cpu in
--  alpha* | hppa* | i*86 | ia64* | m68* | mips | mipsel | powerpc* | sparc* | s390* | sh*)
-+  alpha* | hppa* | i*86 | ia64* | m68* | mips | mipsel | mips64 | mips64el | powerpc* | sparc* | s390* | sh*)
-     lt_cv_deplibs_check_method=pass_all ;;
-   *)
-     # glibc up to 2.1.1 does not perform some relocations on ARM
diff --git a/gnu/packages/patches/shadow-CVE-2018-7169.patch b/gnu/packages/patches/shadow-CVE-2018-7169.patch
deleted file mode 100644
index eeae5b9b71..0000000000
--- a/gnu/packages/patches/shadow-CVE-2018-7169.patch
+++ /dev/null
@@ -1,191 +0,0 @@
-Fix CVE-2018-7169:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-7169
-
-Patch copied from upstream source repository:
-
-https://github.com/shadow-maint/shadow/commit/fb28c99b8a66ff2605c5cb96abc0a4d975f92de0
-
-From fb28c99b8a66ff2605c5cb96abc0a4d975f92de0 Mon Sep 17 00:00:00 2001
-From: Aleksa Sarai <asarai@suse.de>
-Date: Thu, 15 Feb 2018 23:49:40 +1100
-Subject: [PATCH] newgidmap: enforce setgroups=deny if self-mapping a group
-
-This is necessary to match the kernel-side policy of "self-mapping in a
-user namespace is fine, but you cannot drop groups" -- a policy that was
-created in order to stop user namespaces from allowing trivial privilege
-escalation by dropping supplementary groups that were "blacklisted" from
-certain paths.
-
-This is the simplest fix for the underlying issue, and effectively makes
-it so that unless a user has a valid mapping set in /etc/subgid (which
-only administrators can modify) -- and they are currently trying to use
-that mapping -- then /proc/$pid/setgroups will be set to deny. This
-workaround is only partial, because ideally it should be possible to set
-an "allow_setgroups" or "deny_setgroups" flag in /etc/subgid to allow
-administrators to further restrict newgidmap(1).
-
-We also don't write anything in the "allow" case because "allow" is the
-default, and users may have already written "deny" even if they
-technically are allowed to use setgroups. And we don't write anything if
-the setgroups policy is already "deny".
-
-Ref: https://bugs.launchpad.net/ubuntu/+source/shadow/+bug/1729357
-Fixes: CVE-2018-7169
-Reported-by: Craig Furman <craig.furman89@gmail.com>
-Signed-off-by: Aleksa Sarai <asarai@suse.de>
----
- src/newgidmap.c | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++------
- 1 file changed, 80 insertions(+), 9 deletions(-)
-
-diff --git a/src/newgidmap.c b/src/newgidmap.c
-index b1e33513..59a2e75c 100644
---- a/src/newgidmap.c
-+++ b/src/newgidmap.c
-@@ -46,32 +46,37 @@
-  */
- const char *Prog;
- 
--static bool verify_range(struct passwd *pw, struct map_range *range)
-+
-+static bool verify_range(struct passwd *pw, struct map_range *range, bool *allow_setgroups)
- {
- 	/* An empty range is invalid */
- 	if (range->count == 0)
- 		return false;
- 
--	/* Test /etc/subgid */
--	if (have_sub_gids(pw->pw_name, range->lower, range->count))
-+	/* Test /etc/subgid. If the mapping is valid then we allow setgroups. */
-+	if (have_sub_gids(pw->pw_name, range->lower, range->count)) {
-+		*allow_setgroups = true;
- 		return true;
-+	}
- 
--	/* Allow a process to map its own gid */
--	if ((range->count == 1) && (pw->pw_gid == range->lower))
-+	/* Allow a process to map its own gid. */
-+	if ((range->count == 1) && (pw->pw_gid == range->lower)) {
-+		/* noop -- if setgroups is enabled already we won't disable it. */
- 		return true;
-+	}
- 
- 	return false;
- }
- 
- static void verify_ranges(struct passwd *pw, int ranges,
--	struct map_range *mappings)
-+	struct map_range *mappings, bool *allow_setgroups)
- {
- 	struct map_range *mapping;
- 	int idx;
- 
- 	mapping = mappings;
- 	for (idx = 0; idx < ranges; idx++, mapping++) {
--		if (!verify_range(pw, mapping)) {
-+		if (!verify_range(pw, mapping, allow_setgroups)) {
- 			fprintf(stderr, _( "%s: gid range [%lu-%lu) -> [%lu-%lu) not allowed\n"),
- 				Prog,
- 				mapping->upper,
-@@ -89,6 +94,70 @@ static void usage(void)
- 	exit(EXIT_FAILURE);
- }
- 
-+void write_setgroups(int proc_dir_fd, bool allow_setgroups)
-+{
-+	int setgroups_fd;
-+	char *policy, policy_buffer[4096];
-+
-+	/*
-+	 * Default is "deny", and any "allow" will out-rank a "deny". We don't
-+	 * forcefully write an "allow" here because the process we are writing
-+	 * mappings for may have already set themselves to "deny" (and "allow"
-+	 * is the default anyway). So allow_setgroups == true is a noop.
-+	 */
-+	policy = "deny\n";
-+	if (allow_setgroups)
-+		return;
-+
-+	setgroups_fd = openat(proc_dir_fd, "setgroups", O_RDWR|O_CLOEXEC);
-+	if (setgroups_fd < 0) {
-+		/*
-+		 * If it's an ENOENT then we are on too old a kernel for the setgroups
-+		 * code to exist. Emit a warning and bail on this.
-+		 */
-+		if (ENOENT == errno) {
-+			fprintf(stderr, _("%s: kernel doesn't support setgroups restrictions\n"), Prog);
-+			goto out;
-+		}
-+		fprintf(stderr, _("%s: couldn't open process setgroups: %s\n"),
-+			Prog,
-+			strerror(errno));
-+		exit(EXIT_FAILURE);
-+	}
-+
-+	/*
-+	 * Check whether the policy is already what we want. /proc/self/setgroups
-+	 * is write-once, so attempting to write after it's already written to will
-+	 * fail.
-+	 */
-+	if (read(setgroups_fd, policy_buffer, sizeof(policy_buffer)) < 0) {
-+		fprintf(stderr, _("%s: failed to read setgroups: %s\n"),
-+			Prog,
-+			strerror(errno));
-+		exit(EXIT_FAILURE);
-+	}
-+	if (!strncmp(policy_buffer, policy, strlen(policy)))
-+		goto out;
-+
-+	/* Write the policy. */
-+	if (lseek(setgroups_fd, 0, SEEK_SET) < 0) {
-+		fprintf(stderr, _("%s: failed to seek setgroups: %s\n"),
-+			Prog,
-+			strerror(errno));
-+		exit(EXIT_FAILURE);
-+	}
-+	if (dprintf(setgroups_fd, "%s", policy) < 0) {
-+		fprintf(stderr, _("%s: failed to setgroups %s policy: %s\n"),
-+			Prog,
-+			policy,
-+			strerror(errno));
-+		exit(EXIT_FAILURE);
-+	}
-+
-+out:
-+	close(setgroups_fd);
-+}
-+
- /*
-  * newgidmap - Set the gid_map for the specified process
-  */
-@@ -103,6 +172,7 @@ int main(int argc, char **argv)
- 	struct stat st;
- 	struct passwd *pw;
- 	int written;
-+	bool allow_setgroups = false;
- 
- 	Prog = Basename (argv[0]);
- 
-@@ -145,7 +215,7 @@ int main(int argc, char **argv)
- 				(unsigned long) getuid ()));
- 		return EXIT_FAILURE;
- 	}
--	
-+
- 	/* Get the effective uid and effective gid of the target process */
- 	if (fstat(proc_dir_fd, &st) < 0) {
- 		fprintf(stderr, _("%s: Could not stat directory for target %u\n"),
-@@ -177,8 +247,9 @@ int main(int argc, char **argv)
- 	if (!mappings)
- 		usage();
- 
--	verify_ranges(pw, ranges, mappings);
-+	verify_ranges(pw, ranges, mappings, &allow_setgroups);
- 
-+	write_setgroups(proc_dir_fd, allow_setgroups);
- 	write_mapping(proc_dir_fd, ranges, mappings, "gid_map");
- 	sub_gid_close();
- 
--- 
-2.16.2
-
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index b2d43c2b10..aaa22cce15 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -10,7 +10,7 @@
 ;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2017, 2018 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -124,6 +124,36 @@
    (license license:gpl2+)
    (home-page "https://poppler.freedesktop.org/")))
 
+(define-public poppler-data
+  (package
+    (name "poppler-data")
+    (version "0.4.9")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://poppler.freedesktop.org/poppler-data"
+                                  "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "04i0wgdkn5lhda8cyxd1ll4a2p41pwqrwd47n9mdpl7cx5ypx70z"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f ; no test suite
+       #:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         ;; The package only provides some data files, so there is nothing to
+         ;; build.
+         (delete 'configure)
+         (delete 'build))))
+    (synopsis "Poppler encoding files for rendering of CJK and Cyrillic text")
+    (description "This package provides optional encoding files for Poppler.
+When present, Poppler is able to correctly render CJK and Cyrillic text.")
+    (home-page (package-home-page poppler))
+    ;; See COPYING in the source distribution for more information about
+    ;; the licensing.
+    (license (list license:bsd-3
+                   license:gpl2))))
+
 (define-public poppler-qt4
   (package (inherit poppler)
    (name "poppler-qt4")
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index c4228e4e05..b810037ee1 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -6003,7 +6003,7 @@ building is done in @code{MooX::ConfigFromFile::Role}---using
 (define-public perl-moox-file-configdir
   (package
     (name "perl-moox-file-configdir")
-    (version "0.006")
+    (version "0.007")
     (source
      (origin
        (method url-fetch)
@@ -6011,7 +6011,7 @@ building is done in @code{MooX::ConfigFromFile::Role}---using
                            "MooX-File-ConfigDir-" version ".tar.gz"))
        (sha256
         (base32
-         "0f808sq3627ymgf63zwgh705vv0nhwclxp89clhx8yl6hybcv7kx"))))
+         "074v150wrbddhy1n0qc8s80zrb71l3c4is968cnr06ac5l9kmshz"))))
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-file-configdir" ,perl-file-configdir)
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index 2c0c2313f4..348ac1df62 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -69,14 +69,14 @@
 (define-public libraw
   (package
     (name "libraw")
-    (version "0.18.9")
+    (version "0.18.10")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.libraw.org/data/LibRaw-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0kmjfdr409k9q9n17k9ywims5z4kqc16s81ba7y09n7669q1gvyj"))))
+                "0klrzg1cn8ksxqbhx52dldi5bbmad190npnhhgkyr2jzpgrbpj88"))))
     (build-system gnu-build-system)
     (home-page "https://www.libraw.org")
     (synopsis "Raw image decoder")
diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm
index 38f279206d..4eb68c0270 100644
--- a/gnu/packages/plotutils.scm
+++ b/gnu/packages/plotutils.scm
@@ -179,14 +179,14 @@ colors, styles, options and details.")
 (define-public asymptote
   (package
     (name "asymptote")
-    (version "2.42")
+    (version "2.44")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/asymptote/"
                                   version "/asymptote-" version ".src.tgz"))
               (sha256
                (base32
-                "0dprc4shzdpvp87kc97ggh5ay2zmskjjaciay7mnblx63rhk1d95"))))
+                "1rs9v95g19ri6ra2m921jf2yr9avqnzfybrqxilsld98xpqx56vg"))))
     (build-system gnu-build-system)
     ;; Note: The 'asy' binary retains a reference to docdir for use with its
     ;; "help" command in interactive mode, so adding a "doc" output is not
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index b805b8e707..080552573d 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -2588,6 +2588,36 @@ sources.")
       (propagated-inputs `(("python2-pytz" ,python2-pytz)
                        ,@(package-propagated-inputs base))))))
 
+(define-public python-sphinx-gallery
+  (package
+    (name "python-sphinx-gallery")
+    (version "0.1.13")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/sphinx-gallery/sphinx-gallery"
+                                  "/archive/v" version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "03fs99mcb1r7qp0xixqv07vcz98sk21yq19ffdysi0infdcpzfkd"))))
+    (build-system python-build-system)
+    (arguments
+     ;; FIXME: Tests attempt to download <https://docs.python.org/3/objects.inv>,
+     ;; <https://docs.scipy.org/doc/numpy/objects.inv>, and
+     ;; <https://matplotlib.org/objects.inv>.
+     `(#:tests? #f))
+    (native-inputs
+     `(("python-pytest-runner" ,python-pytest-runner)))
+    (home-page "https://sphinx-gallery.github.io/")
+    (synopsis "Generate an examples gallery automatically")
+    (description
+     "@code{sphinx_gallery} is a Sphinx extension that builds an HTML version
+from any set of Python scripts and puts it into an examples gallery.")
+    (license license:bsd-3)))
+
+(define-public python2-sphinx-gallery
+  (package-with-python2 python-sphinx-gallery))
+
 (define-public python-sphinx-rtd-theme
   (package
     (name "python-sphinx-rtd-theme")
@@ -2869,7 +2899,7 @@ between language specification and implementation aspects.")
 (define-public python-numpy
   (package
     (name "python-numpy")
-    (version "1.14.0")
+    (version "1.14.3")
     (source
      (origin
        (method url-fetch)
@@ -2878,7 +2908,7 @@ between language specification and implementation aspects.")
              version "/numpy-" version ".tar.gz"))
        (sha256
         (base32
-         "1kh7y2ay21s9mcc11mq59g2f1yc75v152z2k2vlh0xmh9c9rjpf4"))))
+         "1yim2bxlycn4dhxmfxid6slplpmcb4ynhp411b37ahmsm2lwgkyg"))))
     (build-system python-build-system)
     (inputs
      `(("openblas" ,openblas)
@@ -3430,17 +3460,18 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc.
 (define-public python-matplotlib
   (package
     (name "python-matplotlib")
-    (version "2.0.2")
+    (version "2.2.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "matplotlib" version))
        (sha256
         (base32
-         "1w8z2a1l7s72p1byfz7g03wqhygqxi8w82619dqb3a1lm97w9yqg"))))
+         "1s6dv225w3k4fv52h8lfjc7qq5y56i9755ayx0mz48ddi99fzisd"))))
     (build-system python-build-system)
     (propagated-inputs ; the following packages are all needed at run time
      `(("python-cycler" ,python-cycler)
+       ("python-kiwisolver" ,python-kiwisolver)
        ("python-pyparsing" ,python-pyparsing)
        ("python-pygobject" ,python-pygobject)
        ("gobject-introspection" ,gobject-introspection)
@@ -3520,6 +3551,8 @@ toolkits.")
       ;; of those automatically rewritten by package-with-python2.
       (propagated-inputs
        `(("python2-pycairo" ,python2-pycairo)
+         ("python2-backports-functools-lru-cache"
+          ,python2-backports-functools-lru-cache)
          ("python2-functools32" ,python2-functools32)
          ("python2-pygobject-2" ,python2-pygobject-2)
          ("python2-subprocess32" ,python2-subprocess32)
@@ -3536,7 +3569,8 @@ toolkits.")
     (native-inputs
      `(("python-matplotlib" ,python-matplotlib)
        ("python-colorspacious" ,python-colorspacious)
-       ("python-sphinx" ,python-sphinx)
+       ("python-sphinx" ,python-sphinx-1.6)
+       ("python-sphinx-gallery" ,python-sphinx-gallery)
        ("python-numpydoc" ,python-numpydoc)
        ("python-ipython" ,python-ipython)
        ("python-mock" ,python-mock)
@@ -3559,7 +3593,7 @@ toolkits.")
                (("latex_elements\\['pointsize'\\] = '11pt'" match)
                 ;; insert at a point where latex_elements{} is defined:
                 (string-append match "\nlatex_elements['papersize'] = 'a4paper'")))
-             (zero? (system* "python" "make.py" "html" "latex" "texinfo"))))
+             (invoke "make" "SPHINXBUILD=sphinx-build" "html" "latex" "texinfo")))
          (replace 'install
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((data (string-append (assoc-ref outputs "out") "/share"))
@@ -3693,14 +3727,14 @@ functions.")
 (define-public python-scipy
   (package
     (name "python-scipy")
-    (version "1.0.0")
+    (version "1.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "scipy" version))
        (sha256
         (base32
-         "043djb3vyk6qripmyw30jhl0g8qza0fmar6wck10iv79l08izsl7"))))
+         "1fj0r7bg0cfk5clvl57ga06y9bfh05iwlv1dqqs1r6pd89wccfc7"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-numpy" ,python-numpy)
@@ -10503,6 +10537,10 @@ 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
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index b139d2bc8c..d8896e3e0b 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -1712,7 +1712,7 @@ contain over 620 classes.")
 (define-public qscintilla
   (package
     (name "qscintilla")
-    (version "2.10.2")
+    (version "2.10.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/pyqt/QScintilla2/"
@@ -1720,7 +1720,7 @@ contain over 620 classes.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1l2ylsv6s3wfhyx7qr5cxgkwwwhvbrpd2k7akgm9bvbyf4h1vcql"))))
+                "1rw1nlwnyzj5pb86cc5kk56qhrvwvrjvjzgrkwh3g7b9wxl7lrfj"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index c15e677438..e282a6f24e 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1005,13 +1005,13 @@ interfaces.")
 (define-public ruby-lumberjack
   (package
     (name "ruby-lumberjack")
-    (version "1.0.12")
+    (version "1.0.13")
     (source (origin
               (method url-fetch)
               (uri (rubygems-uri "lumberjack" version))
               (sha256
                (base32
-                "0yz26k9mi0djx1qvlmvdw1xw2yf7a2rkfmnb2j0d28kms33xpibp"))))
+                "06im7gcg42x77yhz2w5da2ly9xz0n0c36y5ks7xs53v0l9g0vf5n"))))
     (build-system ruby-build-system)
     (native-inputs
      `(("ruby-rspec" ,ruby-rspec)
@@ -2068,14 +2068,14 @@ instance, it provides @code{assert_true}, @code{assert_false} and
 (define-public ruby-minitest-hooks
   (package
     (name "ruby-minitest-hooks")
-    (version "1.4.1")
+    (version "1.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri "minitest-hooks" version))
        (sha256
         (base32
-         "05bngfyxwq1cflk568nhddgfrmws5ff6kiqax4skklsjnh71ykbi"))))
+         "0lnpvzijbjrvxjc43d155jnbk2mkfshrz22an711wh004scavlzc"))))
     (build-system ruby-build-system)
     (arguments
      '(#:test-target "spec"))
@@ -2924,13 +2924,13 @@ a native C extension.")
 (define-public ruby-rb-fsevent
   (package
     (name "ruby-rb-fsevent")
-    (version "0.10.2")
+    (version "0.10.3")
     (source (origin
               (method url-fetch)
               (uri (rubygems-uri "rb-fsevent" version))
               (sha256
                (base32
-                "1fbpmjypwxkb8r7y1kmhmyp6gawa4byw0yb3jc3dn9ly4ld9lizf"))))
+                "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8"))))
     (build-system ruby-build-system)
     ;; Tests need "guard-rspec", which needs "guard".  However, "guard" needs
     ;; "listen", which needs "rb-fsevent" at runtime.
@@ -3694,17 +3694,17 @@ application.")
 (define-public ruby-eventmachine
   (package
     (name "ruby-eventmachine")
-    (version "1.2.5")
+    (version "1.2.6")
     (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri "eventmachine" version))
        (sha256
         (base32
-         "075hdw0fgzldgss3xaqm2dk545736khcvv1fmzbf1sgdlkyh1v8z"))))
+         "08477hl609rmmngwfy8dmsqz5zvsg8xrsrrk6xi70jf48majwli0"))))
     (build-system ruby-build-system)
     (arguments
-     '(#:tests? #f)) ; test suite tries to connect to google.com
+     '(#:tests? #f))               ; test suite tries to connect to google.com
     (native-inputs
      `(("ruby-rake-compiler" ,ruby-rake-compiler)))
     (synopsis "Single-threaded network event framework for Ruby")
@@ -3882,14 +3882,14 @@ definitions.")
 (define-public ruby-fivemat
   (package
     (name "ruby-fivemat")
-    (version "1.3.5")
+    (version "1.3.6")
     (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri "fivemat" version))
        (sha256
         (base32
-         "0ij7n250gk5c1g34rsbwjnpcv64gk4vsas8lkz8fac4wbygvk6z1"))))
+         "006n7b09vviv5bs5hv2ccmjxw9iw3brcsm3xh3dhzfncsknz4jp7"))))
     (build-system ruby-build-system)
     (arguments
      `(#:tests? #f)) ; no tests
diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm
index 13b904a6c5..c194249596 100644
--- a/gnu/packages/samba.scm
+++ b/gnu/packages/samba.scm
@@ -150,14 +150,14 @@ anywhere.")
 (define-public samba
   (package
     (name "samba")
-    (version "4.7.7")
+    (version "4.8.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.samba.org/pub/samba/stable/"
                                  "samba-" version ".tar.gz"))
              (sha256
               (base32
-               "0c81x2ncnvz3mi6fjj81clm1mh049d3ip3fj031l44qclxpx3yi9"))))
+               "17bqgxyv34hjnb4hfamag75gwhqipp6mpvba5xg7lszi0xskdxwf"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -192,8 +192,8 @@ anywhere.")
          (add-before 'install 'disable-etc-samba-directory-creation
            (lambda _
              (substitute* "dynconfig/wscript"
-               (("bld\\.INSTALL_DIRS\\(\"\",[[:blank:]]{1,}\"\\$\\{CONFIGDIR\\}[[:blank:]]{1,}")
-                "bld.INSTALL_DIRS(\"\", \""))
+               (("bld\\.INSTALL_DIR\\(\"\\$\\{CONFIGDIR\\}\"\\)")
+                ""))
              #t)))
        ;; XXX: The test infrastructure attempts to set password with
        ;; smbpasswd, which fails with "smbpasswd -L can only be used by root."
@@ -206,14 +206,16 @@ anywhere.")
        ("gnutls" ,gnutls)
        ("iniparser" ,iniparser)
        ("libaio" ,libaio)
-       ("ldb" ,ldb)
        ("linux-pam" ,linux-pam)
        ("openldap" ,openldap)
        ("popt" ,popt)
        ("readline" ,readline)
-       ("talloc" ,talloc)
-       ("tevent" ,tevent)
        ("tdb" ,tdb)))
+    (propagated-inputs
+     ;; In Requires or Requires.private of pkg-config files.
+     `(("ldb" ,ldb)
+       ("talloc" ,talloc)
+       ("tevent" ,tevent)))
     (native-inputs
      `(("docbook-xsl" ,docbook-xsl)    ;for generating manpages
        ("xsltproc" ,libxslt)           ;ditto
@@ -340,14 +342,14 @@ many event types, including timers, signals, and the classic file descriptor eve
 (define-public ldb
   (package
     (name "ldb")
-    (version "1.3.2")
+    (version "1.3.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.samba.org/ftp/ldb/ldb-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1avn4fl393kc80krbc47phbp0argdkys62ycs8vm934a6nvz0gnf"))))
+                "14gsrm7dvyjpbpnc60z75j6fz2p187abm2h353lq95kx2bv70c1b"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index 6ff83ce5a4..9d9580ca7b 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -31,14 +32,20 @@
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages curl)
+  #:use-module (gnu packages check)
+  #:use-module (gnu packages docbook)
+  #:use-module (gnu packages documentation)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages man)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages cyrus-sasl)
+  #:use-module (gnu packages readline)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages tex)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages xml))
@@ -202,3 +209,86 @@ one-time-password (OTP) YubiKey against Yubico’s servers.  See the Yubico
 website for more information about Yubico and the YubiKey.")
     (home-page "https://developers.yubico.com/yubico-c-client/")
     (license license:bsd-2)))
+
+(define-public opensc
+  (package
+    (name "opensc")
+    (version "0.17.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/OpenSC/OpenSC/releases/download/"
+                    version "/opensc-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0043jh5g7q2lyd5vnb0akwb5y349isx7vbm9wqhlgav7d20wcwxy"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; By setting an absolute path here, we arrange for OpenSC to
+         ;; successfully dlopen libpcsclite.so.1 by default.  The user can
+         ;; still override this if they want to, by specifying a custom OpenSC
+         ;; configuration file at runtime.
+         (add-after 'unpack 'set-default-libpcsclite.so.1-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((libpcsclite (string-append (assoc-ref inputs "pcsc-lite")
+                                               "/lib/libpcsclite.so.1")))
+               (substitute* "configure"
+                 (("DEFAULT_PCSC_PROVIDER=\"libpcsclite\\.so\\.1\"")
+                  (string-append
+                   "DEFAULT_PCSC_PROVIDER=\"" libpcsclite "\"")))
+               #t))))))
+    (inputs
+     `(("readline" ,readline)
+       ("openssl" ,openssl)
+       ("pcsc-lite" ,pcsc-lite)
+       ("ccid" ,ccid)))
+    (native-inputs
+     `(("libxslt" ,libxslt)
+       ("docbook-xsl" ,docbook-xsl)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://github.com/OpenSC/OpenSC/wiki")
+    (synopsis "Tools and libraries related to smart cards")
+    (description
+     "OpenSC is a set of software tools and libraries to work with smart
+cards, with the focus on smart cards with cryptographic capabilities.  OpenSC
+facilitate the use of smart cards in security applications such as
+authentication, encryption and digital signatures.  OpenSC implements the PKCS
+#15 standard and the PKCS #11 API.")
+    (license license:lgpl2.1+)))
+
+(define-public yubico-piv-tool
+  (package
+    (name "yubico-piv-tool")
+    (version "1.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://developers.yubico.com/yubico-piv-tool/Releases/"
+                    name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1axa0lnky5gsc8yack6mpfbjh49z0czr1cv52gbgjnx2kcbpb0y1"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("perl" ,perl)
+       ("pcsc-lite" ,pcsc-lite)
+       ("openssl" ,openssl)))
+    (native-inputs
+     `(("doxygen" ,doxygen)
+       ("graphviz" ,graphviz)
+       ("check" ,check)
+       ("texlive-bin" ,texlive-bin)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://developers.yubico.com/yubico-piv-tool/")
+    (synopsis "Interact with the PIV application on a YubiKey")
+    (description
+     "The Yubico PIV tool is used for interacting with the Privilege and
+Identification Card (PIV) application on a YubiKey.  With it you may generate
+keys on the device, import keys and certificates, create certificate requests,
+and other operations.  It includes a library and a command-line tool.")
+    ;; The file ykcs11/pkcs11.h also declares an additional, very short free
+    ;; license for that one file.  Please see it for details.  The vast
+    ;; majority of files are licensed under bsd-2.
+    (license license:bsd-2)))
diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index 77afe2a11e..3064e385e2 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -248,7 +248,7 @@ that implements both the msgpack and msgpack-rpc specifications.")
 (define-public yaml-cpp
   (package
     (name "yaml-cpp")
-    (version "0.6.1")
+    (version "0.6.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -256,12 +256,10 @@ that implements both the msgpack and msgpack-rpc specifications.")
                     "yaml-cpp-" version ".tar.gz"))
               (sha256
                (base32
-                "038ddf771d1zrdfiwqzq2lsjdis1fxbaasbdja2w9f1av3k3gv15"))))
+                "01gxn7kc8pzyh4aadjxxzq8cignmbwmm9rfrsmgqfg9w2q75dn74"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
-    (inputs
-     `(("boost" ,boost)))
     (native-inputs
      `(("python" ,python)))
     (home-page "https://github.com/jbeder/yaml-cpp")
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 8b41c8d613..a948547f72 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -356,14 +356,14 @@ ksh, and tcsh.")
 (define-public xonsh
   (package
     (name "xonsh")
-    (version "0.6.1")
+    (version "0.6.2")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "xonsh" version))
         (sha256
           (base32
-            "09rrfcwpirbxmjjqnsbyn7lwm1wyn41z5zhkbnv57i5hcgs72kx6"))
+            "0c2bbmdg0n10q54vq9k1z5n53l0mh1hb1q5xprfhilvrbr6hlcwr"))
         (modules '((guix build utils)))
         (snippet
          `(begin
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index 112ccb3280..a0f033305e 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -444,16 +444,15 @@ particularly useful for embedded systems, such as wireless routers.")
 (define-public liboop
   (package
     (name "liboop")
-    (version "1.0")
+    (version "1.0.1")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "http://download.ofb.net/liboop/liboop-"
-                          version ".tar.gz"))
+      (uri (string-append "http://ftp.lysator.liu.se/pub/liboop/"
+                          name "-" version ".tar.gz"))
       (sha256
        (base32
-        "0z6rlalhvfca64jpvksppc9bdhs7jwhiw4y35g5ibvh91xp3rn1l"))
-      (patches (search-patches "liboop-mips64-deplibs-fix.patch"))))
+        "1q0p1l72pq9k3bi7a366j2rishv7dzzkg3i6r2npsfg7cnnidbsn"))))
     (build-system gnu-build-system)
     (home-page "http://www.lysator.liu.se/liboop/")
     (synopsis "Event loop library")
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 51f5ad91b1..aca26edad4 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -318,14 +318,14 @@ D.V. Hinkley (1997, CUP), originally written by Angelo Canty for S.")
 (define-public r-mass
   (package
     (name "r-mass")
-    (version "7.3-49")
+    (version "7.3-50")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "MASS" version))
        (sha256
         (base32
-         "1yjbnj1p4z0vw84wga8q5fyqiw4n6r7pc6rdwam7vsbiamyzfcqs"))))
+         "16hasv9k4n773jsyzvh8s3gbga49hwdj8n5hxij6zqisy4i0kxq6"))))
     (properties `((upstream-name . "MASS")))
     (build-system r-build-system)
     (home-page "http://www.stats.ox.ac.uk/pub/MASS4/")
@@ -939,14 +939,14 @@ solution for sending email, including attachments, from within R.")
 (define-public r-stringi
   (package
     (name "r-stringi")
-    (version "1.1.7")
+    (version "1.2.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "stringi" version))
        (sha256
         (base32
-         "0nck1s2iglmkrn15ay2chrrwsy5lngcylz2sc87fxy5skxaahxdl"))))
+         "1z8yqnh3alq0xriz77vifgl27msf3av6maz07fld78m90ajb6y8r"))))
     (build-system r-build-system)
     (inputs `(("icu4c" ,icu4c)))
     (native-inputs `(("pkg-config" ,pkg-config)))
@@ -1188,13 +1188,13 @@ evaluation (NSE) in R.")
 (define-public r-dbi
   (package
     (name "r-dbi")
-    (version "0.8")
+    (version "1.0.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "DBI" version))
               (sha256
                (base32
-                "16nf8flxr5vdz8yrpprfbzydy3ajixkp9hc8ibd9n7r9nc29waym"))))
+                "1x8wy2vg2gcgd9bww04qmf0dsn3kp0rfjd8q8j1r2x9zxccg25pz"))))
     (build-system r-build-system)
     (home-page "https://github.com/rstats-db/DBI")
     (synopsis "R database interface")
@@ -1331,13 +1331,13 @@ syntax that can be converted to XHTML or other formats.")
 (define-public r-yaml
   (package
     (name "r-yaml")
-    (version "2.1.18")
+    (version "2.1.19")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "yaml" version))
               (sha256
                (base32
-                "15m4q5krfqg0avvqg9i2g6ns4757lk6zbyrwbx5c5bgh51glvd8v"))))
+                "04bzrnfgbpk0rhkvzwp3k3ip7jpq26bjxz71bx5mwxmcjdb07nz5"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/yaml/")
     (synopsis "Methods to convert R data to YAML and back")
@@ -1681,14 +1681,14 @@ transformations.")
 (define-public r-formula
   (package
     (name "r-formula")
-    (version "1.2-2")
+    (version "1.2-3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Formula" version))
        (sha256
         (base32
-         "0ad49bzip1zqmpj1d8jajwl4bd81fm3k6dq8p26x6mvlzc04dvwd"))))
+         "0wiqh8rr9d5ciy80wj8f5fnmiiw0ywanvvnhkwd622dx42dk848l"))))
     (properties `((upstream-name . "Formula")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/Formula")
@@ -1742,13 +1742,13 @@ times.")
 (define-public r-data-table
   (package
     (name "r-data-table")
-    (version "1.10.4-3")
+    (version "1.11.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "data.table" version))
               (sha256
                (base32
-                "12caklgr19vy9wprdks6zh825vr1iw1cajgwcnbpyvmijqdlz2xs"))))
+                "0n1p35c9sni2272ykxsfbsy7xma62br7v668a5bvc37g75xf10df"))))
     (build-system r-build-system)
     (home-page "https://github.com/Rdatatable/data.table/wiki")
     (synopsis "Enhanced version of data.frame R object")
@@ -2157,14 +2157,14 @@ module, Java Server Pages, and Python's psp module.")
 (define-public r-desc
   (package
     (name "r-desc")
-    (version "1.1.1")
+    (version "1.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "desc" version))
        (sha256
         (base32
-         "0k07qighac1xzmm8k988zi7i88a0yfvia3gk5hbz0fyvb2v9kzrj"))))
+         "1s6s13fk6sxwcj8wzkwxl9vr33153xx11p5wi9avqx3rzkabavz6"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-assertthat" ,r-assertthat)
@@ -2182,14 +2182,14 @@ other packages.")
 (define-public r-commonmark
   (package
     (name "r-commonmark")
-    (version "1.4")
+    (version "1.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "commonmark" version))
        (sha256
         (base32
-         "1vb8r9khpvcf0q7acv8rsplfjjwcll302bg5kp596cvn6aacypl6"))))
+         "1jwx5rgm0ypd9a3v4jd9za4a644rdzhk1n4dvmgkj9hdpwsida3z"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/commonmark")
     (synopsis "CommonMark and Github Markdown Rendering in R")
@@ -2482,13 +2482,13 @@ well as additional utilities such as panel and axis annotation functions.")
 (define-public r-rcpparmadillo
   (package
     (name "r-rcpparmadillo")
-    (version "0.8.400.0.0")
+    (version "0.8.500.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "RcppArmadillo" version))
               (sha256
                (base32
-                "11y2ksf46zw6fcz0kk70szyfn7qqxwwd33xylrxvnyb7ldmbc5yr"))))
+                "1sh36dx6inmb56m40nigy94gxlgjva816qnlmjwg7y2bdvqj8vsi"))))
     (properties `((upstream-name . "RcppArmadillo")))
     (build-system r-build-system)
     (native-inputs
@@ -3986,14 +3986,14 @@ hierarchical clustering dendrograms.")
 (define-public r-preprocesscore
   (package
     (name "r-preprocesscore")
-    (version "1.40.0")
+    (version "1.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "preprocessCore" version))
        (sha256
         (base32
-         "0mrdgbkb9dcfr9gsqyxfpshnxx60mq97pl98b8yl00l2gfwz48ph"))))
+         "1afar1z7959v7mbzsqa77vqfh0yc7y3nv5ayx71485a8scwsfwbk"))))
     (properties
      `((upstream-name . "preprocessCore")))
     (build-system r-build-system)
diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
index 0a90610ecb..b650bedf25 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -29,7 +29,7 @@
 (define-public syncthing
   (package
     (name "syncthing")
-    (version "0.14.46")
+    (version "0.14.47")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/syncthing/syncthing"
@@ -37,7 +37,7 @@
                                   "/syncthing-source-v" version ".tar.gz"))
               (sha256
                (base32
-                "0h5b2mp0li0qzrz3wggzavdfqfaz9b79hx6wds84ya2i9maw80cl"))
+                "1wz6cwq3la5676z1c20sh4fykmjwhs410xzcnb2jfyzaldf57cwj"))
               (modules '((guix build utils)))
               ;; Delete bundled ("vendored") free software source code.
               (snippet '(begin
@@ -145,7 +145,7 @@
        ("go-golang-org-x-net-union" ,(go-golang-org-x-net-union))
        ("go-golang-org-x-text" ,(go-golang-org-x-text-union))
        ("go-golang-org-x-time-rate" ,go-golang-org-x-time-rate)
-       ("go-github-com-zillode-notify" ,go-github-com-zillode-notify)
+       ("go-github-com-syncthing-notify" ,go-github-com-syncthing-notify)
        ;; For tests
        ("go-github-com-d4l3k-messagediff" ,go-github-com-d4l3k-messagediff)))
     (synopsis "Decentralized continuous file system synchronization")
@@ -507,7 +507,10 @@ address of the default LAN gateway.")
                   "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz"))))
       (build-system go-build-system)
       (arguments
-       `(#:import-path "github.com/kardianos/osext"))
+       `(#:import-path "github.com/kardianos/osext"
+         ;; The tests are flaky:
+         ;; <https://github.com/kardianos/osext/issues/21>
+         #:tests? #f))
       (synopsis "Find the running executable")
       (description "Osext provides a method for finding the current executable
 file that is running.  This can be used for upgrading the current executable or
@@ -910,7 +913,6 @@ libraries are in the same directory.")
 (define* (go-golang-org-x-net-union #:optional
                                  (packages (list go-golang-org-x-net-ipv4
                                                  go-golang-org-x-net-bpf
-                                                 go-golang-org-x-net-context
                                                  go-golang-org-x-net-ipv6
                                                  go-golang-org-x-net-proxy
                                                  go-golang-org-x-net-internal-iana)))
@@ -1111,30 +1113,30 @@ using sh's word-splitting rules.")
       (home-page "https://github.com/kballard/go-shellquote")
       (license expat))))
 
-(define-public go-github-com-zillode-notify
-  (let ((commit "53dd6873a851fc377c87d82f994b1fecdf25aadb")
-        (revision "3"))
+(define-public go-github-com-syncthing-notify
+  (let ((commit "b9ceffc925039c77cd9e0d38f248279ccc4399e2")
+        (revision "0"))
     (package
-      (name "go-github-com-zillode-notify")
+      (name "go-github-com-syncthing-notify")
       (version (git-version "0.0.0" revision commit))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
-                       (url "https://github.com/calmh/notify")
+                       (url "https://github.com/syncthing/notify")
                        (commit commit)))
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0ar6mj6s91y7hc5gdp88lz3i7xi29cqkx9f090xj899ir21a8djn"))))
+                  "1scha9b2r35bvqzqx86sarzjxf72ywvj3g6n9pm3xq4i4xzpylxf"))))
       (build-system go-build-system)
       (arguments
-       '(#:import-path "github.com/Zillode/notify"))
+       '(#:import-path "github.com/syncthing/notify"))
       (propagated-inputs
        `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
       (synopsis "File system event notification library")
       (description "This package provides @code{notify}, a file system event
 notification library in Go.")
-      (home-page "https://github.com/zillode/notify")
+      (home-page "https://github.com/syncthing/notify")
       (license expat))))
 
 (define-public go-github-com-beorn7-perks-quantile
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index ada2088c4c..ea3955439a 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -493,13 +493,13 @@ netcat implementation that supports TLS.")
   (package
     (name "python-acme")
     ;; Remember to update the hash of certbot when updating python-acme.
-    (version "0.23.0")
+    (version "0.24.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "acme" version))
               (sha256
                (base32
-                "0l257dq1i2gka6ynldidpwaz1aa726643crqqckga1w5awsndh88"))))
+                "1jq1nlly5146k08dw31fc1pw78plya5jswznnd512c08giif0mfn"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -548,7 +548,7 @@ netcat implementation that supports TLS.")
               (uri (pypi-uri name version))
               (sha256
                (base32
-                "0gh5fr61c3mj5vdkn68k17wcvri9rdj506cmmz6631i2l5flrzvc"))))
+                "0w3dbz74rpabjnc3l3ybnzjdypbr65lsjqf9yn243b5kid9d8wm0"))))
     (build-system python-build-system)
     (arguments
      `(,@(substitute-keyword-arguments (package-arguments python-acme)
@@ -634,18 +634,20 @@ servers or clients for more complicated applications.")
 (define-public perl-crypt-openssl-rsa
  (package
   (name "perl-crypt-openssl-rsa")
-  (version "0.28")
+  (version "0.30")
   (source
     (origin
       (method url-fetch)
       (uri (string-append
-             "mirror://cpan/authors/id/P/PE/PERLER/Crypt-OpenSSL-RSA-"
+             "mirror://cpan/authors/id/T/TO/TODDR/Crypt-OpenSSL-RSA-"
              version
              ".tar.gz"))
       (sha256
         (base32
-          "1gnpvv09b2gpifwdzc5jnhama3d1a4c39lzj9hcaicsb8rvzjmsk"))))
+          "1b19kaaw4wda8dy6kjiwqa2prpbs2dqcyjyj9zdh5wbs74qkbq93"))))
   (build-system perl-build-system)
+  (native-inputs
+   `(("perl-crypt-openssl-guess" ,perl-crypt-openssl-guess)))
   (inputs
     `(("perl-crypt-openssl-bignum" ,perl-crypt-openssl-bignum)
       ("perl-crypt-openssl-random" ,perl-crypt-openssl-random)
@@ -793,7 +795,7 @@ then ported to the GNU / Linux environment.")
 (define-public mbedtls-apache
   (package
     (name "mbedtls-apache")
-    (version "2.7.2")
+    (version "2.7.3")
     (source
      (origin
        (method url-fetch)
@@ -803,7 +805,7 @@ then ported to the GNU / Linux environment.")
                            version "-apache.tgz"))
        (sha256
         (base32
-         "1mvkqlxxvl6yp1g5g9dk4l7h3wl6149p3pfwgwzgs7xybyxw4f7x"))))
+         "0rfpcc4i01qsl66iy1z9vaw00s34h4qgx3r41i1v5vazv7vjla05"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm
index 3385d80fbc..4df65431af 100644
--- a/gnu/packages/upnp.scm
+++ b/gnu/packages/upnp.scm
@@ -29,14 +29,14 @@
 (define-public miniupnpc
   (package
     (name "miniupnpc")
-    (version "2.0.20180410")
+    (version "2.0.20180503")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://miniupnp.tuxfamily.org/files/"
                            name "-" version ".tar.gz"))
        (sha256
-        (base32 "08vs9012bahdwid4nsf3mi2kawcq1hvz7lzpdmiynxcbpip6sk0f"))))
+        (base32 "0dv906ibjdrv4wfrccj36z3lvpvgmcg0dwakhi66fqg6y5l97a5k"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("python" ,python-2)))
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 85efda65ec..983ce45ec4 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -564,7 +564,8 @@ libebml is a C++ library to read and write EBML files.")
        ("libx11" ,libx11)
        ("libxext" ,libxext)
        ("libxfixes" ,libxfixes)
-       ("mesa" ,mesa)))
+       ("mesa" ,mesa)
+       ("wayland" ,wayland)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 9dd8bb8971..05d2ab0b87 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -383,14 +383,14 @@ manage system or application containers.")
 (define-public libvirt
   (package
     (name "libvirt")
-    (version "4.2.0")
+    (version "4.3.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://libvirt.org/sources/libvirt-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0nq1iz5iic466qahp0i8dlvyd6li0b0pdrvvrz9286l12x2fm61s"))))
+                "1dy243dqaj174hcka0my7q781wf0dvyi7f9328nwnplqicnf4cd5"))))
     (build-system gnu-build-system)
     (arguments
      `(;; FAIL: virshtest
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index a8f28040b0..b8181e09d1 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -519,7 +519,7 @@ data.")
 (define-public json-c
   (package
     (name "json-c")
-    (version "0.13")
+    (version "0.13.1")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -527,7 +527,7 @@ data.")
                    version ".tar.gz"))
              (sha256
               (base32
-               "0kf2594kxcfga6x0mvwzj2qg8pgxhjkibc16ghnw85mdx45ph5h3"))
+               "0ws8dz9nk8q2c0gbf66kg2r6mrkl7kamd3gpdv9zsyrz9n6n0zmq"))
              (modules '((guix build utils)))
              (snippet
               '(begin
@@ -536,14 +536,8 @@ data.")
                  ;; run 'autoheader'.
                  (set-file-time "config.h.in"
                                 (stat "aclocal.m4"))
-
-                 ;; Don't try to build with -Werror.
-                 (substitute* (find-files "." "Makefile\\.in")
-                   (("-Werror") ""))
                  #t))))
     (build-system gnu-build-system)
-    (arguments '(#:parallel-build? #f
-                 #:parallel-tests? #f))
     (home-page "https://github.com/json-c/json-c/wiki")
     (synopsis "JSON implementation in C")
     (description
@@ -1818,15 +1812,15 @@ number, file name, and code context surrounding the line number.")
 (define-public perl-catalyst-plugin-static-simple
   (package
     (name "perl-catalyst-plugin-static-simple")
-    (version "0.33")
+    (version "0.36")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
+       (uri (string-append "mirror://cpan/authors/id/I/IL/ILMARI/"
                            "Catalyst-Plugin-Static-Simple-" version ".tar.gz"))
        (sha256
         (base32
-         "1h8f12bhzh0ssq9gs8r9g3hqn8zn2k0q944vc1vm8j81bns16msy"))))
+         "0m4l627p2fvzr4i6sgdxhdvsx4wpa6qmaibsbxlg5x5yjs7k7drn"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-install" ,perl-module-install)))
@@ -2439,7 +2433,7 @@ composed of HTML::Element style components.")
 (define-public perl-html-scrubber
   (package
     (name "perl-html-scrubber")
-    (version "0.15")
+    (version "0.17")
     (source
      (origin
        (method url-fetch)
@@ -2449,11 +2443,12 @@ composed of HTML::Element style components.")
              ".tar.gz"))
        (sha256
         (base32
-         "1m1f8gm2jry42zxja05dxp2ck7y66m7i8vc38nj6hccnwlby6cvi"))))
+         "06p7w4zd42b2yh541mlzyqj40lwmvvn3fyqi8big4mf34la7m2jm"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-build" ,perl-module-build)
        ("perl-test-cpan-meta" ,perl-test-cpan-meta)
+       ("perl-test-differences" ,perl-test-differences)
        ("perl-test-eol" ,perl-test-eol)
        ("perl-test-memory-cycle" ,perl-test-memory-cycle)
        ("perl-test-notabs" ,perl-test-notabs)))
@@ -3412,7 +3407,7 @@ either mocked HTTP or a locally spawned server.")
 (define-public perl-test-www-mechanize
   (package
     (name "perl-test-www-mechanize")
-    (version "1.48")
+    (version "1.50")
     (source
      (origin
        (method url-fetch)
@@ -3420,17 +3415,12 @@ either mocked HTTP or a locally spawned server.")
                            "Test-WWW-Mechanize-" version ".tar.gz"))
        (sha256
         (base32
-         "1d11fx9155d5v17d5w7q3kj37b01l8yj2yb0g6b0z1vh938rrlcr"))))
+         "097pl87vdbxbb56vawzvs6ikrlb8nz3dx223kjjbdn3jlli3jjhg"))))
     (build-system perl-build-system)
-    (native-inputs
-     `(("perl-test-exception" ,perl-test-exception)))
-    (native-inputs
-     `(("perl-module-install" ,perl-module-install)))
     (propagated-inputs
      `(("perl-carp-assert-more" ,perl-carp-assert-more)
        ("perl-html-form" ,perl-html-form)
        ("perl-html-lint" ,perl-html-lint)
-       ("perl-html-tree" ,perl-html-tree)
        ("perl-http-server-simple" ,perl-http-server-simple)
        ("perl-libwww" ,perl-libwww)
        ("perl-test-longstring" ,perl-test-longstring)
@@ -3480,7 +3470,7 @@ testing of Catalyst applications without needing to start up a web server.")
 (define-public perl-test-www-mechanize-psgi
   (package
     (name "perl-test-www-mechanize-psgi")
-    (version "0.37")
+    (version "0.38")
     (source
      (origin
        (method url-fetch)
@@ -3488,7 +3478,7 @@ testing of Catalyst applications without needing to start up a web server.")
                            "Test-WWW-Mechanize-PSGI-" version ".tar.gz"))
        (sha256
         (base32
-         "0c9a9w0d2whadnrich7f09w37fgq5hws4gq04zgz4jsdjcvr3qv2"))))
+         "0fsh2i05kf1kfavv2r9kmnjl7qlyqrd11ikc0qcqzzxsqzzjkg9r"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-test-pod" ,perl-test-pod)))
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 0b5e0848c1..b503f71a62 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -16,6 +16,7 @@
 ;;; 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 Pierre-Antoine Rouby <contact@parouby.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -967,3 +968,47 @@ It is inspired by Xmonad and dwm.  Its major features include:
     (description "Cwm is a stacking window manager for X11.  It is an OpenBSD
 project derived from the original Calm Window Manager.")
     (license license:isc)))
+
+(define-public nitrogen
+  (package
+    (name "nitrogen")
+    (version "1.6.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://github.com/l3ib/nitrogen/"
+                                  "releases/download/" version "/"
+                                  name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0zc3fl1mbhq0iyndy4ysmy8vv5c7xwf54rbgamzfhfvsgdq160pl"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("gtk+" ,gtk+-2)
+       ("gtkmm" ,gtkmm-2)
+       ("glib" ,glib)
+       ("glibmm" ,glibmm)))
+    (native-inputs
+     `(("pkg-config", pkg-config)))
+    (arguments
+     `(#:configure-flags (list
+                          (string-append "--prefix=" %output)
+                          "CXXFLAGS=-std=c++11")))
+    (home-page "http://projects.l3ib.org/nitrogen/")
+    (synopsis "Background browser and setter for X windows")
+    (description
+     "This package is a background browser and setter for X windows.  It's
+features are:
+
+@itemize
+@item Multihead and Xinerama aware
+@item Recall mode to used via startup script
+@item Uses freedesktop.org standard for thumbnails
+@item Can set GNOME background
+@item Command lie set modes for script use
+@item Inotify monitoring of browse directory
+@item Lazy loading of thumbnails - conserves memory
+@item \"Automatic\" set mode - determines best mode to set an image based on
+its size
+@item Display preview images in a tiled icon layout
+@end itemize")
+    (license license:gpl2+)))
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 0d9ec32a47..422f625cf4 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -2908,12 +2908,11 @@ X server.")
 
 
 (define-public xf86-video-intel
-  (let ((commit "af6d8e9e8f546e5cba60e3a62765c2dbd0328e83")
-        (revision "9"))
+  (let ((commit "d7dfab62a9853b44bbcd67dac08391d8e5114c97")
+        (revision "10"))
     (package
       (name "xf86-video-intel")
-      (version (string-append "2.99.917-" revision "-"
-                              (string-take commit 7)))
+      (version (git-version "2.99.917" revision commit))
       (source
        (origin
          ;; there's no current tarball
@@ -2923,8 +2922,8 @@ X server.")
                (commit commit)))
          (sha256
           (base32
-           "0f6sbkgykvvdggy8z6y7blf7yharg9vmiixxy190643bjxlnpp2s"))
-         (file-name (string-append name "-" version))))
+           "1vcfal4xr9q6016p28lnlyg709da6d305dysyyrj3fjp9fj48sva"))
+         (file-name (git-file-name name version))))
       (build-system gnu-build-system)
       (inputs `(("mesa" ,mesa)
                 ("udev" ,eudev)