summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2018-04-25 15:53:41 +0200
committerMarius Bakke <mbakke@fastmail.com>2018-04-25 15:53:41 +0200
commita9fe3882b9400d6a49ca95e136e78477b3e81a07 (patch)
treeb724ec1ed54d4a2c1b617a63eb05b98721f5d48a /gnu
parent68c4759baa4c1bb87e1c7c5568d5cdf4e1434fb1 (diff)
parent0afeda65218ed0c82ab18762111c52a9fedd2582 (diff)
downloadguix-a9fe3882b9400d6a49ca95e136e78477b3e81a07.tar.gz
Merge branch 'master' into staging
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/admin.scm130
-rw-r--r--gnu/packages/android.scm4
-rw-r--r--gnu/packages/audio.scm5
-rw-r--r--gnu/packages/benchmark.scm4
-rw-r--r--gnu/packages/bioconductor.scm259
-rw-r--r--gnu/packages/bioinformatics.scm52
-rw-r--r--gnu/packages/bittorrent.scm6
-rw-r--r--gnu/packages/bootloaders.scm3
-rw-r--r--gnu/packages/build-tools.scm43
-rw-r--r--gnu/packages/cdrom.scm2
-rw-r--r--gnu/packages/cran.scm338
-rw-r--r--gnu/packages/curl.scm50
-rw-r--r--gnu/packages/databases.scm4
-rw-r--r--gnu/packages/dictionaries.scm17
-rw-r--r--gnu/packages/dns.scm4
-rw-r--r--gnu/packages/education.scm43
-rw-r--r--gnu/packages/electronics.scm20
-rw-r--r--gnu/packages/emacs.scm595
-rw-r--r--gnu/packages/emulators.scm42
-rw-r--r--gnu/packages/engineering.scm21
-rw-r--r--gnu/packages/games.scm55
-rw-r--r--gnu/packages/geo.scm8
-rw-r--r--gnu/packages/gnome.scm38
-rw-r--r--gnu/packages/gnunet.scm2
-rw-r--r--gnu/packages/golang.scm619
-rw-r--r--gnu/packages/graph.scm11
-rw-r--r--gnu/packages/graphics.scm4
-rw-r--r--gnu/packages/gstreamer.scm2
-rw-r--r--gnu/packages/guile.scm48
-rw-r--r--gnu/packages/image-viewers.scm4
-rw-r--r--gnu/packages/image.scm32
-rw-r--r--gnu/packages/java.scm44
-rw-r--r--gnu/packages/linux.scm62
-rw-r--r--gnu/packages/mail.scm4
-rw-r--r--gnu/packages/man.scm4
-rw-r--r--gnu/packages/maths.scm4
-rw-r--r--gnu/packages/messaging.scm126
-rw-r--r--gnu/packages/mp3.scm4
-rw-r--r--gnu/packages/music.scm22
-rw-r--r--gnu/packages/networking.scm4
-rw-r--r--gnu/packages/node.scm4
-rw-r--r--gnu/packages/package-management.scm15
-rw-r--r--gnu/packages/parallel.scm6
-rw-r--r--gnu/packages/password-utils.scm31
-rw-r--r--gnu/packages/patches/ceph-skip-collect-sys-info-test.patch11
-rw-r--r--gnu/packages/patches/freeimage-unbundle.patch18
-rw-r--r--gnu/packages/patches/libmygpo-qt-fix-jsoncreatortest.patch41
-rw-r--r--gnu/packages/perl-check.scm29
-rw-r--r--gnu/packages/perl.scm100
-rw-r--r--gnu/packages/photo.scm12
-rw-r--r--gnu/packages/pure.scm5
-rw-r--r--gnu/packages/python-crypto.scm62
-rw-r--r--gnu/packages/python-web.scm22
-rw-r--r--gnu/packages/python.scm24
-rw-r--r--gnu/packages/qt.scm14
-rw-r--r--gnu/packages/ruby.scm16
-rw-r--r--gnu/packages/rust.scm171
-rw-r--r--gnu/packages/samba.scm4
-rw-r--r--gnu/packages/scheme.scm4
-rw-r--r--gnu/packages/serialization.scm8
-rw-r--r--gnu/packages/shells.scm8
-rw-r--r--gnu/packages/spice.scm4
-rw-r--r--gnu/packages/ssh.scm16
-rw-r--r--gnu/packages/statistics.scm117
-rw-r--r--gnu/packages/storage.scm4
-rw-r--r--gnu/packages/syncthing.scm571
-rw-r--r--gnu/packages/texinfo.scm5
-rw-r--r--gnu/packages/text-editors.scm94
-rw-r--r--gnu/packages/tls.scm33
-rw-r--r--gnu/packages/upnp.scm6
-rw-r--r--gnu/packages/version-control.scm64
-rw-r--r--gnu/packages/video.scm51
-rw-r--r--gnu/packages/virtualization.scm65
-rw-r--r--gnu/packages/vpn.scm36
-rw-r--r--gnu/packages/vulkan.scm5
-rw-r--r--gnu/packages/web-browsers.scm4
-rw-r--r--gnu/packages/web.scm20
-rw-r--r--gnu/packages/webkit.scm4
-rw-r--r--gnu/packages/wm.scm33
-rw-r--r--gnu/packages/xdisorg.scm8
-rw-r--r--gnu/packages/xfig.scm6
-rw-r--r--gnu/packages/xml.scm6
-rw-r--r--gnu/packages/xorg.scm4
-rw-r--r--gnu/services/networking.scm78
-rw-r--r--gnu/tests/base.scm9
-rw-r--r--gnu/tests/networking.scm97
87 files changed, 3208 insertions, 1477 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 0bdfc521c2..639dd943d6 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -860,7 +860,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/libmad-armv7-thumb-pt2.patch		\
   %D%/packages/patches/libmad-frame-length.patch		\
   %D%/packages/patches/libmad-mips-newgcc.patch			\
-  %D%/packages/patches/libmygpo-qt-fix-jsoncreatortest.patch	\
   %D%/packages/patches/libsndfile-armhf-type-checks.patch	\
   %D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch	\
   %D%/packages/patches/libsndfile-CVE-2017-8362.patch		\
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 2cab8e74e4..5e2cf2d7ad 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -18,8 +18,9 @@
 ;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au>
 ;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com>
 ;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
-;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -57,6 +58,8 @@
   #:use-module (gnu packages lua)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages inkscape)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
@@ -75,6 +78,7 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-web)
+  #:use-module (gnu packages qt)
   #:use-module (gnu packages terminals)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages groff)
@@ -90,7 +94,10 @@
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages gtk)
-  #:use-module (gnu packages xml))
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages boost)
+  #:use-module (gnu packages elf)
+  #:use-module (gnu packages mpi))
 
 (define-public aide
   (package
@@ -1132,6 +1139,51 @@ This package provides the 'wpa_supplicant' daemon and the 'wpa_cli' command.")
                            (string-append dir "/wpa_supplicant.conf")))
               #t))))))))
 
+(define-public wpa-supplicant-gui
+  (package
+    (inherit wpa-supplicant)
+    (name "wpa-supplicant-gui")
+    (inputs `(("qtbase" ,qtbase)
+              ("qtsvg" ,qtsvg)
+              ,@(package-inputs wpa-supplicant)))
+    (native-inputs
+     ;; For icons.
+     `(("imagemagick" ,imagemagick)
+       ("inkscape" ,inkscape)
+       ,@(package-native-inputs wpa-supplicant)))
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'chdir
+                    (lambda _
+                      (chdir "wpa_supplicant/wpa_gui-qt4")
+                      #t))
+                  (delete 'configure)
+                  (replace 'build
+                    (lambda _
+                      (invoke "qmake" "wpa_gui.pro")
+                      (invoke "make" "-j" (number->string (parallel-job-count)))
+                      (invoke "make" "-C" "icons")))
+                  (replace 'install
+                    (lambda* (#:key inputs outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out"))
+                            (qt '("qtbase" "qtsvg")))
+                        (substitute* "wpa_gui.desktop"
+                          (("Exec=wpa_gui")
+                           (string-append "Exec=" out "/bin/wpa_gui")))
+                        (install-file "wpa_gui" (string-append out "/bin"))
+                        (install-file "wpa_gui.desktop"
+                                      (string-append out "/share/applications"))
+                        (copy-recursively "icons/hicolor"
+                                          (string-append out "/share/icons/hicolor"))
+                        (wrap-program (string-append out "/bin/wpa_gui")
+                          `("QT_PLUGIN_PATH" ":" prefix
+                            ,(map (lambda (label)
+                                    (string-append (assoc-ref inputs label)
+                                                   "/lib/qt5/plugins/"))
+                                  qt)))
+                        #t))))))
+    (synopsis "Graphical user interface for WPA supplicant")))
+
 (define-public wakelan
   (package
     (name "wakelan")
@@ -1522,7 +1574,9 @@ of supported upstream metrics systems simultaneously.")
        (patches (search-patches "ansible-wrap-program-hack.patch"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python2-pycrypto" ,python2-pycrypto)
+     `(("python2-bcrypt" ,python2-bcrypt)
+       ("python2-pycrypto" ,python2-pycrypto)
+       ("python2-pynacl" ,python2-pynacl)
        ("python2-httplib2" ,python2-httplib2)
        ("python2-passlib" ,python2-passlib)
        ("python2-nose" ,python2-nose)
@@ -1960,14 +2014,14 @@ produce uniform output across heterogeneous networks.")
 (define-public cbatticon
   (package
     (name "cbatticon")
-    (version "1.6.7")
+    (version "1.6.8")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/valr/"
                                   name "/archive/" version ".tar.gz"))
               (sha256
                (base32
-                "1s2n49ydh7pznnf02fak4yy0wqkgi9ag7yiw1zg1lhp4m0h37hyh"))
+                "185lzvaijvyq7y8r7dvizhri0rf9lpc1anfgbbn4lznr1fr3z7rn"))
               (file-name (string-append name "-" version ".tar.gz"))))
     (build-system gnu-build-system)
     (arguments
@@ -2312,7 +2366,7 @@ tool for remote execution and deployment.")
 (define-public neofetch
   (package
     (name "neofetch")
-    (version "3.3.0")
+    (version "3.4.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/dylanaraps/neofetch/"
@@ -2320,7 +2374,7 @@ tool for remote execution and deployment.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "15p69q0jchfms1fpb4i7kq8b28w2xpgh2zmynln618qxv1myf228"))))
+                "18rhamy910ig03rr55y9x5i6pf78yj9xc6jpm6nfh3gqja7340rb"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; there are no tests
@@ -2533,3 +2587,65 @@ printed instead of after the entire file has been read, which is often too
 late.")
     (home-page "https://jwilk.net/software/hungrycat")
     (license license:expat)))
+
+(define-public launchmon
+  (package
+    (name "launchmon")
+    (version "1.0.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/LLNL/LaunchMON/releases/download/v"
+                    version "/" name "-v" version ".tar.gz"))
+              (sha256
+               (base32
+                "0fm3nd9mydm9v2bf7bh01dbgrfnpwkapxa3dsvy3x1z0rz61qc0x"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("mpi" ,openmpi)
+       ("munge" ,munge)
+       ("boost" ,boost)
+       ("libelf" ,libelf)
+       ("libgcrypt" ,libgcrypt)
+       ("libgpg-error" ,libgpg-error)))
+    (synopsis "Infrastructue for large scale tool daemon launching")
+    (description
+     "LaunchMON is a software infrastructure that enables HPC run-time
+tools to co-locate tool daemons with a parallel job.  Its API allows a
+tool to identify all the remote processes of a job and to scalably
+launch daemons into the relevant nodes.")
+    (home-page "https://github.com/LLNL/LaunchMON")
+    (supported-systems '("i686-linux" "x86_64-linux"))
+    (license license:lgpl2.1)))
+
+(define-public spindle
+  (package
+    (name "spindle")
+    (version "0.10")
+    (source (origin
+              ;; We use git checkout to avoid github auto-generated tarballs
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/hpc/Spindle.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "15n3ay0qq81r5v7fif61q1vdjcq44pp2nynkh3fvbzc9fj3c39wd"))))
+    (build-system gnu-build-system)
+    (arguments '(#:configure-flags '("--enable-sec-launchmon"
+                                     "--enable-sec-munge"
+                                     "--enable-sec-none")))
+    (inputs
+     `(("mpi" ,openmpi)
+       ("munge" ,munge)
+       ("launchmon" ,launchmon)
+       ("libgcrypt" ,libgcrypt)))
+    (synopsis "Scalable library loading in HPC environments")
+    (description
+     "Spindle is a tool for improving the performance of dynamic library and
+Python loading in HPC environments.")
+    (home-page "https://github.com/hpc/Spindle")
+    ;; This package supports x86_64 and PowerPC64
+    (supported-systems '("x86_64-linux"))
+    (license license:lgpl2.1)))
diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm
index 637cda0205..92de9736f1 100644
--- a/gnu/packages/android.scm
+++ b/gnu/packages/android.scm
@@ -341,7 +341,7 @@ Images.")
 (define-public android-udev-rules
   (package
     (name "android-udev-rules")
-    (version "20171113")
+    (version "20180112")
     (source
      (origin
        (method git-fetch)
@@ -350,7 +350,7 @@ Images.")
              (commit version)))
        (file-name (string-append name "-" version "-checkout"))
        (sha256
-        (base32 "11gcnk6wjc2sw05hwi4xphvx9ksmkpvsdziaczymqxkaads3f1dy"))))
+        (base32 "13gj79nnd04szqlrrzzkdr6wi1fky08pi7x8xfbg0jj3d3v0giah"))))
     (build-system trivial-build-system)
     (native-inputs `(("source" ,source)))
     (arguments
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 4456540c4d..d468899065 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -284,14 +284,15 @@ engineers, musicians, soundtrack editors and composers.")
 (define-public audacity
   (package
     (name "audacity")
-    (version "2.2.1")
+    (version "2.2.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/audacity/audacity/archive"
                            "/Audacity-" version ".tar.gz"))
        (sha256
-        (base32 "1n05r8b4rnf9fas0py0is8cm97s3h65dgvqkk040aym5d1x6wd7z"))
+        (base32
+         "18q7i77ynihx7xp45lz2lv0k0wrh6736pcrivlpwrxjgbvyqx7km"))
        (patches (search-patches "audacity-build-with-system-portaudio.patch"))
        (modules '((guix build utils)))
        (snippet
diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index 77dcd78331..bf88bd4919 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -34,7 +34,7 @@
 (define-public fio
   (package
     (name "fio")
-    (version "3.5")
+    (version "3.6")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -42,7 +42,7 @@
                        "fio-" version ".tar.bz2"))
               (sha256
                (base32
-                "1rrzcrn07db4pffvi2q0d0k884bwcapx6r1rfv4yx9066snvx240"))))
+                "1d2jibp1b2dq97f22wj6pcjl7gbd2kmhfggj2c7q3j8v9axjqsh2"))))
     (build-system gnu-build-system)
     (arguments
      '(#:test-target "test"
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index 09581d9fde..76ff773ef1 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -23,6 +23,8 @@
   #:use-module (guix download)
   #:use-module (guix build-system r)
   #:use-module (gnu packages)
+  #:use-module (gnu packages cran)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages statistics)
   #:use-module (gnu packages bioinformatics))
 
@@ -70,3 +72,260 @@ the Human Protein Atlas project.")
 customizable permutation tests to assess the association between genomic
 region sets and other genomic features.")
     (license license:artistic2.0)))
+
+(define-public r-diffbind
+  (package
+    (name "r-diffbind")
+    (version "2.6.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "DiffBind" version))
+       (sha256
+        (base32
+         "1sm5h6nq77hjfis6kr1nqyizcxgfz87dgpqc4fxlfqkmsd9n3vkp"))))
+    (properties `((upstream-name . "DiffBind")))
+    (build-system r-build-system)
+    (inputs
+     `(("zlib" ,zlib)))
+    (propagated-inputs
+     `(("r-amap" ,r-amap)
+       ("r-biocparallel" ,r-biocparallel)
+       ("r-deseq2" ,r-deseq2)
+       ("r-dplyr" ,r-dplyr)
+       ("r-edger" ,r-edger)
+       ("r-genomicalignments" ,r-genomicalignments)
+       ("r-ggrepel" ,r-ggrepel)
+       ("r-gplots" ,r-gplots)
+       ("r-iranges" ,r-iranges)
+       ("r-lattice" ,r-lattice)
+       ("r-limma" ,r-limma)
+       ("r-locfit" ,r-locfit)
+       ("r-rcolorbrewer" , r-rcolorbrewer)
+       ("r-rcpp" ,r-rcpp)
+       ("r-rsamtools" ,r-rsamtools)
+       ("r-s4vectors" ,r-s4vectors)
+       ("r-systempiper" ,r-systempiper)
+       ("r-zlibbioc" ,r-zlibbioc)))
+    (home-page "http://bioconductor.org/packages/DiffBind")
+    (synopsis "Differential binding analysis of ChIP-Seq peak data")
+    (description
+     "This package computes differentially bound sites from multiple
+ChIP-seq experiments using affinity (quantitative) data.  Also enables
+occupancy (overlap) analysis and plotting functions.")
+    (license license:artistic2.0)))
+
+(define-public r-ripseeker
+  (package
+    (name "r-ripseeker")
+    (version "1.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "RIPSeeker" version))
+       (sha256
+        (base32
+         "0bqkzwrncww7il36273chkd3gfxmii7p566ycki9qij419pwr35y"))))
+    (properties `((upstream-name . "RIPSeeker")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-s4vectors" ,r-s4vectors)
+       ("r-iranges" ,r-iranges)
+       ("r-genomicranges" ,r-genomicranges)
+       ("r-summarizedexperiment" ,r-summarizedexperiment)
+       ("r-rsamtools" ,r-rsamtools)
+       ("r-genomicalignments" ,r-genomicalignments)
+       ("r-rtracklayer" ,r-rtracklayer)))
+    (home-page "http://bioconductor.org/packages/RIPSeeker")
+    (synopsis
+     "Identifying protein-associated transcripts from RIP-seq experiments")
+    (description
+     "This package infers and discriminates RIP peaks from RIP-seq alignments
+using two-state HMM with negative binomial emission probability.  While
+RIPSeeker is specifically tailored for RIP-seq data analysis, it also provides
+a suite of bioinformatics tools integrated within this self-contained software
+package comprehensively addressing issues ranging from post-alignments
+processing to visualization and annotation.")
+    (license license:gpl2)))
+
+(define-public r-multtest
+  (package
+    (name "r-multtest")
+    (version "2.34.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "multtest" version))
+       (sha256
+        (base32
+         "0n11rd49xl2vn3ldmfips7d3yb70l8npjcqsxyswr9ypjhgzkv9j"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-survival" ,r-survival)
+       ("r-biocgenerics" ,r-biocgenerics)
+       ("r-biobase" ,r-biobase)
+       ("r-mass" ,r-mass)))
+    (home-page "http://bioconductor.org/packages/multtest")
+    (synopsis "Resampling-based multiple hypothesis testing")
+    (description
+     "This package can do non-parametric bootstrap and permutation
+resampling-based multiple testing procedures (including empirical Bayes
+methods) for controlling the family-wise error rate (FWER), generalized
+family-wise error rate (gFWER), tail probability of the proportion of
+false positives (TPPFP), and false discovery rate (FDR).  Several choices
+of bootstrap-based null distribution are implemented (centered, centered
+and scaled, quantile-transformed).  Single-step and step-wise methods are
+available.  Tests based on a variety of T- and F-statistics (including
+T-statistics based on regression parameters from linear and survival models
+as well as those based on correlation parameters) are included.  When probing
+hypotheses with T-statistics, users may also select a potentially faster null
+distribution which is multivariate normal with mean zero and variance
+covariance matrix derived from the vector influence function.  Results are
+reported in terms of adjusted P-values, confidence regions and test statistic
+cutoffs.  The procedures are directly applicable to identifying differentially
+expressed genes in DNA microarray experiments.")
+    (license license:lgpl3)))
+
+(define-public r-chippeakanno
+  (package
+    (name "r-chippeakanno")
+    (version "3.12.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "ChIPpeakAnno" version))
+       (sha256
+        (base32
+         "1zab489d7a6bh6ylc68x6yn47gdkmr7p3677grx9l2qafrryjr04"))))
+    (properties `((upstream-name . "ChIPpeakAnno")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biocgenerics" ,r-biocgenerics)
+       ("r-go-db" ,r-go-db)
+       ("r-biomart" ,r-biomart)
+       ("r-bsgenome" ,r-bsgenome)
+       ("r-genomicfeatures" ,r-genomicfeatures)
+       ("r-genomeinfodb" ,r-genomeinfodb)
+       ("r-matrixstats" ,r-matrixstats)
+       ("r-annotationdbi" ,r-annotationdbi)
+       ("r-limma" ,r-limma)
+       ("r-multtest" ,r-multtest)
+       ("r-rbgl" ,r-rbgl)
+       ("r-graph" ,r-graph)
+       ("r-biocinstaller" ,r-biocinstaller)
+       ("r-regioner" ,r-regioner)
+       ("r-dbi" ,r-dbi)
+       ("r-ensembldb" ,r-ensembldb)
+       ("r-biobase" ,r-biobase)
+       ("r-seqinr" ,r-seqinr)
+       ("r-idr" ,r-idr)
+       ("r-genomicalignments" ,r-genomicalignments)
+       ("r-summarizedexperiment" ,r-summarizedexperiment)
+       ("r-rsamtools" ,r-rsamtools)
+       ("r-venndiagram" ,r-venndiagram)))
+    (home-page "http://bioconductor.org/packages/ChIPpeakAnno")
+    (synopsis "Peaks annotation from ChIP-seq and ChIP-chip experiments")
+    (description
+     "The package includes functions to retrieve the sequences around the peak,
+obtain enriched Gene Ontology (GO) terms, find the nearest gene, exon, miRNA or
+custom features such as most conserved elements and other transcription factor
+binding sites supplied by users.  Starting 2.0.5, new functions have been added
+for finding the peaks with bi-directional promoters with summary statistics
+(peaksNearBDP), for summarizing the occurrence of motifs in peaks
+(summarizePatternInPeaks) and for adding other IDs to annotated peaks or
+enrichedGO (addGeneIDs).")
+    (license license:gpl2+)))
+
+(define-public r-marray
+  (package
+    (name "r-marray")
+    (version "1.56.0")
+    (source (origin
+              (method url-fetch)
+              (uri (bioconductor-uri "marray" version))
+              (sha256
+               (base32 "14c93i86yc7jn4ax8p4l0z6v9xisw1bv7gzb4a0gbxhxn7mddaic"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biobase" ,r-biobase)
+       ("r-limma" ,r-limma)))
+    (home-page "http://bioconductor.org/packages/marray")
+    (synopsis "Exploratory analysis for two-color spotted microarray data")
+    (description "This package contains class definitions for two-color spotted
+microarray data.  It also includes fuctions for data input, diagnostic plots,
+normalization and quality checking.")
+    (license license:lgpl2.0+)))
+
+(define-public r-cghbase
+  (package
+   (name "r-cghbase")
+   (version "1.38.0")
+   (source (origin
+            (method url-fetch)
+            (uri (bioconductor-uri "CGHbase" version))
+            (sha256
+             (base32 "0fynvcsjdbgp69i0nxrc8ni58rhb1kx9k5r3nb91n9i8s43gjqlm"))))
+   (properties `((upstream-name . "CGHbase")))
+   (build-system r-build-system)
+   (propagated-inputs
+    `(("r-biobase" ,r-biobase)
+      ("r-marray" ,r-marray)))
+   (home-page "http://bioconductor.org/packages/CGHbase")
+   (synopsis "Base functions and classes for arrayCGH data analysis")
+   (description "This package contains functions and classes that are needed by
+the @code{arrayCGH} packages.")
+   (license license:gpl2+)))
+
+(define-public r-cghcall
+  (package
+   (name "r-cghcall")
+   (version "2.40.0")
+   (source (origin
+            (method url-fetch)
+            (uri (bioconductor-uri "CGHcall" version))
+            (sha256
+             (base32 "11pi6awz3858yb4s0z3qf3kcmsdgp6d4aj41g4lfix1sv5amllch"))))
+   (properties `((upstream-name . "CGHcall")))
+   (build-system r-build-system)
+   (propagated-inputs
+    `(("r-biobase" ,r-biobase)
+      ("r-cghbase" ,r-cghbase)
+      ("r-impute" ,r-impute)
+      ("r-dnacopy" ,r-dnacopy)
+      ("r-snowfall" ,r-snowfall)))
+   (home-page "http://bioconductor.org/packages/CGHcall")
+   (synopsis "Base functions and classes for arrayCGH data analysis")
+   (description "This package contains functions and classes that are needed by
+@code{arrayCGH} packages.")
+   (license license:gpl2+)))
+
+(define-public r-qdnaseq
+  (package
+    (name "r-qdnaseq")
+    (version "1.14.0")
+    (source (origin
+              (method url-fetch)
+              (uri (bioconductor-uri "QDNAseq" version))
+              (sha256
+               (base32 "0lgbv4s0xqgrs7q6ynb3c273sf7pyrp51jnc8ravq1z5g0a2zshy"))))
+    (properties `((upstream-name . "QDNAseq")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biobase" ,r-biobase)
+       ("r-cghbase" ,r-cghbase)
+       ("r-cghcall" ,r-cghcall)
+       ("r-dnacopy" ,r-dnacopy)
+       ("r-genomicranges" ,r-genomicranges)
+       ("r-iranges" ,r-iranges)
+       ("r-matrixstats" ,r-matrixstats)
+       ("r-r-utils" ,r-r-utils)
+       ("r-rsamtools" ,r-rsamtools)))
+    (home-page "http://bioconductor.org/packages/QDNAseq")
+    (synopsis "Quantitative DNA sequencing for chromosomal aberrations")
+    (description "The genome is divided into non-overlapping fixed-sized bins,
+number of sequence reads in each counted, adjusted with a simultaneous
+two-dimensional loess correction for sequence mappability and GC content, and
+filtered to remove spurious regions in the genome.  Downstream steps of
+segmentation and calling are also implemented via packages DNAcopy and CGHcall,
+respectively.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 0e9e6b13fd..3e93d94651 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -6083,19 +6083,20 @@ information as possible.")
 (define-public r-vegan
   (package
     (name "r-vegan")
-    (version "2.4-6")
+    (version "2.5-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "vegan" version))
        (sha256
         (base32
-         "175mqr42mmxy98gpf3rky8alnkw3w1k90ggdw3cispl36841p76w"))))
+         "0pynr02d1xngda6c3va8fc4nxpgfkawhzcnz1ws4dnarp9b1w90r"))))
     (build-system r-build-system)
     (native-inputs
      `(("gfortran" ,gfortran)))
     (propagated-inputs
      `(("r-cluster" ,r-cluster)
+       ("r-knitr" ,r-knitr)
        ("r-lattice" ,r-lattice)
        ("r-mass" ,r-mass)
        ("r-mgcv" ,r-mgcv)
@@ -6251,14 +6252,14 @@ distribution.")
 (define-public r-dexseq
   (package
     (name "r-dexseq")
-    (version "1.24.3")
+    (version "1.24.4")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DEXSeq" version))
        (sha256
         (base32
-         "0xip73hlbr3zry9d7ly9vvvsbb3xjcmfa09lr9fdy528dwjrf084"))))
+         "1a80yv742fx5c7qav7imsdybphf0d5bixsqyf8w5zng7fk8j16d5"))))
     (properties `((upstream-name . "DEXSeq")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7589,13 +7590,13 @@ samples.")
 (define-public r-genomicalignments
   (package
     (name "r-genomicalignments")
-    (version "1.14.1")
+    (version "1.14.2")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomicAlignments" version))
               (sha256
                (base32
-                "033p6fw46sn7w2yyn14nb9qcnkf30cl0nv6zh014ixflm3iifz39"))))
+                "1659nj1xps7vliy5955i51x6hvrf16n1z0dfh10mmpaaswn2d2mv"))))
     (properties
      `((upstream-name . "GenomicAlignments")))
     (build-system r-build-system)
@@ -9637,13 +9638,13 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
 (define-public r-seurat
   (package
     (name "r-seurat")
-    (version "2.2.1")
+    (version "2.3.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "Seurat" version))
               (sha256
                (base32
-                "1sr82nf38hq07avrfn8vlrzjq7dfm4pcr8l1nh6mnglcql2bk9z2"))
+                "0kp3lw1s896zkjd6x2wp8qcg7wnm5b40g8vihps13f1m7j4nx7r0"))
               ;; Delete pre-built jar.
               (snippet
                '(begin (delete-file "inst/java/ModularityOptimizer.jar")
@@ -9673,11 +9674,15 @@ Main-Class: ModularityOptimizer\n")))
     (propagated-inputs
      `(("r-ape" ,r-ape)
        ("r-caret" ,r-caret)
+       ("r-cluster" ,r-cluster)
        ("r-cowplot" ,r-cowplot)
        ("r-diffusionmap" ,r-diffusionmap)
+       ("r-dosnow" ,r-dosnow)
        ("r-dplyr" ,r-dplyr)
        ("r-dtw" ,r-dtw)
+       ("r-fitdistrplus" ,r-fitdistrplus)
        ("r-fnn" ,r-fnn)
+       ("r-foreach" ,r-foreach)
        ("r-fpc" ,r-fpc)
        ("r-gdata" ,r-gdata)
        ("r-ggplot2" ,r-ggplot2)
@@ -9689,13 +9694,16 @@ Main-Class: ModularityOptimizer\n")))
        ("r-igraph" ,r-igraph)
        ("r-irlba" ,r-irlba)
        ("r-lars" ,r-lars)
+       ("r-lmtest" ,r-lmtest)
        ("r-mass" ,r-mass)
        ("r-matrix" ,r-matrix)
        ("r-metap" ,r-metap)
        ("r-mixtools" ,r-mixtools)
        ("r-pbapply" ,r-pbapply)
        ("r-plotly" ,r-plotly)
+       ("r-png" ,r-png)
        ("r-ranger" ,r-ranger)
+       ("r-rann" ,r-rann)
        ("r-rcolorbrewer" ,r-rcolorbrewer)
        ("r-rcpp" ,r-rcpp)
        ("r-rcppeigen" ,r-rcppeigen)
@@ -10170,14 +10178,14 @@ effort and encourages consistency.")
 (define-public r-ggbio
   (package
     (name "r-ggbio")
-    (version "1.26.0")
+    (version "1.26.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ggbio" version))
        (sha256
         (base32
-         "1bqxfqy0hff87ax92z4lfbjz01ndrz7x8pzm6dlkdmi52p30krm9"))))
+         "1xlmlngn27iwnr21s9di4059kav1a7c1sajx08wja8yn8f7j06hp"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-annotationdbi" ,r-annotationdbi)
@@ -10222,14 +10230,14 @@ interval to data view, mismatch pileup, and several splicing summaries.")
 (define-public r-gprofiler
   (package
     (name "r-gprofiler")
-    (version "0.6.4")
+    (version "0.6.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gProfileR" version))
        (sha256
         (base32
-         "1cka02zbz1rbppm782qpxk1xn9qxbrv2gp5rgf970j906hxm2y0b"))))
+         "1n6cj12j102b4x9vhyl4dljp1i0r43p23cnhqbx4als2xfxdlqgi"))))
     (properties `((upstream-name . "gProfileR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10340,14 +10348,14 @@ several related annotation packages.")
 (define-public r-erma
   (package
     (name "r-erma")
-    (version "0.10.0")
+    (version "0.10.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "erma" version))
        (sha256
         (base32
-         "0gcfs9g8vvdv5vmq9b21kd8sq5mizjj49nfzd4in9zvp4b9v7x1g"))))
+         "1fi8nc6fbd7i4p9i9hli31xplmdpsxqcdrb8v3nf8fx9klllbdav"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-annotationdbi" ,r-annotationdbi)
@@ -10376,14 +10384,14 @@ by Ernst and Kellis.")
 (define-public r-ldblock
   (package
     (name "r-ldblock")
-    (version "1.8.0")
+    (version "1.8.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ldblock" version))
        (sha256
         (base32
-         "18nfsixh6d2wfrb9laqsgly5w1frzihhak683k0p8fdf51h4aqba"))))
+         "1q8dz8wcq1r7kr635s9q21g36sxkdybk8khhpa4p57qv8r0gppl0"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-erma" ,r-erma)
@@ -10593,13 +10601,13 @@ assays such as Hi-C.")
 (define-public r-hitc
   (package
     (name "r-hitc")
-    (version "1.22.0")
+    (version "1.22.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "HiTC" version))
               (sha256
                (base32
-                "0288xa1jy6nzvz2ha07csmp6dirjw5r7p9vy69q2wsbyzr02ymkp"))))
+                "0da1jw9my2n2gihs31zyn14wwr23d8v2vij39ll7rm6fma3ydfbl"))))
     (properties `((upstream-name . "HiTC")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10841,14 +10849,14 @@ quality control.")
 (define-public r-scran
   (package
     (name "r-scran")
-    (version "1.6.8")
+    (version "1.6.9")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "scran" version))
        (sha256
         (base32
-         "07wniyrh2fhhkz28v0bfgpvpi1hkkn2cvhacrvvvck142j79944x"))))
+         "0cs64cnf0xjcgmawr210y99j3gxs6aqgh8081n9827kkqnx2y5dm"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-beachmat" ,r-beachmat)
@@ -12814,7 +12822,7 @@ expression report comparing samples in an easily configurable manner.")
 (define-public pigx-chipseq
   (package
     (name "pigx-chipseq")
-    (version "0.0.10")
+    (version "0.0.15")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/BIMSBbioinfo/pigx_chipseq/"
@@ -12822,7 +12830,7 @@ expression report comparing samples in an easily configurable manner.")
                                   "/pigx_chipseq-" version ".tar.gz"))
               (sha256
                (base32
-                "13w99bkr0w4j28ms0yzpl1x6fkpdqay0vh495q3x20bcilsjwnf1"))))
+                "11v9v3vyda0sv4cl45nki7mm4v4bjfcdq7a70kcvi9h465nq66wg"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; parts of the tests rely on access to the network
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index c6b9d74f33..9df4f097ac 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -315,8 +315,6 @@ Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.")
                (base32
                 "0919cf7lfk1djdl003cahqjvafdliv7v2l8r5wg95n4isqggdk75"))))
     (build-system gnu-build-system)
-    (native-inputs
-     `(("intltool" ,intltool)))
     (inputs
      `(("curl" ,curl)
        ("gtk+" ,gtk+)
@@ -375,7 +373,7 @@ and will take advantage of multiple processor cores where possible.")
 (define-public libtorrent-rasterbar
   (package
     (name "libtorrent-rasterbar")
-    (version "1.1.6")
+    (version "1.1.7")
     (source (origin
               (method url-fetch)
               (uri
@@ -385,7 +383,7 @@ and will take advantage of multiple processor cores where possible.")
                 "/libtorrent-rasterbar-" version ".tar.gz"))
               (sha256
                (base32
-                "1vr1a7smkwh7dc7jb9n68i0cg59wxhgywxc9kxpbs8fi9c04vixp"))))
+                "1agkcyjs7xscx4sgkg2ri4nm4v736xsg3br2v8jcrph86dlbycw1"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 2ea78c9bac..281bb98fa9 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -443,9 +443,6 @@ also initializes the boards (RAM etc).")
 (define-public u-boot-beagle-bone-black
   (make-u-boot-package "am335x_boneblack" "arm-linux-gnueabihf"))
 
-(define-public u-boot-odroid-c2
-  (make-u-boot-package "odroid-c2" "aarch64-linux-gnu"))
-
 (define-public u-boot-pine64-plus
   (let ((base (make-u-boot-package "pine64_plus" "aarch64-linux-gnu")))
     (package
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 728758f1ea..4b078e78ed 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2017 Corentin Bocquillon <corentin@nybble.fr>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
+;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,6 +29,8 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-crypto)
+  #:use-module (gnu packages python-web)
   #:use-module (gnu packages ninja)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python))
@@ -171,3 +174,43 @@ scripted definition of a software project and outputs @file{Makefile}s or
 other lower-level build files.")
     (home-page "https://premake.github.io")
     (license license:bsd-3)))
+
+(define-public osc
+  (package
+    (name "osc")
+    (version "0.162.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/openSUSE/" name
+                           "/archive/" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0b4kpm96ns4smqyfjysbk2p78d36x44xprpna8zz85q1y5xn57aj"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2 ; Module is python2 only.
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'fix-filename-and-remove-unused
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
+               ;; Main osc tool is renamed in spec file, not setup.py, let's
+               ;; do that too.
+               (rename-file
+                (string-append bin "osc-wrapper.py")
+                (string-append bin "osc"))
+               ;; Remove unused and broken script.
+               (delete-file (string-append bin "osc_hotshot.py"))
+             #t))))))
+    (inputs
+     `(("python2-m2crypto" ,python2-m2crypto)
+       ("python2-pycurl" ,python2-pycurl)
+       ("python2-urlgrabber" ,python2-urlgrabber)))
+    (home-page "https://github.com/openSUSE/osc")
+    (synopsis "Open Build Service command line tool")
+    (description "@command{osc} is a command line interface to the Open Build
+Service.  It allows you to checkout, commit, perform reviews etc.  The vast
+majority of the OBS functionality is available via commands and the rest can
+be reached via direct API calls.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm
index 3d35ff51f4..5f9117c637 100644
--- a/gnu/packages/cdrom.scm
+++ b/gnu/packages/cdrom.scm
@@ -392,7 +392,7 @@ capacity is user-selectable.")
        ("fontconfig" ,fontconfig)
        ("libexif" ,libexif)
        ("libjpeg" ,libjpeg)
-       ("ffmpeg" ,ffmpeg)))
+       ("ffmpeg" ,ffmpeg-3.4)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("flex" ,flex)
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 6ce0ed1424..77e5054314 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -35,6 +35,7 @@
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mpi)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages statistics)
   #:use-module (gnu packages web))
 
@@ -113,16 +114,18 @@ scraping tasks, inspired by libraries like @code{BeautifulSoup}.")
 (define-public r-selectr
   (package
     (name "r-selectr")
-    (version "0.3-2")
+    (version "0.4-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "selectr" version))
        (sha256
         (base32
-         "0kdrj64rqg4z6hg92y9r2h602a2i73r5rnlpg23ys33d5d32n8jy"))))
+         "1jp27rxks4w29l47k42869hp8hnkzq2rnvsqbr44wd19fqb2zm4b"))))
     (build-system r-build-system)
-    (propagated-inputs `(("r-stringr" ,r-stringr)))
+    (propagated-inputs
+     `(("r-stringr" ,r-stringr)
+       ("r-r6" ,r-r6)))
     (home-page "https://sjp.co.nz/projects/selectr/")
     (synopsis "Translate CSS selectors to XPath expressions")
     (description
@@ -164,14 +167,14 @@ such as copy/paste from an R session.")
 (define-public r-callr
   (package
     (name "r-callr")
-    (version "2.0.2")
+    (version "2.0.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "callr" version))
        (sha256
         (base32
-         "0m51p39vfwldxv6h8x4y9w3laf8q9bldhfqhlcrlx3xhy3irb1bp"))))
+         "1k3mflgn10hcvy74y4pbigpv74zb66fz1phfd3c8isqmn88xbxzi"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-assertthat" ,r-assertthat)
@@ -190,14 +193,14 @@ that.")
 (define-public r-readxl
   (package
     (name "r-readxl")
-    (version "1.0.0")
+    (version "1.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "readxl" version))
        (sha256
         (base32
-         "1bf7gxw9r11m4llyymplxiaa4gzgyj4bwmwad5in756pzq3jzmpv"))))
+         "05ii8knrg4jji6h7bv6bfpn279b6x52yrskdx5rv7b0hcpy22gdn"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-cellranger" ,r-cellranger)
@@ -287,14 +290,14 @@ component analysis (with robust methods, and parallelized functions).")
 (define-public r-ape
   (package
     (name "r-ape")
-    (version "5.0")
+    (version "5.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ape" version))
        (sha256
         (base32
-         "0q59pmxawz498cb9mv5m49lhiwxib8ak94yyydz7qg8b6lpd4bn3"))))
+         "0vm2065993wf4hdqarxqykhfz9aaj0rrb98alhkq4qw1d2kdrmdp"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-lattice" ,r-lattice)
@@ -404,14 +407,14 @@ initiative to bring PASSTEC 2000 functionalities to R.")
 (define-public r-plogr
   (package
     (name "r-plogr")
-    (version "0.1-1")
+    (version "0.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "plogr" version))
        (sha256
         (base32
-         "13zliqlbkl8b04k9ga0sx5jsh7k867gracgl84l2a9kcqy9mqx92"))))
+         "0a8dhzlna79ggyhfr0nncgh15a9n6r0dsz664pz0ah323wpblqqf"))))
     (build-system r-build-system)
     (home-page "https://github.com/krlmlr/plogr")
     (synopsis "R bindings for the plog C++ logging library")
@@ -424,13 +427,13 @@ error stream.")
 (define-public r-rcpp
   (package
     (name "r-rcpp")
-    (version "0.12.15")
+    (version "0.12.16")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Rcpp" version))
        (sha256
-        (base32 "1pnv6sl4vdn69ygmgrb1b3gsigfdcfb56wnzikic93l8gkvdsvxv"))))
+        (base32 "1rm8hcy72p1jvxikvmkwg20pjqmvmfvqb45lfghmddp2adp67qfl"))))
     (build-system r-build-system)
     (home-page "http://www.rcpp.org")
     (synopsis "Seamless R and C++ integration")
@@ -448,14 +451,14 @@ and Francois (2011, JSS), and the book by Eddelbuettel (2013, Springer); see
 (define-public r-bindr
   (package
     (name "r-bindr")
-    (version "0.1")
+    (version "0.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "bindr" version))
        (sha256
         (base32
-         "0d95ifm0x4mrfzi20xf39f5pzd7rfzqsld0vjqf6xzga5rhnd8fc"))))
+         "1l05fpk2yql3jka321c0bdgx6mqq9pvfrg2844lbjfpbgjkmqy3w"))))
     (build-system r-build-system)
     (home-page "https://github.com/krlmlr/bindr")
     (synopsis "Parametrized active bindings")
@@ -467,14 +470,14 @@ where the bound function accepts additional arguments.")
 (define-public r-bindrcpp
   (package
     (name "r-bindrcpp")
-    (version "0.2")
+    (version "0.2.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "bindrcpp" version))
        (sha256
         (base32
-         "0l1l22zl87wiyl79m3gj2vlxmkhxvrkl4alhyy08h55q7hqs3vyh"))))
+         "0rz4ibjdjsxl99ff3ha79z7cnjmilx4rx58fk9kk7ld9xc4hf4s8"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-bindr" ,r-bindr)
@@ -554,14 +557,14 @@ ellipses, circles, cylinders, arrows, ...")
 (define-public r-globaloptions
   (package
     (name "r-globaloptions")
-    (version "0.0.12")
+    (version "0.0.13")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "GlobalOptions" version))
        (sha256
         (base32
-         "1abpc03cfvazbwj2sx6qgngs5pgpzysvxkana20hyvb4n7ws77f0"))))
+         "04jvha0mafslqz5nr99xjylg9n2x31gj9v4mgyg7qcmfwpqyw3ch"))))
     (properties `((upstream-name . "GlobalOptions")))
     (build-system r-build-system)
     (home-page "https://github.com/jokergoo/GlobalOptions")
@@ -871,14 +874,14 @@ plot networks.")
 (define-public r-proxy
   (package
     (name "r-proxy")
-    (version "0.4-21")
+    (version "0.4-22")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "proxy" version))
        (sha256
         (base32
-         "1vih8gsfzv97h5c8ixd1qjnn02i7fzla2p9fdj2wpisqhx0p0xv0"))))
+         "0l0ff8irmmvic941is290hd5vszyhaj5nfwna4v3w9c1zk5nr1ma"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/proxy")
     (synopsis "Distance and similarity measures")
@@ -936,19 +939,21 @@ matrices.")
 (define-public r-rmpi
   (package
     (name "r-rmpi")
-    (version "0.6-6")
+    (version "0.6-7")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "Rmpi" version))
               (sha256
                (base32
-                "0fm6z049aaq2c9xagm8n64d9560hg9d8hyb0m359fii672nhkz6q"))))
+                "1b62gs7w1xqadqd7ir41jnxlcf14gcqfxd0915kn9ckdlsdrh0sw"))))
     (properties `((upstream-name . "Rmpi")))
     (build-system r-build-system)
     (arguments
      `(#:configure-flags '("--configure-args=\"--with-Rmpi-type=OPENMPI\"")))
     (inputs
      `(("openmpi" ,openmpi)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
     (home-page "http://www.stats.uwo.ca/faculty/yu/Rmpi")
     (synopsis "R interface to message-passing interface (MPI)")
     (description
@@ -1364,14 +1369,14 @@ available in a vignette.")
 (define-public r-lava
   (package
     (name "r-lava")
-    (version "1.6")
+    (version "1.6.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "lava" version))
        (sha256
         (base32
-         "02xf5d968raz9gnq5ywy04wz29xpdyca1hm79vbbg1mcxvzdl1dz"))))
+         "11k9npmzp3nk2qx0h1dwwfc37j4ddd9y54bppxby0ffnb8qlpw1k"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-numderiv" ,r-numderiv)
@@ -1411,14 +1416,14 @@ regression using Kernel Ridge Regression.")
 (define-public r-prodlim
   (package
     (name "r-prodlim")
-    (version "1.6.1")
+    (version "2018.04.18")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "prodlim" version))
        (sha256
         (base32
-         "0m51rkivx1zr6whdqwj66jpnkmp4385m06kkha3dp8qqf4jna9iz"))))
+         "1aslq87sqwikh8chxc378r38146y7kv79zz0kcq3j93ivx7va8jb"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-kernsmooth" ,r-kernsmooth)
@@ -1476,21 +1481,75 @@ Engineering and Computational Finance\" and for managing chronological and
 calendar objects.")
     (license license:gpl2+)))
 
+(define-public r-magic
+  (package
+    (name "r-magic")
+    (version "1.5-8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "magic" version))
+       (sha256
+        (base32
+         "083cgpp3v03li0h8597b3g21pd9lkbmn9pyssblnhc800mpc52vz"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-abind" ,r-abind)))
+    (home-page "https://github.com/RobinHankin/magic.git")
+    (synopsis "Create and investigate magic squares")
+    (description
+     "This package provides a collection of efficient, vectorized algorithms
+for the creation and investigation of magic squares and hypercubes, including
+a variety of functions for the manipulation and analysis of arbitrarily
+dimensioned arrays.")
+    (license license:gpl2)))
+
+(define-public r-geometry
+  (package
+    (name "r-geometry")
+    (version "0.3-6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "geometry" version))
+       (sha256
+        (base32
+         "0s09vi0rr0smys3an83mz6fk41bplxyz4myrbiinf4qpk6n33qib"))))
+    (build-system r-build-system)
+    (propagated-inputs `(("r-magic" ,r-magic)))
+    (home-page "http://geometry.r-forge.r-project.org/")
+    (synopsis "Mesh generation and surface tesselation")
+    (description
+     "This package makes the qhull library available in R, in a similar manner
+as in Octave.  Qhull computes convex hulls, Delaunay triangulations, halfspace
+intersections about a point, Voronoi diagrams, furthest-site Delaunay
+triangulations, and furthest-site Voronoi diagrams.  It runs in 2-d, 3-d, 4-d,
+and higher dimensions.  It implements the Quickhull algorithm for computing
+the convex hull.  Qhull does not support constrained Delaunay triangulations,
+or mesh generation of non-convex objects, but the package does include some R
+functions that allow for this.  Currently the package only gives access to
+Delaunay triangulation and convex hull computation.")
+    ;; The Qhull sources are included and are distributed under a custom
+    ;; non-copyleft license.  The R sources are released under GPL version 2.
+    (license (list license:gpl2
+                   (license:non-copyleft "http://www.qhull.org/COPYING.txt")))))
+
 (define-public r-ddalpha
   (package
     (name "r-ddalpha")
-    (version "1.3.1.1")
+    (version "1.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ddalpha" version))
        (sha256
         (base32
-         "13w8ir5rd80rka4mq343zd4wn93vfw870lzfqrd3cxgwb1bwcw7y"))))
+         "1i2zcz20zy9xd42kdz09njbkq07mj2pp6f07z6dnwi5hrmvhbh9r"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-bh" ,r-bh)
        ("r-class" ,r-class)
+       ("r-geometry" ,r-geometry)
        ("r-mass" ,r-mass)
        ("r-rcpp" ,r-rcpp)
        ("r-robustbase" ,r-robustbase)
@@ -1761,14 +1820,14 @@ color labels, layout, etc.")
 (define-public r-stringdist
   (package
     (name "r-stringdist")
-    (version "0.9.4.6")
+    (version "0.9.4.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "stringdist" version))
        (sha256
         (base32
-         "0j5b7hr53nr9xq44famkpwzi4khix93ffani5pwldqkf8bpdvhci"))))
+         "1qg80wmcrpkba9njvgjdg15bgw7ddks40kkfh5x61as9lhchy4i4"))))
     (build-system r-build-system)
     (home-page "https://github.com/markvanderloo/stringdist")
     (synopsis "Approximate string matching and string distance functions")
@@ -1986,14 +2045,14 @@ training models for classification or ranking.")
 (define-public r-xts
   (package
     (name "r-xts")
-    (version "0.10-1")
+    (version "0.10-2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "xts" version))
        (sha256
         (base32
-         "1j9ddh9v9081zrqlpylsk13fldilhjdyaw6r6pa726fhgnrsf8a2"))))
+         "1i11fczks4lh8rpi6xbm9bm7f3jpcp6xw03kv178g3n3361qhmc1"))))
     (build-system r-build-system)
     (propagated-inputs `(("r-zoo" ,r-zoo)))
     (native-inputs `(("gfortran" ,gfortran)))
@@ -2172,19 +2231,20 @@ plotting.  a three dimensional point cloud.")
 (define-public r-ggridges
   (package
     (name "r-ggridges")
-    (version "0.4.1")
+    (version "0.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ggridges" version))
        (sha256
         (base32
-         "0kfa3icqdalqdg1klxjrhfl7if35d3wnsiyl86bprw5dyqyh3lh3"))))
+         "1znvsbl3px8dddpjgdrygnpz4s685wizi0jnjvx2hrz58i0chjqj"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-ggplot2" ,r-ggplot2)
        ("r-plyr" ,r-plyr)
-       ("r-scales" ,r-scales)))
+       ("r-scales" ,r-scales)
+       ("r-withr" ,r-withr)))
     (home-page "https://github.com/clauswilke/ggridges")
     (synopsis "Ridgeline plots in ggplot2")
     (description
@@ -2555,14 +2615,14 @@ terminals.")
 (define-public r-tinytex
   (package
     (name "r-tinytex")
-    (version "0.3")
+    (version "0.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tinytex" version))
        (sha256
         (base32
-         "0mhxlr4709mca9jshnah5i7yjyy6k12s933619p7p9c8nbqj39cn"))))
+         "1pg4jfyvandjwz3lmr38pbqi9d045iwkk3xklhsfhhxq6aviq9p7"))))
     (build-system r-build-system)
     (home-page "https://github.com/yihui/tinytex")
     (synopsis "Helper functions for TeX Live and compiling LaTeX documents")
@@ -2775,14 +2835,14 @@ Cambridge University Press, 1993.")
 (define-public r-quantmod
   (package
     (name "r-quantmod")
-    (version "0.4-12")
+    (version "0.4-13")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "quantmod" version))
        (sha256
         (base32
-         "0y7gh0k1s10vdsfch8777avbhf99mc9crikvx7ahqrw0j631vmhq"))))
+         "16aldg96z7amp5mr90nb8127yy04gxsihfr26km5p3cx3j117yv0"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-curl" ,r-curl)
@@ -2799,14 +2859,14 @@ financial trading strategies.")
 (define-public r-tseries
   (package
     (name "r-tseries")
-    (version "0.10-43")
+    (version "0.10-44")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tseries" version))
        (sha256
         (base32
-         "1yjxhj7l1p2przczl6frggfcr5iwda9lbcsmh0y75gbbbps14yf2"))))
+         "0nz6v76hsxcprpgf84al5r0p08sr9qacqal4adndz9wmg604l4ag"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-quadprog" ,r-quadprog)
@@ -3323,14 +3383,14 @@ It also includes interpolation functions.")
 (define-public r-psych
   (package
     (name "r-psych")
-    (version "1.7.8")
+    (version "1.8.3.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "psych" version))
        (sha256
         (base32
-         "0daismb8pdk392vdy304hqx0m3jx62gx3a0hygjygc125rhfla7k"))))
+         "1zhp8j81nkzd65168zdw9ylypb9n07ajan21x0wqcn8jdbg970sg"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-foreign" ,r-foreign)
@@ -3354,14 +3414,14 @@ serve as a useful front end for structural equation modeling.")
 (define-public r-gsubfn
   (package
     (name "r-gsubfn")
-    (version "0.6-6")
+    (version "0.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gsubfn" version))
        (sha256
         (base32
-         "196x4c3ihf4q3i0v7b1xa6jm8jjld2rsx00qz03n90wfnjdx5idv"))))
+         "00j6b8b6xsx6v370h220x233rpk6asca78165y3d48jpwvwisdc9"))))
     (build-system r-build-system)
     (propagated-inputs `(("r-proto" ,r-proto)))
     (home-page "http://gsubfn.googlecode.com")
@@ -3613,14 +3673,14 @@ evaluated by the @dfn{Akaike Information Criterion} (AIC).")
 (define-public r-arules
   (package
     (name "r-arules")
-    (version "1.6-0")
+    (version "1.6-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "arules" version))
        (sha256
         (base32
-         "14gbq5k2zkx4wc7kkfazz313ngij89qp1xmyxfg3nq3v1s84c3sl"))))
+         "0glfqgxr87900kigmkby2ff7qrjvd6aq595q85y056i5ckjcp615"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-matrix" ,r-matrix)))
@@ -3704,3 +3764,185 @@ selection, and goodness-of-fit.  Cross-validation tools are also available for
 measuring the accuracy of ABC estimates, and to calculate the
 misclassification probabilities of different models.")
     (license license:gpl3+)))
+
+(define-public r-openxlsx
+  (package
+    (name "r-openxlsx")
+    (version "4.0.17")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "openxlsx" version))
+       (sha256
+        (base32
+         "1mq4lasp12kc30sxcsmz9gskd114l8s7z7wd6svv2nm8qllrhsqi"))))
+    (build-system r-build-system)
+    (propagated-inputs `(("r-rcpp" ,r-rcpp)))
+    (home-page "https://github.com/awalker89/openxlsx")
+    (synopsis "Read, write and edit XLSX files")
+    (description
+     "This package simplifies the creation of Excel @code{.xlsx} files by
+providing a high level interface to writing, styling and editing worksheets.
+Through the use of Rcpp, read/write times are comparable to the @code{xlsx}
+and @code{XLConnect} packages with the added benefit of removing the
+dependency on Java.")
+    (license license:gpl3)))
+
+(define-public r-rio
+  (package
+    (name "r-rio")
+    (version "0.5.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "rio" version))
+       (sha256
+        (base32
+         "158xg3vj0glk3fslwi6fywwmfym2b6kn3fdmjligdfy5lf68khix"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-curl" ,r-curl)
+       ("r-data-table" ,r-data-table)
+       ("r-foreign" ,r-foreign)
+       ("r-haven" ,r-haven)
+       ("r-openxlsx" ,r-openxlsx)
+       ("r-readxl" ,r-readxl)
+       ("r-tibble" ,r-tibble)))
+    (home-page "https://github.com/leeper/rio")
+    (synopsis "Swiss-army knife for data I/O")
+    (description
+     "This package provides streamlined data import and export infrastructure
+by making assumptions that the user is probably willing to make: @code{import}
+and @code{export} determine the data structure from the file extension,
+reasonable defaults are used for data import and export (e.g.,
+@code{stringsAsFactors=FALSE}), web-based import is natively
+supported (including from SSL/HTTPS), compressed files can be read directly
+without explicit decompression, and fast import packages are used where
+appropriate.  An additional convenience function, @code{convert}, provides a
+simple method for converting between file types.")
+    (license license:gpl2)))
+
+(define-public r-maptools
+  (package
+    (name "r-maptools")
+    (version "0.9-2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "maptools" version))
+       (sha256
+        (base32
+         "075lmb3b62171cw2dg8fv1vwmvfzg39r1ji7jwb8s5k9dz88ry1v"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-foreign" ,r-foreign)
+       ("r-lattice" ,r-lattice)
+       ("r-sp" ,r-sp)))
+    (home-page "http://r-forge.r-project.org/projects/maptools/")
+    (synopsis "Tools for reading and handling spatial objects")
+    (description
+     "This package provides a set of tools for manipulating and reading
+geographic data, in particular ESRI Shapefiles.  It includes binary access to
+GSHHG shoreline files.  The package also provides interface wrappers for
+exchanging spatial objects with other R packages.")
+    ;; The C source files from shapelib are released under the Expat license.
+    ;; The R code is released under GPL version 2 or later.
+    (license (list license:gpl2+
+                   license:expat))))
+
+(define-public r-later
+  (package
+    (name "r-later")
+    (version "0.7.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "later" version))
+       (sha256
+        (base32
+         "0z9jymmclkq9zcg1fd8p6gsnm5z1sn3n9pfz3bs03qjrkbizgrvz"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-bh" ,r-bh)
+       ("r-rcpp" ,r-rcpp)
+       ("r-rlang" ,r-rlang)))
+    (home-page "https://github.com/r-lib/later")
+    (synopsis "Utilities for delaying function execution")
+    (description
+     "This package provides tools to execute arbitrary R or C functions some
+time after the current time, after the R execution stack has emptied.")
+    (license license:gpl2+)))
+
+(define-public r-promises
+  (package
+    (name "r-promises")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "promises" version))
+       (sha256
+        (base32
+         "0n2mlv6bvfb4yhgcml696l9vkbw21pz0smqylivr606z99rwgny2"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-later" ,r-later)
+       ("r-magrittr" ,r-magrittr)
+       ("r-r6" ,r-r6)
+       ("r-rcpp" ,r-rcpp)
+       ("r-rlang" ,r-rlang)))
+    (home-page "https://rstudio.github.io/promises")
+    (synopsis "Abstractions for promise-based asynchronous programming")
+    (description
+     "This package provides fundamental abstractions for doing asynchronous
+programming in R using promises.  Asynchronous programming is useful for
+allowing a single R process to orchestrate multiple tasks in the background
+while also attending to something else.  Semantics are similar to JavaScript
+promises, but with a syntax that is idiomatic R.")
+    (license license:expat)))
+
+(define-public r-dosnow
+  (package
+    (name "r-dosnow")
+    (version "1.0.16")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "doSNOW" version))
+       (sha256
+        (base32
+         "13ir4a8252h4yvp5ir9xnwack1kn58i4ny6sf2qdc12zspn3850n"))))
+    (properties `((upstream-name . "doSNOW")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-foreach" ,r-foreach)
+       ("r-iterators" ,r-iterators)
+       ("r-snow" ,r-snow)))
+    (home-page "https://cran.r-project.org/web/packages/doSNOW")
+    (synopsis "Foreach parallel adaptor for the snow package")
+    (description
+     "This package provides a parallel backend for the @code{%dopar%} function
+using the @code{snow} package.")
+    (license license:gpl2)))
+
+(define-public r-snowfall
+  (package
+   (name "r-snowfall")
+   (version "1.84-6.1")
+   (source (origin
+            (method url-fetch)
+            (uri (cran-uri "snowfall" version))
+            (sha256
+             (base32 "13941rlw1jsdjsndp1plzj1cq5aqravizkrqn6l25r9im7rnsi2w"))))
+   (build-system r-build-system)
+   (propagated-inputs
+    `(("r-snow" ,r-snow)))
+   (home-page "http://cran.r-project.org/web/packages/snowfall/")
+   (synopsis "Easier cluster computing")
+   (description "This package is a usability wrapper around snow for easier
+development of parallel R programs.  This package offers e.g. extended error
+checks, and additional functions.  All functions work in sequential mode, too,
+if no cluster is present or wished.  The package is also designed as connector
+to the cluster management tool @code{sfCluster}, but can also used without
+it.")
+   (license license:gpl2+)))
diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm
index fbf177d9da..ae8b9600dd 100644
--- a/gnu/packages/curl.scm
+++ b/gnu/packages/curl.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Roel Janssen <roel@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -36,6 +37,7 @@
   #:use-module (gnu packages golang)
   #:use-module (gnu packages groff)
   #:use-module (gnu packages gsasl)
+  #:use-module (gnu packages guile)
   #:use-module (gnu packages libidn)
   #:use-module (gnu packages openldap)
   #:use-module (gnu packages perl)
@@ -193,3 +195,51 @@ mechanisms particularly within the HTTP(S) realm are to be expected.  kurly does
 not offer a replacement for libcurl.")
     (home-page "https://github.com/davidjpeacock/kurly")
     (license license:asl2.0)))
+
+(define-public guile-curl
+  (package
+   (name "guile-curl")
+   (version "0.5")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append
+                  "http://www.lonelycactus.com/tarball/guile-curl-"
+                  version ".tar.gz"))
+            (sha256
+             (base32
+              "1846rxgc0ylh8768lr79irc7nwjichzb7qb7lzs2k42m0i53sc46"))))
+   (build-system gnu-build-system)
+   (arguments
+    `(#:configure-flags (list (string-append
+                               "--with-guilesitedir="
+                               (assoc-ref %outputs "out")
+                               "/share/guile/site/2.2")
+                              (string-append
+                               "-with-guileextensiondir="
+                               (assoc-ref %outputs "out")
+                               "/lib/guile/2.2/extensions"))
+      #:phases
+      (modify-phases %standard-phases
+        (add-after 'install 'patch-extension-path
+          (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out      (assoc-ref outputs "out"))
+                    (curl.scm (string-append
+                               out "/share/guile/site/2.2/curl.scm"))
+                    (curl.go  (string-append
+                               out "/lib/guile/2.2/site-ccache/curl.go"))
+                    (ext      (string-append out "/lib/guile/2.2/"
+                                             "extensions/libguile-curl")))
+               (substitute* curl.scm (("libguile-curl") ext))
+               ;; The build system does not actually compile the Scheme module.
+               ;; So we can compile it and put it in the right place in one go.
+               (invoke "guild" "compile" curl.scm "-o" curl.go)))))))
+   (native-inputs `(("pkg-config" ,pkg-config)))
+   (inputs
+    `(("curl" ,curl)
+      ("guile" ,guile-2.2)))
+   (home-page "http://www.lonelycactus.com/guile-curl.html")
+   (synopsis "Curl bindings for Guile")
+   (description "@code{guile-curl} is a project that has procedures that allow
+Guile to do client-side URL transfers, like requesting documents from HTTP or
+FTP servers.  It is based on the curl library.")
+   (license license:gpl3+)))
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index ecbb815246..f54fec6420 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -845,7 +845,7 @@ types are supported, as is encryption.")
 (define-public rocksdb
   (package
     (name "rocksdb")
-    (version "5.10.4")
+    (version "5.12.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/facebook/rocksdb"
@@ -853,7 +853,7 @@ types are supported, as is encryption.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0hp7jxr99vyc57n708hiqk4lks9a9zmjgfjc21mx6v1rmabj2944"))
+                "1jcwgsjhk4hdfr2wf549blkgb89vwcdb5i2ahhqs6zf3mm20i3bf"))
               (modules '((guix build utils)))
               (snippet
                '(begin
diff --git a/gnu/packages/dictionaries.scm b/gnu/packages/dictionaries.scm
index 965002a94d..55f250182d 100644
--- a/gnu/packages/dictionaries.scm
+++ b/gnu/packages/dictionaries.scm
@@ -213,7 +213,7 @@ It comes with a German-English dictionary with approximately 270,000 entries.")
 (define-public grammalecte
   (package
     (name "grammalecte")
-    (version "0.6.3.1")
+    (version "0.6.4")
     (source
      (origin
        (method url-fetch/zipbomb)
@@ -221,21 +221,8 @@ It comes with a German-English dictionary with approximately 270,000 entries.")
                            "Grammalecte-fr-v" version ".zip"))
        (sha256
         (base32
-         "0jlzrhpx9qvjdq679w188p86x09yfjf3l0h4scjl9w26yyp53gr8"))))
+         "13var1gi3gb2bwi7k21bn2pla0rs17cd7kc3mc5a2nsyqgsrzxfw"))))
     (build-system python-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-setup
-           ;; Fix typos in "setup.py".  In particular, add the new
-           ;; "graphspell" module introduced in 0.6.2.  Reported upstream:
-           ;; <https://www.dicollecte.org/thread.php?prj=fr&t=709>
-           (lambda _
-             (substitute* "setup.py"
-               (("packages=\\['grammalecte', 'grammalecte.fr'\\],")
-                "packages=['grammalecte', 'grammalecte.fr', 'grammalecte.graphspell'],")
-               (("_dictionaries/French.bdic") "graphspell/_dictionaries/fr.bdic"))
-             #t)))))
     (home-page "https://www.dicollecte.org")
     (synopsis  "French spelling and grammar checker")
     (description "Grammalecte is a grammar checker dedicated to the French
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 5e4309ca13..5bc18b4cbc 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -490,14 +490,14 @@ Extensions} (DNSSEC).")
 (define-public knot
   (package
     (name "knot")
-    (version "2.6.5")
+    (version "2.6.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://secure.nic.cz/files/knot-dns/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0ilxwhy7a7jdzynq586pwlgcvqd1j6ycqy9qrwvypfp20rkngk9k"))
+                "02h8qdkja4kic3br79svws6r2pq1ijz945238v99d998d2jxh6ci"))
               (modules '((guix build utils)))
               (snippet
                '(begin
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index e8fb1e64d6..58f06c3106 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
 ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
-;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -107,29 +107,54 @@ of categories with some of the activities available in that category.
 (define-public gcompris-qt
   (package
     (name "gcompris-qt")
-    (version "0.70")
+    (version "0.90")
     (source
       (origin
         (method url-fetch)
         (uri (string-append
-               "http://gcompris.net/download/qt/src/gcompris-qt-"
+               "https://gcompris.net/download/qt/src/gcompris-qt-"
                version ".tar.xz"))
         (sha256
          (base32
-          "01r7i8dmwb2nlfyp0y0mzs8yydmvn5gq7xn1w7g21lysak1mliwa"))))
+          "1i5adxnhig849qxwi3c4v7r84q6agx1zxkd69fh4y7lcmq2qiaza"))))
     (build-system cmake-build-system)
     (arguments
-      ;; Qml_box2d is unmaintained and not actually required for building
-     '(#:configure-flags (list "-DQML_BOX2D_MODULE=disabled")
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-executable
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (wrap-program (string-append out "/bin/gcompris-qt")
+                 `("QT_PLUGIN_PATH" ":" prefix
+                   ,(map (lambda (label)
+                           (string-append (assoc-ref inputs label)
+                                          "/lib/qt5/plugins"))
+                         '("qtbase" "qtdeclarative" "qtmultimedia" "qtsvg")))
+                 `("QML2_IMPORT_PATH" ":" prefix
+                   ,(map (lambda (label)
+                           (string-append (assoc-ref inputs label)
+                                          "/lib/qt5/qml"))
+                         '("qtdeclarative" "qtgraphicaleffects"
+                           "qtmultimedia" "qtquickcontrols"))))
+               #t))))
+       #:configure-flags (list "-DQML_BOX2D_MODULE=disabled")
        #:tests? #f)) ; no test target
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("gettext" ,gettext-minimal)
-       ("perl" ,perl)))
+       ("perl" ,perl)
+       ("qttools" ,qttools)))
     (inputs
      `(("python-2" ,python-2)
-       ("qt" ,qt))) ; Cannot find qtquick at runtime with modular qt.
-    (home-page "http://gcompris.net/index-en.html")
+       ("qtbase" ,qtbase)
+       ("qtdeclarative" ,qtdeclarative)
+       ("qtgraphicaleffects" ,qtgraphicaleffects)
+       ("qtmultimedia" ,qtmultimedia)
+       ("qtquickcontrols" ,qtquickcontrols)
+       ("qtsensors" ,qtsensors)
+       ("qtsvg" ,qtsvg)
+       ("qtxmlpatterns" ,qtxmlpatterns)))
+    (home-page "https://gcompris.net/index-en.html")
     (synopsis "Educational games for small children")
     (description
      "Gcompris offers a large collection of educational games for small
diff --git a/gnu/packages/electronics.scm b/gnu/packages/electronics.scm
index 60dfa509aa..068aa23e36 100644
--- a/gnu/packages/electronics.scm
+++ b/gnu/packages/electronics.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -50,7 +51,7 @@
                (base32
                 "17ajlwgvyyrap8z7f16zcs59pksvncwbmd3mzf98wj7zqgczjaja"))))
     (build-system gnu-build-system)
-    (home-page "http://sigrok.org/wiki/Libserialport")
+    (home-page "https://sigrok.org/wiki/Libserialport")
     (synopsis "Library for using serial ports")
     (description "Libserialport is a minimal shared library written in C that is intended
 to take care of the OS-specific details when writing software that uses serial ports.")
@@ -59,7 +60,7 @@ to take care of the OS-specific details when writing software that uses serial p
 (define-public libsigrokdecode
   (package
     (name "libsigrokdecode")
-    (version "0.5.0")
+    (version "0.5.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -67,14 +68,15 @@ to take care of the OS-specific details when writing software that uses serial p
                     version ".tar.gz"))
               (sha256
                (base32
-                "1hfigfj1976qk11kfsgj75l20qvyq8c9p2h4mjw23d59rsg5ga2a"))))
+                "07mmb6s62ncqqgsc6szilj2yxixf6gg99ggbzsjlbhp4b9aqnga9"))))
     (outputs '("out" "doc"))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'build 'build-doc
            (lambda _
-             (zero? (system* "doxygen"))))
+             (invoke "doxygen")
+             #t))
          (add-after 'install 'install-doc
            (lambda* (#:key outputs #:allow-other-keys)
              (copy-recursively "doxy/html-api"
@@ -91,7 +93,7 @@ to take care of the OS-specific details when writing software that uses serial p
      `(("glib" ,glib)
        ("python" ,python)))
     (build-system gnu-build-system)
-    (home-page "http://www.sigrok.org/wiki/Libsigrokdecode")
+    (home-page "https://www.sigrok.org/wiki/Libsigrokdecode")
     (synopsis "Library providing (streaming) protocol decoding functionality")
     (description "Libsigrokdecode is a shared library written in C, which provides
 (streaming) protocol decoding functionality.")
@@ -112,7 +114,7 @@ to take care of the OS-specific details when writing software that uses serial p
     (native-inputs
      `(("sdcc" ,sdcc)))
     (build-system gnu-build-system)
-    (home-page "http://www.sigrok.org/wiki/Fx2lafw")
+    (home-page "https://www.sigrok.org/wiki/Fx2lafw")
     (synopsis "Firmware for Cypress FX2 chips")
     (description "Fx2lafw is free firmware for Cypress FX2 chips which makes them usable
 as simple logic analyzer and/or oscilloscope hardware.")
@@ -190,7 +192,7 @@ as simple logic analyzer and/or oscilloscope hardware.")
        ("libftdi" ,libftdi)
        ("libzip" ,libzip)))
     (build-system gnu-build-system)
-    (home-page "http://www.sigrok.org/wiki/Libsigrok")
+    (home-page "https://www.sigrok.org/wiki/Libsigrok")
     (synopsis "Library which provides the basic hardware access drivers for logic
 analyzers")
     (description "@code{libsigrok} is a shared library written in C which provides the basic hardware
@@ -217,7 +219,7 @@ format support.")
        ("libsigrok" ,libsigrok)
        ("libsigrokdecode" ,libsigrokdecode)))
     (build-system gnu-build-system)
-    (home-page "http://sigrok.org/wiki/Sigrok-cli")
+    (home-page "https://sigrok.org/wiki/Sigrok-cli")
     (synopsis "Command-line frontend for sigrok")
     (description "Sigrok-cli is a command-line frontend for sigrok.")
     (license license:gpl3+)))
@@ -247,7 +249,7 @@ format support.")
        ("qtbase" ,qtbase)
        ("qtsvg" ,qtsvg)))
     (build-system cmake-build-system)
-    (home-page "http://www.sigrok.org/wiki/PulseView")
+    (home-page "https://www.sigrok.org/wiki/PulseView")
     (synopsis "Qt based logic analyzer, oscilloscope and MSO GUI for sigrok")
     (description "PulseView is a Qt based logic analyzer, oscilloscope and MSO GUI
 for sigrok.")
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index e2b901cd3a..802f289c6d 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -19,7 +19,7 @@
 ;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
-;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
 ;;; Copyright © 2017, 2018 Kyle Meyer <kyle@kyleam.com>
 ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
@@ -958,7 +958,7 @@ light user interface.")
 (define-public emacs-emms-player-mpv
   (package
     (name "emacs-emms-player-mpv")
-    (version "0.0.13")
+    (version "0.1.0")
     (source
      (origin
        (method url-fetch)
@@ -967,7 +967,7 @@ light user interface.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "01i0bz7wdqzcnv5r63m9xgl07yf1nmn86dwy00rcfsn5za46y3r3"))))
+         "05qwbagc4i7yn7i94r1hdgj6wc5xijy1pxqv08pwsmli9rqj51n9"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emms" ,emms)))
@@ -1473,7 +1473,9 @@ filters, new key bindings and faces.  It can be enabled by
              ;; upgrading" that pdf-tools tries to perform.
              (emacs-substitute-variables "pdf-tools.el"
                ("pdf-tools-handle-upgrades" '()))))
-         (add-after 'emacs-patch-variables 'emacs-install
+         (add-after 'emacs-patch-variables 'emacs-set-emacs-load-path
+           (assoc-ref emacs:%standard-phases 'set-emacs-load-path))
+         (add-after 'emacs-set-emacs-load-path 'emacs-install
            (assoc-ref emacs:%standard-phases 'install))
          (add-after 'emacs-install 'emacs-build
            (assoc-ref emacs:%standard-phases 'build))
@@ -1513,11 +1515,8 @@ and stored in memory.")
                 "1pjlkrzr8n45bnp3xs3dybvy0nz3gwamrfc7vsi1nhpkkw99ihhb"))))
     (build-system emacs-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'install 'check
-                     (lambda _
-                       (zero? (system* "./run-tests.sh")))))))
+     `(#:tests? #t
+       #:test-command '("./run-tests.sh")))
     (home-page "https://github.com/magnars/dash.el")
     (synopsis "Modern list library for Emacs")
     (description "This package provides a modern list API library for Emacs.")
@@ -1710,11 +1709,8 @@ allows easily move between them.")
                 "0xbl75863pcm806zg0x1lw7qznzjq2c8320k8js7apyag8q4srvh"))))
     (build-system emacs-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'install 'check
-                     (lambda _
-                       (zero? (system* "./run-tests.sh")))))))
+     `(#:tests? #t
+       #:test-command '("./run-tests.sh")))
     (home-page "https://github.com/magnars/s.el")
     (synopsis "Emacs string manipulation library")
     (description "This package provides an Emacs library for manipulating
@@ -1742,26 +1738,31 @@ strings.")
     (license license:gpl2+)))
 
 (define-public emacs-sx
-  (package
-    (name "emacs-sx")
-    (version "0.4")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/vermiculus/sx.el/"
-                                  "archive/v" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1w0xghfljqg31axcnv8gzlrd8pw25nji6idnrhflq0af9qh1dw03"))))
-    (build-system emacs-build-system)
-    (propagated-inputs
-     `(("emacs-markdown-mode" ,emacs-markdown-mode)))
-    (home-page "https://github.com/vermiculus/sx.el/")
-    (synopsis "Emacs StackExchange client")
-    (description
-     "Emacs StackExchange client.  Ask and answer questions on
+  (let ((version "20180212")
+        (revision "1")
+        (commit "833435fbf90d1c9e927d165b155f3b1ef39271de"))
+    (package
+      (name "emacs-sx")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/vermiculus/sx.el")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1369xaxq1vy3d9yh862ddnhddikdpg2d0wv1ly00pnvdp9v4cqgd"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-markdown-mode" ,emacs-markdown-mode)))
+      (home-page "https://github.com/vermiculus/sx.el")
+      (synopsis "Emacs StackExchange client")
+      (description
+       "Emacs StackExchange client.  Ask and answer questions on
 Stack Overflow, Super User, and other StackExchange sites.")
-    (license license:gpl3+)))
+      (license license:gpl3+))))
 
 (define-public emacs-f
   (package
@@ -2226,11 +2227,8 @@ in Lisp modes.")
     (native-inputs
      `(("ert-runner" ,ert-runner)))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'install 'check
-           (lambda _
-             (zero? (system* "ert-runner")))))))
+     `(#:tests? #t
+       #:test-command '("ert-runner")))
     (home-page "https://github.com/akicho8/string-inflection")
     (synopsis "Convert symbol names between different naming conventions")
     (description
@@ -2494,7 +2492,24 @@ framework for Emacs Lisp to be used with @code{ert}.")
                 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))
               (file-name (string-append name "-" version))))
     (build-system emacs-build-system)
-    ;; FIXME: Would need 'el-expectations' to actually run tests.
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (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")))
+    (native-inputs
+     `(("emacs-ert-expectations" ,emacs-ert-expectations)
+       ("emacs-undercover" ,emacs-undercover)
+       ("ert-runner" ,ert-runner)))
     (synopsis "Simple asynchronous functions for Emacs Lisp")
     (description
      "The @code{deferred.el} library provides support for asynchronous tasks.
@@ -2546,7 +2561,7 @@ build jobs.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-before 'install 'check
+         (add-before 'check 'fix-bin-dir
            (lambda _
              ;; The company-files-candidates-normal-root test looks
              ;; for the /bin directory, but the build environment has
@@ -2554,7 +2569,9 @@ build jobs.")
              ;; /tmp directory.
              (substitute* "test/files-tests.el"
                (("/bin/") "/tmp/"))
-             (zero? (system* "make" "test-batch")))))))
+             #t)))
+       #:tests? #t
+       #:test-command '("make" "test-batch")))
     (home-page "http://company-mode.github.io/")
     (synopsis "Modular text completion framework")
     (description
@@ -3290,7 +3307,7 @@ after buffer changes.")
 (define-public emacs-realgud
   (package
     (name "emacs-realgud")
-    (version "1.4.4")
+    (version "1.4.5")
     (source
      (origin
        (method url-fetch)
@@ -3298,13 +3315,13 @@ after buffer changes.")
                            version ".tar"))
        (sha256
         (base32
-         "1nc8km339ip90h1j55ahfga03v7x7rh4iycmw6yrxyzir68vwn7c"))))
+         "108wgxg7fb4byaiasgvbxv2hq7b00biq9f0mh9hy6vw4160y5w24"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #t
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'fix-autogen-script
+         (add-after 'set-emacs-load-path 'fix-autogen-script
            (lambda _
              (substitute* "autogen.sh"
                (("./configure") "sh configure"))))
@@ -3539,35 +3556,88 @@ lines that match the current text being edited.  This gives you the effect of
 a temporary @code{keep-lines} or @code{occur}.")
     (license license:gpl3+)))
 
+(define-public emacs-zoutline
+  (let ((commit "b3ee0f0e0b916838c2d2c249beba74ffdb8d5699")
+        (revision "0"))
+    (package
+      (name "emacs-zoutline")
+      (version (git-version "0.1" revision commit))
+      (home-page "https://github.com/abo-abo/zoutline")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference (url home-page) (commit commit)))
+                (sha256
+                 (base32
+                  "0sd0017piw0dis6dhpq5dkqd3acisxqgipl7dj8gmc1vnswhdwr8"))
+                (file-name (git-file-name name version))))
+      (build-system emacs-build-system)
+      (synopsis "Simple outline library")
+      (description
+       "This library provides helpers for outlines.  Outlines allow users to
+navigate code in a tree-like fashion.")
+      (license license:gpl3+))))
+
 (define-public emacs-lispy
-  (package
-    (name "emacs-lispy")
-    (version "0.26.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/abo-abo/lispy/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "15gig95cvamw5zlw99cxggd27c18b9scznjj97gvjn2zbljcaqzl"))))
-    (build-system emacs-build-system)
-    (propagated-inputs
-     `(("emacs-ace-window" ,emacs-ace-window)
-       ("emacs-iedit" ,emacs-iedit)
-       ("emacs-ivy" ,emacs-ivy)
-       ("emacs-hydra" ,emacs-hydra)))
-    (home-page "https://github.com/abo-abo/lispy")
-    (synopsis "Modal S-expression editing")
-    (description
-     "Due to the structure of Lisp syntax it's very rare for the programmer to
-want to insert characters right before \"(\" or right after \")\".  Thus
+  ;; Release 0.26.0 was almost 3 years ago, and there have been ~772 commits
+  ;; since.
+  (let ((commit "a7e1cf742e72199cc75aa5e1e686991ba4a23bc4")
+        (revision "0"))
+    (package
+      (name "emacs-lispy")
+      (version (git-version "0.26.0" revision commit))
+      (home-page "https://github.com/abo-abo/lispy")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference (url home-page) (commit commit)))
+                (sha256
+                 (base32
+                  "0qg85gz5akayvhb5fmn1qx7s9847gry4g20xcnq8llr839lq28dl"))
+                (file-name (git-file-name name version))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-ace-window" ,emacs-ace-window)
+         ("emacs-iedit" ,emacs-iedit)
+         ("emacs-ivy" ,emacs-ivy)
+         ("emacs-hydra" ,emacs-hydra)
+         ("emacs-zoutline" ,emacs-zoutline)))
+      (synopsis "Modal S-expression editing")
+      (description
+       "Due to the structure of Lisp syntax it's very rare for the programmer
+to want to insert characters right before \"(\" or right after \")\".  Thus
 unprefixed printable characters can be used to call commands when the point is
 at one of these special locations.  Lispy provides unprefixed keybindings for
 S-expression editing when point is at the beginning or end of an
 S-expression.")
-    (license license:gpl3+)))
+      (license license:gpl3+))))
+
+(define-public emacs-lispyville
+  ;; Later versions need a more recent Evil, with an evil-define-key*
+  ;; supporting nil for the state.
+  (let ((commit "b4291857ed6a49a67c4ea77522889ce51fb171ab")
+        (revision "0"))
+    (package
+      (name "emacs-lispyville")
+      (version (git-version "0.1" revision commit))
+      (home-page "https://github.com/noctuid/lispyville")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference (url home-page) (commit commit)))
+                (sha256
+                 (base32
+                  "095zibzc3naknahdrnb59g9rbljy8wz9rkc7rf8avb3wxlwvxhm3"))
+                (file-name (git-file-name name version))))
+      (propagated-inputs
+       `(("emacs-evil" ,emacs-evil)
+         ("emacs-lispy" ,emacs-lispy)))
+      (build-system emacs-build-system)
+      (synopsis "Minor mode for integrating Evil with lispy")
+      (description
+       "LispyVille's main purpose is to provide a Lisp editing environment
+suited towards Evil users.  It can serve as a minimal layer on top of lispy
+for better integration with Evil, but it does not require the use of lispy’s
+keybinding style.  The provided commands allow for editing Lisp in normal
+state and will work even without lispy being enabled.")
+      (license license:gpl3+))))
 
 (define-public emacs-clojure-mode
   (package
@@ -3588,11 +3658,8 @@ S-expression.")
        ("emacs-s" ,emacs-s)
        ("ert-runner" ,ert-runner)))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'install 'check
-           (lambda _
-             (zero? (system* "ert-runner")))))))
+     `(#:tests? #t
+       #:test-command '("ert-runner")))
     (home-page "https://github.com/clojure-emacs/clojure-mode")
     (synopsis "Major mode for Clojure code")
     (description
@@ -3771,14 +3838,10 @@ E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
            "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
       (build-system emacs-build-system)
       (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (add-before 'install 'check
-             (lambda _
-               (zero? (system* "emacs" "-batch"
-                               "-l" "julia-mode.el"
-                               "-l" "julia-mode-tests.el"
-                               "-f" "ert-run-tests-batch-and-exit")))))))
+       `(#:tests? #t
+         #:test-command '("emacs" "--batch"
+                          "-l" "julia-mode-tests.el"
+                          "-f" "ert-run-tests-batch-and-exit")))
       (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
       (synopsis "Major mode for Julia")
       (description "This Emacs package provides a mode for the Julia
@@ -3969,11 +4032,8 @@ If you want to mark a folder manually as a project just create an empty
                 "1fd1mx0q1qb9vgdzls5ppxfriyid48blg8smgjspiazp7kxakzxv"))))
     (build-system emacs-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'install 'check
-           (lambda _
-             (zero? (system* "make" "test")))))))
+     `(#:tests? #t
+       #:test-command '("make" "test")))
     (home-page "https://github.com/skeeto/elfeed")
     (synopsis "Atom/RSS feed reader for Emacs")
     (description
@@ -4558,14 +4618,14 @@ passive voice.")
     (name "emacs-org")
     ;; emacs-org-contrib inherits from this package.  Please update its sha256
     ;; checksum as well.
-    (version "9.1.9")
+    (version "9.1.11")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://elpa.gnu.org/packages/org-"
                                   version ".tar"))
               (sha256
                (base32
-                "16yr0srfzsrzv2b1f2wjk8gb2pyhsgj2hxbscixirkxqz674c5cl"))))
+                "0i27g5qbkfqbxhgiz917pjwkxg3rwid99d0ickwx43bzq0zi7c1m"))))
     (build-system emacs-build-system)
     (home-page "https://orgmode.org/")
     (synopsis "Outline-based notes management and organizer")
@@ -4579,14 +4639,14 @@ reproducible research.")
   (package
     (inherit emacs-org)
     (name "emacs-org-contrib")
-    (version "20180327")
+    (version "20180423")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
                                   version ".tar"))
               (sha256
                (base32
-                "1y1nn0bxnh9y4a3zrqng8n639j5da5387q2314sr3a8ggy1nb93s"))))
+                "1aggvdy74q8p79xyc19zring5gjvlzp6lbsq8ar319zkmcjrapqd"))))
     (arguments
      `(#:modules ((guix build emacs-build-system)
                   (guix build utils)
@@ -5132,32 +5192,29 @@ Yasnippet.")
 
 (define-public emacs-memoize
   (package
-   (name "emacs-memoize")
-   (version "20130421.b55eab0")
-   (source
-    (origin
-     (method git-fetch)
-     (uri (git-reference
-           (url "https://github.com/skeeto/emacs-memoize")
-           (commit "b55eab0cb6ab05d941e07b8c01f1655c0cf1dd75")))
-     (file-name (string-append name "-" version ".tar.gz"))
-     (sha256
-      (base32
-       "0fjwlrdm270qcrqffvarw5yhijk656q4lam79ybhaznzj0dq3xpw"))))
-   (build-system emacs-build-system)
-   (arguments
-    `(#:phases
-      (modify-phases %standard-phases
-        (add-before 'install 'check
-                    (lambda _
-                      (zero? (system* "emacs" "-batch" "-l" "memoize.el"
-                                      "-l" "memoize-test.el"
-                                      "-f" "ert-run-tests-batch-and-exit")))))))
-   (home-page "https://github.com/skeeto/emacs-memoize")
-   (synopsis "Emacs lisp memoization library")
-   (description "@code{emacs-memoize} is an Emacs library for
+    (name "emacs-memoize")
+    (version "1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/skeeto/emacs-memoize/archive/"
+             version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "05ijgwi4ymxx31vpjm2pn356j85cykknajn14lrzz8pn5sh0vrg4"))))
+    (build-system emacs-build-system)
+    (arguments
+     `(#:tests? #t
+       #:test-command '("emacs" "--batch"
+                        "-l" "memoize-test.el"
+                        "-f" "ert-run-tests-batch-and-exit")))
+    (home-page "https://github.com/skeeto/emacs-memoize")
+    (synopsis "Emacs lisp memoization library")
+    (description "@code{emacs-memoize} is an Emacs library for
 memoizing functions.")
-   (license license:unlicense)))
+    (license license:unlicense)))
 
 (define-public emacs-linum-relative
   (package
@@ -5435,16 +5492,12 @@ abbreviation of the mode line displays (lighters) of minor modes.")
     (propagated-inputs
      `(("emacs-diminish" ,emacs-diminish)))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'install 'check
-           (lambda _
-             (zero? (system* "emacs" "--batch" "-L" "."
-                             "-l" "use-package-tests.el"
-                             "-f" "ert-run-tests-batch-and-exit"))
-             ;; Tests fail in this release, but have been fixed in
-             ;; upstream commit 7956d40eed57d6c06bef36ebc174cf57d934e30d
-             #t)))))
+     ;; Tests fail in this release, but have been fixed in
+     ;; upstream commit 7956d40eed57d6c06bef36ebc174cf57d934e30d
+     `(#:tests? #f
+       #:test-command '("emacs" "--batch"
+                        "-l" "use-package-tests.el"
+                        "-f" "ert-run-tests-batch-and-exit")))
     (home-page "https://github.com/jwiegley/use-package")
     (synopsis "Declaration for simplifying your .emacs")
     (description "The use-package macro allows you to isolate package
@@ -5539,13 +5592,10 @@ fonts is supported.")
          "0zay490vjby3f7455r0vydmjg7q1gwc78hilpfb0rg4gwz224z8r"))))
     (build-system emacs-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'install 'check
-           (lambda _
-             (zero? (system* "emacs" "--batch" "-L" "."
-                             "-l" "xmlgen-test.el"
-                             "-f" "ert-run-tests-batch-and-exit")))))))
+     `(#:tests? #t
+       #:test-command '("emacs" "--batch"
+                        "-l" "xmlgen-test.el"
+                        "-f" "ert-run-tests-batch-and-exit")))
     (home-page "https://github.com/philjackson/xmlgen")
     (synopsis "S-expression to XML domain specific language (DSL) in
 Emacs Lisp")
@@ -6147,64 +6197,49 @@ Emacs.")
 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
 ;; cannot be run
 (define-public ert-runner
-  (let ((dependencies
-         `(("emacs-ansi" ,emacs-ansi)
-           ("emacs-commander" ,emacs-commander)
-           ("emacs-dash" ,emacs-dash)
-           ("emacs-f" ,emacs-f)
-           ("emacs-s" ,emacs-s)
-           ("emacs-shut-up" ,emacs-shut-up))))
-    (package
-      (name "ert-runner")
-      (version "0.7.0")
-      (source
-       (origin
-         (method url-fetch)
-         (uri (string-append "https://github.com/rejeep/ert-runner.el/archive/v"
-                             version ".tar.gz"))
-         (file-name (string-append name "-" version ".tar.gz"))
-         (sha256
-          (base32
-           "1657nck9i96a4xgl8crfqq0s8gflzp21pkkzwg6m3z5npjxklgwp"))))
-      (build-system emacs-build-system)
-      (inputs dependencies)
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (add-after 'install 'install-executable
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let ((out (assoc-ref outputs "out")))
-                 (substitute* "bin/ert-runner"
-                   (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
-                    (string-append "ERT_RUNNER=\"" out
-                                   "/share/emacs/site-lisp/guix.d/"
-                                   ,name "-" ,version)))
-                 (install-file "bin/ert-runner" (string-append out "/bin"))
-                 (wrap-program (string-append out "/bin/ert-runner")
-                   (list "EMACSLOADPATH" ":" '=
-                         (append
-                          ,(match dependencies
-                             (((labels packages) ...)
-                              `(map (lambda (label package version)
-                                      (string-append (assoc-ref inputs label)
-                                                     "/share/emacs/site-lisp/guix.d/"
-                                                     (string-drop package 6)
-                                                     "-" version))
-                                    ',labels
-                                    ',(map package-name packages)
-                                    ',(map package-version packages))))
-                          ;; empty element to include the default load path as
-                          ;; determined by emacs' standard initialization
-                          ;; procedure
-                          (list ""))))
-                 #t))))
-         #:include (cons* "^reporters/.*\\.el$" %default-include)))
-      (home-page "https://github.com/rejeep/ert-runner.el")
-      (synopsis "Opinionated Ert testing workflow")
-      (description "@code{ert-runner} is a tool for Emacs projects tested
+  (package
+    (name "ert-runner")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/rejeep/ert-runner.el/archive/v"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1657nck9i96a4xgl8crfqq0s8gflzp21pkkzwg6m3z5npjxklgwp"))))
+    (build-system emacs-build-system)
+    (inputs
+     `(("emacs-ansi" ,emacs-ansi)
+       ("emacs-commander" ,emacs-commander)
+       ("emacs-dash" ,emacs-dash)
+       ("emacs-f" ,emacs-f)
+       ("emacs-s" ,emacs-s)
+       ("emacs-shut-up" ,emacs-shut-up)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-executable
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (substitute* "bin/ert-runner"
+                 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
+                  (string-append "ERT_RUNNER=\"" out
+                                 "/share/emacs/site-lisp/guix.d/"
+                                 ,name "-" ,version)))
+               (install-file "bin/ert-runner" (string-append out "/bin"))
+               (wrap-program (string-append out "/bin/ert-runner")
+                 (list "EMACSLOADPATH" ":" 'prefix
+                       (string-split (getenv "EMACSLOADPATH") #\:)))
+               #t))))
+       #:include (cons* "^reporters/.*\\.el$" %default-include)))
+    (home-page "https://github.com/rejeep/ert-runner.el")
+    (synopsis "Opinionated Ert testing workflow")
+    (description "@code{ert-runner} is a tool for Emacs projects tested
 using ERT.  It assumes a certain test structure setup and can therefore make
 running tests easier.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-disable-mouse
   (package
@@ -6244,32 +6279,15 @@ running a customisable handler command (@code{ignore} by default). ")
          "11fbq4scrgr7m0iwnzcrn2g7xvqwm2gf82sa7zy1l0nil7265p28"))
        (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
     (build-system emacs-build-system)
-    (propagated-inputs `(("emacs-undercover" ,emacs-undercover)))
-    (inputs
-     `(("emacs-dash" ,emacs-dash)         ; for tests
-       ("emacs-shut-up" ,emacs-shut-up))) ; for tests
+    (propagated-inputs
+     `(("emacs-undercover" ,emacs-undercover)))
+    (native-inputs
+     `(("emacs-dash" ,emacs-dash)
+       ("emacs-shut-up" ,emacs-shut-up)
+       ("ert-runner" ,ert-runner)))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'install 'check
-           (lambda* (#:key inputs #:allow-other-keys)
-             (zero? (system* "emacs" "--batch" "-L" "."
-                             "-L" (string-append
-                                   (assoc-ref inputs "emacs-undercover")
-                                   "/share/emacs/site-lisp/guix.d/undercover-"
-                                   ,(package-version emacs-undercover))
-                             "-L" (string-append
-                                   (assoc-ref inputs "emacs-dash")
-                                   "/share/emacs/site-lisp/guix.d/dash-"
-                                   ,(package-version emacs-dash))
-                             "-L" (string-append
-                                   (assoc-ref inputs "emacs-shut-up")
-                                   "/share/emacs/site-lisp/guix.d/shut-up-"
-                                   ,(package-version emacs-shut-up))
-                             "-l" "test/test-helper.el"
-                             "-l" "test/json-reformat-test.el"
-                             "-f" "ert-run-tests-batch-and-exit"))
-             #t)))))
+     `(#:tests? #t
+       #:test-command '("ert-runner")))
     (home-page "https://github.com/gongo/json-reformat")
     (synopsis "Reformatting tool for JSON")
     (description "@code{json-reformat} provides a reformatting tool for
@@ -6445,13 +6463,10 @@ the actual transformations.")
        (file-name (string-append name "-" version ".tar.gz"))))
     (build-system emacs-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'install 'check
-           (lambda _
-             (zero? (system* "emacs" "--batch" "-L" "."
-                             "-l" "which-key-tests.el"
-                             "-f" "ert-run-tests-batch-and-exit")))))))
+     `(#:tests? #t
+       #:test-command '("emacs" "--batch"
+                        "-l" "which-key-tests.el"
+                        "-f" "ert-run-tests-batch-and-exit")))
     (home-page "https://github.com/justbur/emacs-which-key")
     (synopsis "Display available key bindings in popup")
     (description
@@ -6480,11 +6495,8 @@ settings).")
     (native-inputs
      `(("ert-runner" ,ert-runner)))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'install 'check
-           (lambda _
-             (zero? (system* "ert-runner" "tests")))))))
+     `(#:tests? #t
+       #:test-command '("ert-runner" "tests")))
     (home-page "https://github.com/lewang/ws-butler")
     (synopsis "Trim spaces from end of lines")
     (description
@@ -6581,17 +6593,9 @@ editing RPM spec files.")
     (propagated-inputs
      `(("emacs-popup" ,emacs-popup)))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'install 'check
-           (lambda* (#:key inputs #:allow-other-keys)
-             (zero? (system* "emacs" "--batch" "-L" "."
-                             "-L" (string-append
-                                   (assoc-ref inputs "emacs-popup")
-                                   "/share/emacs/site-lisp/guix.d/popup-"
-                                   ,(package-version emacs-popup))
-                             "-l" "test/test.el"
-                             "-f" "ert-run-tests-batch-and-exit")))))))
+     `(#:tests? #t
+       #:test-command '("emacs" "--batch" "-l" "test/test.el"
+                        "-f" "ert-run-tests-batch-and-exit")))
     (home-page "https://github.com/syohex/emacs-git-messenger")
     (synopsis "Popup commit message at current line")
     (description "@code{emacs-git-messenger} provides
@@ -6713,7 +6717,7 @@ key.  Optionally, a mouse pop-up can be added by binding
              version ".tar"))
        (sha256
         (base32
-         "0ld4kfwnyyhlsnj5f6cbn4is4mpxdqalk2aifkw02r00mbr9n294"))))
+         "02r1qqsxi6qk7q4cj6a6pygbj856dcw9vcmhfh0ib92j41v77q6y"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-prop-menu" ,emacs-prop-menu)))
@@ -6751,11 +6755,8 @@ Idris.")
       (native-inputs
        `(("ert-runner" ,ert-runner)))
       (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (add-before 'install 'check
-             (lambda _
-               (zero? (system* "ert-runner")))))))
+       `(#:tests? #t
+         #:test-command '("ert-runner")))
       (home-page "https://github.com/rmuslimov/browse-at-remote")
       (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
       (description
@@ -7184,16 +7185,10 @@ emulates Vim features and provides Vim-like key bindings.")
     (propagated-inputs
      `(("emacs-evil" ,emacs-evil)))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'install 'check
-           (lambda* (#:key inputs #:allow-other-keys)
-             (invoke "emacs" "--batch" "-L"
-                     (string-append (assoc-ref inputs "emacs-evil")
-                                    "/share/emacs/site-lisp/guix.d/evil-"
-                                    ,(package-version emacs-evil))
-                     "-l" "evil-quickscope-tests.el"
-                     "-f" "ert-run-tests-batch-and-exit"))))))
+     `(#:tests? #t
+       #:test-command '("emacs" "--batch"
+                        "-l" "evil-quickscope-tests.el"
+                        "-f" "ert-run-tests-batch-and-exit")))
     (home-page "https://github.com/blorbx/evil-quickscope")
     (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
     (description "@code{emacs-evil-quickscope} highlights targets for Evil
@@ -7310,6 +7305,32 @@ scratch buffer, and, by virtue of this extension, do so using the Emacs
 formatting rules for that language.")
       (license license:bsd-2))))
 
+(define-public emacs-kv
+  (package
+    (name "emacs-kv")
+    (version "0.0.19")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/nicferrier/emacs-kv.git")
+             (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
+       (file-name (string-append name "-" version "-checkout"))
+       (sha256
+        (base32
+         "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
+    (build-system emacs-build-system)
+    (arguments
+     `(#:tests? #t
+       #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
+                        "-f" "ert-run-tests-batch-and-exit")))
+    (home-page "https://github.com/nicferrier/emacs-kv")
+    (synopsis "Key/Value data structures library for Emacs Lisp")
+    (description "@code{emacs-kv} is a collection of tools for dealing with
+key/value data structures such as plists, alists and hash-tables in Emacs
+Lisp.")
+    (license license:gpl3+)))
+
 (define-public emacs-esxml
   (package
     (name "emacs-esxml")
@@ -7324,6 +7345,28 @@ formatting rules for that language.")
                (base32
                 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
     (build-system emacs-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-sources
+           (lambda _
+             ;; See: https://github.com/tali713/esxml/pull/28.
+             (substitute* "css-lite.el"
+               ((";;; main interface")
+                (string-append ";;; main interface\n"
+                               "(require 'cl-lib)"))
+               (("mapcan")
+                "cl-mapcan")
+               (("',\\(cl-mapcan #'process-css-rule rules\\)")
+                "(cl-mapcan #'process-css-rule ',rules)"))
+             (substitute* "esxml-form.el"
+               ((",esxml-form-field-defn")
+                "#'esxml-form-field-defn"))
+             ;; See: https://github.com/tali713/esxml/issues/25
+             (delete-file "esxpath.el")
+             #t)))))
+    (propagated-inputs
+     `(("emacs-kv" ,emacs-kv)))
     (home-page "https://github.com/tali713/esxml/")
     (synopsis "SXML for EmacsLisp")
     (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
@@ -7567,6 +7610,32 @@ Anzu.zim.")
 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
     (license license:gpl3+)))
 
+(define-public emacs-ergoemacs-mode
+  (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
+        (revision "1"))
+    (package
+      (name "emacs-ergoemacs-mode")
+      (version (git-version "5.16.10.12" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/ergoemacs/ergoemacs-mode.git")
+               (commit commit)))
+         (sha256
+          (base32
+           "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-undo-tree" ,emacs-undo-tree)))
+      (home-page "https://ergoemacs.github.io/")
+      (synopsis "Emacs mode based on common modern interface and ergonomics")
+      (description
+       "This package provides an efficient Emacs keybinding set based on
+statistics of command frequency, and supports common shortcuts for open,
+close, copy, cut, paste, undo, redo.")
+      (license license:gpl3+))))
+
 (define-public emacs-password-store
   (package
     (name "emacs-password-store")
@@ -7863,3 +7932,25 @@ name and password.  To skip it press a @key{Return} key.
 You could get a Epkg package list by invoking @code{epkg-list-packages} in
 Emacs.")
       (license license:gpl3+))))
+
+(define-public emacs-elisp-slime-nav
+  (package
+    (name "emacs-elisp-slime-nav")
+    (version "0.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/purcell/elisp-slime-nav/archive/"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1vq7ym1q47p97gxrv45c9gm96d23xbp237vkmakikj6grngxjfb2"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/purcell/elisp-slime-nav")
+    (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
+    (description
+     "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
+in @code{emacs-lisp-mode}, together with an elisp equivalent of
+@code{slime-describe-symbol}.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 232e14b47a..9bf78ce05f 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -186,7 +186,7 @@
          ("bluez" ,bluez)
          ("curl" ,curl)
          ("eudev" ,eudev)
-         ("ffmpeg" ,ffmpeg)
+         ("ffmpeg" ,ffmpeg-3.4)
          ("font-wqy-microhei" ,font-wqy-microhei)
          ("freetype" ,freetype)
          ("glew" ,glew)
@@ -993,7 +993,7 @@ towards a working Mupen64Plus for casual users.")
 (define-public nestopia-ue
   (package
     (name "nestopia-ue")
-    (version "1.47")
+    (version "1.48")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1002,42 +1002,34 @@ towards a working Mupen64Plus for casual users.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1dzrrjmvyqks64q5l5pfly80jb6qcsbj5b3dm40fijd5xnpbapci"))
+                "184y05z4k4a4m4022niy625kan0rklh8gcxyynxli1fss2sjjrpv"))
               (modules '((guix build utils)))
               (snippet
                '(begin
                   ;; We don't need libretro for the GNU/Linux build.
-                  (delete-file-recursively "libretro")
-                  ;; Use system zlib.
-                  (delete-file-recursively "source/zlib")
-                  (substitute* "source/core/NstZlib.cpp"
-                    (("#include \"../zlib/zlib.h\"") "#include <zlib.h>"))))))
-    (build-system gnu-build-system)
+                  (delete-file-recursively "libretro")))))
+    (build-system cmake-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
      `(("ao" ,ao)
-       ("glu" ,glu)
        ("gtk+" ,gtk+)
        ("libarchive" ,libarchive)
-       ("mesa" ,mesa)
+       ("libepoxy" ,libepoxy)
        ("sdl2" ,sdl2)
        ("zlib" ,zlib)))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
-         ;; The Nestopia build system consists solely of a Makefile.
-         (delete 'configure)
-         (add-before 'build 'remove-xdg-desktop-menu-call
-           (lambda _
-             (substitute* "Makefile"
-               (("xdg-desktop-menu install .*") ""))))
-         (add-before 'build 'remove-gdkwayland-include
-           (lambda _
-             (substitute* "source/unix/gtkui/gtkui.h"
-               (("#include <gdk/gdkwayland\\.h>") "")))))
-       #:make-flags (let ((out (assoc-ref %outputs "out")))
-                      (list "CC=gcc" "CXX=g++" (string-append "PREFIX=" out)))
+         ;; This fixes the file chooser crash that happens with GTK 3.
+         (add-after 'install 'wrap-program
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (nestopia (string-append out "/bin/nestopia"))
+                    (gtk (assoc-ref inputs "gtk+"))
+                    (gtk-share (string-append gtk "/share")))
+               (wrap-program nestopia
+                 `("XDG_DATA_DIRS" ":" prefix (,gtk-share)))))))
        ;; There are no tests.
        #:tests? #f))
     (home-page "http://0ldsk00l.ca/nestopia/")
@@ -1051,7 +1043,7 @@ emulation community.  It provides highly accurate emulation.")
 (define-public retroarch
   (package
     (name "retroarch")
-    (version "1.7.1")
+    (version "1.7.2")
     (source
      (origin
        (method url-fetch)
@@ -1059,7 +1051,7 @@ emulation community.  It provides highly accurate emulation.")
                            version ".tar.gz"))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1wykv0w0kdlh7lh0k1ig0lpk5vh4c7r19jlfa9103jmjlryrq679"))))
+        (base32 "1sk3cp8y4rdiyhk2rgk1asdla5mpmybr778v0zqb5m4iyhrd1m2y"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f                      ; no tests
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 1113cafec8..52d0010693 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 David Thompson <davet@gnu.org>
-;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2017 Theodoros Foradis <theodoros@foradis.org>
 ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -580,24 +580,21 @@ as well as pick-place files.")
                 (sha256
                  (base32
                   "1r40kyx30wz31cwwlfvfh7fgqkxq3n8dxhswpi9qpf4r5h3l8wsn"))
-                (file-name (git-file-name name version))))
+                (file-name (git-file-name name version))
+                (snippet
+                 ;; Remove bundled catch since we provide our own.
+                 '(begin
+                    (delete-file "libfive/test/catch.hpp")
+                    #t))))
       (build-system cmake-build-system)
       (arguments
-       `(#:tests? #f ; no "test" target
+       `(#:test-target "libfive-test"
          #:phases
          (modify-phases %standard-phases
            (add-after 'unpack 'remove-native-compilation
              (lambda _
                (substitute* "CMakeLists.txt" (("-march=native") ""))
-               #t))
-           (add-before 'build 'add-eigen-to-search-path
-             (lambda* (#:key inputs #:allow-other-keys)
-               ;; Allow things to find our own Eigen and Catch.
-               (let ((eigen (assoc-ref inputs "eigen")))
-                 (setenv "CPLUS_INCLUDE_PATH"
-                         (string-append eigen "/include/eigen3:"
-                                        (getenv "CPLUS_INCLUDE_PATH")))
-                 #t))))))
+               #t)))))
       (native-inputs
        `(("pkg-config" ,pkg-config)))
       (inputs
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index b7eda0fdc4..e5f8350f6a 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -112,6 +112,7 @@
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages perl-check)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages pulseaudio)
@@ -4852,3 +4853,57 @@ Strife, Chex Quest, and fan-created games like Harmony, Hacx and Freedoom.")
                    (license:non-copyleft ; modified dumb
                     "file://dumb/licence.txt"
                     "Dumb license, explicitly GPL compatible.")))))
+
+(define-public fortune-mod
+  (package
+    (name "fortune-mod")
+    (version "2.4.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/shlomif/fortune-mod/"
+                                  "archive/" name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1hnqpkassh7fwg2jgvybr8mw7vzfikbrhb5r22367ilfwxnl9yd2"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:test-target "check"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-build-env
+           (lambda* (#:key inputs #:allow-other-keys)
+             (use-modules (guix build utils))
+             (let* ((cmake-rules (assoc-ref inputs "cmake-rules")))
+               (copy-file cmake-rules
+                          (string-append "fortune-mod/cmake/"
+                                         (strip-store-file-name cmake-rules)))
+               (chdir "fortune-mod"))))
+         (add-after 'install 'fix-install-directory
+           ;; Move binary from "games/" to "bin/".
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (rename-file (string-append out "/games/fortune")
+                            (string-append out "/bin/fortune"))
+               #t))))))
+    (inputs `(("recode" ,recode)))
+    (native-inputs
+     `(("perl" ,perl)
+       ;; The following is only needed for tests.
+       ("perl-file-find-object" ,perl-file-find-object)
+       ("perl-test-differences" ,perl-test-differences)
+       ("perl-class-xsaccessor" ,perl-class-xsaccessor)
+       ("perl-io-all" ,perl-io-all)
+       ("perl-test-runvalgrind" ,perl-test-runvalgrind)
+       ("cmake-rules"
+        ,(origin
+           (method url-fetch)
+           (uri (string-append "https://bitbucket.org/shlomif/shlomif-cmake-modules/"
+                               "raw/c505713d7a7cda608f97f01577e5868a711b883e/"
+                               "shlomif-cmake-modules/Shlomif_Common.cmake"))
+           (sha256
+            (base32 "0kx9s1qqhhzprp1w3b67xmsns0n0v506bg5hgrshxaxpy6lqiwb2"))))))
+    (home-page "http://www.shlomifish.org/open-source/projects/fortune-mod/")
+    (synopsis "The Fortune Cookie program from BSD games")
+    (description "Fortune is a command-line utility which displays a random
+quotation from a collection of quotes.")
+    (license license:bsd-4)))
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 9c7c071db0..0ec3d6e756 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -499,14 +499,14 @@ development.")
 (define-public r-maps
   (package
    (name "r-maps")
-   (version "3.2.0")
+   (version "3.3.0")
    (source
      (origin
        (method url-fetch)
        (uri (cran-uri "maps" version))
        (sha256
         (base32
-         "0577f3b5d3a7djl7r0miy9mzr6xq6jb32p8nyrma7m2azasbwyj3"))))
+         "05i2ppl5z4p8rawgqmy3z4ia05fcblpq1vvrmrkgkkpdlhczx6hr"))))
    (build-system r-build-system)
    (home-page "https://cran.r-project.org/web/packages/maps")
    (synopsis "Draw geographical maps")
@@ -518,14 +518,14 @@ Projection code and larger maps are in separate packages ('mapproj' and
 (define-public r-mapproj
   (package
    (name "r-mapproj")
-   (version "1.2-5")
+   (version "1.2.6")
    (source
      (origin
        (method url-fetch)
        (uri (cran-uri "mapproj" version))
        (sha256
         (base32
-         "0rjz37r4rizk2c6jaf54f0kfb60dqv6b262cnhiwjl55d4x6l0pk"))))
+         "1rggww8cbwv0vzlj5afzhbsbngg4bzj5znbkz7wmxsbshfbsm9b2"))))
    (build-system r-build-system)
    (propagated-inputs `(("r-maps" ,r-maps)))
    (home-page "https://cran.r-project.org/web/packages/mapproj")
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 43ea75a1d4..aac1f08978 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -4166,7 +4166,7 @@ a secret password store, an adblocker, and a modern UI.")
 (define-public epiphany
   (package
     (name "epiphany")
-    (version "3.24.4")
+    (version "3.28.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -4174,8 +4174,9 @@ a secret password store, an adblocker, and a modern UI.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1jg59s98aljf603w24r5a3cr4fw6z88gc0warqy1946iprjgdw0m"))))
-    (build-system glib-or-gtk-build-system)
+                "0zvxrwlswxadq4zbr4f73ms141d08j0lhi6rzmj83j1s3gan88md"))))
+
+    (build-system meson-build-system)
     (arguments
      ;; FIXME: tests run under Xvfb, but fail with:
      ;;   /src/bookmarks/ephy-bookmarks/create:
@@ -4183,18 +4184,21 @@ a secret password store, an adblocker, and a modern UI.")
      ;;      subsystem
      ;;   FAIL
      '(#:tests? #f
-       #:configure-flags '("CFLAGS=-std=gnu99")))
+       #:glib-or-gtk? #t))
     (propagated-inputs
      `(("dconf" ,dconf)))
     (native-inputs
-     `(("intltool" ,intltool)
+     `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
+       ("glib:bin" ,glib "bin") ; for glib-mkenums
+       ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
+       ("intltool" ,intltool)
        ("itstool" ,itstool)
        ("pkg-config" ,pkg-config)
        ("xmllint" ,libxml2)))
     (inputs
      `(("avahi" ,avahi)
        ("gcr" ,gcr)
-       ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
+       ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
        ("glib-networking" ,glib-networking)
        ("gnome-desktop" ,gnome-desktop)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
@@ -4203,6 +4207,7 @@ a secret password store, an adblocker, and a modern UI.")
        ("libnotify" ,libnotify)
        ("libsecret" ,libsecret)
        ("libxslt" ,libxslt)
+       ("nettle" ,nettle) ; for hogweed
        ("sqlite" ,sqlite)
        ("webkitgtk" ,webkitgtk)))
     (home-page "https://wiki.gnome.org/Apps/Web")
@@ -6661,22 +6666,31 @@ is suitable as a default application in a Desktop environment.")
 (define-public xpad
   (package
     (name "xpad")
-    (version "4.8.0")
+    (version "5.0.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "https://launchpad.net/xpad/trunk/4.8.0/+download/"
+       (uri (string-append "https://launchpad.net/xpad/trunk/"
+                           version "/+download/"
                            name "-" version ".tar.bz2"))
        (sha256
         (base32
-         "17f915yyvfa2fsavq6wh0q0dfhib28b4k1gc0292b9xdlrvy7f22"))))
+         "02yikxg6z9bwla09ka001ppjlpbv5kbza3za9asazm5aiz376mkb"))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'run-autogen
+           (lambda _
+             (system* "sh" "autogen.sh"))))))
     (native-inputs
-     `(("intltool" ,intltool)
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("gtksourceview" ,gtksourceview)
+     `(("gtksourceview" ,gtksourceview)
        ("libsm" ,libsm)))
     (home-page "https://wiki.gnome.org/Apps/Xpad")
     (synopsis "Virtual sticky note")
diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index b6062625c0..880fb9f09e 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -88,7 +88,7 @@
     `(("exiv2" ,exiv2)
       ("bzip2" ,bzip2)
       ("flac" ,flac)
-      ("ffmpeg" ,ffmpeg)
+      ("ffmpeg" ,ffmpeg-3.4)
       ("file" ,file)                           ;libmagic, for the MIME plug-in
       ("glib" ,glib)
       ("gstreamer" ,gstreamer)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index e0ce1032f7..c6fc68468f 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
+;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -194,7 +195,7 @@
        ;; https://github.com/golang/go/issues/24046
        ("gcc:lib" ,gcc-6 "lib")))
     (native-inputs
-     `(("pkg-config" ,%pkg-config)
+     `(("pkg-config" ,pkg-config)
        ("which" ,which)
        ("net-base" ,net-base)
        ("perl" ,perl)))
@@ -213,7 +214,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
   (package
     (inherit go-1.4)
     (name "go")
-    (version "1.9.4")
+    (version "1.9.5")
     (source
      (origin
        (method url-fetch)
@@ -221,7 +222,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
                            name version ".src.tar.gz"))
        (sha256
         (base32
-         "01nw8rfvf10naja0wq0kabsm012sbqq76hd4b8c7g28n6ggshwq5"))))
+         "1g4zqhbh1yw3gnb400szzwrdz0k5s3h0h5nc35xgmn5v69zvphpi"))))
     (arguments
      (substitute-keyword-arguments (package-arguments go-1.4)
        ((#:phases phases)
@@ -291,6 +292,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
                     ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
                     ("os/exec/exec_test.go" "(.+)(TestExtraFiles/areturn.+)")
                     ("cmd/go/go_test.go" "(.+)(TestCoverageWithCgo.+)")
+                    ("cmd/go/go_test.go" "(.+)(TestTwoPkgConfigs.+)")
                     ("os/exec/exec_test.go" "(.+)(TestOutputStderrCapture.+)")
                     ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")
                     ("os/exec/exec_test.go" "(.+)(TestExtraFilesRace.+)")
@@ -381,7 +383,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
   (package
     (inherit go-1.9)
     (name "go")
-    (version "1.10")
+    (version "1.10.1")
     (source
      (origin
        (method url-fetch)
@@ -389,7 +391,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
                            name version ".src.tar.gz"))
        (sha256
         (base32
-         "093z1h0gmi458kv7smpx0ph6jm7ss9mzxa432kysbz85jhl4kppk"))))
+         "1p1xyyxicp752n9wj10sljjl6mjxpfsplkhx74fzzjrwdkzlk52q"))))
     (arguments
      (substitute-keyword-arguments (package-arguments go-1.9)
        ((#:phases phases)
@@ -459,6 +461,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
                     ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
                     ("os/exec/exec_test.go" "(.+)(TestExtraFiles/areturn.+)")
                     ("cmd/go/go_test.go" "(.+)(TestCoverageWithCgo.+)")
+                    ("cmd/go/go_test.go" "(.+)(TestTwoPkgConfigs.+)")
                     ("os/exec/exec_test.go" "(.+)(TestOutputStderrCapture.+)")
                     ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")
                     ("os/exec/exec_test.go" "(.+)(TestExtraFilesRace.+)")
@@ -691,3 +694,609 @@ HashiCorp Configuration Language}.  HCL is designed to be a language for
 expressing configuration which is easy for both humans and machines to read.")
       (home-page "https://github.com/hashicorp/hcl")
       (license license:mpl2.0))))
+
+(define-public go-golang-org-x-crypto-bcrypt
+  (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
+        (revision "1"))
+    (package
+      (name "go-golang-org-x-crypto-bcrypt")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/crypto")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-crypto-"
+                                          version "-checkout"))
+                (sha256
+                 (base32
+                  "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/crypto/bcrypt"
+         #:unpack-path "golang.org/x/crypto"
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
+             (lambda* (#:key outputs #:allow-other-keys)
+               (map (lambda (file)
+                      (make-file-writable file))
+                    (find-files
+                      (string-append (assoc-ref outputs "out")
+                                     "/src/golang.org/x/crypto/ed25519/testdata")
+                      ".*\\.gz$"))
+               #t)))))
+      (synopsis "Bcrypt in Go")
+      (description "This package provides a Go implementation of the bcrypt
+password hashing function.")
+      (home-page "https://go.googlesource.com/crypto/")
+      (license license:bsd-3))))
+
+(define-public go-golang-org-x-crypto-blowfish
+  (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
+        (revision "1"))
+    (package
+      (name "go-golang-org-x-crypto-blowfish")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/crypto")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-crypto-"
+                                          version "-checkout"))
+                (sha256
+                 (base32
+                  "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/crypto/blowfish"
+         #:unpack-path "golang.org/x/crypto"
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
+             (lambda* (#:key outputs #:allow-other-keys)
+               (map (lambda (file)
+                      (make-file-writable file))
+                    (find-files
+                      (string-append (assoc-ref outputs "out")
+                                     "/src/golang.org/x/crypto/ed25519/testdata")
+                      ".*\\.gz$"))
+               #t)))))
+      (synopsis "Blowfish in Go")
+      (description "This package provides a Go implementation of the Blowfish
+symmetric-key block cipher.")
+      (home-page "https://go.googlesource.com/crypto/")
+      (license license:bsd-3))))
+
+(define-public go-golang-org-x-crypto-pbkdf2
+  (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
+        (revision "1"))
+    (package
+      (name "go-golang-org-x-crypto-pbkdf2")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/crypto")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-crypto-"
+                                          version "-checkout"))
+                (sha256
+                 (base32
+                  "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/crypto/pbkdf2"
+         #:unpack-path "golang.org/x/crypto"
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
+             (lambda* (#:key outputs #:allow-other-keys)
+               (map (lambda (file)
+                      (make-file-writable file))
+                    (find-files
+                      (string-append (assoc-ref outputs "out")
+                                     "/src/golang.org/x/crypto/ed25519/testdata")
+                      ".*\\.gz$"))
+               #t)))))
+      (synopsis "PBKDF2 in Go")
+      (description "This package provides a Go implementation of the PBKDF2 key
+derivation function.")
+      (home-page "https://go.googlesource.com/crypto/")
+      (license license:bsd-3))))
+
+(define-public go-golang-org-x-crypto-tea
+  (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
+        (revision "1"))
+    (package
+      (name "go-golang-org-x-crypto-tea")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/crypto")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-crypto-"
+                                          version "-checkout"))
+                (sha256
+                 (base32
+                  "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/crypto/tea"
+         #:unpack-path "golang.org/x/crypto"
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
+             (lambda* (#:key outputs #:allow-other-keys)
+               (map (lambda (file)
+                      (make-file-writable file))
+                    (find-files
+                      (string-append (assoc-ref outputs "out")
+                                     "/src/golang.org/x/crypto/ed25519/testdata")
+                      ".*\\.gz$"))
+               #t)))))
+      (synopsis "Tiny Encryption Algorithm (TEA) in Go")
+      (description "This packages a Go implementation of the Tiny Encryption
+Algorithm (TEA) block cipher.")
+      (home-page "https://go.googlesource.com/crypto/")
+      (license license:bsd-3))))
+
+(define-public go-golang-org-x-crypto-salsa20
+  (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
+        (revision "1"))
+    (package
+      (name "go-golang-org-x-crypto-salsa20")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/crypto")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-crypto-"
+                                          version "-checkout"))
+                (sha256
+                 (base32
+                  "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/crypto/salsa20"
+         #:unpack-path "golang.org/x/crypto"
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
+             (lambda* (#:key outputs #:allow-other-keys)
+               (map (lambda (file)
+                      (make-file-writable file))
+                    (find-files
+                      (string-append (assoc-ref outputs "out")
+                                     "/src/golang.org/x/crypto/ed25519/testdata")
+                      ".*\\.gz$"))
+               #t)))))
+      (synopsis "Salsa20 in Go")
+      (description "This packages provides a Go implementation of the Salsa20
+stream cipher.")
+      (home-page "https://go.googlesource.com/crypto/")
+      (license license:bsd-3))))
+
+(define-public go-golang-org-x-crypto-cast5
+  (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
+        (revision "1"))
+    (package
+      (name "go-golang-org-x-crypto-cast5")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/crypto")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-crypto-"
+                                          version "-checkout"))
+                (sha256
+                 (base32
+                  "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/crypto/cast5"
+         #:unpack-path "golang.org/x/crypto"
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
+             (lambda* (#:key outputs #:allow-other-keys)
+               (map (lambda (file)
+                      (make-file-writable file))
+                    (find-files
+                      (string-append (assoc-ref outputs "out")
+                                     "/src/golang.org/x/crypto/ed25519/testdata")
+                      ".*\\.gz$"))
+               #t)))))
+      (synopsis "Cast5 in Go")
+      (description "This packages provides a Go implementation of the Cast5
+symmetric-key block cipher.")
+      (home-page "https://go.googlesource.com/crypto/")
+      (license license:bsd-3))))
+
+(define-public go-golang-org-x-crypto-twofish
+  (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
+        (revision "1"))
+    (package
+      (name "go-golang-org-x-crypto-twofish")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/crypto")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-crypto-"
+                                          version "-checkout"))
+                (sha256
+                 (base32
+                  "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/crypto/twofish"
+         #:unpack-path "golang.org/x/crypto"
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
+             (lambda* (#:key outputs #:allow-other-keys)
+               (map (lambda (file)
+                      (make-file-writable file))
+                    (find-files
+                      (string-append (assoc-ref outputs "out")
+                                     "/src/golang.org/x/crypto/ed25519/testdata")
+                      ".*\\.gz$"))
+               #t)))))
+      (synopsis "Twofish in Go")
+      (description "This packages provides a Go implementation of the Twofish
+symmetric-key block cipher.")
+      (home-page "https://go.googlesource.com/crypto/")
+      (license license:bsd-3))))
+
+(define-public go-golang-org-x-crypto-xtea
+  (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
+        (revision "1"))
+    (package
+      (name "go-golang-org-x-crypto-xtea")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/crypto")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-crypto-"
+                                          version "-checkout"))
+                (sha256
+                 (base32
+                  "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/crypto/xtea"
+         #:unpack-path "golang.org/x/crypto"
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
+             (lambda* (#:key outputs #:allow-other-keys)
+               (map (lambda (file)
+                      (make-file-writable file))
+                    (find-files
+                      (string-append (assoc-ref outputs "out")
+                                     "/src/golang.org/x/crypto/ed25519/testdata")
+                      ".*\\.gz$"))
+               #t)))))
+      (synopsis "eXtended Tiny Encryption Algorithm (XTEA) in Go")
+      (description "This package provides a Go implementation of the eXtended
+Tiny Encryption Algorithm (XTEA) block cipher.")
+      (home-page "https://go.googlesource.com/crypto/")
+      (license license:bsd-3))))
+
+(define-public go-golang-org-x-net-ipv4
+  (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
+        (revision "1"))
+    (package
+      (name "go-golang-org-x-net-ipv4")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/net")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/net/ipv4"
+         #:unpack-path "golang.org/x/net"))
+      (synopsis "Go IPv4 support")
+      (description "This package provides @code{ipv4}, which implements IP-level
+socket options for the Internet Protocol version 4.")
+      (home-page "https://go.googlesource.com/net")
+      (license license:bsd-3))))
+
+(define-public go-golang-org-x-net-bpf
+  (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
+        (revision "1"))
+    (package
+      (name "go-golang-org-x-net-bpf")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/net")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-net-"
+                                          version "-checkout"))
+                (sha256
+                 (base32
+                  "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/net/bpf"
+         #:unpack-path "golang.org/x/net"))
+      (synopsis "Berkeley Packet Filters (BPF) in Go")
+      (description "This packages provides a Go implementation of the Berkeley
+Packet Filter (BPF) virtual machine.")
+      (home-page "https://go.googlesource.com/net/")
+      (license license:bsd-3))))
+
+(define-public go-golang-org-x-net-context
+  (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
+        (revision "1"))
+    (package
+      (name "go-golang-org-x-net-context")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/net")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-net-"
+                                          version "-checkout"))
+                (sha256
+                 (base32
+                  "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/net/context"
+         #:unpack-path "golang.org/x/net"))
+      (synopsis "Golang Context type")
+      (description "This packages provides @code{context}, which defines the
+Context type, which carries deadlines, cancelation signals, and other
+request-scoped values across API boundaries and between processes.")
+      (home-page "https://go.googlesource.com/net/")
+      (license license:bsd-3))))
+
+(define-public go-golang-org-x-net-internal-iana
+  (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
+        (revision "1"))
+    (package
+      (name "go-golang-org-x-net-internal-iana")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/net")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-net-"
+                                          version "-checkout"))
+                (sha256
+                 (base32
+                  "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/net/internal/iana"
+         #:unpack-path "golang.org/x/net"))
+      (synopsis "Go support for assigned numbers (IANA)")
+      (description "This packages provides @code{iana}, which provides protocol
+number resources managed by the Internet Assigned Numbers Authority (IANA).")
+      (home-page "https://go.googlesource.com/net/")
+      (license license:bsd-3))))
+
+(define-public go-golang-org-x-net-ipv6
+  (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
+        (revision "1"))
+    (package
+      (name "go-golang-org-x-net-ipv6")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/net")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-net-"
+                                          version "-checkout"))
+                (sha256
+                 (base32
+                  "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/net/ipv6"
+         #:unpack-path "golang.org/x/net"))
+      (synopsis "Go IPv6 support")
+      (description "This packages provides @code{ipv6}, which implements
+IP-level socket options for the Internet Protocol version 6.")
+      (home-page "https://go.googlesource.com/net")
+      (license license:bsd-3))))
+
+(define-public go-golang-org-x-net-proxy
+  (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
+        (revision "1"))
+    (package
+      (name "go-golang-org-x-net-proxy")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/net")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-net-"
+                                          version "-checkout"))
+                (sha256
+                 (base32
+                  "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/net/proxy"
+         #:unpack-path "golang.org/x/net/"))
+      (synopsis "Go support for network proxies")
+      (description "This packages provides @code{proxy}, which provides support
+for a variety of protocols to proxy network data.")
+      (home-page "https://go.googlesource.com/net")
+      (license license:bsd-3))))
+
+(define-public go-golang-org-x-sys-unix
+  (let ((commit "83801418e1b59fb1880e363299581ee543af32ca")
+        (revision "1"))
+    (package
+      (name "go-golang-org-x-sys-unix")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/sys")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0ilykaanvnzb27d42kmbr4i37hcn7hgqbx98z945gy63aa8dskji"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/sys/unix"
+         #:unpack-path "golang.org/x/sys"
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'patch-tests
+             (lambda _
+               (pk (getcwd))
+               (substitute* "src/golang.org/x/sys/unix/syscall_unix_test.go"
+                 (("/usr/bin") "/tmp"))
+               #t)))))
+      (synopsis "Go support for low-level system interaction")
+      (description "This package provides @code{unix}, which offers Go support
+for low-level interaction with the operating system.")
+      (home-page "https://go.googlesource.com/sys")
+      (license license:bsd-3))))
+
+(define-public go-golang-org-x-text-transform
+  (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
+        (revision "1"))
+    (package
+      (name "go-golang-org-x-text-transform")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/text")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-text-"
+                                          version "-checkout"))
+                (sha256
+                 (base32
+                  "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/text/transform"
+         #:unpack-path "golang.org/x/text"))
+      (synopsis "Go text transformation")
+      (description "This package provides @code{transform}, which provides
+reader and writer wrappers that transform the bytes passing through.  Example
+transformations provided by other packages include normalization and conversion
+between character sets.")
+      (home-page "https://go.googlesource.com/text")
+      (license license:bsd-3))))
+
+(define-public go-golang-org-x-text-unicode-norm
+  (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
+        (revision "1"))
+    (package
+      (name "go-golang-org-x-text-unicode-norm")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/text")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-text-"
+                                          version "-checkout"))
+                (sha256
+                 (base32
+                  "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/text/unicode/norm"
+         #:unpack-path "golang.org/x/text"))
+      (synopsis "Unicode normalization in Go")
+      (description "This package provides @code{norm}, which contains types and
+functions for normalizing Unicode strings.")
+      (home-page "https://go.googlesource.com/text")
+      (license license:bsd-3))))
+
+(define-public go-golang-org-x-time-rate
+  (let ((commit "6dc17368e09b0e8634d71cac8168d853e869a0c7")
+        (revision "1"))
+    (package
+      (name "go-golang-org-x-time-rate")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/time")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1fx4cf5fpdz00g3c7vxzy92hdcg0vh4yqw00qp5s52j72qixynbk"))))
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "golang.org/x/time/rate"
+         #:unpack-path "golang.org/x/time"))
+      (propagated-inputs
+       `(("go-golang-org-x-net-context" ,go-golang-org-x-net-context)))
+      (synopsis "Rate limiting in Go")
+      (description "This package provides @{rate}, which implements rate
+limiting in Go.")
+      (home-page "https://godoc.org/golang.org/x/time/rate")
+      (license license:bsd-3))))
+
+(define-public go-golang-org-x-crypto-ssh-terminal
+  (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
+        (revision "1"))
+    (package
+      (name "go-golang-org-x-crypto-ssh-terminal")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/crypto")
+                      (commit commit)))
+                (file-name (string-append "go.googlesource.com-crypto-"
+                                          version "-checkout"))
+                (sha256
+                 (base32
+                  "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
+      (build-system go-build-system)
+      (inputs
+       `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
+      (arguments
+       `(#:import-path "golang.org/x/crypto/ssh/terminal"
+         #:unpack-path "golang.org/x/crypto"
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
+             (lambda* (#:key outputs #:allow-other-keys)
+               (map (lambda (file)
+                      (make-file-writable file))
+                    (find-files
+                      (string-append (assoc-ref outputs "out")
+                                     "/src/golang.org/x/crypto/ed25519/testdata")
+                      ".*\\.gz$"))
+               #t)))))
+      (synopsis "Terminal functions for Go")
+      (description "This package provides @{terminal}, which implements
+support functions for dealing with terminals, as commonly found on UNIX
+systems.")
+      (home-page "https://go.googlesource.com/crypto/")
+      (license license:bsd-3))))
diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm
index 74fbe9e84e..a9ee949855 100644
--- a/gnu/packages/graph.scm
+++ b/gnu/packages/graph.scm
@@ -98,23 +98,24 @@ more.")
 (define-public r-igraph
   (package
     (name "r-igraph")
-    (version "1.1.2")
+    (version "1.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "igraph" version))
        (sha256
         (base32
-         "1v26wyk52snh8z6m5p7yqwcd9dbqifhm57j112i9x53ppi0npcc9"))))
+         "1hcr6b1lz030lgay1bz8y8sxaf2j93ds8n8gsqr6qhssz141hd2m"))))
     (build-system r-build-system)
     (native-inputs
      `(("gfortran" ,gfortran)))
     (inputs
      `(("gmp" ,gmp)
-       ("libxml2" ,libxml2)))
+       ("glpk" ,glpk)
+       ("libxml2" ,libxml2)
+       ("zlib" ,zlib)))
     (propagated-inputs
-     `(("r-irlba" ,r-irlba)
-       ("r-magrittr" ,r-magrittr)
+     `(("r-magrittr" ,r-magrittr)
        ("r-matrix" ,r-matrix)
        ("r-pkgconfig" ,r-pkgconfig)))
     (home-page "http://igraph.org")
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index d2f1b3b0b8..fe717d0c20 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -79,14 +79,14 @@
 (define-public blender
   (package
     (name "blender")
-    (version "2.79")
+    (version "2.79b")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.blender.org/source/"
                                   "blender-" version ".tar.gz"))
               (sha256
                (base32
-                "16f84mdzkmwjmqahjj64kbyk4kagdj4mcr8qjazs1952d7kh7pm9"))))
+                "1g4kcdqmf67srzhi3hkdnr4z1ph4h9sza1pahz38mrj998q4r52c"))))
     (build-system cmake-build-system)
     (arguments
       (let ((python-version (version-major+minor (package-version python))))
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index a65a43b5cf..da130d88ff 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -403,7 +403,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.")
        ("python" ,python)))
     (inputs
      `(("gst-plugins-base" ,gst-plugins-base)
-       ("ffmpeg" ,ffmpeg)
+       ("ffmpeg" ,ffmpeg-3.4)
        ("orc" ,orc)
        ("zlib" ,zlib)))
     (home-page "https://gstreamer.freedesktop.org/")
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 03a551a1f2..b954988712 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -661,48 +661,46 @@ library.")
 (define-public mcron
   (package
     (name "mcron")
-    (version "1.1")
+    (version "1.1.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/mcron/mcron-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1f547sqqfbp0k02sqk4ivwx8y9mx8l0rrx1c9rrj033av073h6xq"))))
+                "1i9mcp6r6my61zfiydsm3n6my41mwvl7dfala4q29qx0zn1ynlm4"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
                   (add-before 'check 'set-timezone
                     (lambda* (#:key inputs #:allow-other-keys)
-                      ;; 'tests/schedule.sh' expects to be running in UTC+1.
+                      ;; 'tests/job-specifier.scm' expects to be running in
+                      ;; UTC-2 or something.
+                      ;; FIXME: This issue is being investigated upstream, for
+                      ;; now we'll just skip the tests (see below):
+                      ;; <https://lists.gnu.org/archive/html/bug-mcron/2018-04/msg00005.html>.
                       (let ((tzdata (assoc-ref inputs "tzdata")))
                         (setenv "TZDIR"
                                 (string-append tzdata
                                                "/share/zoneinfo"))
-                        (setenv "TZ" "UTC+1")
+                        (setenv "TZ" "UTC-2")
                         #t)))
-                  (add-before 'check 'disable-schedule-test
+                  (add-before 'check 'adjust-tests
                     (lambda _
-                      ;; But!  As it turns out, that test additionally relies
-                      ;; on non-deterministic behavior; see
-                      ;; <https://lists.gnu.org/archive/html/bug-mcron/2018-03/msg00001.html>.
-                      (substitute* "tests/schedule.sh"
-                        (("mkdir cron") "exit 77\n"))
-                      #t))
-                  (add-after 'install 'wrap-programs
-                    (lambda* (#:key outputs #:allow-other-keys)
-                      ;; By default mcron doesn't have its own modules in the
-                      ;; search path, so the 'mcron' command fails to start.
-                      (let* ((output  (assoc-ref outputs "out"))
-                             (modules (string-append output
-                                                     "/share/guile/site/2.2"))
-                             (go      (string-append output
-                                                     "/lib/guile/2.2/site-ccache")))
-                        (wrap-program (string-append output "/bin/mcron")
-                          `("GUILE_LOAD_PATH" ":" prefix
-                            (,modules))
-                          `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,go)))
-                        #t))))))
+                      (substitute* "tests/job-specifier.scm"
+                        ;; (getpw) fails with "entry not found" in the build
+                        ;; environment, so pass an argument.
+                        (("\\(getpw\\)")
+                         "(getpwnam (getuid))")
+                        ;; The build environment lacks an entry for root in
+                        ;; /etc/passwd.
+                        (("\\(getpw 0\\)")
+                         "(getpwnam \"nobody\")")
+
+                        ;; FIXME: Skip the 4 faulty tests (see above).
+                        (("\\(test-equal \"next-year\"" all)
+                         (string-append "(test-skip 4)\n" all)))
+                      #t)))))
     (native-inputs `(("pkg-config" ,pkg-config)
                      ("tzdata" ,tzdata-for-tests)))
     (inputs `(("ed" ,ed) ("which" ,which) ("guile" ,guile-2.2)))
diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm
index ae7ae0f519..1f0a9e46e1 100644
--- a/gnu/packages/image-viewers.scm
+++ b/gnu/packages/image-viewers.scm
@@ -59,7 +59,7 @@
 (define-public feh
   (package
     (name "feh")
-    (version "2.25.1")
+    (version "2.26")
     (home-page "https://feh.finalrewind.org/")
     (source (origin
               (method url-fetch)
@@ -67,7 +67,7 @@
                                   name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "197sm78bm33dvahr5nxqkbmpmdn4b13ahc9mrgn1l7n104bg4phc"))))
+                "11kckzwk3b734l0n4j41k40liq1v2lbbj1gzir5qc386g7fvzmmi"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases (delete 'configure))
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index e27b9223dd..bbfd621a93 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -724,7 +724,8 @@ supplies a generic doubly-linked list and some string functions.")
                 (for-each
                   (lambda (dir)
                     (delete-file-recursively (string-append "Source/" dir)))
-                  '("LibJPEG" "LibJXR" "LibOpenJPEG" "LibPNG" "LibRawLite"
+                  '("LibJPEG" "LibOpenJPEG" "LibPNG" "LibRawLite"
+                    ;; "LibJXR"
                     "LibWebP" "OpenEXR" "ZLib"))))
             (patches (search-patches "freeimage-unbundle.patch"
                                      "freeimage-CVE-2015-0852.patch"
@@ -760,14 +761,15 @@ supplies a generic doubly-linked list and some string functions.")
             ;; We need '-fpermissive' for Source/FreeImage.h.
             ;; libjxr doesn't have a pkg-config file.
             (string-append "CFLAGS+=-O2 -fPIC -fvisibility=hidden -fpermissive "
-                           "-I" (assoc-ref %build-inputs "libjxr") "/include/jxrlib"))
+                           ;"-I" (assoc-ref %build-inputs "libjxr") "/include/jxrlib"
+                           ))
       #:tests? #f)) ; no check target
    (native-inputs
     `(("pkg-config" ,pkg-config)
       ("unzip" ,unzip)))
    (inputs
     `(("libjpeg" ,libjpeg)
-      ("libjxr" ,libjxr)
+      ;("libjxr" ,libjxr)
       ("libpng" ,libpng)
       ("libraw" ,libraw)
       ("libtiff" ,libtiff)
@@ -844,16 +846,18 @@ multi-dimensional image processing.")
 (define-public libwebp
   (package
     (name "libwebp")
-    (version "0.6.1")
+    (version "1.0.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "http://downloads.webmproject.org/releases/webp/libwebp-" version
-             ".tar.gz"))
+       ;; No tarballs are provided for >0.6.1.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://chromium.googlesource.com/webm/libwebp")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "1ayq2zq0zbgf5yizbm32zh7p1vb8kibw74am6am1n5cz5mw3ql06"))))
+         "1w8jzdbr1s4238ygyrlxryycss3f2z6d9amxdq8m82nl3l6skar4"))))
     (build-system gnu-build-system)
     (inputs
      `(("freeglut" ,freeglut)
@@ -861,10 +865,18 @@ multi-dimensional image processing.")
        ("libjpeg" ,libjpeg)
        ("libpng" ,libpng)
        ("libtiff" ,libtiff)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)))
     (arguments
      '(#:configure-flags '("--enable-libwebpmux"
                            "--enable-libwebpdemux"
-                           "--enable-libwebpdecoder")))
+                           "--enable-libwebpdecoder")
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'bootstrap
+                    (lambda _
+                      (invoke "autoreconf" "-vif"))))))
     (home-page "https://developers.google.com/speed/webp/")
     (synopsis "Lossless and lossy image compression")
     (description
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index a3395ad7da..500f27dcf2 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -3526,6 +3526,21 @@ transformations and analysis algorithms allow to easily assemble custom
 complex transformations and code analysis tools.")
     (license license:bsd-3)))
 
+(define java-asm-bootstrap
+  (package
+    (inherit java-asm)
+    (name "java-asm-bootstrap")
+    (arguments
+     (substitute-keyword-arguments (package-arguments java-asm)
+       ((#:tests? _) #f)))
+    (native-inputs `())
+    (propagated-inputs
+     `(("java-aqute-bndlib" ,java-aqute-bndlib-bootstrap)
+       ("java-aqute-libg" ,java-aqute-libg-bootstrap)
+       ,@(delete `("java-aqute-bndlib" ,java-aqute-bndlib)
+                 (delete `("java-aqute-libg", java-aqute-libg)
+                         (package-inputs java-asm)))))))
+
 (define-public java-cglib
   (package
     (name "java-cglib")
@@ -5640,6 +5655,15 @@ allowing the end user to plug in the desired logging framework at deployment
 time.")
     (license license:expat)))
 
+(define java-slf4j-api-bootstrap
+  (package
+    (inherit java-slf4j-api)
+    (name "java-slf4j-api-bootstrap")
+    (inputs `())
+    (arguments
+     (substitute-keyword-arguments (package-arguments java-slf4j-api)
+       ((#:tests? _ #f) #f)))))
+
 (define-public java-slf4j-simple
   (package
     (name "java-slf4j-simple")
@@ -6881,6 +6905,15 @@ it manages project dependencies, gives diffs jars, and much more.")
        ("java-osgi-cmpn" ,java-osgi-cmpn)
        ("osgi" ,java-osgi-core)))))
 
+(define java-aqute-libg-bootstrap
+  (package
+    (inherit java-aqute-libg)
+    (name "java-aqute-libg-bootstrap")
+    (inputs
+     `(("slf4j-bootstrap" ,java-slf4j-api-bootstrap)
+       ,@(delete `("slf4j" ,java-slf4j-api)
+                 (package-inputs java-aqute-libg))))))
+
 (define-public java-aqute-bndlib
   (package
     (inherit java-aqute-bnd-annotation)
@@ -6904,6 +6937,17 @@ it manages project dependencies, gives diffs jars, and much more.")
        ("promise" ,java-osgi-util-promise)
        ("osgi" ,java-osgi-core)))))
 
+(define java-aqute-bndlib-bootstrap
+  (package
+    (inherit java-aqute-bndlib)
+    (name "java-aqute-bndlib-bootstrap")
+    (inputs
+     `(("slf4j-bootstrap" ,java-slf4j-api-bootstrap)
+       ("java-aqute-libg-bootstrap" ,java-aqute-libg-bootstrap)
+       ,@(delete `("slf4j" ,java-slf4j-api)
+                 (delete `("java-aqute-libg" ,java-aqute-libg)
+                         (package-inputs java-aqute-bndlib)))))))
+
 (define-public java-ops4j-pax-tinybundles
   (package
     (name "java-ops4j-pax-tinybundles")
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 65937eb746..d0acca8836 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -16,7 +16,7 @@
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
+;;; Copyright © 2016, 2018 Rene Saavedra <pacoon@protonmail.com>
 ;;; Copyright © 2016 Carlos Sánchez de La Lama <csanchezdll@gmail.com>
 ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
 ;;; Copyright © 2017, 2018 Leo Famulari <leo@famulari.name>
@@ -391,8 +391,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.2")
-(define %linux-libre-hash "04sma28djhr2llffnd8pmpb1jfwaqcg2sipp0jnnj1llpwj3rah7")
+(define %linux-libre-version "4.16.4")
+(define %linux-libre-hash "0lq3yv88yd9zcz52bl4hfllb41vy1i826gcim6qjjc88assqib9i")
 
 (define-public linux-libre
   (make-linux-libre %linux-libre-version
@@ -400,8 +400,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.34")
-(define %linux-libre-4.14-hash "11gmvxngjfx4w24a1yjc98hhdl8zfh87byrslgy94faybj8dl938")
+(define %linux-libre-4.14-version "4.14.36")
+(define %linux-libre-4.14-hash "03iwsaa5bb43v2yq81n0i9ysj63fik0nnhlrvwq8zsk8ni9sl6yb")
 
 (define-public linux-libre-4.14
   (make-linux-libre %linux-libre-4.14-version
@@ -410,14 +410,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.94"
-                    "1ff6g1pq16l95bpw4bfagdg4dd49mgfrg9z7l7s6r9z7qp14cd7m"
+  (make-linux-libre "4.9.96"
+                    "0w4j8pfpa1qfyv1ipqvdalfydsw2d1ygqd4aj9ls7f16rxq3clw0"
                     %intel-compatible-systems
                     #:configuration-file kernel-config))
 
 (define-public linux-libre-4.4
-  (make-linux-libre "4.4.128"
-                    "1aqz5skyz534bcpnn6w9madg6kadgyjjypah9dhmqf841rygb6rk"
+  (make-linux-libre "4.4.129"
+                    "1m4434iabnpn77521lm59wzjprq5brx8vr1952jd5a4gqwilmnnb"
                     %intel-compatible-systems
                     #:configuration-file kernel-config))
 
@@ -2121,6 +2121,7 @@ time.")
                                               "/etc/lvm")
                                "--enable-udev_sync"
                                "--enable-udev_rules"
+                               "--enable-pkgconfig"
 
                                ;; Make sure programs such as 'dmsetup' can
                                ;; find libdevmapper.so.
@@ -2897,7 +2898,7 @@ arrays when needed.")
 (define-public multipath-tools
   (package
     (name "multipath-tools")
-    (version "0.7.4")
+    (version "0.7.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://git.opensvc.com/?p=multipath-tools/"
@@ -2905,7 +2906,7 @@ arrays when needed.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "02lk453wa2gfxkl8zmdws15nkcibln2yw76zm779pkngkhggl6w8"))
+                "0zkcayi3mmp43ji2zid1gprgsvqhjjapsw7jjd60sf75prf50h2r"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -3306,7 +3307,8 @@ disks and SD cards.  This package provides the userland utilities.")
                       (substitute* "freefall.c"
                         (("alarm\\(2\\)") "alarm(5)")))))
        #:make-flags (list (string-append "PREFIX="
-                                         (assoc-ref %outputs "out")))
+                                         (assoc-ref %outputs "out"))
+                          "CC=gcc")
        #:tests? #f)) ;no tests
     (home-page (package-home-page linux-libre))
     (synopsis "Free-fall protection for spinning laptop hard drives")
@@ -4593,3 +4595,39 @@ emulates the behaviour of Gunnar Monell's older fbgrab utility.")
 restriction, permission handling and more.  This package provides userspace
 interface to this kernel feature.")
     (license license:lgpl2.1)))
+
+(define-public mbpfan
+  (package
+    (name "mbpfan")
+    (version "2.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/dgraziotin/mbpfan/archive/v"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0wifsws9icki95hhfh4zw1hmk07ddmkcz9mg5a9jr7q2kkrk01cx"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f ; no tests
+       #:make-flags (let ((out (assoc-ref %outputs "out")))
+                      (list (string-append "DESTDIR=" out)
+                            "CC=gcc"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-paths
+           (lambda _
+             (substitute* "Makefile"
+               (("/usr") ""))
+             #t))
+         (delete 'configure)))) ; There's no configure phase.
+    (home-page "https://github.com/dgraziotin/mbpfan")
+    (synopsis "Control fan speed on Macbooks")
+    (description
+     "mbpfan is a fan control daemon for Apple Macbooks.  It uses input from
+the @code{coretemp} module and sets the fan speed using the @code{applesmc}
+module.  It can be executed as a daemon or in the foreground with root
+privileges.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index ea367bcc33..77e4a1d800 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -257,14 +257,14 @@ aliasing facilities to work just as they would on normal mail.")
 (define-public mutt
   (package
     (name "mutt")
-    (version "1.9.4")
+    (version "1.9.5")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://bitbucket.org/mutt/mutt/downloads/"
                                  "mutt-" version ".tar.gz"))
              (sha256
               (base32
-               "1pxmw5yyizb9bqbai6lihv6zxmw0znjfb60zaldwh6hc6lkbzlgl"))
+               "0lsp72lm3cw490x7lhzia7h8f591bab2mr7qpscaj22fmrj7wqdz"))
              (patches (search-patches "mutt-store-references.patch"))))
     (build-system gnu-build-system)
     (inputs
diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm
index 257cabbbb6..3c7fda7585 100644
--- a/gnu/packages/man.scm
+++ b/gnu/packages/man.scm
@@ -58,14 +58,14 @@ a flexible and convenient way.")
 (define-public man-db
   (package
     (name "man-db")
-    (version "2.8.2")
+    (version "2.8.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://savannah/man-db/man-db-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0p0cvv5ykvyzq33qyfik11p2s0d2j75ans1avj9xv3c8vy3zzga5"))))
+                "1b641kcgjvyc41pj67dn4p0zvwlj1vx3l6nf7qdcc7kf6v5a2cjr"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index f4ebd886be..353aa41167 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -3830,14 +3830,14 @@ analysed.")
 (define-public r-subplex
   (package
     (name "r-subplex")
-    (version "1.5-2")
+    (version "1.5-4")
     (source
     (origin
       (method url-fetch)
       (uri (cran-uri "subplex" version))
       (sha256
        (base32
-        "1v9xrnkapnq7v1jbhlg32ignklzf2vn8rqpayc8pzk8wvz53r33g"))))
+        "10cbgbx1bgsax5z7gz6716g360xpq4mvq19cf4qqrxv02mmwz57z"))))
     (build-system r-build-system)
     (native-inputs
      `(("gfortran" ,gfortran)))
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 917d5ed8e1..fd1c330cea 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -7,7 +7,7 @@
 ;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
 ;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
-;;; Copyright © 2016, 2017 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2016, 2017, 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -485,14 +485,14 @@ simultaneously and therefore appear under the same nickname on IRC.")
 (define-public python-nbxmpp
   (package
     (name "python-nbxmpp")
-    (version "0.6.1")
+    (version "0.6.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "nbxmpp" version))
        (sha256
         (base32
-         "0qvkiscy42nhzhccszi049ws8cnhpxgc13g8naq1rsa5x9zy163c"))))
+         "12rfmp613alh3mi8f94008sx7x1a8c1izs3icrvw7bf4gnf2pi31"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f))                    ; no tests
@@ -510,7 +510,7 @@ was initially a fork of xmpppy, but uses non-blocking sockets.")
 (define-public gajim
   (package
     (name "gajim")
-    (version "0.16.9")
+    (version "1.0.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://gajim.org/downloads/"
@@ -518,36 +518,74 @@ was initially a fork of xmpppy, but uses non-blocking sockets.")
                                   "/gajim-" version ".tar.bz2"))
               (sha256
                (base32
-                "0v08zdvpqaig0wxpxn1l8rsj3wr3fqvnagn8cnvch17vfqv9gcr1"))))
-    (build-system gnu-build-system)
+                "16ynws10vhx6rhjjjmzw6iyb3hc19823xhx4gsb14hrc7l8vzd1c"))))
+    (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'install 'wrap-program
            (lambda* (#:key outputs #:allow-other-keys)
-             ;; Make sure all Python scripts run with the correct PYTHONPATH.
-             (let ((out (assoc-ref outputs "out"))
-                   (path (getenv "PYTHONPATH")))
-               (for-each (lambda (name)
-                           (let ((file (string-append out "/bin/" name)))
-                             ;; Wrapping destroys identification of intended
-                             ;; application, so we need to override "APP".
-                             (substitute* file
-                               (("APP=`basename \\$0`")
-                                (string-append "APP=" name)))
-                             (wrap-program file
-                               `("PYTHONPATH" ":" prefix (,path)))))
-                         '("gajim" "gajim-remote" "gajim-history-manager")))
+             (let ((out (assoc-ref outputs "out")))
+               (for-each
+                (lambda (name)
+                  (let ((file (string-append out "/bin/" name))
+                        (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
+                    (wrap-program file
+                      `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))
+                '("gajim" "gajim-remote" "gajim-history-manager")))
+             #t))
+         (add-before 'check 'remove-test-resolver
+           ;; This test requires network access.
+           (lambda _
+             (substitute* "test/runtests.py"
+               (("'integration.test_resolver',") ""))
+             #t))
+         (add-before 'check 'start-xserver
+           ;; Tests require a running X server.
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((xorg-server (assoc-ref inputs "xorg-server"))
+                   (display ":1"))
+               (setenv "DISPLAY" display)
+               (zero? (system (string-append xorg-server "/bin/Xvfb "
+                                             display " &"))))))
+         (add-after 'install 'install-icons
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (adwaita (string-append
+                              (assoc-ref inputs "adwaita-icon-theme")
+                              "/share/icons/Adwaita"))
+                    (hicolor (string-append
+                              (assoc-ref inputs "hicolor-icon-theme")
+                              "/share/icons/hicolor"))
+                    (icons (string-append
+                            out "/lib/python"
+                            ,(version-major+minor (package-version python))
+                            "/site-packages/gajim/data/icons")))
+               (with-directory-excursion icons
+                 (symlink adwaita "Adwaita")
+                 (copy-recursively hicolor "hicolor")))
              #t)))))
     (native-inputs
-     `(("intltool" ,intltool)))
+     `(("intltool" ,intltool)
+       ("xorg-server" ,xorg-server)))
     (inputs
-     `(("python2-axolotl" ,python2-axolotl)
-       ("python2-nbxmpp" ,python2-nbxmpp)
-       ("python2-pyopenssl" ,python2-pyopenssl)
-       ("python2-gnupg" ,python2-gnupg)
-       ("python2-pygtk" ,python2-pygtk)
-       ("python" ,python-2)))
+     `(("adwaita-icon-theme" ,adwaita-icon-theme)
+       ("gnome-keyring" ,gnome-keyring)
+       ("gtk+" ,gtk+)
+       ("gtkspell3" ,gtkspell3)
+       ("hicolor-icon-theme" ,hicolor-icon-theme)
+       ("libsecret" ,libsecret)
+       ("python-axolotl" ,python-axolotl)
+       ("python-dbus" ,python-dbus)
+       ("python-docutils" ,python-docutils)
+       ("python-gnupg" ,python-gnupg)
+       ("python-nbxmpp" ,python-nbxmpp)
+       ("python-pillow" ,python-pillow)
+       ("python-pyasn1" ,python-pyasn1)
+       ("python-pycairo" ,python-pycairo)
+       ("python-pygobject" ,python-pygobject)
+       ("python-pyopenssl" ,python-pyopenssl)
+       ("python-qrcode" ,python-qrcode)))
     (home-page "https://gajim.org/")
     (synopsis "Jabber (XMPP) client")
     (description "Gajim is a feature-rich and easy to use Jabber/XMPP client.
@@ -764,7 +802,7 @@ protocols.")
 (define-public c-toxcore
   (package
     (name "c-toxcore")
-    (version "0.1.11")
+    (version "0.2.2")
     (source
      (origin
        (method url-fetch)
@@ -773,7 +811,10 @@ protocols.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "040vwihl1r5159vzimmnff75iqfg53vhnfi5wcb3cd0c2r51idl5"))))
+         "18bfqx0ylbas9gs91rkspf04l5fjjcl0mxm1gfs2d59bv65mvcm3"))))
+    (arguments
+     `(#:tests? #f)) ; FIXME: Testsuite seems to stay stuck on test 3. Disable
+                     ; for now.
     (build-system cmake-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -791,23 +832,26 @@ messenger protocol.")
 (define-public utox
   (package
    (name "utox")
-   (version "0.16.1")
+   (version "0.17.0")
    (source
     (origin
-     (method url-fetch)
-     (uri (string-append "https://github.com/uTox/uTox/archive/v"
-                         version ".tar.gz"))
-     (file-name (string-append name "-" version ".tar.gz"))
+     (method git-fetch)
+     (uri (git-reference
+           (url "https://github.com/uTox/uTox.git")
+           (commit "v0.17.0")
+           (recursive? #t))) ;; Needed for 'minini' git submodule.
+     (file-name (string-append name "-" version "-checkout"))
      (sha256
       (base32
-       "14xl72y4w1x2kk0cvkcr9pmywllm0r9w2grjqiknwn95pw6yxz6q"))))
+       "12wbq883il7ikldayh8hm0cjfrkp45vn05xx9s1jbfz6gmkidyar"))))
    (build-system cmake-build-system)
    (arguments
-    `(#:phases
+    `(#:configure-flags '("-DENABLE_TESTS=on")
+      #:phases
       (modify-phases %standard-phases
         (add-before 'build 'patch-absolute-filename-libgtk-3
           (lambda* (#:key inputs outputs #:allow-other-keys)
-            (substitute* "../uTox-0.16.1/src/xlib/gtk.c"
+            (substitute* "../source/src/xlib/gtk.c"
                          (("libgtk-3.so")
                          (string-append (assoc-ref inputs "gtk+")
                                         "/lib/libgtk-3.so")))))
@@ -846,14 +890,14 @@ instant messenger with audio and video chat capabilities.")
 (define-public qtox
   (package
     (name "qtox")
-    (version "1.13.0")
+    (version "1.15.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/qTox/qTox/archive/v"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0dyplmlqhg4zbg7hdzp3iqppn9xgp7pds5k6w6byjcqhb9zv91ca"))
+                "0bmnx6m33qn9nx40yy268x4wnvv2y7bvm41hzrlbhsiaph7kg583"))
               (file-name (string-append name "-" version ".tar.gz"))))
     (build-system cmake-build-system)
     (arguments
@@ -875,7 +919,7 @@ instant messenger with audio and video chat capabilities.")
                    ,(list (string-append (assoc-ref inputs "qtsvg")
                                          "/lib/qt5/plugins/"))))))))))
     (inputs
-     `(("ffmpeg" ,ffmpeg)
+     `(("ffmpeg" ,ffmpeg-3.4)
        ("filteraudio" ,filteraudio)
        ("glib" ,glib)
        ("gtk+" ,gtk+-2)
@@ -1492,14 +1536,14 @@ building the IRC clients and bots.")
 (define-public toxic
   (package
     (name "toxic")
-    (version "0.8.0")
+    (version "0.8.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/JFreegman/toxic/archive/v"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0166lqb47f4kj34mhi57aqmnk9mh4hsicmbdsj6ag54sy1zicy20"))
+                "1dx6z7k0zpsd7dpysdy23f0hnm49qlikb0mq8fg0y01dsz9vxgak"))
               (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm
index 49313123c5..48bf33235f 100644
--- a/gnu/packages/mp3.scm
+++ b/gnu/packages/mp3.scm
@@ -301,7 +301,7 @@ This package contains the binary.")
 (define-public mpg123
   (package
     (name "mpg123")
-    (version "1.25.8")
+    (version "1.25.10")
     (source (origin
               (method url-fetch)
               (uri (list (string-append "mirror://sourceforge/mpg123/mpg123/"
@@ -311,7 +311,7 @@ This package contains the binary.")
                           version ".tar.bz2")))
               (sha256
                (base32
-                "16s9z1xc5kv1p90g42vsr9m4gq3dwjsmrj873x4i8601mvpm3nkr"))))
+                "08vhp8lz7d9ybhxcmkq3adwfryhivfvp0745k4r9kgz4wap3f4vc"))))
     (build-system gnu-build-system)
     (arguments '(#:configure-flags '("--with-default-audio=pulse")))
     (native-inputs `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index bb98f5b6a1..4a7a3157dd 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -11,7 +11,7 @@
 ;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
 ;;; Copyright © 2017 Rodger Fox <thylakoid@openmailbox.org>
 ;;; Copyright © 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
-;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2017, 2018 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 nee <nee.git@hidamari.blue>
@@ -2391,7 +2391,7 @@ tune-in sender list from @url{http://opml.radiotime.com}.")
        ("curl" ,curl)
        ("libgcrypt" ,libgcrypt)
        ("json-c" ,json-c)
-       ("ffmpeg" ,ffmpeg)))
+       ("ffmpeg" ,ffmpeg-3.4)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (home-page "http://6xq.net/projects/pianobar/")
@@ -2780,19 +2780,13 @@ available memory.")
                                   name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "026v977kwb0wbmlmf6mnik328plxg8wykfx9ryvqhirac0aq39pk"))
-              (modules '((guix build utils)))
-              (snippet
-               ;; Remove use of __DATE__ and __TIME__ for reproducibility.
-               '(substitute* "main.c"
-                  (("printf \\(\"            Built : %s\", __DATE__\\);") "")
-                  (("printf \\(\" %s\", __TIME__\\);") "")))))
+                "026v977kwb0wbmlmf6mnik328plxg8wykfx9ryvqhirac0aq39pk"))))
     (build-system gnu-build-system)
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("curl" ,curl)
        ("faad2" ,faad2)
-       ("ffmpeg" ,ffmpeg)
+       ("ffmpeg" ,ffmpeg-3.4)
        ("file" ,file)
        ("jack" ,jack-1)
        ("libid3tag" ,libid3tag)
@@ -3846,19 +3840,15 @@ by The Echo Nest.")
 (define-public libmygpo-qt
   (package
     (name "libmygpo-qt")
-    (version "1.0.9")
+    (version "1.1.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://stefan.derkits.at/files/"
                                   "libmygpo-qt/libmygpo-qt." version ".tar.gz"))
               (sha256
                (base32
-                "1wsgh2vjnd52rkvpncj1ycpbp84sj9hh12ija46b42z9mmqf2jm4"))
-              (patches
-               (search-patches "libmygpo-qt-fix-jsoncreatortest.patch"))))
+                "1kg18qrq2rsswgzhl65r3mlyx7kpqg4wwnbp4yiv6svvmadmlxl2"))))
     (build-system cmake-build-system)
-    (arguments
-     '(#:configure-flags '("-DBUILD_WITH_QT4=OFF")))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index b2e16e0077..b9fb0166f2 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -368,14 +368,14 @@ receiving NDP messages.")
 (define-public ethtool
   (package
     (name "ethtool")
-    (version "4.15")
+    (version "4.16")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kernel.org/software/network/"
                                   name "/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "06pr3s7wg2pbvfbf7js61bgh3caff4qf50nqqk3cgz9z90rgvxvi"))))
+                "00ss07jc7p276d83f6jpafgwyc9yiribciyqcgx9j86v49kpm5py"))))
     (build-system gnu-build-system)
     (home-page "https://www.kernel.org/pub/software/network/ethtool/")
     (synopsis "Display or change Ethernet device settings")
diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index 618dcaa92c..6a3a510ff2 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -43,14 +43,14 @@
 (define-public node
   (package
     (name "node")
-    (version "9.10.0")
+    (version "9.11.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://nodejs.org/dist/v" version
                                   "/node-v" version ".tar.gz"))
               (sha256
                (base32
-                "0xld7jh3fx85az7s5zbbsbccnfjwp99xxfn5w0gh2zfc5dalwrg5"))
+                "1vjh9zvw7wkdz6b0l99ya7mqjk0l8lbg9isr1q8rxwp400dhkk32"))
               (modules '((guix build utils)))
               (snippet
                `(begin
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 9a5f73a1fe..e834f643c4 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -5,6 +5,8 @@
 ;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -92,8 +94,8 @@
   ;; Note: the 'update-guix-package.scm' script expects this definition to
   ;; start precisely like this.
   (let ((version "0.14.0")
-        (commit "486de7377f25438b0f44fd93f97e9ef822d558b8")
-        (revision 10))
+        (commit "ab85cf7185da366da56314c53d8e43276e1cccc4")
+        (revision 11))
     (package
       (name "guix")
 
@@ -109,7 +111,7 @@
                       (commit commit)))
                 (sha256
                  (base32
-                  "12ghbby83w335g7vbg7h52hjaal5l6mc6qmldlx8029340br8h1w"))
+                  "1c00yr2vgsdl3kmlbjppyws47ssahamdx88y0wg26x73px71rd19"))
                 (file-name (string-append "guix-" version "-checkout"))))
       (build-system gnu-build-system)
       (arguments
@@ -244,7 +246,8 @@
                        ("gettext" ,gettext-minimal)
                        ("texinfo" ,texinfo)
                        ("graphviz" ,graphviz)
-                       ("help2man" ,help2man)))
+                       ("help2man" ,help2man)
+                       ("po4a" ,po4a)))
       (inputs
        `(("bzip2" ,bzip2)
          ("gzip" ,gzip)
@@ -532,13 +535,13 @@ transactions from C or Python.")
 (define-public diffoscope
   (package
     (name "diffoscope")
-    (version "90")
+    (version "93")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri name version))
               (sha256
                (base32
-                "0hhg26vi0z2q4gwklwq4k16hibc4kq16jvyzp6zhr4kspi07wl6i"))))
+                "0g90nf7817jk03hzk36l3hymky4xqs50iynfld3r0in7hffly5nj"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 66d9e933e7..1dfafac4e7 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
-;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -47,7 +47,7 @@
 (define-public parallel
   (package
     (name "parallel")
-    (version "20180322")
+    (version "20180422")
     (source
      (origin
       (method url-fetch)
@@ -55,7 +55,7 @@
                           version ".tar.bz2"))
       (sha256
        (base32
-        "15v46pv4z98xm3fkwy7335faw4r7pilrxp4xis5a4zi4319sv2b3"))))
+        "0xsfpbxwgd4197gra981iv0nmjfk58c0d88dxx6dh6yrqz523klx"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index f4518cfeb0..923122903e 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -457,37 +457,6 @@ winner of the 2015 Password Hashing Competition.")
     ;; files are CC0 only; see README.md and LICENSE for details.
     (license (list license:cc0 license:asl2.0))))
 
-(define-public python-bcrypt
-  (package
-    (name "python-bcrypt")
-    (version "3.1.4")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "bcrypt" version))
-        (sha256
-         (base32
-          "13cyrnqwkhc70rs6dg65z4yrrr3dc42fhk11804fqmci9hvimvb7"))))
-        (build-system python-build-system)
-    (native-inputs
-     `(("python-pycparser" ,python-pycparser)
-       ("python-pytest" ,python-pytest)))
-    (propagated-inputs
-     `(("python-cffi" ,python-cffi)
-       ("python-six" ,python-six)))
-    (home-page "https://github.com/pyca/bcrypt/")
-    (synopsis
-     "Modern password hashing library")
-    (description
-     "Bcrypt is a Python module which provides a password hashing method based
-on the Blowfish password hashing algorithm, as described in
-@url{http://static.usenix.org/events/usenix99/provos.html,\"A Future-Adaptable
-Password Scheme\"} by Niels Provos and David Mazieres.")
-    (license license:asl2.0)))
-
-(define-public python2-bcrypt
-  (package-with-python2 python-bcrypt))
-
 (define-public pass-git-helper
   (package
     (name "pass-git-helper")
diff --git a/gnu/packages/patches/ceph-skip-collect-sys-info-test.patch b/gnu/packages/patches/ceph-skip-collect-sys-info-test.patch
index f210799254..429087c661 100644
--- a/gnu/packages/patches/ceph-skip-collect-sys-info-test.patch
+++ b/gnu/packages/patches/ceph-skip-collect-sys-info-test.patch
@@ -1,14 +1,13 @@
 This test fails because /etc/os-release is not available.
 
 diff --git a/src/test/common/test_util.cc b/src/test/common/test_util.cc
-index 288dd37db1..95b6cd4b30 100644
+index 64eace923c..6daf4aa514 100644
 --- a/src/test/common/test_util.cc
 +++ b/src/test/common/test_util.cc
-@@ -31,19 +31,3 @@ TEST(util, unit_to_bytesize)
- 
+@@ -32,17 +32,3 @@ TEST(util, unit_to_bytesize)
    ASSERT_EQ(65536ll, unit_to_bytesize(" 64K", &cerr));
  }
--
+ 
 -#if defined(__linux__)
 -TEST(util, collect_sys_info)
 -{
@@ -18,12 +17,8 @@ index 288dd37db1..95b6cd4b30 100644
 -  collect_sys_info(&sys_info, cct);
 -
 -  ASSERT_TRUE(sys_info.find("distro") != sys_info.end());
--  ASSERT_TRUE(sys_info.find("distro_version") != sys_info.end());
 -  ASSERT_TRUE(sys_info.find("distro_description") != sys_info.end());
 -
 -  cct->put();
 -}
 -#endif
--- 
-2.11.1
-
diff --git a/gnu/packages/patches/freeimage-unbundle.patch b/gnu/packages/patches/freeimage-unbundle.patch
index 2727d9fbda..ca907d3276 100644
--- a/gnu/packages/patches/freeimage-unbundle.patch
+++ b/gnu/packages/patches/freeimage-unbundle.patch
@@ -25,7 +25,7 @@ diff -rupN FreeImage/gensrclist.sh FreeImage-new/gensrclist.sh
  #!/bin/sh
  
 -DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/OpenEXR/IexMath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib"
-+DIRLIST=". Source Source/Metadata Source/FreeImageToolkit"
++DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib"
  
  echo "VER_MAJOR = 3" > Makefile.srcs
  echo "VER_MINOR = 17.0" >> Makefile.srcs
@@ -90,8 +90,8 @@ diff -rupN FreeImage/Makefile.gnu FreeImage-new/Makefile.gnu
 -# LibJXR
 -CXXFLAGS += -D__ANSI__
 -CXXFLAGS += $(INCLUDE)
-+override CFLAGS += $(INCLUDE) -D__ANSI__ -I/usr/include/jxrlib $(shell pkg-config --cflags OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib)
-+override LDFLAGS += -ljpeg -ljpegxr -ljxrglue $(shell pkg-config --libs OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib)
++override CFLAGS += $(INCLUDE) -D__ANSI__ $(shell pkg-config --cflags OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib)
++override LDFLAGS += -ljpeg $(shell pkg-config --libs OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib)
  
  ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
 -	CFLAGS += -fPIC
@@ -215,18 +215,6 @@ diff -rupN FreeImage/Source/FreeImage/PluginJPEG.cpp FreeImage-new/Source/FreeIm
  }
  
  #include "FreeImage.h"
-diff -rupN FreeImage/Source/FreeImage/PluginJXR.cpp FreeImage-new/Source/FreeImage/PluginJXR.cpp
---- FreeImage/Source/FreeImage/PluginJXR.cpp	2015-03-02 02:07:08.000000000 +0100
-+++ FreeImage-new/Source/FreeImage/PluginJXR.cpp	2015-09-05 02:13:52.043353343 +0200
-@@ -23,7 +23,7 @@
- #include "Utilities.h"
- #include "../Metadata/FreeImageTag.h"
- 
--#include "../LibJXR/jxrgluelib/JXRGlue.h"
-+#include <JXRGlue.h>
- 
- // ==========================================================
- // Plugin Interface
 diff -rupN FreeImage/Source/FreeImage/PluginPNG.cpp FreeImage-new/Source/FreeImage/PluginPNG.cpp
 --- FreeImage/Source/FreeImage/PluginPNG.cpp	2015-03-10 20:16:12.000000000 +0100
 +++ FreeImage-new/Source/FreeImage/PluginPNG.cpp	2015-09-05 02:13:52.044353363 +0200
diff --git a/gnu/packages/patches/libmygpo-qt-fix-jsoncreatortest.patch b/gnu/packages/patches/libmygpo-qt-fix-jsoncreatortest.patch
deleted file mode 100644
index c457d592cc..0000000000
--- a/gnu/packages/patches/libmygpo-qt-fix-jsoncreatortest.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From ebe2323727f8d646590245b0bf06dbc92b5808d6 Mon Sep 17 00:00:00 2001
-From: Golubev Alexander <fatzer2@gmail.com>
-Date: Tue, 20 Sep 2016 15:33:30 +0400
-Subject: [PATCH] JsonCreatorTest failed due to extra space
-
-JsonCreatorTest failed with next message:
-```
-********* Start testing of mygpo::JsonCreatorTest *********
-Config: Using QTest library 4.8.6, Qt 4.8.6
-PASS   : mygpo::JsonCreatorTest::initTestCase()
-PASS   : mygpo::JsonCreatorTest::testAddRemoveSubsToJSON()
-PASS   : mygpo::JsonCreatorTest::testSaveSettingsToJSON()
-FAIL!  : mygpo::JsonCreatorTest::testEpisodeActionListToJSON() Compared values are not the same
-   Actual (outString2): [{"action":"download","device":"device1","episode":"http://episode.url","podcast":"http://podcast.url","timestamp":"1998-01-01T00:01:02"},{"action":"delete","device":"device3","episode":"http://episode2.url","podcast":"http://podcast2.url","timestamp":"1920-01-01T12:01:02"},{"action":"new","device":"foodev","episode":"http://www.podtrac.com","podcast":"http://leo.am","timestamp":"1998-01-01T00:01:02"},{"action":"play","device":"foodev","episode":"http://www.podtrac.com","podcast":"http://leo.am","timestamp":"1920-01-01T12:01:02"},{"action":"play","device":"foodev","episode":"http://www.podtrac.com","podcast":"http://leo.am","position":123,"started":10,"timestamp":"1998-01-01T00:01:02","total":321},{"action":"play","device":"foodev","episode":"http://www.podtrac.com","podcast":"http://leo.am","position":10,"timestamp":"1998-01-01T00:01:02"}]
-   Expected (expected2): [{"action":"download","device":"device1","episode":"http://episode.url","podcast":"http:
-   Loc: [/var/tmp/portage/media-libs/libmygpo-qt-1.0.9-r1/work/libmygpo-qt-1.0.9/tests/JsonCreatorTest.cpp(138)]
-PASS   : mygpo::JsonCreatorTest::testRenameDeviceStringToJSON()
-PASS   : mygpo::JsonCreatorTest::testDeviceSynchronizationListsToJSON()
-PASS   : mygpo::JsonCreatorTest::cleanupTestCase()
-Totals: 6 passed, 1 failed, 0 skipped
-********* Finished testing of mygpo::JsonCreatorTest *********
-```
-
-This was caused by extra space in the expected string.
----
- tests/JsonCreatorTest.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tests/JsonCreatorTest.cpp b/tests/JsonCreatorTest.cpp
-index b15b006..feb03d5 100644
---- a/tests/JsonCreatorTest.cpp
-+++ b/tests/JsonCreatorTest.cpp
-@@ -133,7 +133,7 @@ void JsonCreatorTest::testEpisodeActionListToJSON()
- 
-   output = JsonCreator::episodeActionListToJSON(episodeActions);
-   QString outString2 = QString::fromLatin1( output ).replace( QLatin1String(" "), QLatin1String("") );
--  QString expected2( QLatin1String( "[{\"action\":\"download\",\"device\":\"device1\",\"episode\":\"http://episode.url\",\"podcast\":\"http://podcast.url\",\"timestamp\":\"1998-01-01T00:01:02\"},{\"action\":\"delete\",\"device\":\"device3\",\"episode\":\"http://episode2.url\",\"podcast\":\"http://podcast2.url\",\"timestamp\":\"1920-01-01T12:01:02\"},{\"action\":\"new\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"timestamp\":\"1998-01-01T00:01:02\"},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"timestamp\":\"1920-01-01T12:01:02\" },{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"position\":123,\"started\":10,\"timestamp\":\"1998-01-01T00:01:02\",\"total\":321},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"position\":10,\"timestamp\":\"1998-01-01T00:01:02\"}]" ) );
-+  QString expected2( QLatin1String( "[{\"action\":\"download\",\"device\":\"device1\",\"episode\":\"http://episode.url\",\"podcast\":\"http://podcast.url\",\"timestamp\":\"1998-01-01T00:01:02\"},{\"action\":\"delete\",\"device\":\"device3\",\"episode\":\"http://episode2.url\",\"podcast\":\"http://podcast2.url\",\"timestamp\":\"1920-01-01T12:01:02\"},{\"action\":\"new\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"timestamp\":\"1998-01-01T00:01:02\"},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"timestamp\":\"1920-01-01T12:01:02\"},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"position\":123,\"started\":10,\"timestamp\":\"1998-01-01T00:01:02\",\"total\":321},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"position\":10,\"timestamp\":\"1998-01-01T00:01:02\"}]" ) );
- 
-   QCOMPARE(outString2, expected2 );
- }
diff --git a/gnu/packages/perl-check.scm b/gnu/packages/perl-check.scm
index 1fd725f654..832efc2b78 100644
--- a/gnu/packages/perl-check.scm
+++ b/gnu/packages/perl-check.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2017 Petter <petter@mykolab.ch>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -31,6 +32,7 @@
 (define-module (gnu packages perl-check)
   #:use-module (guix licenses)
   #:use-module (gnu packages)
+  #:use-module (gnu packages valgrind)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system perl)
@@ -1001,6 +1003,33 @@ reported, and the tests skipped.")
     (description "Test::Roo provides composable, reusable tests with roles.")
     (license asl2.0)))
 
+(define-public perl-test-runvalgrind
+  (package
+    (name "perl-test-runvalgrind")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-RunValgrind-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0cfndkn2k9pcx290wcblwmrwh1ybs0grxjlsrp8fbqqbmmjpb53h"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-module-build" ,perl-module-build)))
+    (propagated-inputs
+     `(("perl-path-tiny" ,perl-path-tiny)
+       ("perl-test-trap" ,perl-test-trap)
+       ("valgrind" ,valgrind)))
+    (home-page "http://search.cpan.org/dist/Test-RunValgrind/")
+    (synopsis "Tests that an external program is valgrind-clean")
+    (description "Test::RunValgind checks weather Valgrind does not detect
+errors (such as memory leaks) in an arbitrary binary executable.")
+    (license x11)))
+
 (define-public perl-test-script
   (package
     (name "perl-test-script")
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 50273d31e4..3edb2b6168 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -13,12 +13,13 @@
 ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2017 Raoul J.P. Bonnal <ilpuccio.febo@gmail.com>
-;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -43,8 +44,10 @@
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system perl)
+  #:use-module (guix utils) ;substitute-keyword-arguments for perl-5.26.2
   #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages perl-web)
   #:use-module (gnu packages pkg-config))
@@ -59,6 +62,7 @@
   (package
     (name "perl")
     (version "5.26.1")
+    (replacement perl/fixed)
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://cpan/src/5.0/perl-"
@@ -155,6 +159,39 @@
     (home-page "http://www.perl.org/")
     (license gpl1+)))                          ; or "Artistic"
 
+;; Fixes CVE-2018-6797, CVE-2018-6798, and CVE-2018-6913.
+;; See <https://metacpan.org/changes/release/SHAY/perl-5.26.2>.
+(define-public perl-5.26.2
+  (package
+    (inherit perl)
+    (version "5.26.2")
+    (source (origin
+              (inherit (package-source perl))
+              (uri (string-append "mirror://cpan/src/5.0/perl-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "03gpnxx1g6hvlh0v4aqx00580h787sfywp1vlvw64q2xcbm9qbsp"))))))
+
+;; When grafting perl, complications arise when the replacement perl has a
+;; different version number than the original.  So, here we create a version
+;; of perl-5.26.2 that thinks it is version 5.26.1.  See
+;; <https://bugs.gnu.org/31210> and <https://bugs.gnu.org/31216>.
+(define perl/fixed
+  (package
+    (inherit perl-5.26.2)
+    (version "5.26.1")
+    (arguments
+     (substitute-keyword-arguments (package-arguments perl-5.26.2)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'revert-perl-subversion
+             (lambda _
+               (substitute* "patchlevel.h"
+                 (("^#define PERL_SUBVERSION	2")
+                  "#define PERL_SUBVERSION	1"))
+               #t))))))))
+
 (define-public perl-algorithm-c3
   (package
     (name "perl-algorithm-c3")
@@ -573,7 +610,7 @@ Agency.")
 (define-public perl-business-isbn
   (package
     (name "perl-business-isbn")
-    (version "3.003")
+    (version "3.004")
     (source
      (origin
        (method url-fetch)
@@ -581,7 +618,7 @@ Agency.")
                            "Business-ISBN-" version ".tar.gz"))
        (sha256
         (base32
-         "1i2bxzqkki257rqbswa4ryj1grmwa5s47wrxln2ff5mha1ry31gm"))))
+         "07l3zfv8hagv37i3clvj5a1zc2jarr5phg80c93ks35zaz6llx9i"))))
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-business-isbn-data" ,perl-business-isbn-data)
@@ -3501,6 +3538,33 @@ provided base directory and can return files (and/or directories if desired)
 matching a regular expression.")
     (home-page "http://search.cpan.org/~dopacki/File-List//")))
 
+(define-public perl-file-readbackwards
+  (package
+    (name "perl-file-readbackwards")
+    (version "1.05")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/U/UR/URI/File-ReadBackwards-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0vldy5q0zyf1cwzwb1gv14f8vg2f21bw96b8wvkw6z2hhypn3cl2"))))
+    (build-system perl-build-system)
+    (home-page "http://search.cpan.org/dist/File-ReadBackwards/")
+    (synopsis "Read a file backwards by lines")
+    (description "This module reads a file backwards line by line. It is
+simple to use, memory efficient and fast.  It supports both an object and a
+tied handle interface.
+
+It is intended for processing log and other similar text files which typically
+have their newest entries appended to them.  By default files are assumed to
+be plain text and have a line ending appropriate to the OS.  But you can set
+the input record separator string on a per file basis.")
+    (license perl-license)))
+
 (define-public perl-file-remove
   (package
     (name "perl-file-remove")
@@ -4056,6 +4120,32 @@ This document describes how to use Inline with the C programming language.
 It also goes a bit into Perl C internals.")
     (license (package-license perl))))
 
+(define-public perl-io-all
+  (package
+    (name "perl-io-all")
+    (version "0.87")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/F/FR/FREW/IO-All-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "0nsd9knlbd7if2v6zwj4q978axq0w5hk8ymp61z14a821hjivqjl"))))
+    (build-system perl-build-system)
+    (propagated-inputs
+     `(("perl-file-mimeinfo" ,perl-file-mimeinfo)
+       ("perl-file-readbackwards" ,perl-file-readbackwards)))
+    (home-page "http://search.cpan.org/dist/IO-All/")
+    (synopsis "@code{IO::All} to Larry Wall!")
+    (description "@code{IO::All} combines all of the best Perl IO modules into
+a single nifty object oriented interface to greatly simplify your everyday
+Perl IO idioms.  It exports a single function called io, which returns a new
+@code{IO::All} object.  And that object can do it all!")
+    (license perl-license)))
+
 (define-public perl-io-captureoutput
   (package
     (name "perl-io-captureoutput")
@@ -8699,7 +8789,7 @@ variable conform.")
 (define-public perl-type-tiny
   (package
     (name "perl-type-tiny")
-    (version "1.002001")
+    (version "1.002002")
     (source
      (origin
        (method url-fetch)
@@ -8707,7 +8797,7 @@ variable conform.")
                            "Type-Tiny-" version ".tar.gz"))
        (sha256
         (base32
-         "1p8krim8kvw123nady96fagi8sk2pj1z8jkr4r8n45ihyamfxjck"))))
+         "0b48v28rvl20969gyr62yg6gr6a2nj9qik0bixavbjdmk67hqnx8"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-test-warnings" ,perl-test-warnings)))
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index e60af0bd36..d56cd6ecce 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -69,14 +69,14 @@
 (define-public libraw
   (package
     (name "libraw")
-    (version "0.18.8")
+    (version "0.18.9")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.libraw.org/data/LibRaw-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1qi0fkw2zmd0yplrf79z7lgpz0hxl45dj5rdgpaj7283jzys9b2n"))))
+                "0kmjfdr409k9q9n17k9ywims5z4kqc16s81ba7y09n7669q1gvyj"))))
     (build-system gnu-build-system)
     (home-page "https://www.libraw.org")
     (synopsis "Raw image decoder")
@@ -109,14 +109,14 @@ data as produced by digital cameras.")
 (define-public libgphoto2
   (package
     (name "libgphoto2")
-    (version "2.5.16")
+    (version "2.5.17")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/gphoto/libgphoto/"
                                   version "/libgphoto2-" version ".tar.bz2"))
               (sha256
                (base32
-                "01i95av28d0szyvx6l2gjv039r3205wjwjr91nfimq132rnl2mz7"))))
+                "0mdmjb8a07g37bb5q69h11sixw0w6y5g3kbii9z97yhklgq68x21"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs
@@ -140,14 +140,14 @@ from digital cameras.")
 (define-public gphoto2
   (package
     (name "gphoto2")
-    (version "2.5.15")
+    (version "2.5.17")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/gphoto/gphoto/" version
                                   "/gphoto2-" version ".tar.bz2"))
               (sha256
                (base32
-                "0xsa12k5fz49v8y4h3zahzr427a3ylxaf0k7hybrkp43g4i1lmxf"))))
+                "0kslwclyyzvnxjw3gdzhlagj7l5f8lba833ipr9s0s0c4hwi0mxa"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/pure.scm b/gnu/packages/pure.scm
index b0fd93b39b..39c1d6089f 100644
--- a/gnu/packages/pure.scm
+++ b/gnu/packages/pure.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -31,7 +32,7 @@
 (define-public pure
   (package
     (name "pure")
-    (version "0.67")
+    (version "0.68")
     (source
      (origin
        (method url-fetch)
@@ -40,7 +41,7 @@
                            "pure-" version ".tar.gz"))
        (sha256
         (base32
-         "1hlx5dx6n70rbg668yc97yj4jbnrv0dpfw3l9b0ffmcgr76f6ba4"))))
+         "0px6x5ivcdbbp2pz5n1r1cwg1syadklhjw8piqhl63n91i4r7iyb"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags (list (string-append "LDFLAGS=-Wl,-rpath="
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index ace0891a7d..dda1024b39 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
 ;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
+;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -48,6 +49,37 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (srfi srfi-1))
 
+(define-public python-bcrypt
+  (package
+    (name "python-bcrypt")
+    (version "3.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "bcrypt" version))
+       (sha256
+        (base32
+         "13cyrnqwkhc70rs6dg65z4yrrr3dc42fhk11804fqmci9hvimvb7"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-pycparser" ,python-pycparser)
+       ("python-pytest" ,python-pytest)))
+    (propagated-inputs
+     `(("python-cffi" ,python-cffi)
+       ("python-six" ,python-six)))
+    (home-page "https://github.com/pyca/bcrypt/")
+    (synopsis
+     "Modern password hashing library")
+    (description
+     "Bcrypt is a Python module which provides a password hashing method based
+on the Blowfish password hashing algorithm, as described in
+@url{http://static.usenix.org/events/usenix99/provos.html,\"A Future-Adaptable
+Password Scheme\"} by Niels Provos and David Mazieres.")
+    (license license:asl2.0)))
+
+(define-public python2-bcrypt
+  (package-with-python2 python-bcrypt))
+
 (define-public python-passlib
   (package
     (name "python-passlib")
@@ -587,6 +619,9 @@ Networking and Cryptography library.  These libraries have a stated goal
 of improving usability, security and speed.")
     (license license:asl2.0)))
 
+(define-public python2-pynacl
+  (package-with-python2 python-pynacl))
+
 (define-public python2-pgpdump
   (package
     (name "python2-pgpdump")
@@ -758,3 +793,30 @@ in userspace)
 
 (define-public python2-pycryptodome
   (package-with-python2 python-pycryptodome))
+
+(define-public python-m2crypto
+  (package
+    (name "python-m2crypto")
+    (version "0.29.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "M2Crypto" version))
+       (sha256
+        (base32 "1h16gpilrnlzc0iyj1mnd1iqh8wchzjsxjqw9n344glimg2s5zm0"))))
+    (build-system python-build-system)
+    (inputs `(("openssl" ,openssl)))
+    (propagated-inputs `(("python-typing" ,python-typing)))
+    (home-page "https://gitlab.com/m2crypto/m2crypto")
+    (synopsis "Python crypto and TLS toolkit")
+    (description "@code{M2Crypto} is a complete Python wrapper for OpenSSL
+featuring RSA, DSA, DH, EC, HMACs, message digests, symmetric ciphers
+(including AES); TLS functionality to implement clients and servers; HTTPS
+extensions to Python's httplib, urllib, and xmlrpclib; unforgeable HMAC'ing
+AuthCookies for web session management; FTP/TLS client and server; S/MIME;
+M2Crypto can also be used to provide TLS for Twisted.  Smartcards supported
+through the Engine interface.")
+    (license license:expat)))
+
+(define-public python2-m2crypto
+  (package-with-python2 python-m2crypto))
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 58c5566f42..d15ad92a56 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -23,6 +23,7 @@
 ;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
 ;;; Copyright © 2017 Mark Meyer <mark@ofosos.org>
+;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2486,3 +2487,24 @@ layouts.")
 
 (define-public python2-pastescript
   (package-with-python2 python-pastescript))
+
+(define-public python2-urlgrabber
+  (package
+    (name "python2-urlgrabber")
+    (version "3.10.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "urlgrabber" version))
+       (sha256
+        (base32 "0w1h7hlsq406bxfy2pn4i9bd003bwl0q9b7p03z3g6yl0d21ddq5"))))
+    (build-system python-build-system)
+    (arguments `(#:python ,python-2)) ; urlgrabber supports python2 only
+    (home-page "http://urlgrabber.baseurl.org")
+    (synopsis "High-level cross protocol url-grabber")
+    (description "@code{urlgrabber} is Python2 library that unifies access to
+files available on web, FTP or locally.  It supports HTTP, FTP and file://
+protocols, it supports features like HTTP keep-alive, reget, throttling and
+more.")
+    (license license:lgpl2.1+)))
+
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index e5b74a57f7..f36e4c770d 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -50,6 +50,7 @@
 ;;; Copyright © 2018 Vijayalakshmi Vedantham <vijimay12@gmail.com>
 ;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org>
 ;;; Copyright © 2018 Adam Massmann <massmannak@gmail.com>
+;;; Copyright © 2016, 2018 Tomáš Čech <sleep_walker@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -102,7 +103,6 @@
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages openstack)
-  #:use-module (gnu packages password-utils)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -6253,7 +6253,7 @@ specification.")
 (define-public python-pretend
   (package
     (name "python-pretend")
-    (version "1.0.8")
+    (version "1.0.9")
     (source
      (origin
        (method url-fetch)
@@ -6261,7 +6261,7 @@ specification.")
                            "pretend/pretend-" version ".tar.gz"))
        (sha256
         (base32
-         "0r5r7ygz9m6d2bklflbl84cqhjkc2q12xgis8268ygjh30g2q3wk"))))
+         "040vm94lcbscg5p81g1icmwwwa2jm7wrd1ybmxnv1sz8rl8bh3n9"))))
     (build-system python-build-system)
     (home-page "https://github.com/alex/pretend")
     (synopsis "Library for stubbing in Python")
@@ -13127,3 +13127,21 @@ file system events on Linux.")
     (description "Pybtex is a BibTeX-compatible bibliography processor written
 in Python.  You can simply type pybtex instead of bibtex.")
     (license license:expat)))
+
+(define-public python-onetimepass
+  (package
+    (name "python-onetimepass")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "onetimepass" version))
+       (sha256
+        (base32 "09vagxgbq78wvq4xbikmn2hpqqsa2i96kqsmphf7dqynfv0dlsd5"))))
+    (build-system python-build-system)
+    (propagated-inputs `(("python-six" ,python-six)))
+    (home-page "https://github.com/tadeck/onetimepass/")
+    (synopsis "One-time password library")
+    (description "Python one-time password library for HMAC-based (HOTP) and
+time-based (TOTP) passwords.")
+    (license license:expat)))
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 0584a5ddeb..08db0a7e67 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -7,7 +7,7 @@
 ;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Quiliro <quiliro@fsfla.org>
-;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -1018,7 +1018,7 @@ interacting with serial ports from within Qt.")))
 (define-public qtserialbus
   (package (inherit qtsvg)
     (name "qtserialbus")
-    (version "5.9.4")
+    (version "5.9.5")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -1027,7 +1027,7 @@ interacting with serial ports from within Qt.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1i6b7w9z30mzzi0dcmrxx1scpzpnnw2fag1igvrnzvw1jwp414ff"))))
+               "0gz5xsskv02yy078yffxyn8rdlklf4rsgnqrziyz5ywxwdh96gn5"))))
     (inputs
      `(("qtbase" ,qtbase)
        ("qtserialport" ,qtserialport)))
@@ -1276,7 +1276,7 @@ and mobile applications targeting TV-like form factors.")))
 (define-public qtscxml
   (package (inherit qtsvg)
     (name "qtscxml")
-    (version "5.9.4")
+    (version "5.9.5")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -1285,7 +1285,7 @@ and mobile applications targeting TV-like form factors.")))
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0x8bjp9jzib4kfn7rbricw4qr259qqsdbrz0dw39453s2m7cbv0x"))
+               "0knp328cinawz6xbhf9wd6h6gbwp74rb5cpmlr8gv3g5a7fjlsh1"))
              (modules '((guix build utils)))
              (snippet
               '(begin
@@ -1390,7 +1390,7 @@ selecting one of the charts themes.")
 (define-public qtdatavis3d
   (package (inherit qtsvg)
     (name "qtdatavis3d")
-    (version "5.9.4")
+    (version "5.9.5")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qt.io/official_releases/qt/"
@@ -1399,7 +1399,7 @@ selecting one of the charts themes.")
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1ggwfnqf17mp5dkfr82q1qrimkb6wv3304vl8mjv1nq0zisckhjv"))))
+               "0i1zd7lcakhicfpqj7dlw8hzk8x5i4ddk1427jhxcpja48l4jxy5"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 67dc6badfe..c15e677438 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1617,13 +1617,13 @@ irb's last-word approach.")
 (define-public ruby-instantiator
   (package
     (name "ruby-instantiator")
-    (version "0.0.6")
+    (version "0.0.7")
     (source (origin
               (method url-fetch)
               (uri (rubygems-uri "instantiator" version))
               (sha256
                (base32
-                "0mfmqhg9xrv9i8i1kmphf15ywddhivyh2z3ccl0xjw8qy54zr21i"))))
+                "0w07w3gkyqr7m0vz5h13vm8b411660qywjm2xxxgdjv4wb3fazbr"))))
     (build-system ruby-build-system)
     (arguments
      `(#:phases
@@ -2998,13 +2998,13 @@ multibyte strings, internationalization, time zones, and testing.")
 (define-public ruby-crass
   (package
     (name "ruby-crass")
-    (version "1.0.3")
+    (version "1.0.4")
     (source (origin
               (method url-fetch)
               (uri (rubygems-uri "crass" version))
               (sha256
                (base32
-                "1czijxlagzpzwchr2ldrgfi7kywg08idjpq37ndcmwh4fmz72c4l"))))
+                "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi"))))
     (build-system ruby-build-system)
     (native-inputs
      `(("bundler" ,bundler)
@@ -4079,14 +4079,14 @@ support to both Ruby and JRuby.  It uses @code{unf_ext} on CRuby and
 (define-public ruby-domain-name
   (package
     (name "ruby-domain-name")
-    (version "0.5.20170404")
+    (version "0.5.20180417")
     (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri "domain_name" version))
        (sha256
         (base32
-         "12hs8yijhak7p2hf1xkh98g0mnp5phq3mrrhywzaxpwz1gw5r3kf"))))
+         "0abdlwb64ns7ssmiqhdwgl27ly40x2l27l8hs8hn0z4kb3zd2x3v"))))
     (build-system ruby-build-system)
     (arguments
      `(#:phases
@@ -4585,14 +4585,14 @@ files and use the data therein.")
 (define-public ruby-ascii85
   (package
     (name "ruby-ascii85")
-    (version "1.0.2")
+    (version "1.0.3")
     (source
      (origin
        (method url-fetch)
        (uri (rubygems-uri "Ascii85" version))
        (sha256
         (base32
-         "0j95sbxd18kc8rhcnvl1w37kflqpax1r12h1x47gh4xxn3mz4m7q"))))
+         "0658m37jjjn6drzqg1gk4p6c205mgp7g1jh2d00n4ngghgmz5qvs"))))
     (build-system ruby-build-system)
     (native-inputs
      `(("bundler" ,bundler)))
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index eaa8c48525..0a9d5bb382 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2017, 2018 Nikolai Merinov <nikolai.merinov@member.fsf.org>
 ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Danny Milosavljevic <dannym+a@scratchpost.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -46,6 +47,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module ((guix build utils) #:select (alist-replace))
@@ -161,9 +163,12 @@ in turn be used to build the final Rust.")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'set-env
-           (lambda _
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Disable test for cross compilation support.
+             (setenv "CFG_DISABLE_CROSS_TESTS" "1")
              (setenv "SHELL" (which "sh"))
              (setenv "CONFIG_SHELL" (which "sh"))
+             (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
              ;; guix llvm-3.9.1 package installs only shared libraries
              (setenv "LLVM_LINK_SHARED" "1")
              #t))
@@ -181,10 +186,16 @@ in turn be used to build the final Rust.")
                   "#[ignore]\nfn connect_timeout_unroutable"))
                ;; <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00222.html>
                (substitute* "src/libstd/sys/unix/process/process_common.rs"
-                 (("fn test_process_mask") "#[ignore]\nfn test_process_mask"))
+                (("fn test_process_mask") "#[allow(unused_attributes)]
+    #[ignore]
+    fn test_process_mask"))
                ;; Our ld-wrapper cannot process non-UTF8 bytes in LIBRARY_PATH.
                ;; <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00193.html>
                (delete-file-recursively "src/test/run-make/linker-output-non-utf8")
+               (substitute* "src/librustc_back/dynamic_lib.rs"
+                 ;; This test is known to fail on aarch64 and powerpc64le:
+                 ;; https://github.com/rust-lang/rust/issues/45410
+                 (("fn test_loading_cosine") "#[ignore]\nfn test_loading_cosine"))
                #t)))
          (add-after 'patch-source-shebangs 'patch-cargo-checksums
            (lambda* _
@@ -247,6 +258,92 @@ safety and thread safety guarantees.")
                     (alist-replace "rustc-bootstrap" (list base-rust)
                                    (package-native-inputs base-rust))))))
 
+(define-public mrustc
+  (let ((commit "4f98e4322ef7aabd3bbef8cd93c0980cd6eeeed1")
+        (revision "1")
+        (rustc-version "1.19.0"))
+    (package
+      (name "mrustc")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/thepowersgang/mrustc.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1hk1x2iv64il5g2n3z06d6h219hnxg1w84lj7vi1lydqa65qk92p"))))
+      (outputs '("out" "cargo"))
+      (build-system gnu-build-system)
+      (inputs
+       `(("llvm" ,llvm-3.9.1)))
+      (native-inputs
+       `(("bison" ,bison)
+         ("flex" ,flex)
+         ;; Required for the libstd sources.
+         ("rustc"
+          ,(rust-source "1.19.0" "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm"))))
+      (arguments
+       `(#:tests? #f
+         #:make-flags (list (string-append "LLVM_CONFIG="
+                                           (assoc-ref %build-inputs "llvm")
+                                           "/bin/llvm-config"))
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'unpack-target-compiler
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (substitute* "minicargo.mk"
+                 ;; Don't try to build LLVM.
+                 (("^[$][(]LLVM_CONFIG[)]:") "xxx:")
+                 ;; Build for the correct target architecture.
+                 (("^RUSTC_TARGET := x86_64-unknown-linux-gnu")
+                  (string-append "RUSTC_TARGET := "
+                                 ,(or (%current-target-system)
+                                      (nix-system->gnu-triplet
+                                       (%current-system))))))
+               (invoke "tar" "xf" (assoc-ref inputs "rustc"))
+               (chdir "rustc-1.19.0-src")
+               (invoke "patch" "-p0" "../rust_src.patch")
+               (chdir "..")
+               #t))
+           (delete 'configure)
+           (add-after 'build 'build-minicargo
+             (lambda _
+               (for-each (lambda (target)
+                           (invoke "make" "-f" "minicargo.mk" target))
+                         '("output/libstd.hir" "output/libpanic_unwind.hir"
+                           "output/libproc_macro.hir" "output/libtest.hir"))
+               ;; Technically the above already does it - but we want to be clear.
+               (invoke "make" "-C" "tools/minicargo")))
+           (replace 'install
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (bin (string-append out "/bin"))
+                      (tools-bin (string-append out "/tools/bin"))
+                      (cargo-out (assoc-ref outputs "cargo"))
+                      (cargo-bin (string-append cargo-out "/bin"))
+                      (lib (string-append out "/lib"))
+                      (lib/rust (string-append lib "/mrust"))
+                      (gcc (assoc-ref inputs "gcc")))
+                 ;; These files are not reproducible.
+                 (for-each delete-file (find-files "output" "\\.txt$"))
+                 (mkdir-p lib)
+                 (copy-recursively "output" lib/rust)
+                 (mkdir-p bin)
+                 (mkdir-p tools-bin)
+                 (install-file "bin/mrustc" bin)
+                 ;; minicargo uses relative paths to resolve mrustc.
+                 (install-file "tools/bin/minicargo" tools-bin)
+                 (install-file "tools/bin/minicargo" cargo-bin)
+                 #t))))))
+      (synopsis "Compiler for the Rust progamming language")
+      (description "Rust is a systems programming language that provides memory
+safety and thread safety guarantees.")
+      (home-page "https://github.com/thepowersgang/mrustc")
+      ;; Dual licensed.
+      (license (list license:asl2.0 license:expat)))))
+
 (define-public rust-1.23
   (package
     (inherit rust-1.19)
@@ -258,7 +355,23 @@ safety and thread safety guarantees.")
      (substitute-keyword-arguments (package-arguments rust-1.19)
        ((#:phases phases)
         `(modify-phases ,phases
-           (add-after 'patch-tests 'fix-mtime-bug
+           (add-after 'unpack 'dont-build-native
+             (lambda _
+               ;; XXX: Revisit this when we use gcc 6.
+               (substitute* "src/binaryen/CMakeLists.txt"
+                 (("ADD_COMPILE_FLAG\\(\\\"-march=native\\\"\\)") ""))
+               #t))
+           (add-after 'patch-tests 'patch-cargo-tests
+             (lambda _
+               (substitute* "src/tools/cargo/tests/build.rs"
+                (("/usr/bin/env") (which "env"))
+                ;; Guix llvm is compiled without asmjs-unknown-emscripten.
+                (("fn wasm32_final_outputs") "#[ignore]\nfn wasm32_final_outputs"))
+               (substitute* "src/tools/cargo/tests/death.rs"
+                ;; This is stuck when built in container.
+                (("fn ctrl_c_kills_everyone") "#[ignore]\nfn ctrl_c_kills_everyone"))
+               #t))
+           (add-after 'patch-cargo-tests 'fix-mtime-bug
              (lambda* _
                (substitute* "src/build_helper/lib.rs"
                  ;; Bug in Rust code.
@@ -327,7 +440,8 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
              (invoke "./x.py" "build" "src/tools/cargo")))
          (replace 'check
            (lambda* _
-             (invoke "./x.py" "test")))
+             (invoke "./x.py" "test")
+             (invoke "./x.py" "test" "src/tools/cargo")))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (invoke "./x.py" "install")
@@ -348,7 +462,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
                  `("LIBRARY_PATH" ":" suffix (,(string-append libc "/lib"))))
                #t)))))))))
 
-(define-public rust
+(define-public rust-1.24
   (let ((base-rust
          (rust-bootstrapped-package rust-1.23 "1.24.1"
                                     "1vv10x2h9kq7fxh2v01damdq8pvlp5acyh1kzcda9sfjx12kv99y")))
@@ -358,4 +472,51 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
        (substitute-keyword-arguments (package-arguments base-rust)
          ((#:phases phases)
           `(modify-phases ,phases
+             (replace 'patch-tests
+               (lambda* (#:key inputs #:allow-other-keys)
+                 (let ((bash (assoc-ref inputs "bash")))
+                   (substitute* "src/libstd/process.rs"
+                     ;; The newline is intentional.
+                     ;; There's a line length "tidy" check in Rust which would
+                     ;; fail otherwise.
+                     (("\"/bin/sh\"") (string-append "\n\"" bash "/bin/sh\"")))
+                   (substitute* "src/libstd/net/tcp.rs"
+                     ;; There is no network in build environment
+                     (("fn connect_timeout_unroutable")
+                      "#[ignore]\nfn connect_timeout_unroutable"))
+                   ;; <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00222.html>
+                   (substitute* "src/libstd/sys/unix/process/process_common.rs"
+                    (("fn test_process_mask") "#[allow(unused_attributes)]
+    #[ignore]
+    fn test_process_mask"))
+                   ;; Our ld-wrapper cannot process non-UTF8 bytes in LIBRARY_PATH.
+                   ;; <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00193.html>
+                   (delete-file-recursively "src/test/run-make/linker-output-non-utf8")
+                   (substitute* "src/librustc_metadata/dynamic_lib.rs"
+                     ;; This test is known to fail on aarch64 and powerpc64le:
+                     ;; https://github.com/rust-lang/rust/issues/45410
+                     (("fn test_loading_cosine") "#[ignore]\nfn test_loading_cosine"))
+                   #t)))
              (delete 'fix-mtime-bug))))))))
+
+(define-public rust
+  (let ((base-rust rust-1.24))
+    (package
+      (inherit base-rust)
+      (version "1.25.0")
+      (source
+       (rust-source version
+                    "0baxjr99311lvwdq0s38bipbnj72pn6fgbk6lcq7j555xq53mxpf"))
+      (native-inputs
+       (alist-replace "cargo-bootstrap" (list base-rust "cargo")
+                      (alist-replace "rustc-bootstrap" (list base-rust)
+                                     (package-native-inputs base-rust))))
+      (arguments
+       (substitute-keyword-arguments (package-arguments base-rust)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (add-after 'patch-cargo-tests 'patch-cargo-index-update
+               (lambda* _
+                 (substitute* "src/tools/cargo/tests/generate-lockfile.rs"
+                   ;; This test wants to update the crate index.
+                   (("fn no_index_update") "#[ignore]\nfn no_index_update")))))))))))
diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm
index d84f52ffc5..fda1ad3e5b 100644
--- a/gnu/packages/samba.scm
+++ b/gnu/packages/samba.scm
@@ -148,14 +148,14 @@ anywhere.")
 (define-public samba
   (package
     (name "samba")
-    (version "4.7.6")
+    (version "4.7.7")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.samba.org/pub/samba/stable/"
                                  "samba-" version ".tar.gz"))
              (sha256
               (base32
-               "0vkxqp3wh7bpn1fd45lznmrpn2ma1fq75yq28vi08rggr07y7v8y"))))
+               "0c81x2ncnvz3mi6fjj81clm1mh049d3ip3fj031l44qclxpx3yi9"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index c9e1a15255..daa46f7101 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 ;;; Copyright © 2015, 2016 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
@@ -300,7 +300,7 @@ Scheme and C programs and between Scheme and Java programs.")
                                  version ".tar.gz"))
              (sha256
               (base32
-               "09m7pahjsp7wxzd20cdph9j3mgf2nq5dyckcjljcd40m25v85kks"))))
+               "0bvq79vxcpgwydwi923cxb5w9isx2x8r3d0xndbdhacmmsw1m811"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index 21ab341e5a..c3d355972f 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -368,14 +368,14 @@ However, “Memory efficiency” and “Speed” have not been primary goals.")
 (define-public python-ruamel.yaml
   (package
     (name "python-ruamel.yaml")
-    (version "0.15.35")
+    (version "0.15.37")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "ruamel.yaml" version))
        (sha256
         (base32
-         "0xggyfaj6vprggahf7cq8kp9j79rb7hn8ndk3bxj2sxvwhhliiwd"))))
+         "0629xzlwbddfwp8lkjz3mpvxhml9kx17cfs8aydzg55idzcl562h"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-pytest" ,python-pytest)))
@@ -420,7 +420,7 @@ to generate and parse.  The two primary functions are @code{cbor.loads} and
 (define-public flatbuffers
   (package
     (name "flatbuffers")
-    (version "1.8.0")
+    (version "1.9.0")
     (source
       (origin
         (method url-fetch)
@@ -428,7 +428,7 @@ to generate and parse.  The two primary functions are @code{cbor.loads} and
                             version ".tar.gz"))
         (sha256
          (base32
-          "0blc978wc5h91662vai24xj92c3bx56y6hzid90qva7il302jl64"))))
+          "1qs7sa9q4q6hs12yp875lvrv6393178qcmqs1ziwmjk088g4k9aw"))))
     (build-system cmake-build-system)
     (arguments
      '(#:build-type "Release"
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 69bc09a3a9..8f3aa9b5f1 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -357,14 +357,14 @@ ksh, and tcsh.")
 (define-public xonsh
   (package
     (name "xonsh")
-    (version "0.6.0")
+    (version "0.6.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "xonsh" version))
         (sha256
           (base32
-            "1ikd1xg4iyjqp51y8g8n6c4y39bgx85xnb4bdd3zibkqac3lrahr"))
+            "09rrfcwpirbxmjjqnsbyn7lwm1wyn41z5zhkbnv57i5hcgs72kx6"))
         (modules '((guix build utils)))
         (snippet
          `(begin
@@ -575,7 +575,7 @@ The OpenBSD Korn Shell is a cleaned up and enhanced ksh.")
 (define-public loksh
   (package
     (name "loksh")
-    (version "6.2")
+    (version "6.3")
     (source
      (origin
        (method url-fetch)
@@ -584,7 +584,7 @@ The OpenBSD Korn Shell is a cleaned up and enhanced ksh.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "16mgxby77wgjg1ybp4fb9cvi7a4a387xmfivdxnhphg0vhyr8qd3"))))
+         "0i1b60g1p19s5cnzz0nmjzjnxywm9szzyp1rcwfcx3gmzvrwr2sc"))))
     (build-system gnu-build-system)
     (inputs
      `(("libbsd" ,libbsd)))
diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm
index 521be54c49..38d4a3a6bd 100644
--- a/gnu/packages/spice.scm
+++ b/gnu/packages/spice.scm
@@ -302,7 +302,7 @@ resolution scaling on graphical console window resize.")
 (define-public virt-viewer
   (package
     (name "virt-viewer")
-    (version "5.0")
+    (version "6.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -310,7 +310,7 @@ resolution scaling on graphical console window resize.")
                 "virt-viewer-" version ".tar.gz"))
               (sha256
                (base32
-                "0blbp1wkw8ahss9va0bmcz2yx18j0mvm6fzrzhh2ly3sja5ysb8b"))))
+                "1chqrf658niivzfh85cbwkbv9vyg8sv1mv3i31vawkfsfdvvsdwh"))))
     (build-system gnu-build-system)
     (inputs
       `(("gtk+" ,gtk+)
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index afd41cd8e7..e4a277c5e6 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -259,8 +259,20 @@ Additionally, various channel-specific options can be negotiated.")
                              (substitute* (find-files "." "\\.scm$")
                                (("\"libguile-ssh\"")
                                 (string-append "\"" libdir "/libguile-ssh\"")))
-                             #t)))))
-
+                             #t))))
+                  (add-after 'install 'remove-bin-directory
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let* ((out (assoc-ref outputs "out"))
+                             (bin (string-append out "/bin"))
+                             (examples (string-append
+                                        out "/share/guile-ssh/examples")))
+                        (mkdir-p examples)
+                        (rename-file (string-append bin "/ssshd.scm")
+                                     (string-append examples "/ssshd.scm"))
+                        (rename-file (string-append bin "/sssh.scm")
+                                     (string-append examples "/sssh.scm"))
+                        (delete-file-recursively bin)
+                        #t))))
        ;; Tests are not parallel-safe.
        #:parallel-tests? #f))
     (native-inputs `(("autoconf" ,autoconf)
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 393818ab32..f3fa7271a7 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -115,7 +115,7 @@ be output in text, PostScript, PDF or HTML.")
 (define-public r-minimal
   (package
     (name "r-minimal")
-    (version "3.4.3")
+    (version "3.4.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://cran/src/base/R-"
@@ -123,7 +123,7 @@ be output in text, PostScript, PDF or HTML.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "09pl0w01fr09bsrwd7nz2r5psysj0z93w4chz3hm2havvqqvhg3s"))))
+                "0dq3jsnwsb5j3fhl0wi3p5ycv8avf8s5j1y4ap3d2mkjmcppvsdk"))))
     (build-system gnu-build-system)
     (arguments
      `(#:disallowed-references (,tzdata-for-tests)
@@ -361,14 +361,14 @@ k-nearest neighbour, Learning Vector Quantization and Self-Organizing Maps.")
 (define-public r-cluster
   (package
     (name "r-cluster")
-    (version "2.0.7")
+    (version "2.0.7-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "cluster" version))
        (sha256
         (base32
-         "0nf2hnsv5rhw6399b4gk1rj5c8hfc6ajfnkh3qbwfx3cz4asrg45"))))
+         "1grxbifbc4nwig25dmjgkympnbzb4al0w6k1c0ibdhpk1h4l20di"))))
     (build-system r-build-system)
     (inputs
      `(("gfortran" ,gfortran)))
@@ -466,14 +466,14 @@ also flexible enough to handle most nonstandard requirements.")
 (define-public r-matrix
   (package
     (name "r-matrix")
-    (version "1.2-13")
+    (version "1.2-14")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Matrix" version))
        (sha256
         (base32
-         "1j4fyn2r3ds51hrxch738gn7d9qvpi4b01n0rxzw5jpv28rnpyvx"))))
+         "15hknim84nj3f54vkchca5ac0c3ip15v1by18k5parmn8wsl19j9"))))
     (properties `((upstream-name . "Matrix")))
     (build-system r-build-system)
     (propagated-inputs
@@ -488,14 +488,14 @@ and operations on them using LAPACK and SuiteSparse.")
 (define-public r-nlme
   (package
     (name "r-nlme")
-    (version "3.1-131.1")
+    (version "3.1-137")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "nlme" version))
        (sha256
         (base32
-         "1xafi670a9jzb52kqxkacxfmy0viac3aql5byfq86kgkgla2sg0y"))))
+         "11vyxxc0n36vb8d8g02zr0402ymicvbifwdsqm7gy9iqqnwrn101"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-lattice" ,r-lattice)))
@@ -593,14 +593,14 @@ analysis.")
 (define-public r-survival
   (package
     (name "r-survival")
-    (version "2.41-3")
+    (version "2.42-3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "survival" version))
        (sha256
         (base32
-         "07cnr0hnki6ybbjll54l4s5lllhk19vni5f8m0mvsfp99ls7qygk"))))
+         "15pasbfzmg2r5bfpsadp9ia4cpybqz6n1kwm7ma02ykzf7bk4xx0"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-matrix" ,r-matrix)))
@@ -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.17")
+    (version "2.1.18")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "yaml" version))
               (sha256
                (base32
-                "10y6wnv2v8k396far29haqv2s82p4zm04rrsxk183wg19gb51was"))))
+                "15m4q5krfqg0avvqg9i2g6ns4757lk6zbyrwbx5c5bgh51glvd8v"))))
     (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")
@@ -1904,14 +1904,14 @@ chain.")
 (define-public r-ade4
   (package
     (name "r-ade4")
-    (version "1.7-10")
+    (version "1.7-11")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "ade4" version))
         (sha256
           (base32
-            "0zk81x0yn30gbyc0jpzyw1nxd08ccihl6vyk0ijvj3aw3nr5flc6"))))
+            "0wm54wcpn87rdh6vyw04cr8vgba899y6jsl61f22bmlvx6d7kkac"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-mass" ,r-mass)))
@@ -2377,14 +2377,14 @@ were originally a part of the r-devtools package.")
 (define-public r-hms
   (package
     (name "r-hms")
-    (version "0.4.1")
+    (version "0.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "hms" version))
        (sha256
         (base32
-         "0vr7k3a7k52a5yf67bwzl88lkjz09v1avw5axdk1y9v3nz33zl2h"))))
+         "1g6hslk3z0xga38r71irxq802wskg6nv804mp8y9f7i2wfrj0y55"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-rlang" ,r-rlang)
@@ -2694,13 +2694,13 @@ a column in data frame.")
 (define-public r-rsqlite
   (package
     (name "r-rsqlite")
-    (version "2.0")
+    (version "2.1.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "RSQLite" version))
               (sha256
                (base32
-                "1xpg1i1jkzkzv44k512k90c2vvl960pl2d4a3spwcha6yclyc3vz"))))
+                "0hknfqcgijdapx1ryy20zy68qmm8wsb1hjx4n4hmkgl552z82q5d"))))
     (properties `((upstream-name . "RSQLite")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2734,6 +2734,18 @@ engine (version 3.8.8.2) is included.")
                 "0l7qi45jxlf898n0jazabnam1yyczvqfdknd00bdirhhiplpd1sc"))))
     (properties `((upstream-name . "RCurl")))
     (build-system r-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'respect-CURL_CA_BUNDLE
+           (lambda _
+             (substitute* "R/options.S"
+               (("\\.els = rev\\(merge\\(list\\(\\.\\.\\.\\), \\.opts\\)\\)" m)
+                (string-append "\
+certs = Sys.getenv(\"CURL_CA_BUNDLE\")
+if (certs != \"\") { .opts = merge.list(.opts, list(cainfo=certs)) }
+" m)))
+             #t)))))
     (inputs
      `(("libcurl" ,curl)))
     (propagated-inputs
@@ -2754,13 +2766,13 @@ ldap, and also supports cookies, redirects, authentication, etc.")
 (define-public r-xml
   (package
     (name "r-xml")
-    (version "3.98-1.10")
+    (version "3.98-1.11")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "XML" version))
               (sha256
                (base32
-                "1faza9bbllp67lf1yv1sllxc3iv8llz52m9diazhq322iqbh97m1"))))
+                "18izvlg2x9mzr6yb3yf02ghwbyn00frki3av4lpc44r22m4djnsh"))))
     (properties
      `((upstream-name . "XML")))
     (build-system r-build-system)
@@ -2808,28 +2820,17 @@ plotted and compared with the asymptotic curve.")
 (define-public r-lambda-r
   (package
     (name "r-lambda-r")
-    (version "1.2")
+    (version "1.2.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "lambda.r" version))
               (sha256
                (base32
-                "0vql32np716dpd0kjn7s7wgawd02ysgp2a5il4kb19nlw661ii3x"))))
+                "05cfaq9dbgdnmmj3d6ggmsw300qgiw8k7f6h6k0ylv63cf3v6pkq"))))
     (properties `((upstream-name . "lambda.r")))
     (build-system r-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'check 'delete-test-log
-           ;; The test report contains time stamps and is not important for
-           ;; the installed package.
-           (lambda* (#:key outputs #:allow-other-keys)
-             (delete-file-recursively
-              (string-append (assoc-ref outputs "out")
-                             "/site-library/lambda.r/unitTests"))
-             #t)))))
-    (native-inputs
-     `(("r-runit" ,r-runit)))
+    (propagated-inputs
+     `(("r-formatr" ,r-formatr)))
     (home-page "https://cran.r-project.org/web/packages/lambda.r")
     (synopsis "Functional programming extension for R")
     (description
@@ -2842,13 +2843,13 @@ safety.")
 (define-public r-futile-options
   (package
     (name "r-futile-options")
-    (version "1.0.0")
+    (version "1.0.1")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "futile.options" version))
               (sha256
                (base32
-                "1hp82h6xqq5cck67h7lpf22n3j7mg3v1mla5y5ivnzrrb7iyr17f"))))
+                "0w15agpi88y3qkv6fl72zy2pzyplzgvnj41a4ixhg64mw1sck73s"))))
     (properties
      `((upstream-name . "futile.options")))
     (build-system r-build-system)
@@ -5059,14 +5060,14 @@ algorithms.")
 (define-public r-lme4
   (package
     (name "r-lme4")
-    (version "1.1-16")
+    (version "1.1-17")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "lme4" version))
        (sha256
         (base32
-         "0p5x9ki4dq8058mc7k9wdnlh60z1xa3wk2nmf71wl7w59m4szh92"))))
+         "0czwdy1s8h3slaw73pz0h8qmqczf5135fz6i46i2dv1ql2pbq49x"))))
     (build-system r-build-system)
     (native-inputs
      `(("r-rcpp" ,r-rcpp)
@@ -5111,24 +5112,50 @@ modification of F-tests for linear mixed effects models and a parametric
 bootstrap test for generalized linear mixed models.")
     (license license:gpl2+)))
 
+(define-public r-cardata
+  (package
+    (name "r-cardata")
+    (version "3.0-1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "carData" version))
+       (sha256
+        (base32
+         "193pdwgw6gk19v7swk1kwphg3vqdmpsgi555g9nyz93sa39j7r8j"))))
+    (properties `((upstream-name . "carData")))
+    (build-system r-build-system)
+    (home-page "https://r-forge.r-project.org/projects/car/")
+    (synopsis "Data Sets for the book Companion to Applied Regression")
+    (description
+     "This package provides datasets to accompany J. Fox and S. Weisberg, An R
+Companion to Applied Regression, Third Edition, Sage.")
+    (license license:gpl2+)))
+
 (define-public r-car
   (package
     (name "r-car")
-    (version "2.1-6")
+    (version "3.0-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "car" version))
        (sha256
         (base32
-         "14l4d9j87xnb0bz2wgqqbxnlnbcdfb5vx2fw6kdxj91kyrk6lhnj"))))
+         "1ks2jaav8lbxhzw56vpbnysjk3pvpmqh6avd574k0bha1226k81h"))))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-mass" ,r-mass)
+     `(("r-abind" ,r-abind)
+       ("r-cardata" ,r-cardata)
+       ("r-lme4" ,r-lme4)
+       ("r-maptools" ,r-maptools)
+       ("r-mass" ,r-mass)
        ("r-mgcv" ,r-mgcv)
+       ("r-nlme" ,r-nlme)
        ("r-nnet" ,r-nnet)
        ("r-pbkrtest" ,r-pbkrtest)
-       ("r-quantreg" ,r-quantreg)))
+       ("r-quantreg" ,r-quantreg)
+       ("r-rio" ,r-rio)))
     (home-page "https://r-forge.r-project.org/projects/car/")
     (synopsis "Companion to applied regression")
     (description
@@ -5363,14 +5390,14 @@ is supported.")
 (define-public r-lubridate
   (package
     (name "r-lubridate")
-    (version "1.7.3")
+    (version "1.7.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "lubridate" version))
        (sha256
         (base32
-         "1pzkqfiahnsdm3zx46asgn8fw43vlxvbh7r4cn70c7ffmxabzzrc"))))
+         "14a823il77w3wmmnzr89vwrqp50y56dh5raycnaw6c8nv5xsh32i"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-rcpp" ,r-rcpp)
diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm
index 54d91c1f3c..2ba6b856fb 100644
--- a/gnu/packages/storage.scm
+++ b/gnu/packages/storage.scm
@@ -52,14 +52,14 @@
 (define-public ceph
   (package
     (name "ceph")
-    (version "12.2.4")
+    (version "12.2.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.ceph.com/tarballs/ceph-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "13hv8scaxc1gdvrhzbfnsk4yy3pla6n1i4j4j4zf7schmbf0j8mp"))
+                "1ydc3mfvc0vpnpfnfmissvsrsj4jyxgzc2pcl1a4vdr3bwkcglp3"))
               (patches
                (search-patches "ceph-skip-unittest_blockdev.patch"
                                "ceph-skip-collect-sys-info-test.patch"
diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
index 4c607600d3..ea24be2058 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -23,7 +23,8 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
-  #:use-module (guix licenses))
+  #:use-module (guix licenses)
+  #:use-module (gnu packages golang))
 
 (define-public syncthing
   (package
@@ -856,8 +857,6 @@ implements arithmetic over the Galois Field GF(256).")
        `(#:import-path "github.com/vitrun/qart/qr"
          #:unpack-path "github.com/vitrun/qart"))
       (synopsis "Qart component for generating QR codes")
-      (description "This package, a component of @code{qart}, provides
-@code{qr}, for QR code generation.")
       (description "This package provides a library for embedding
 human-meaningful graphics in QR codes.  However, instead of scribbling on
 redundant pieces and relying on error correction to preserve the meaning,
@@ -904,302 +903,6 @@ libraries are in the same directory.")
     (home-page (package-home-page go-golang-org-x-crypto-bcrypt))
     (license (package-license go-golang-org-x-crypto-bcrypt))))
 
-(define-public go-golang-org-x-crypto-bcrypt
-  (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
-        (revision "1"))
-    (package
-      (name "go-golang-org-x-crypto-bcrypt")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/crypto")
-                      (commit commit)))
-                (file-name (string-append "go.googlesource.com-crypto-"
-                                          version "-checkout"))
-                (sha256
-                 (base32
-                  "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/crypto/bcrypt"
-         #:unpack-path "golang.org/x/crypto"
-         #:phases
-         (modify-phases %standard-phases
-           (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
-             (lambda* (#:key outputs #:allow-other-keys)
-               (map (lambda (file)
-                      (make-file-writable file))
-                    (find-files
-                      (string-append (assoc-ref outputs "out")
-                                     "/src/golang.org/x/crypto/ed25519/testdata")
-                      ".*\\.gz$"))
-               #t)))))
-      (synopsis "Bcrypt in Go")
-      (description "This package provides a Go implementation of the bcrypt
-password hashing function.")
-      (home-page "https://go.googlesource.com/crypto/")
-      (license bsd-3))))
-
-(define-public go-golang-org-x-crypto-blowfish
-  (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
-        (revision "1"))
-    (package
-      (name "go-golang-org-x-crypto-blowfish")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/crypto")
-                      (commit commit)))
-                (file-name (string-append "go.googlesource.com-crypto-"
-                                          version "-checkout"))
-                (sha256
-                 (base32
-                  "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/crypto/blowfish"
-         #:unpack-path "golang.org/x/crypto"
-         #:phases
-         (modify-phases %standard-phases
-           (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
-             (lambda* (#:key outputs #:allow-other-keys)
-               (map (lambda (file)
-                      (make-file-writable file))
-                    (find-files
-                      (string-append (assoc-ref outputs "out")
-                                     "/src/golang.org/x/crypto/ed25519/testdata")
-                      ".*\\.gz$"))
-               #t)))))
-      (synopsis "Blowfish in Go")
-      (description "This package provides a Go implementation of the Blowfish
-symmetric-key block cipher.")
-      (home-page "https://go.googlesource.com/crypto/")
-      (license bsd-3))))
-
-(define-public go-golang-org-x-crypto-pbkdf2
-  (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
-        (revision "1"))
-    (package
-      (name "go-golang-org-x-crypto-pbkdf2")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/crypto")
-                      (commit commit)))
-                (file-name (string-append "go.googlesource.com-crypto-"
-                                          version "-checkout"))
-                (sha256
-                 (base32
-                  "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/crypto/pbkdf2"
-         #:unpack-path "golang.org/x/crypto"
-         #:phases
-         (modify-phases %standard-phases
-           (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
-             (lambda* (#:key outputs #:allow-other-keys)
-               (map (lambda (file)
-                      (make-file-writable file))
-                    (find-files
-                      (string-append (assoc-ref outputs "out")
-                                     "/src/golang.org/x/crypto/ed25519/testdata")
-                      ".*\\.gz$"))
-               #t)))))
-      (synopsis "PBKDF2 in Go")
-      (description "This package provides a Go implementation of the PBKDF2 key
-derivation function.")
-      (home-page "https://go.googlesource.com/crypto/")
-      (license bsd-3))))
-
-(define-public go-golang-org-x-crypto-tea
-  (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
-        (revision "1"))
-    (package
-      (name "go-golang-org-x-crypto-tea")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/crypto")
-                      (commit commit)))
-                (file-name (string-append "go.googlesource.com-crypto-"
-                                          version "-checkout"))
-                (sha256
-                 (base32
-                  "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/crypto/tea"
-         #:unpack-path "golang.org/x/crypto"
-         #:phases
-         (modify-phases %standard-phases
-           (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
-             (lambda* (#:key outputs #:allow-other-keys)
-               (map (lambda (file)
-                      (make-file-writable file))
-                    (find-files
-                      (string-append (assoc-ref outputs "out")
-                                     "/src/golang.org/x/crypto/ed25519/testdata")
-                      ".*\\.gz$"))
-               #t)))))
-      (synopsis "Tiny Encryption Algorithm (TEA) in Go")
-      (description "This packages a Go implementation of the Tiny Encryption
-Algorithm (TEA) block cipher.")
-      (home-page "https://go.googlesource.com/crypto/")
-      (license bsd-3))))
-
-(define-public go-golang-org-x-crypto-salsa20
-  (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
-        (revision "1"))
-    (package
-      (name "go-golang-org-x-crypto-salsa20")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/crypto")
-                      (commit commit)))
-                (file-name (string-append "go.googlesource.com-crypto-"
-                                          version "-checkout"))
-                (sha256
-                 (base32
-                  "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/crypto/salsa20"
-         #:unpack-path "golang.org/x/crypto"
-         #:phases
-         (modify-phases %standard-phases
-           (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
-             (lambda* (#:key outputs #:allow-other-keys)
-               (map (lambda (file)
-                      (make-file-writable file))
-                    (find-files
-                      (string-append (assoc-ref outputs "out")
-                                     "/src/golang.org/x/crypto/ed25519/testdata")
-                      ".*\\.gz$"))
-               #t)))))
-      (synopsis "Salsa20 in Go")
-      (description "This packages provides a Go implementation of the Salsa20
-stream cipher.")
-      (home-page "https://go.googlesource.com/crypto/")
-      (license bsd-3))))
-
-(define-public go-golang-org-x-crypto-cast5
-  (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
-        (revision "1"))
-    (package
-      (name "go-golang-org-x-crypto-cast5")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/crypto")
-                      (commit commit)))
-                (file-name (string-append "go.googlesource.com-crypto-"
-                                          version "-checkout"))
-                (sha256
-                 (base32
-                  "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/crypto/cast5"
-         #:unpack-path "golang.org/x/crypto"
-         #:phases
-         (modify-phases %standard-phases
-           (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
-             (lambda* (#:key outputs #:allow-other-keys)
-               (map (lambda (file)
-                      (make-file-writable file))
-                    (find-files
-                      (string-append (assoc-ref outputs "out")
-                                     "/src/golang.org/x/crypto/ed25519/testdata")
-                      ".*\\.gz$"))
-               #t)))))
-      (synopsis "Cast5 in Go")
-      (description "This packages provides a Go implementation of the Cast5
-symmetric-key block cipher.")
-      (home-page "https://go.googlesource.com/crypto/")
-      (license bsd-3))))
-
-(define-public go-golang-org-x-crypto-twofish
-  (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
-        (revision "1"))
-    (package
-      (name "go-golang-org-x-crypto-twofish")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/crypto")
-                      (commit commit)))
-                (file-name (string-append "go.googlesource.com-crypto-"
-                                          version "-checkout"))
-                (sha256
-                 (base32
-                  "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/crypto/twofish"
-         #:unpack-path "golang.org/x/crypto"
-         #:phases
-         (modify-phases %standard-phases
-           (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
-             (lambda* (#:key outputs #:allow-other-keys)
-               (map (lambda (file)
-                      (make-file-writable file))
-                    (find-files
-                      (string-append (assoc-ref outputs "out")
-                                     "/src/golang.org/x/crypto/ed25519/testdata")
-                      ".*\\.gz$"))
-               #t)))))
-      (synopsis "Twofish in Go")
-      (description "This packages provides a Go implementation of the Twofish
-symmetric-key block cipher.")
-      (home-page "https://go.googlesource.com/crypto/")
-      (license bsd-3))))
-
-(define-public go-golang-org-x-crypto-xtea
-  (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
-        (revision "1"))
-    (package
-      (name "go-golang-org-x-crypto-xtea")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/crypto")
-                      (commit commit)))
-                (file-name (string-append "go.googlesource.com-crypto-"
-                                          version "-checkout"))
-                (sha256
-                 (base32
-                  "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/crypto/xtea"
-         #:unpack-path "golang.org/x/crypto"
-         #:phases
-         (modify-phases %standard-phases
-           (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
-             (lambda* (#:key outputs #:allow-other-keys)
-               (map (lambda (file)
-                      (make-file-writable file))
-                    (find-files
-                      (string-append (assoc-ref outputs "out")
-                                     "/src/golang.org/x/crypto/ed25519/testdata")
-                      ".*\\.gz$"))
-               #t)))))
-      (synopsis "eXtended Tiny Encryption Algorithm (XTEA) in Go")
-      (description "This package provides a Go implementation of the eXtended
-Tiny Encryption Algorithm (XTEA) block cipher.")
-      (home-page "https://go.googlesource.com/crypto/")
-      (license bsd-3))))
-
 (define* (go-golang-org-x-net-union #:optional
                                  (packages (list go-golang-org-x-net-ipv4
                                                  go-golang-org-x-net-bpf
@@ -1229,195 +932,6 @@ Tiny Encryption Algorithm (XTEA) block cipher.")
     (home-page (package-home-page go-golang-org-x-net-ipv4))
     (license (package-license go-golang-org-x-net-ipv4))))
 
-(define-public go-golang-org-x-net-ipv4
-  (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
-        (revision "1"))
-    (package
-      (name "go-golang-org-x-net-ipv4")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/net")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/net/ipv4"
-         #:unpack-path "golang.org/x/net"))
-      (synopsis "Go IPv4 support")
-      (description "This package provides @code{ipv4}, which implements IP-level
-socket options for the Internet Protocol version 4.")
-      (home-page "https://go.googlesource.com/net")
-      (license bsd-3))))
-
-(define-public go-golang-org-x-net-bpf
-  (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
-        (revision "1"))
-    (package
-      (name "go-golang-org-x-net-bpf")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/net")
-                      (commit commit)))
-                (file-name (string-append "go.googlesource.com-net-"
-                                          version "-checkout"))
-                (sha256
-                 (base32
-                  "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/net/bpf"
-         #:unpack-path "golang.org/x/net"))
-      (synopsis "Berkeley Packet Filters (BPF) in Go")
-      (description "This packages provides a Go implementation of the Berkeley
-Packet Filter (BPF) virtual machine.")
-      (home-page "https://go.googlesource.com/net/")
-      (license bsd-3))))
-
-(define-public go-golang-org-x-net-context
-  (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
-        (revision "1"))
-    (package
-      (name "go-golang-org-x-net-context")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/net")
-                      (commit commit)))
-                (file-name (string-append "go.googlesource.com-net-"
-                                          version "-checkout"))
-                (sha256
-                 (base32
-                  "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/net/context"
-         #:unpack-path "golang.org/x/net"))
-      (synopsis "Golang Context type")
-      (description "This packages provides @code{context}, which defines the
-Context type, which carries deadlines, cancelation signals, and other
-request-scoped values across API boundaries and between processes.")
-      (home-page "https://go.googlesource.com/net/")
-      (license bsd-3))))
-
-(define-public go-golang-org-x-net-internal-iana
-  (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
-        (revision "1"))
-    (package
-      (name "go-golang-org-x-net-internal-iana")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/net")
-                      (commit commit)))
-                (file-name (string-append "go.googlesource.com-net-"
-                                          version "-checkout"))
-                (sha256
-                 (base32
-                  "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/net/internal/iana"
-         #:unpack-path "golang.org/x/net"))
-      (synopsis "Go support for assigned numbers (IANA)")
-      (description "This packages provides @code{iana}, which provides protocol
-number resources managed by the Internet Assigned Numbers Authority (IANA).")
-      (home-page "https://go.googlesource.com/net/")
-      (license bsd-3))))
-
-(define-public go-golang-org-x-net-ipv6
-  (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
-        (revision "1"))
-    (package
-      (name "go-golang-org-x-net-ipv6")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/net")
-                      (commit commit)))
-                (file-name (string-append "go.googlesource.com-net-"
-                                          version "-checkout"))
-                (sha256
-                 (base32
-                  "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/net/ipv6"
-         #:unpack-path "golang.org/x/net"))
-      (synopsis "Go IPv6 support")
-      (description "This packages provides @code{ipv6}, which implements
-IP-level socket options for the Internet Protocol version 6.")
-      (home-page "https://go.googlesource.com/net")
-      (license bsd-3))))
-
-(define-public go-golang-org-x-net-proxy
-  (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
-        (revision "1"))
-    (package
-      (name "go-golang-org-x-net-proxy")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/net")
-                      (commit commit)))
-                (file-name (string-append "go.googlesource.com-net-"
-                                          version "-checkout"))
-                (sha256
-                 (base32
-                  "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/net/proxy"
-         #:unpack-path "golang.org/x/net/"))
-      (synopsis "Go support for network proxies")
-      (description "This packages provides @code{proxy}, which provides support
-for a variety of protocols to proxy network data.")
-      (home-page "https://go.googlesource.com/net")
-      (license bsd-3))))
-
-(define-public go-golang-org-x-sys-unix
-  (let ((commit "83801418e1b59fb1880e363299581ee543af32ca")
-        (revision "1"))
-    (package
-      (name "go-golang-org-x-sys-unix")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/sys")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0ilykaanvnzb27d42kmbr4i37hcn7hgqbx98z945gy63aa8dskji"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/sys/unix"
-         #:unpack-path "golang.org/x/sys"
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'patch-tests
-             (lambda _
-               (pk (getcwd))
-               (substitute* "src/golang.org/x/sys/unix/syscall_unix_test.go"
-                 (("/usr/bin") "/tmp"))
-               #t)))))
-      (synopsis "Go support for low-level system interaction")
-      (description "This package provides @code{unix}, which offers Go support
-for low-level interaction with the operating system.")
-      (home-page "https://go.googlesource.com/sys")
-      (license bsd-3))))
-
 (define* (go-golang-org-x-text-union #:optional
                                   (packages (list go-golang-org-x-text-transform
                                                   go-golang-org-x-text-unicode-norm)))
@@ -1443,60 +957,6 @@ for low-level interaction with the operating system.")
     (home-page (package-home-page go-golang-org-x-text-transform))
     (license (package-license go-golang-org-x-text-transform))))
 
-(define-public go-golang-org-x-text-transform
-  (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
-        (revision "1"))
-    (package
-      (name "go-golang-org-x-text-transform")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/text")
-                      (commit commit)))
-                (file-name (string-append "go.googlesource.com-text-"
-                                          version "-checkout"))
-                (sha256
-                 (base32
-                  "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/text/transform"
-         #:unpack-path "golang.org/x/text"))
-      (synopsis "Go text transformation")
-      (description "This package provides @code{transform}, which provides
-reader and writer wrappers that transform the bytes passing through.  Example
-transformations provided by other packages include normalization and conversion
-between character sets.")
-      (home-page "https://go.googlesource.com/text")
-      (license bsd-3))))
-
-(define-public go-golang-org-x-text-unicode-norm
-  (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
-        (revision "1"))
-    (package
-      (name "go-golang-org-x-text-unicode-norm")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/text")
-                      (commit commit)))
-                (file-name (string-append "go.googlesource.com-text-"
-                                          version "-checkout"))
-                (sha256
-                 (base32
-                  "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/text/unicode/norm"
-         #:unpack-path "golang.org/x/text"))
-      (synopsis "Unicode normalization in Go")
-      (description "This package provides @code{norm}, which contains types and
-functions for normalizing Unicode strings.")
-      (home-page "https://go.googlesource.com/text")
-      (license bsd-3))))
-
 (define-public go-github-com-audriusbutkevicius-pfilter
   (let ((commit "9dca34a5b530bfc9843fa8aa2ff08ff9821032cb")
         (revision "2"))
@@ -1572,33 +1032,6 @@ error handling primitives in Go.")
       (home-page "https://github.com/pkg/errors")
       (license bsd-2))))
 
-(define-public go-golang-org-x-time-rate
-  (let ((commit "6dc17368e09b0e8634d71cac8168d853e869a0c7")
-        (revision "1"))
-    (package
-      (name "go-golang-org-x-time-rate")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://go.googlesource.com/time")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "1fx4cf5fpdz00g3c7vxzy92hdcg0vh4yqw00qp5s52j72qixynbk"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "golang.org/x/time/rate"
-         #:unpack-path "golang.org/x/time"))
-      (propagated-inputs
-       `(("go-golang-org-x-net-context" ,go-golang-org-x-net-context)))
-      (synopsis "Rate limiting in Go")
-      (description "This package provides @{rate}, which implements rate
-limiting in Go.")
-      (home-page "https://godoc.org/golang.org/x/time/rate")
-      (license bsd-3))))
-
 (define-public go-github-com-petermattis-goid
   (let ((commit "3db12ebb2a599ba4a96bea1c17b61c2f78a40e02")
         (revision "0"))
diff --git a/gnu/packages/texinfo.scm b/gnu/packages/texinfo.scm
index 30f593d0ad..4acc2b811f 100644
--- a/gnu/packages/texinfo.scm
+++ b/gnu/packages/texinfo.scm
@@ -26,9 +26,8 @@
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
   #:use-module (gnu packages compression)
-  #:use-module (gnu packages perl)
-  #:use-module (gnu packages linux)
-  #:use-module (gnu packages ncurses))
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages perl))
 
 (define-public texinfo
   (package
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 42f65d8e46..6d8d800fd4 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -100,59 +100,55 @@ based command language.")
                    license:expat))))         ; lexers and libutf.[ch]
 
 (define-public kakoune
-  (let ((commit "125c8b7e80995732e0d8c87b82040025748f1b4f")
-        (revision "1"))
-    (package
-      (name "kakoune")
-      (version (string-append "0.0.0-" revision "." (string-take commit 7)))
-      (source
-       (origin
-         (file-name (string-append "kakoune-" version "-checkout"))
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/mawww/kakoune.git")
-               (commit commit)))
-         (sha256
-          (base32
-           "19qs99l8r9p1vi5pxxx9an22fvi7xx40qw3jh2cnh2mbacawvdyb"))))
-      (build-system gnu-build-system)
-      (arguments
-       `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'patch-source
-             (lambda _
-               ;; kakoune uses confstr with _CS_PATH to find out where to find
-               ;; a posix shell, but this doesn't work in the build
-               ;; environment. This substitution just replaces that result
-               ;; with the "sh" path.
-               (substitute* "src/shell_manager.cc"
-                 (("if \\(m_shell.empty\\(\\)\\)" line)
-                  (string-append "m_shell = \"" (which "sh")
-                                 "\";\n        " line)))
-               #t))
-           (delete 'configure)
-           ;; kakoune requires us to be in the src/ directory to build
-           (add-before 'build 'chdir
-             (lambda _ (chdir "src") #t))
-           (add-before 'check 'fix-test-permissions
-             (lambda _
-               ;; Out git downloader doesn't give us write permissions, but
-               ;; without them the tests fail.
-               (zero? (system* "chmod" "-R" "u+w" "../test")))))))
-      (native-inputs `(("asciidoc" ,asciidoc)
-                       ("ruby" ,ruby)))
-      (inputs `(("ncurses" ,ncurses)
-                ("boost" ,boost)))
-      (synopsis "Vim-inspired code editor")
-      (description
-       "Kakoune is a code editor heavily inspired by Vim, as such most of its
+  (package
+    (name "kakoune")
+    (version "2018.04.13")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/mawww/kakoune/"
+                           "releases/download/v" version "/"
+                           name "-" version ".tar.bz2"))
+       (sha256
+        (base32
+         "1kkzs5nrjxzd1jq7a4k7qfb5kg05871z0r3d9c0yhz9shf6wz36d"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-source
+           (lambda _
+             ;; kakoune uses confstr with _CS_PATH to find out where to find
+             ;; a posix shell, but this doesn't work in the build
+             ;; environment. This substitution just replaces that result
+             ;; with the "sh" path.
+             (substitute* "src/shell_manager.cc"
+               (("if \\(m_shell.empty\\(\\)\\)" line)
+                (string-append "m_shell = \"" (which "sh")
+                               "\";\n        " line)))
+             #t))
+         (delete 'configure)            ; no configure script
+         ;; kakoune requires us to be in the src/ directory to build
+         (add-before 'build 'chdir
+           (lambda _ (chdir "src") #t)))))
+    (native-inputs
+     `(("asciidoc" ,asciidoc)
+       ("pkg-config" ,pkg-config)
+       ("ruby" ,ruby)))
+    (inputs
+     `(("ncurses" ,ncurses)
+       ("boost" ,boost)))
+    (synopsis "Vim-inspired code editor")
+    (description
+     "Kakoune is a code editor heavily inspired by Vim, as such most of its
 commands are similar to Vi's ones, and it shares Vi's \"keystrokes as a text
 editing language\" model.  Kakoune has a strong focus on interactivity, most
 commands provide immediate and incremental results, while still being
 competitive (as in keystroke count) with Vim.")
-      (home-page "http://kakoune.org/")
-      (license license:unlicense))))
+    (home-page "http://kakoune.org/")
+    (license license:unlicense)))
 
 (define-public joe
   (package
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 60e29bfe82..13906b19a7 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -10,7 +10,7 @@
 ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -736,10 +736,32 @@ arithmetic in Perl.")
   ;; At your option either gpl1+ or the Artistic License
   (license license:perl-license)))
 
+(define-public perl-crypt-openssl-guess
+  (package
+    (name "perl-crypt-openssl-guess")
+    (version "0.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/A/AK/AKIYM/Crypt-OpenSSL-Guess-"
+             version ".tar.gz"))
+       (sha256
+        (base32
+         "0rvi9l4ljcbhwwvspq019nfq2h2v746dk355h2nwnlmqikiihsxa"))))
+    (build-system perl-build-system)
+    (home-page "http://search.cpan.org/dist/Crypt-OpenSSL-Guess/")
+    (synopsis "Guess the OpenSSL include path")
+    (description
+     "The Crypt::OpenSSL::Guess Perl module provides helpers to guess the
+correct OpenSSL include path.  It is intended for use in your
+@file{Makefile.PL}.")
+    (license license:perl-license)))
+
 (define-public perl-crypt-openssl-random
  (package
   (name "perl-crypt-openssl-random")
-  (version "0.11")
+  (version "0.13")
   (source
     (origin
       (method url-fetch)
@@ -749,9 +771,12 @@ arithmetic in Perl.")
              ".tar.gz"))
       (sha256
         (base32
-          "0yjcabkibrkafywvdkmd1xpi6br48skyk3l15ni176wvlg38335v"))))
+          "0vmvrb3shrzjzri3qn524dzdasbq8zhhbpc1vmq8sx68n4jhizb0"))))
   (build-system perl-build-system)
-  (inputs `(("openssl" ,openssl)))
+  (native-inputs
+   `(("perl-crypt-openssl-guess" ,perl-crypt-openssl-guess)))
+  (inputs
+   `(("openssl" ,openssl)))
   (arguments perl-crypt-arguments)
   (home-page
     "http://search.cpan.org/dist/Crypt-OpenSSL-Random")
diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm
index 7db6b5eec5..3385d80fbc 100644
--- a/gnu/packages/upnp.scm
+++ b/gnu/packages/upnp.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
-;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -29,14 +29,14 @@
 (define-public miniupnpc
   (package
     (name "miniupnpc")
-    (version "2.0.20180406")
+    (version "2.0.20180410")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://miniupnp.tuxfamily.org/files/"
                            name "-" version ".tar.gz"))
        (sha256
-        (base32 "15i9lyj72wr15b3kpcqsf97mr2hajkpwvf0lz9ps9r568yyjcwlc"))))
+        (base32 "08vs9012bahdwid4nsf3mi2kawcq1hvz7lzpdmiynxcbpip6sk0f"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("python" ,python-2)))
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index cccdb31fb1..b82abaf9ed 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -18,6 +18,7 @@
 ;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -90,6 +91,7 @@
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages swig)
   #:use-module (gnu packages tcl)
+  #:use-module (gnu packages textutils)
   #:use-module (gnu packages time)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages)
@@ -1069,7 +1071,7 @@ following features:
 (define-public subversion
   (package
     (name "subversion")
-    (version "1.8.19")
+    (version "1.10.0")
     (source (origin
              (method url-fetch)
              (uri
@@ -1080,7 +1082,7 @@ following features:
                                 "subversion-" version ".tar.bz2")))
              (sha256
               (base32
-               "1gp6426gkdza6ni2whgifjcmjb4nq34ljy07yxkrhlarvfq6ks2n"))))
+               "115mlvmf663w16mc3xyypnaizq401vbypc56hl2ylzc3pcx3zwic"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -1096,6 +1098,11 @@ following features:
                (substitute* "libtool"
                  (("\\\\`ls") (string-append "\\`" coreutils "/bin/ls")))
                #t)))
+         (add-before 'build 'patch-test-sh
+           (lambda _
+             (substitute* "subversion/tests/libsvn_repos/repos-test.c"
+               (("#!/bin/sh") (string-append "#!" (which "sh"))))
+             #t))
          (add-after 'install 'install-perl-bindings
            (lambda* (#:key outputs #:allow-other-keys)
              ;; Follow the instructions from 'subversion/bindings/swig/INSTALL'.
@@ -1124,10 +1131,12 @@ following features:
     (inputs
       `(("apr" ,apr)
         ("apr-util" ,apr-util)
+        ("lz4" ,lz4)
         ("serf" ,serf)
         ("perl" ,perl)
-        ("python" ,python-2) ; incompatible with Python 3 (print syntax)
+        ("python" ,python-wrapper)
         ("sqlite" ,sqlite)
+        ("utf8proc" ,utf8proc)
         ("zlib" ,zlib)))
     (home-page "https://subversion.apache.org/")
     (synopsis "Revision control system")
@@ -1904,3 +1913,52 @@ repository is the centre, directories are branches and files are leaves.
 Contributors to the source code appear and disappear as they contribute to
 specific files and directories.")
     (license license:gpl3+)))
+
+(define-public src
+  (package
+    (name "src")
+    (version "1.18")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://www.catb.org/~esr/src/src-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0n0skhvya8w2az45h2gsafxy8m2mvqas64nrgxifcmrzfv0rf26c"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:make-flags
+       (list (string-append "prefix=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)            ; no 'configure' script
+         (add-after 'install 'wrap-program
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out  (assoc-ref outputs "out"))
+                    (prog (string-append out "/bin/src"))
+                    (rcs  (assoc-ref inputs "rcs")))
+               (wrap-program prog
+                 `("PATH" ":" prefix (,(string-append rcs "/bin"))))
+               #t)))
+         (replace 'check
+           (lambda _
+             (setenv "HOME" (getenv "TMPDIR"))
+             (invoke "git" "config" "--global" "user.name" "guix")
+             (invoke "git" "config" "--global" "user.email" "guix")
+             (invoke "./srctest"))))))
+    (native-inputs
+     ;; For testing.
+     `(("git" ,git)
+       ("perl" ,perl)))
+    (inputs
+     `(("python" ,python-wrapper)
+       ("rcs" ,rcs)))
+    (synopsis "Simple revision control")
+    (home-page "http://www.catb.org/~esr/src/")
+    (description
+     "SRC (or src) is simple revision control, a version-control system for
+single-file projects by solo developers and authors.  It modernizes the
+venerable RCS, hence the anagrammatic acronym.  The design is tuned for use
+cases like all those little scripts in your @file{~/bin} directory, or a
+directory full of HOWTOs.")
+    (license license:bsd-2)))
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index b4e7e6ad82..7c2e20527f 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -597,14 +597,14 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
 (define-public ffmpeg
   (package
     (name "ffmpeg")
-    (version "3.4.2")
+    (version "4.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0h6prjn1ijkzzhkyj8mazp0wpx7m0n9ycadjxagf9czqirbyk4ib"))))
+               "0gx4ngnhi5glmxh38603qy5n6vq8bl1cr4sqd1xff95i82pmv57d"))))
     (build-system gnu-build-system)
     (inputs
      `(("fontconfig" ,fontconfig)
@@ -770,6 +770,18 @@ convert and stream audio and video.  It includes the libavcodec
 audio/video codec library.")
     (license license:gpl2+)))
 
+(define-public ffmpeg-3.4
+  (package
+    (inherit ffmpeg)
+    (version "3.4.2")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
+                                 version ".tar.xz"))
+             (sha256
+              (base32
+               "0h6prjn1ijkzzhkyj8mazp0wpx7m0n9ycadjxagf9czqirbyk4ib"))))))
+
 (define-public ffmpeg-2.8
   (package
     (inherit ffmpeg)
@@ -790,25 +802,6 @@ audio/video codec library.")
                     flag))
               ,flags))))))
 
-;; Annoyingly enough, the latest mpv release does not build with the stable
-;; release of ffmpeg. Use a git commit until the situation is fixed.
-(define-public ffmpeg-git
-  (let ((commit "3f887440677328c9cfed97ad81d14051ffa32aae")
-        (revision "1"))
-    (package
-     (inherit ffmpeg)
-     (name "ffmpeg-git")
-     (version (string-append "3.4-" revision "." (string-take commit 9)))
-     (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/FFmpeg/FFmpeg.git")
-                    (commit commit)))
-              (file-name (string-append name "-" version "-checkout"))
-              (sha256
-               (base32
-                "1b7n3g4m2rbvrwsgbfl8wl91z42g1ld42clwxs8qpl9ny5rwz6sq")))))))
-
 (define-public vlc
   (package
     (name "vlc")
@@ -1032,7 +1025,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("enca" ,enca)
-       ("ffmpeg" ,ffmpeg-git)
+       ("ffmpeg" ,ffmpeg)
        ("jack" ,jack-1)
        ("ladspa" ,ladspa)
        ("lcms" ,lcms)
@@ -1160,7 +1153,7 @@ access to mpv's powerful playback capabilities.")
 (define-public youtube-dl
   (package
     (name "youtube-dl")
-    (version "2018.03.14")
+    (version "2018.04.25")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://yt-dl.org/downloads/"
@@ -1168,7 +1161,7 @@ access to mpv's powerful playback capabilities.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0j8j797gqc29fd5ra3cjvwkp8dgvigdydsj0zzjs05zccfqrj9lh"))))
+                "17zxgwfcy7c6gdyxdgh02f5zi52gvmy0zpccfj6zjkhw5iqj1vbw"))))
     (build-system python-build-system)
     (arguments
      ;; The problem here is that the directory for the man page and completion
@@ -1278,7 +1271,7 @@ other site that youtube-dl supports.")
 (define-public you-get
   (package
     (name "you-get")
-    (version "0.4.1040")
+    (version "0.4.1060")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1287,7 +1280,7 @@ other site that youtube-dl supports.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0257p9bn426rv0cjk2j5hsx6cg7dz5gpjwlqq0sy1axa47phis46"))))
+                "1pq7c2ay42aan7ykpmddzh6ylq0qsq8a27pk68m5imaxi6abbwsz"))))
     (build-system python-build-system)
     (inputs
      `(("ffmpeg" ,ffmpeg)))             ; for multi-part and >=1080p videos
@@ -1854,7 +1847,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
             #t)))))
     (inputs
      `(("alsa-lib" ,alsa-lib)
-       ("ffmpeg" ,ffmpeg)
+       ("ffmpeg" ,ffmpeg-3.4)
        ("fftw" ,fftw)
        ("libxml2" ,libxml2)
        ("jack" ,jack-1)
@@ -2089,7 +2082,7 @@ making @dfn{screencasts}.")
     ;; As a result, they are omitted. Please add them back if problems appear.
     (inputs
      `(("alsa-lib" ,alsa-lib)
-       ("ffmpeg" ,ffmpeg)
+       ("ffmpeg" ,ffmpeg-3.4)
        ("glu" ,glu)
        ("jack" ,jack-1)
        ("libxi" ,libxi)
@@ -2801,7 +2794,7 @@ It counts more than 100 plugins.")
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("libjpeg" ,libjpeg)
-       ("ffmpeg" ,ffmpeg)
+       ("ffmpeg" ,ffmpeg-3.4)
        ("sqlite" ,sqlite)))
     (arguments
      '(#:phases (modify-phases %standard-phases
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 44a4ed2920..86f4d71364 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
+;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -41,6 +42,7 @@
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages golang)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages libusb)
@@ -63,9 +65,11 @@
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system go)
   #:use-module (guix build-system python)
   #:use-module (guix download)
-  #:use-module ((guix licenses) #:select (gpl2 gpl2+ gpl3+ lgpl2.1 lgpl2.1+))
+  #:use-module ((guix licenses) #:select (gpl2 gpl2+ gpl3+ lgpl2.1 lgpl2.1+
+                                               asl2.0))
   #:use-module (guix packages)
   #:use-module (guix utils)
   #:use-module (srfi srfi-1))
@@ -83,14 +87,14 @@
 (define-public qemu
   (package
     (name "qemu")
-    (version "2.11.1")
+    (version "2.12.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qemu.org/qemu-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "11l6cs6mib16rgdrnqrhkqs033fjik316gkgfz3asbmxz38lalca"))))
+               "1z66spkm1prvhbq7h5mfnp0i6mmamsb938fqmdfvyrgzc7rh34z6"))))
     (build-system gnu-build-system)
     (arguments
      '(;; Running tests in parallel can occasionally lead to failures, like:
@@ -771,3 +775,58 @@ monitor/GPU.")
    ;; This package requires SSE instructions.
    (supported-systems '("i686-linux" "x86_64-linux"))
    (license gpl2+)))
+
+(define-public runc
+  (package
+    (name "runc")
+    (version "1.0.0-rc5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/opencontainers/runc/releases/"
+                    "download/v" version "/runc.tar.xz"))
+              (sha256
+               (base32
+                "081avdzwnqpk368wbaihlzsypaxpj42d7699h7jgp0fks14x4103"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/opencontainers/runc"
+       #:install-source? #f
+       #:tests? #f                      ; FIXME: 20/139 tests fail.
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'unpack
+           (lambda* (#:key source import-path #:allow-other-keys)
+             ;; Unpack the tarball into 'runc' instead of 'runc-1.0.0-rc5'.
+             (let ((dest (string-append "src/" import-path)))
+               (mkdir-p dest)
+               (invoke "tar" "-C" (string-append "src/" import-path)
+                       "--strip-components=1"
+                       "-xvf" source))))
+         (replace 'build
+           (lambda* (#:key import-path #:allow-other-keys)
+             (chdir (string-append "src/" import-path))
+             ;; XXX: requires 'go-md2man'.
+             ;; (invoke "make" "man")
+             (invoke "make")))
+         ;; (replace 'check
+         ;;   (lambda _
+         ;;     (invoke "make" "localunittest")))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+              (invoke "make" "install" "install-bash"
+                      (string-append "PREFIX=" out))))))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libseccomp" ,libseccomp)))
+    (synopsis "Open container initiative runtime")
+    (home-page "https://www.opencontainers.org/")
+    (description
+     "@command{runc} is a command line client for running applications
+packaged according to the
+@uref{https://github.com/opencontainers/runtime-spec/blob/master/spec.md, Open
+Container Initiative (OCI) format} and is a compliant implementation of the
+Open Container Initiative specification.")
+    (license asl2.0)))
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index 070b695651..6ba3677a90 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -32,9 +33,11 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages libevent)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -206,6 +209,39 @@ example for writing your own.  For example, @command{vpnc-script-sshd} contains
 the entire VPN in a network namespace accessible only through SSH.")
       (license license:gpl2+))))
 
+(define-public ocproxy
+  (package
+    (name "ocproxy")
+    (version "1.60")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/cernekee/ocproxy/archive/v"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1b4rg3xq5jnrp2l14sw0msan8kqhdxmsd7gpw9lkiwvxy13pcdm7"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)))
+    (inputs
+     `(("libevent" ,libevent)))
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'autogen
+           (lambda _ (invoke "sh" "autogen.sh"))))))
+    (home-page "https://github.com/cernekee/ocproxy")
+    (synopsis "OpenConnect proxy")
+    (description
+     "User-level @dfn{SOCKS} and port forwarding proxy for OpenConnect based
+on LwIP.  When using ocproxy, OpenConnect only handles network activity that
+the user specifically asks to proxy, so the @dfn{VPN} interface no longer
+\"hijacks\" all network traffic on the host.")
+    (license license:bsd-3)))
+
 (define-public openconnect
   (package
    (name "openconnect")
diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
index 12b1f93015..ac9f6f2f25 100644
--- a/gnu/packages/vulkan.scm
+++ b/gnu/packages/vulkan.scm
@@ -160,7 +160,7 @@ interpretation of the specifications for these languages.")
 (define-public vulkan-icd-loader
   (package
     (name "vulkan-icd-loader")
-    (version "1.1.70.0")
+    (version "1.1.73.0")
     (source
      (origin
        (method url-fetch)
@@ -169,7 +169,7 @@ interpretation of the specifications for these languages.")
              "archive/sdk-" version ".tar.gz"))
        (sha256
         (base32
-         "15qkh77596v3xivnbb3l0q9zbmmsdglnaza2m1g7f8q7bbigyc5x"))))
+         "1qb34j2zrc04fgs96m3k76vi4nx3sygbdcyg7pbwasr45cbdhsxb"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ;FIXME: 23/39 tests fail.  Try "tests/run_all_tests.sh".
@@ -182,6 +182,7 @@ interpretation of the specifications for these languages.")
              #t)))
        #:configure-flags (list
                           "-DBUILD_LAYERS=OFF" ; FIXME: Fails to build.
+                          "-DBUILD_TESTS=OFF" ; FIXME: Needs 'googletest' submodule.
                           (string-append "-DCMAKE_INSTALL_LIBDIR="
                                               (assoc-ref %outputs "out") "/lib"))))
     (inputs `(("glslang" ,glslang)
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index 6c929d326d..a5ecd0b546 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -130,7 +130,7 @@ features including, tables, builtin image display, bookmarks, SSL and more.")
 (define-public lynx
   (package
     (name "lynx")
-    (version "2.8.9dev.16")
+    (version "2.8.9dev.17")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -138,7 +138,7 @@ features including, tables, builtin image display, bookmarks, SSL and more.")
                     "/lynx" version ".tar.bz2"))
               (sha256
                (base32
-                "1j0vx871ghkm7fgrafnvd2ml3ywcl8d3gyhq02fhfb851c88lc84"))))
+                "1lvfsnrw5mmwrmn1m76q9mx287xwm3h5lg8sv7bcqilc0ywi2f54"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)
                      ("perl" ,perl)))
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 2892702e76..2b88e6920d 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -186,14 +186,14 @@ Interface} specification.")
     (name "nginx")
     ;; Consider updating the nginx-documentation package if the nginx package is
     ;; updated.
-    (version "1.13.12")
+    (version "1.14.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://nginx.org/download/nginx-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1pl5ii1w2ycxprxk8zdnxlpdd1dia6hyrns7mnqkm3fv5ihgb4pv"))))
+                "1d9c0avfpbwvzyg53b59ks8shpnrxnbnshcd7ziizflsyv5vw5ax"))))
     (build-system gnu-build-system)
     (inputs `(("openssl" ,openssl)
               ("pcre" ,pcre)
@@ -3785,15 +3785,19 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
 (define-public r-httpuv
   (package
     (name "r-httpuv")
-    (version "1.3.6.2")
+    (version "1.4.1")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "httpuv" version))
               (sha256
                (base32
-                "0h3hkw575b211bxma23inbq1565wkhiapgasd539h219apqs534f"))))
+                "1pndv0h870ygibk0bmg9ayzkls60jqscrsyk39k29gy2pvm9ha5y"))))
     (build-system r-build-system)
     (native-inputs `(("r-rcpp" ,r-rcpp)))
+    (propagated-inputs
+     `(("r-bh" ,r-bh)
+       ("r-later" ,r-later)
+       ("r-promises" ,r-promises)))
     (home-page "https://github.com/rstudio/httpuv")
     (synopsis "HTTP and WebSocket server library for R")
     (description
@@ -3893,13 +3897,13 @@ directory.")
 (define-public r-htmlwidgets
   (package
     (name "r-htmlwidgets")
-    (version "1.0")
+    (version "1.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "htmlwidgets" version))
               (sha256
                (base32
-                "09lkmzh35l1420sg0dyh4vgyishqx3g8xmgs2y9z7lbi09xgwwwr"))))
+                "04c4d0mfcy3dkdlbxnaccpdgxvyxfdwfmmh5djim6v9hyg0j2z8s"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-htmltools" ,r-htmltools)
@@ -5434,13 +5438,13 @@ responsive, and powerful applications with minimal effort.")
 (define-public r-shinydashboard
   (package
     (name "r-shinydashboard")
-    (version "0.6.1")
+    (version "0.7.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "shinydashboard" version))
               (sha256
                (base32
-                "14zi7g5wrngy6lwi9xpvaid7727m6rfdijbb89al9likfhjqzqqy"))))
+                "10yqcqqcxgfqwkmscqwvvgr710im583qsqnsqkfpisjvkqp10yqb"))))
     (build-system r-build-system)
     ;; The directory inst/AdminLTE/ contains a minified JavaScript file.
     ;; Regenerate it from the included sources.
diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index df049e15a3..4c0c955169 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -55,14 +55,14 @@
 (define-public webkitgtk
   (package
     (name "webkitgtk")
-    (version "2.20.0")
+    (version "2.20.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.webkitgtk.org/releases/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0g0an3pc2yz13gzpaysfgch2yp510gw1qcpk0xr8m6mx43vl1xjp"))))
+                "0nc9dj05dbk31ciip08b3rdsfja7ckc5mgagrj030fafza2k5r23"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f ; no tests
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 7f6d54c124..c015eda6f1 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -343,7 +343,7 @@ prompt.")
 (define-public i3lock-color
   (package
     (name "i3lock-color")
-    (version "2.10.1c")
+    (version "2.11-c")
     (source
      (origin
        (method url-fetch)
@@ -352,27 +352,29 @@ prompt.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "119xvdm4r6irqk0mar80hx6s8ydw26y35h7712rd7nbg7pb7i053"))))
+         "0zh7il2y6dmzym3w6r9xii5dma8pjjjlq4dm5iby7m3gvplj4q9p"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ;No tests included.
+     `(#:tests? #f                      ; no tests included
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'bootstrap
            (lambda _
-             (zero? (system* "autoreconf" "-vfi")))))))
+             (invoke "autoreconf" "-vfi")
+             #t)))))
     (inputs
-     `(("xcb-util-image" ,xcb-util-image)
-       ("xcb-util" ,xcb-util)
+     `(("cairo" ,cairo)
+       ("libev" ,libev)
+       ("libjpeg" ,libjpeg-turbo)
        ("libxcb" ,libxcb)
-       ("linux-pam" ,linux-pam)
        ("libxkbcommon" ,libxkbcommon)
-       ("libev" ,libev)
-       ("cairo" ,cairo)))
+       ("linux-pam" ,linux-pam)
+       ("xcb-util" ,xcb-util)
+       ("xcb-util-image" ,xcb-util-image)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("autoconf" ,autoconf)
-        ("automake" ,automake)))
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("pkg-config" ,pkg-config)))
     (home-page "https://github.com/PandorasFox/i3lock-color")
     (synopsis "Screen locker with color configuration support")
     (description
@@ -504,15 +506,18 @@ tiled on several screens.")
 (define-public xmobar
   (package
     (name "xmobar")
-    (version "0.25")
+    (version "0.26")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://hackage/package/xmobar/"
                                   name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0382r4vzqkz76jlp2069rdbwf4gh1a22r9w4rkphcn5qflw0dlb6"))))
+                "19g40vqj3cs94i27f66194k7d5cazrv1lx54bz9kc0qy2npxjzgz"))))
     (build-system haskell-build-system)
+    (native-inputs
+     `(("ghc-hspec" ,ghc-hspec)
+       ("hspec-discover" ,hspec-discover)))
     (inputs
      `(("ghc-hinotify" ,ghc-hinotify)
        ("ghc-http" ,ghc-http)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 8fed9f91e6..2309596f6b 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -499,7 +499,7 @@ of the screen selected by mouse.")
 (define-public slop
   (package
     (name "slop")
-    (version "7.3.49")
+    (version "7.4")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -508,7 +508,7 @@ of the screen selected by mouse.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0gxi174vi13ldjaf776s2jcdyy379lnwwml29nk1bkzj5d5gpghm"))))
+                "1kpdrikgpjb4fpxalb6pjcih5njv1w9cnrjj5612ywdv1q5mjs48"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f)) ; no "check" target
@@ -532,7 +532,7 @@ selection's dimensions to stdout.")
 (define-public maim
   (package
     (name "maim")
-    (version "5.4.68")
+    (version "5.5")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -541,7 +541,7 @@ selection's dimensions to stdout.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0f54s7csrxjd5r9anqqa92diwmzdplpws3llmbr6g3c0l6bp8815"))))
+                "02blbimjdckbcb04crhv0k2vxnp3rcgskyq66sk0v13l2h52849v"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f))            ; no "check" target
diff --git a/gnu/packages/xfig.scm b/gnu/packages/xfig.scm
index 3bb839f6e4..86fbd9159b 100644
--- a/gnu/packages/xfig.scm
+++ b/gnu/packages/xfig.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
-;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -32,7 +32,7 @@
 (define-public xfig
   (package
     (name "xfig")
-    (version "3.2.6a")
+    (version "3.2.7")
     (source
      (origin
        (method url-fetch)
@@ -40,7 +40,7 @@
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0z1636w27hvgjpq98z40k8h535b4x2xr2whkvr7bibaa89fynym8"))))
+         "0anlrr68knr401j7z76k6hx33w16l02dzb7szdkrc4rb2gj1rs2z"))))
     (build-system gnu-build-system)
     (native-inputs
      ;; For tests.
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 47d2124612..6e32ffb05f 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -824,7 +824,7 @@ the form of functions.")
 (define-public pugixml
   (package
     (name "pugixml")
-    (version "1.8.1")
+    (version "1.9")
     (source
      (origin
       (method url-fetch)
@@ -832,13 +832,13 @@ the form of functions.")
                           version "/pugixml-" version ".tar.gz"))
       (sha256
        (base32
-        "0fcgggry5x5bn0zhb09ij9hb0p45nb0sv0d9fw3cm1cf62hp9n80"))))
+        "19nv3zhik3djp4blc4vrjwrl8dfhzmal8b21sq7y907nhddx6mni"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags '("-DCMAKE_CXX_FLAGS=-shared -fPIC"
                            "-DCMAKE_C_FLAGS=-shared -fPIC")
        #:tests? #f))                    ; no tests
-    (home-page "http://pugixml.org")
+    (home-page "https://pugixml.org")
     (synopsis "Light-weight, simple and fast XML parser for C++ with XPath support")
     (description
      "pugixml is a C++ XML processing library, which consists of a DOM-like
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 9216ccb8b8..1e427941d5 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -5770,7 +5770,7 @@ to answer a question.  Xmessage can also exit after a specified time.")
 (define-public xterm
   (package
     (name "xterm")
-    (version "331")
+    (version "332")
     (source (origin
               (method url-fetch)
               (uri (list
@@ -5780,7 +5780,7 @@ to answer a question.  Xmessage can also exit after a specified time.")
                                    name "-" version ".tgz")))
               (sha256
                (base32
-                "047gk58hvj64974sg259ss5gixj7pac6halmjfz4cc6r1yimds4s"))))
+                "0zdjiik4ravc3zld5c9i2ndrvazjmwiwbgl2c21348762wki2jsx"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--enable-wide-chars" "--enable-load-vt-fonts"
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index 6ac440fd26..be34f32395 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -57,6 +57,18 @@
             static-networking-service
             static-networking-service-type
             dhcp-client-service
+
+            dhcpd-service-type
+            dhcpd-configuration
+            dhcpd-configuration?
+            dhcpd-configuration-package
+            dhcpd-configuration-config-file
+            dhcpd-configuration-version
+            dhcpd-configuration-run-directory
+            dhcpd-configuration-lease-file
+            dhcpd-configuration-pid-file
+            dhcpd-configuration-interfaces
+
             %ntp-servers
 
             ntp-configuration
@@ -341,6 +353,72 @@ to handle."
 Protocol (DHCP) client, on all the non-loopback network interfaces."
   (service dhcp-client-service-type dhcp))
 
+(define-record-type* <dhcpd-configuration>
+  dhcpd-configuration make-dhcpd-configuration
+  dhcpd-configuration?
+  (package   dhcpd-configuration-package ;<package>
+             (default isc-dhcp))
+  (config-file   dhcpd-configuration-config-file ;file-like
+                 (default #f))
+  (version dhcpd-configuration-version ;"4", "6", or "4o6"
+              (default "6"))
+  (run-directory dhcpd-configuration-run-directory
+                 (default "/run/dhcpd"))
+  (lease-file dhcpd-configuration-lease-file
+              (default "/var/db/dhcpd.leases"))
+  (pid-file dhcpd-configuration-pid-file
+            (default "/run/dhcpd/dhcpd.pid"))
+  ;; list of strings, e.g. (list "enp0s25")
+  (interfaces dhcpd-configuration-interfaces
+              (default '())))
+
+(define dhcpd-shepherd-service
+  (match-lambda
+    (($ <dhcpd-configuration> package config-file version run-directory
+                              lease-file pid-file interfaces)
+     (unless config-file
+       (error "Must supply a config-file"))
+     (list (shepherd-service
+            ;; Allow users to easily run multiple versions simultaneously.
+            (provision (list (string->symbol
+                              (string-append "dhcpv" version "-daemon"))))
+            (documentation (string-append "Run the DHCPv" version " daemon"))
+            (requirement '(networking))
+            (start #~(make-forkexec-constructor
+                      '(#$(file-append package "/sbin/dhcpd")
+                        #$(string-append "-" version)
+                        "-lf" #$lease-file
+                        "-pf" #$pid-file
+                        "-cf" #$config-file
+                        #$@interfaces)
+                      #:pid-file #$pid-file))
+            (stop #~(make-kill-destructor)))))))
+
+(define dhcpd-activation
+  (match-lambda
+    (($ <dhcpd-configuration> package config-file version run-directory
+                              lease-file pid-file interfaces)
+     (with-imported-modules '((guix build utils))
+       #~(begin
+           (unless (file-exists? #$run-directory)
+             (mkdir #$run-directory))
+           ;; According to the DHCP manual (man dhcpd.leases), the lease
+           ;; database must be present for dhcpd to start successfully.
+           (unless (file-exists? #$lease-file)
+             (with-output-to-file #$lease-file
+               (lambda _ (display ""))))
+           ;; Validate the config.
+           (invoke
+            #$(file-append package "/sbin/dhcpd") "-t" "-cf"
+            #$config-file))))))
+
+(define dhcpd-service-type
+  (service-type
+   (name 'dhcpd)
+   (extensions
+    (list (service-extension shepherd-root-service-type dhcpd-shepherd-service)
+          (service-extension activation-service-type dhcpd-activation)))))
+
 (define %ntp-servers
   ;; Default set of NTP servers. These URLs are managed by the NTP Pool project.
   ;; Within Guix, Leo Famulari <leo@famulari.name> is the administrative contact
diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm
index 63d2789cc5..3faeddef6c 100644
--- a/gnu/tests/base.scm
+++ b/gnu/tests/base.scm
@@ -478,11 +478,12 @@ in a loop.  See <http://bugs.gnu.org/26931>.")
 (define %mcron-os
   ;; System with an mcron service, with one mcron job for "root" and one mcron
   ;; job for an unprivileged user.
-  (let ((job1 #~(job next-second-from
+  (let ((job1 #~(job '(next-second '(0 5 10 15 20 25 30 35 40 45 50 55))
                      (lambda ()
-                       (call-with-output-file "witness"
-                         (lambda (port)
-                           (display (list (getuid) (getgid)) port))))))
+                       (unless (file-exists? "witness")
+                        (call-with-output-file "witness"
+                          (lambda (port)
+                            (display (list (getuid) (getgid)) port)))))))
         (job2 #~(job next-second-from
                      (lambda ()
                        (call-with-output-file "witness"
diff --git a/gnu/tests/networking.scm b/gnu/tests/networking.scm
index d7d9166fa7..171c636e5f 100644
--- a/gnu/tests/networking.scm
+++ b/gnu/tests/networking.scm
@@ -29,7 +29,7 @@
   #:use-module (gnu packages bash)
   #:use-module (gnu packages networking)
   #:use-module (gnu services shepherd)
-  #:export (%test-inetd %test-openvswitch))
+  #:export (%test-inetd %test-openvswitch %test-dhcpd))
 
 (define %inetd-os
   ;; Operating system with 2 inetd services.
@@ -243,3 +243,98 @@ port 7, and a dict service on port 2628."
    (name "openvswitch")
    (description "Test a running OpenvSwitch configuration.")
    (value (run-openvswitch-test))))
+
+
+;;;
+;;; DHCP Daemon
+;;;
+
+(define minimal-dhcpd-v4-config-file
+  (plain-file "dhcpd.conf"
+              "\
+default-lease-time 600;
+max-lease-time 7200;
+
+subnet 192.168.1.0 netmask 255.255.255.0 {
+ range 192.168.1.100 192.168.1.200;
+ option routers 192.168.1.1;
+ option domain-name-servers 192.168.1.2, 192.168.1.3;
+ option domain-name \"dummy.domain.name.abc123xyz\";
+}
+"))
+
+(define dhcpd-v4-configuration
+  (dhcpd-configuration
+   (config-file minimal-dhcpd-v4-config-file)
+   (version "4")
+   (interfaces '("eth0"))))
+
+(define %dhcpd-os
+  (simple-operating-system
+   (static-networking-service "eth0" "192.168.1.4"
+                              #:netmask "255.255.255.0"
+                              #:gateway "192.168.1.1"
+                              #:name-servers '("192.168.1.2" "192.168.1.3"))
+   (service dhcpd-service-type dhcpd-v4-configuration)))
+
+(define (run-dhcpd-test)
+  (define os
+    (marionette-operating-system %dhcpd-os
+                                 #:imported-modules '((gnu services herd))))
+
+  (define test
+    (with-imported-modules '((gnu build marionette))
+      #~(begin
+          (use-modules (gnu build marionette)
+                       (ice-9 popen)
+                       (ice-9 rdelim)
+                       (srfi srfi-64))
+
+          (define marionette
+            (make-marionette (list #$(virtual-machine os))))
+
+          (mkdir #$output)
+          (chdir #$output)
+
+          (test-begin "dhcpd")
+
+          (test-assert "pid file exists"
+            (marionette-eval
+             '(file-exists?
+               #$(dhcpd-configuration-pid-file dhcpd-v4-configuration))
+             marionette))
+
+          (test-assert "lease file exists"
+            (marionette-eval
+             '(file-exists?
+               #$(dhcpd-configuration-lease-file dhcpd-v4-configuration))
+             marionette))
+
+          (test-assert "run directory exists"
+            (marionette-eval
+             '(file-exists?
+               #$(dhcpd-configuration-run-directory dhcpd-v4-configuration))
+             marionette))
+
+          (test-assert "dhcpd is alive"
+            (marionette-eval
+             '(begin
+                (use-modules (gnu services herd)
+                             (srfi srfi-1))
+                (live-service-running
+                 (find (lambda (live)
+                         (memq 'dhcpv4-daemon
+                               (live-service-provision live)))
+                       (current-services))))
+             marionette))
+
+          (test-end)
+          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+
+  (gexp->derivation "dhcpd-test" test))
+
+(define %test-dhcpd
+  (system-test
+   (name "dhcpd")
+   (description "Test a running DHCP daemon configuration.")
+   (value (run-dhcpd-test))))