summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-06-27 09:30:01 +0200
committerLudovic Courtès <ludo@gnu.org>2016-06-27 09:30:01 +0200
commit01497dfe6c0a2ce69287d0fd0008747965a000df (patch)
treef7f6f53baf6e81a8bce26144c550da3bf4b9df5c /gnu
parent74c8b174e8015de753ba5cab44f76f944e6fd4ba (diff)
downloadguix-01497dfe6c0a2ce69287d0fd0008747965a000df.tar.gz
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu')
-rw-r--r--gnu/build/vm.scm6
-rw-r--r--gnu/local.mk11
-rw-r--r--gnu/packages.scm9
-rw-r--r--gnu/packages/admin.scm27
-rw-r--r--gnu/packages/algebra.scm4
-rw-r--r--gnu/packages/assembly.scm114
-rw-r--r--gnu/packages/bioinformatics.scm59
-rw-r--r--gnu/packages/crypto.scm59
-rw-r--r--gnu/packages/dav.scm6
-rw-r--r--gnu/packages/debug.scm4
-rw-r--r--gnu/packages/dictionaries.scm25
-rw-r--r--gnu/packages/emacs.scm207
-rw-r--r--gnu/packages/enlightenment.scm4
-rw-r--r--gnu/packages/erlang.scm179
-rw-r--r--gnu/packages/game-development.scm27
-rw-r--r--gnu/packages/games.scm96
-rw-r--r--gnu/packages/gnome.scm8
-rw-r--r--gnu/packages/gnuzilla.scm2
-rw-r--r--gnu/packages/gstreamer.scm2
-rw-r--r--gnu/packages/guile.scm119
-rw-r--r--gnu/packages/haskell.scm647
-rw-r--r--gnu/packages/imagemagick.scm4
-rw-r--r--gnu/packages/java.scm8
-rw-r--r--gnu/packages/kodi.scm2
-rw-r--r--gnu/packages/lightning.scm44
-rw-r--r--gnu/packages/linux.scm12
-rw-r--r--gnu/packages/music.scm12
-rw-r--r--gnu/packages/package-management.scm76
-rw-r--r--gnu/packages/password-utils.scm37
-rw-r--r--gnu/packages/patches/beets-image-test-failure.patch46
-rw-r--r--gnu/packages/patches/hydra-automake-1.15.patch4
-rw-r--r--gnu/packages/patches/nasm-no-ps-pdf.patch20
-rw-r--r--gnu/packages/patches/ruby-puma-ignore-broken-test.patch13
-rw-r--r--gnu/packages/perl.scm5
-rw-r--r--gnu/packages/python.scm406
-rw-r--r--gnu/packages/ruby.scm64
-rw-r--r--gnu/packages/scheme.scm4
-rw-r--r--gnu/packages/screen.scm4
-rw-r--r--gnu/packages/serialization.scm53
-rw-r--r--gnu/packages/statistics.scm44
-rw-r--r--gnu/packages/tex.scm20
-rw-r--r--gnu/packages/version-control.scm6
-rw-r--r--gnu/packages/video.scm8
-rw-r--r--gnu/packages/web.scm5
-rw-r--r--gnu/packages/xorg.scm357
-rw-r--r--gnu/packages/yasm.scm55
-rw-r--r--gnu/services.scm28
-rw-r--r--gnu/services/mcron.scm115
-rw-r--r--gnu/system/install.scm3
-rw-r--r--gnu/tests.scm92
-rw-r--r--gnu/tests/base.scm297
-rw-r--r--gnu/tests/install.scm212
52 files changed, 2885 insertions, 786 deletions
diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index 48e701adbe..cc5cf45362 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 ;;;
@@ -55,8 +55,8 @@
 
 (define* (qemu-command #:optional (system %host-type))
   "Return the default name of the QEMU command for SYSTEM."
-  (let ((cpu (substring %host-type 0
-                        (string-index %host-type #\-))))
+  (let ((cpu (substring system 0
+                        (string-index system #\-))))
     (string-append "qemu-system-"
                    (if (string-match "^i[3456]86$" cpu)
                        "i386"
diff --git a/gnu/local.mk b/gnu/local.mk
index 4b83de2f2a..ce4cdf65c1 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -41,6 +41,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/apl.scm				\
   %D%/packages/apr.scm				\
   %D%/packages/aspell.scm			\
+  %D%/packages/assembly.scm			\
   %D%/packages/attr.scm				\
   %D%/packages/audacity.scm			\
   %D%/packages/audio.scm			\
@@ -108,6 +109,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/engineering.scm			\
   %D%/packages/enlightenment.scm		\
   %D%/packages/entr.scm				\
+  %D%/packages/erlang.scm			\
   %D%/packages/fcitx.scm			\
   %D%/packages/feh.scm                          \
   %D%/packages/figlet.scm			\
@@ -205,7 +207,6 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/libusb.scm			\
   %D%/packages/libunwind.scm			\
   %D%/packages/libupnp.scm			\
-  %D%/packages/lightning.scm			\
   %D%/packages/links.scm			\
   %D%/packages/linux.scm			\
   %D%/packages/lirc.scm				\
@@ -363,7 +364,6 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/xdisorg.scm			\
   %D%/packages/xorg.scm				\
   %D%/packages/xfce.scm				\
-  %D%/packages/yasm.scm				\
   %D%/packages/yubico.scm			\
   %D%/packages/zile.scm				\
   %D%/packages/zip.scm				\
@@ -378,6 +378,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/services/dict.scm				\
   %D%/services/lirc.scm				\
   %D%/services/mail.scm				\
+  %D%/services/mcron.scm			\
   %D%/services/networking.scm			\
   %D%/services/shepherd.scm			\
   %D%/services/herd.scm				\
@@ -409,7 +410,8 @@ GNU_SYSTEM_MODULES =				\
   %D%/build/vm.scm				\
 						\
   %D%/tests.scm					\
-  %D%/tests/base.scm
+  %D%/tests/base.scm				\
+  %D%/tests/install.scm
 
 
 patchdir = $(guilemoduledir)/%D%/packages/patches
@@ -442,6 +444,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/avrdude-fix-libusb.patch			\
   %D%/packages/patches/awesome-reproducible-png.patch		\
   %D%/packages/patches/bash-completion-directories.patch	\
+  %D%/packages/patches/beets-image-test-failure.patch		\
   %D%/packages/patches/bigloo-gc-shebangs.patch			\
   %D%/packages/patches/binutils-ld-new-dtags.patch		\
   %D%/packages/patches/binutils-loongson-workaround.patch	\
@@ -656,6 +659,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/mumps-build-parallelism.patch		\
   %D%/packages/patches/mupen64plus-ui-console-notice.patch	\
   %D%/packages/patches/mutt-store-references.patch		\
+  %D%/packages/patches/nasm-no-ps-pdf.patch			\
   %D%/packages/patches/net-tools-bitrot.patch			\
   %D%/packages/patches/netcdf-config-date.patch			\
   %D%/packages/patches/ngircd-handle-zombies.patch		\
@@ -741,6 +745,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/rpm-CVE-2014-8118.patch			\
   %D%/packages/patches/rsem-makefile.patch			\
   %D%/packages/patches/ruby-concurrent-ignore-broken-test.patch	\
+  %D%/packages/patches/ruby-puma-ignore-broken-test.patch       \
   %D%/packages/patches/ruby-symlinkfix.patch                    \
   %D%/packages/patches/ruby-tzinfo-data-ignore-broken-test.patch\
   %D%/packages/patches/rush-CVE-2013-6889.patch			\
diff --git a/gnu/packages.scm b/gnu/packages.scm
index 7130f58fdd..9496a270eb 100644
--- a/gnu/packages.scm
+++ b/gnu/packages.scm
@@ -45,6 +45,7 @@
             %package-module-path
 
             fold-packages
+            scheme-modules                    ;XXX: for lack of a better place
 
             find-packages-by-name
             find-best-packages-by-name
@@ -158,8 +159,8 @@ returned list is sorted in alphabetical order."
       (map string->symbol
            (string-tokenize (string-drop-right file 4) not-slash)))))
 
-(define* (package-modules directory #:optional sub-directory)
-  "Return the list of modules that provide packages for the distribution.
+(define* (scheme-modules directory #:optional sub-directory)
+  "Return the list of Scheme modules available under DIRECTORY.
 Optionally, narrow the search to SUB-DIRECTORY."
   (define prefix-len
     (string-length directory))
@@ -184,9 +185,9 @@ search."
   (fold-right (lambda (spec result)
                 (match spec
                   ((? string? directory)
-                   (append (package-modules directory) result))
+                   (append (scheme-modules directory) result))
                   ((directory . sub-directory)
-                   (append (package-modules directory sub-directory)
+                   (append (scheme-modules directory sub-directory)
                            result))))
               '()
               path))
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 78f36a18cf..415a35aab3 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -1681,3 +1681,30 @@ controller, or compare the network bandwidth numbers directly with the disk
 throughput (in the same interval).")
     (home-page "http://dag.wiee.rs/home-made/dstat/")
     (license license:gpl2+)))
+
+(define-public thefuck
+  (package
+    (name "thefuck")
+    (version "3.9")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/nvbn/thefuck/archive/"
+                                  version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0g4s2vkpl0mqhkdkbzib07qr4xf0cq25fvhdhna52290qgd69pwf"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-setuptools" ,python-setuptools)))
+    (inputs
+     `(("python-colorama" ,python-colorama)
+       ("python-decorator" ,python-decorator)
+       ("python-psutil" ,python-psutil)
+       ("python-six" ,python-six)))
+    (home-page "https://github.com/nvbn/thefuck")
+    (synopsis "Correct mistyped console command")
+    (description
+     "The Fuck tries to match a rule for a previous, mistyped command, creates
+a new command using the matched rule, and runs it.")
+    (license license:x11)))
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 12691da17d..b0ffd7009b 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -128,7 +128,7 @@ solve the shortest vector problem.")
 (define-public pari-gp
   (package
    (name "pari-gp")
-   (version "2.7.5")
+   (version "2.7.6")
    (source (origin
             (method url-fetch)
             (uri (string-append
@@ -136,7 +136,7 @@ solve the shortest vector problem.")
                   version ".tar.gz"))
             (sha256
               (base32
-                "0c8l83a0gjq73r9hndsrzkypwxvnnm4pxkkzbg6jm95m80nzwh11"))))
+                "04dqi697czd8mmw8aiwzrkgbvkjassqagg6lfy3lkf1k5qi9g9rr"))))
    (build-system gnu-build-system)
    (native-inputs `(("texlive" ,texlive-minimal)))
    (inputs `(("gmp" ,gmp)
diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm
new file mode 100644
index 0000000000..40e40e8f93
--- /dev/null
+++ b/gnu/packages/assembly.scm
@@ -0,0 +1,114 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages assembly)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages texinfo)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages xml))
+
+(define-public nasm
+  (package
+    (name "nasm")
+    (version "2.12.01")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.nasm.us/pub/nasm/releasebuilds/"
+                                  version "/" name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "12bl6vc5sjp9nnhf0iwy6l27vq783y0rxrjpp8sy84h5cb7a3fwx"))
+              (patches (search-patches "nasm-no-ps-pdf.patch"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("perl" ,perl)  ;for doc and test target
+                     ("texinfo" ,texinfo)))
+    (arguments
+     `(#:test-target "test"
+       #:phases (modify-phases %standard-phases
+                  (add-after 'install 'install-info
+                    (lambda _
+                      (zero? (system* "make" "install_doc")))))))
+    (home-page "http://www.nasm.us/")
+    (synopsis "80x86 and x86-64 assembler")
+    (description
+     "NASM, the Netwide Assembler, is an 80x86 and x86-64 assembler designed
+for portability and modularity.  It supports a range of object file formats,
+including Linux and *BSD a.out, ELF, COFF, Mach-O, Microsoft 16-bit OBJ,
+Windows32 and Windows64.  It will also output plain binary files.  Its syntax
+is designed to be simple and easy to understand, similar to Intel's but less
+complex.  It supports all currently known x86 architectural extensions, and
+has strong support for macros.")
+    (supported-systems '("x86_64-linux" "i686-linux"))
+    (license license:bsd-3)))
+
+(define-public yasm
+  (package
+    (name "yasm")
+    (version "1.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://www.tortall.net/projects/yasm/releases/yasm-"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "0gv0slmm0qpq91za3v2v9glff3il594x5xsrbgab7xcmnh0ndkix"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("python" ,python-wrapper)
+       ("xmlto" ,xmlto)))
+    (home-page "http://yasm.tortall.net/")
+    (synopsis "Rewrite of the NASM assembler")
+    (description
+     "Yasm is a complete rewrite of the NASM assembler.
+
+Yasm currently supports the x86 and AMD64 instruction sets, accepts NASM
+and GAS assembler syntaxes, outputs binary, ELF32, ELF64, 32 and 64-bit
+Mach-O, RDOFF2, COFF, Win32, and Win64 object formats, and generates source
+debugging information in STABS, DWARF 2, and CodeView 8 formats.")
+    (license (license:non-copyleft "file://COPYING"
+                                   "See COPYING in the distribution."))))
+
+(define-public lightning
+  (package
+    (name "lightning")
+    (version "2.1.0")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://gnu/lightning/lightning-"
+                                 version ".tar.gz"))
+             (sha256
+              (base32
+               "19j9nwl88k660045s40cbz5zrl1wpd2mcxnnc8qqnnaj311a58qz"))))
+    (build-system gnu-build-system)
+    (synopsis "Library for generating assembly code at runtime")
+    (description
+     "GNU Lightning is a library that generates assembly language code at
+run-time.  Thus, it is useful in creating Just-In-Time compilers.  It
+abstracts over the target CPU by exposing a standardized RISC instruction set
+to the clients.")
+    (home-page "http://www.gnu.org/software/lightning/")
+    (license license:gpl3+)))
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 04ed769cd8..f5e7285193 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -1482,7 +1482,7 @@ identify enrichments with functional annotations of the genome.")
 (define-public diamond
   (package
     (name "diamond")
-    (version "0.8.5")
+    (version "0.8.7")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1491,7 +1491,7 @@ identify enrichments with functional annotations of the genome.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "18zx8k3axnsrg016kikl8xs1ifnjmj36dk1sv3fq1jgpg9j9584b"))))
+                "15r7gcrqc4pv5d4kvv530zc3xnni92c74y63zrxzidriss7591yx"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f ; no "check" target
@@ -3815,10 +3815,61 @@ data in the form of VCF files.")
     ;; at https://vcftools.github.io/license.html
     (license license:lgpl3)))
 
+(define-public r-vegan
+  (package
+    (name "r-vegan")
+    (version "2.4-0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "vegan" version))
+       (sha256
+        (base32
+         "10cygzkyg2m0y054ygivqxrkvqz792qsg6bmbdfzaqq37qv4wc7z"))))
+    (build-system r-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'revert-test-deletion
+           ;; The distributed sources do not include tests with the CRAN
+           ;; package.  Here we revert the commit
+           ;; `591d0e8ba1deaaf82445474ec6619c0b43db4e63' which deletes these
+           ;; tests.  There are plans to not delete tests in future as
+           ;; documented at https://github.com/vegandevs/vegan/issues/181.
+           (lambda* (#:key inputs #:allow-other-keys)
+             (zero?
+              (system* "patch" "-R" "-p1" "-i"
+                       (assoc-ref inputs "r-vegan-delete-tests-patch"))))))))
+    (native-inputs
+     `(("gfortran" ,gfortran)
+       ("r-knitr" ,r-knitr)
+       ("r-vegan-delete-tests-patch"
+        ,(origin
+           (method url-fetch)
+           (uri (string-append
+                 "https://github.com/vegandevs/vegan/commit/"
+                 "591d0e8ba1deaaf82445474ec6619c0b43db4e63.patch"))
+           (sha256
+            (base32
+             "0b1bi7y4jjdl3ph721vm9apm51dr2z9piwvhy4355sf2b4kyyj5a"))))))
+    (propagated-inputs
+     `(("r-cluster" ,r-cluster)
+       ("r-lattice" ,r-lattice)
+       ("r-mgcv" ,r-mgcv)
+       ("r-permute" ,r-permute)))
+    (home-page "https://cran.r-project.org/web/packages/vegan")
+    (synopsis "Functions for community ecology")
+    (description
+     "The vegan package provides tools for descriptive community ecology.  It
+has most basic functions of diversity analysis, community ordination and
+dissimilarity analysis.  Most of its multivariate tools can be used for other
+data types as well.")
+    (license license:gpl2+)))
+
 (define-public vsearch
   (package
     (name "vsearch")
-    (version "1.11.1")
+    (version "2.0.0")
     (source
      (origin
        (method url-fetch)
@@ -3828,7 +3879,7 @@ data in the form of VCF files.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1pdvm3znjgq3zryy240yj9gc0bf1z31k6vf9jxrxgdgkvzgw85c7"))
+         "1sd57abgx077icqrbj36jq9q7pdpzc6dbics2pn1555kisq2jhfh"))
        (modules '((guix build utils)))
        (snippet
         '(begin
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 3f0b508d3c..f167f3320c 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2014 David Thompson <davet@gnu.org>
 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,8 +21,14 @@
 
 (define-module (gnu packages crypto)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages libbsd)
+  #:use-module (gnu packages nettle)
+  #:use-module (gnu packages password-utils)
+  #:use-module (gnu packages readline)
+  #:use-module (gnu packages serialization)
+  #:use-module (gnu packages tls)
   #:use-module (guix licenses)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -88,3 +95,55 @@ OpenBSD tool of the same name.")
                    (non-copyleft "file://base64.c"
                                  "See base64.c in the distribution for
                                  the license from IBM.")))))
+
+
+(define-public opendht
+  (package
+    (name "opendht")
+    (version "0.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://github.com/savoirfairelinux/" name
+         "/archive/" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (delete-file-recursively "src/argon2")
+           (substitute* "src/Makefile.am"
+             (("./argon2/libargon2.la") "")
+             (("SUBDIRS = argon2") ""))
+           (substitute* "src/crypto.cpp"
+             (("argon2/argon2.h") "argon2.h"))
+           (substitute* "configure.ac"
+             (("src/argon2/Makefile") ""))))
+       (sha256
+        (base32
+         "09yvkmbqbym3b5md4n96qc1s9sf2n8ji404hagih45rmsj49599x"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("gnutls" ,gnutls)
+       ("nettle" ,nettle)
+       ("msgpack" ,msgpack)
+       ("readline" ,readline)
+       ("argon2" ,argon2)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("pkg-config" ,pkg-config)
+       ("automake" ,automake)
+       ("libtool" ,libtool)))
+    (arguments
+     `(#:configure-flags '("--disable-tools" "--disable-python")
+       #:phases (modify-phases %standard-phases
+                  (add-before 'configure 'autoconf
+                    (lambda _
+                      (zero? (system* "autoreconf" "-vfi")))))))
+    (home-page "https://github.com/savoirfairelinux/opendht/")
+    (synopsis "Distributed Hash Table (DHT) library")
+    (description "OpenDHT is a Distributed Hash Table (DHT) library.  It may
+be used to manage peer-to-peer network connections as needed for real time
+communication.")
+    (license gpl3)))
diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm
index 126a21bf66..4aa954bd6f 100644
--- a/gnu/packages/dav.scm
+++ b/gnu/packages/dav.scm
@@ -52,16 +52,16 @@ clients.")
 (define-public vdirsyncer
   (package
     (name "vdirsyncer")
-    (version "0.11.0")
+    (version "0.11.2")
     (source (origin
              (method url-fetch)
              (uri (string-append
                     "https://pypi.python.org/packages/"
-                    "39/e5/1e7097b5f0cd6de79ec9014f162a6000b77ca2a369ea8a1588a2eebff570/"
+                    "6c/fb/20c32861134579fdce67060bf4cc074e171d30c70590137adc73924f94a6/"
                     name "-" version ".tar.gz"))
              (sha256
               (base32
-               "1bf0vk29qdswar0q4267aamfriq3134302i2p3qcqxpmmcwx3qfv"))))
+               "15isw2jhjfxi213wdj9d8mwq2m58k8bwf831qnxrjcz7j7bwy7mj"))))
     (build-system python-build-system)
     (arguments
       `(#:phases (modify-phases %standard-phases
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index 72fd993037..556a1051f1 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -169,7 +169,7 @@ tools that process C/C++ code.")
                    (_                "UNSUPPORTED"))))
     (package
       (name "american-fuzzy-lop")
-      (version "1.96b")             ;It seems all releases have the 'b' suffix
+      (version "2.15b")             ;It seems all releases have the 'b' suffix
       (source
        (origin
          (method url-fetch)
@@ -177,7 +177,7 @@ tools that process C/C++ code.")
                              "afl-" version ".tgz"))
          (sha256
           (base32
-           "0z7j231p6v2h1dxxijgdzj1lq1lxr8cxllwf6iyv7p4ki5pv1gh3"))))
+           "04n2jfkchpz6a07w694b0im1vcmc3220ryqcaasa7vix7784wzs2"))))
       (build-system gnu-build-system)
       (inputs
        `(("custom-qemu"
diff --git a/gnu/packages/dictionaries.scm b/gnu/packages/dictionaries.scm
index 5aea716150..931db626d8 100644
--- a/gnu/packages/dictionaries.scm
+++ b/gnu/packages/dictionaries.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
 ;;;
@@ -22,6 +22,7 @@
   #:use-module (guix licenses)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages base)
   #:use-module (gnu packages texinfo)
@@ -115,3 +116,25 @@ be used via the GNU Dico program or accessed online at
 http://gcide.gnu.org.ua/")
     (home-page "http://gcide.gnu.org.ua/")
     (license gpl3+)))
+
+(define-public diction
+  ;; Not quite a dictionary, not quite a spell checker either…
+  (package
+    (name "diction")
+    (version "1.11")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnu/diction/diction-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "1xi4l1x1vvzmzmbhpx0ghmfnwwrhabjwizrpyylmy3fzinzz3him"))))
+    (build-system gnu-build-system)
+    (synopsis "Identifies wordy and commonly misused phrases")
+    (description
+     "A package providing two classic Unix commands, style and diction.
+Diction is used to identify wordy and commonly misused phrases in a
+body of text.  Style instead analyzes surface aspects of a written
+work, such as sentence length and other readability measures.")
+    (home-page "https://www.gnu.org/software/diction/")
+    (license gpl3+)))
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index ae25b54297..7b60722c10 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -1638,6 +1638,27 @@ that it correctly finds RFCs even when a space appears before the
 number.")
     (license license:gpl3+)))
 
+(define-public emacs-org-bullets
+  (package
+    (name "emacs-org-bullets")
+    (version "0.2.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/sabof/org-bullets/archive/"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1dyxvpb73vj80v8br2q9rf255hfphrgaw91fbvwdcd735np9pcnh"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/sabof/org-bullets")
+    (synopsis "Show bullets in org-mode as UTF-8 characters")
+    (description
+     "This package provides an Emacs minor mode causing bullets in
+@code{org-mode} to be rendered as UTF-8 characters.")
+    (license license:gpl3+)))
+
 (define-public emacs-zenburn-theme
   (package
     (name "emacs-zenburn-theme")
@@ -1688,6 +1709,170 @@ features found in other packages it also brings many improvements as
 well as completely new features.")
     (license license:gpl3+)))
 
+(define-public emacs-hydra
+  (package
+    (name "emacs-hydra")
+    (version "0.13.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/abo-abo/hydra/archive/"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "19ynkjlg3jj7x90xxbz885324h6nkxmzlb2c2c95xkr20zckn0lk"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/abo-abo/hydra")
+    (synopsis "Make Emacs bindings that stick around")
+    (description
+     "This package can be used to tie related commands into a family of short
+bindings with a common prefix---a Hydra.  Once you summon the Hydra (through
+the prefixed binding), all the heads can be called in succession with only a
+short extension.  Any binding that isn't the Hydra's head vanquishes the
+Hydra.  Note that the final binding, besides vanquishing the Hydra, will still
+serve its original purpose, calling the command assigned to it.  This makes
+the Hydra very seamless; it's like a minor mode that disables itself
+automatically.")
+    (license license:gpl3+)))
+
+(define-public emacs-ivy
+  (package
+    (name "emacs-ivy")
+    (version "0.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/abo-abo/swiper/archive/"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "18nqwl05is71dzswnvpfhlg7b0v3apvbsfxrwab9c0apwavi892q"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-hydra" ,emacs-hydra)))
+    (home-page "http://oremacs.com/swiper/")
+    (synopsis "Incremental vertical completion for Emacs")
+    (description
+     "This package provides @code{ivy-read} as an alternative to
+@code{completing-read} and similar functions.  No attempt is made to determine
+the best candidate.  Instead, the user can navigate candidates with
+@code{ivy-next-line} and @code{ivy-previous-line}.  The matching is done by
+splitting the input text by spaces and re-building it into a regular
+expression.")
+    (license license:gpl3+)))
+
+(define-public emacs-avy
+  (package
+    (name "emacs-avy")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/abo-abo/avy/archive/"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1wdrq512h25ymzjbf2kbsdymvd2ryfwzb6bh5bc3yv7q203im796"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/abo-abo/avy")
+    (synopsis "Tree-based completion for Emacs")
+    (description
+     "This package provides a generic completion method based on building a
+balanced decision tree with each candidate being a leaf.  To traverse the tree
+from the root to a desired leaf, typically a sequence of @code{read-key} can
+be used.
+
+In order for @code{read-key} to make sense, the tree needs to be visualized
+appropriately, with a character at each branch node.  So this completion
+method works only for things that you can see on your screen, all at once,
+such as the positions of characters, words, line beginnings, links, or
+windows.")
+    (license license:gpl3+)))
+
+(define-public emacs-ace-window
+  (package
+    (name "emacs-ace-window")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/abo-abo/ace-window/archive/"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1p2sgfl5dml4zbd6ldql6lm2m9vmd236ah996ni32x254s48j5pn"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-avy" ,emacs-avy)))
+    (home-page "https://github.com/abo-abo/ace-window")
+    (synopsis "Quickly switch windows in Emacs")
+    (description
+     "@code{ace-window} is meant to replace @code{other-window}.
+In fact, when there are only two windows present, @code{other-window} is
+called.  If there are more, each window will have its first character
+highlighted.  Pressing that character will switch to that window.")
+    (license license:gpl3+)))
+
+(define-public emacs-iedit
+  (package
+    (name "emacs-iedit")
+    (version "0.9.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/victorhge/iedit/archive/v"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "00v86zllcsivmiibigbr91qij2zdf1lr9db8z8again1sn63wkdj"))))
+    (build-system emacs-build-system)
+    (home-page "http://www.emacswiki.org/emacs/Iedit")
+    (synopsis "Edit multiple regions in the same way simultaneously")
+    (description
+     "This package is an Emacs minor mode and allows you to edit one
+occurrence of some text in a buffer (possibly narrowed) or region, and
+simultaneously have other occurrences edited in the same way.
+
+You can also use Iedit mode as a quick way to temporarily show only the buffer
+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-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
+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+)))
+
 (define-public emacs-clojure-mode
   (package
     (name "emacs-clojure-mode")
@@ -2191,3 +2376,25 @@ Lua programing language}.")
      "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
 news items, openrc and runscripts.")
     (license license:gpl2+)))
+
+(define-public emacs-writegood-mode
+  (package
+    (name "emacs-writegood-mode")
+    (version "2.0.2")
+    (home-page "http://github.com/bnbeckwith/writegood-mode")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url home-page)
+                    (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
+              (file-name (string-append name "-checkout"))))
+    (build-system emacs-build-system)
+    (synopsis "Polish up poor writing on the fly")
+    (description
+     "This minor mode tries to find and highlight problems with your writing
+in English as you type.  It primarily detects \"weasel words\" and abuse of
+passive voice.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm
index 5531dcd367..2a606ebd7e 100644
--- a/gnu/packages/enlightenment.scm
+++ b/gnu/packages/enlightenment.scm
@@ -54,7 +54,7 @@
 (define-public efl
   (package
     (name "efl")
-    (version "1.17.1")
+    (version "1.17.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -62,7 +62,7 @@
                     version ".tar.xz"))
               (sha256
                (base32
-                "0d58bhvwg7c5hp07wywlwnqi01k4jhmpgac7gkx9lil1x6kmahqs"))))
+                "1dpq5flygrjg931nzsr2ra8icqffzrzbs1lnrzarbpsbmgq3zacs"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
new file mode 100644
index 0000000000..39da7e939b
--- /dev/null
+++ b/gnu/packages/erlang.scm
@@ -0,0 +1,179 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Steve Sprang <scs@stevesprang.com>
+;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016 Pjotr Prins <pjotr.public12@thebird.nl>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages erlang)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix download)
+  #:use-module (guix packages)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages gl)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages wxwidgets))
+
+(define-public erlang
+  (package
+    (name "erlang")
+    ;; When updating, remember to update the hash of erlang-manpages!
+    (version "19.0")
+    (source (origin
+              (method url-fetch)
+              ;; The tarball from http://erlang.org/download contains many
+              ;; pre-compiled files, so we use this snapshot of the source
+              ;; repository.
+              (uri (string-append "https://github.com/erlang/otp/archive/OTP-"
+                                  version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1dxyz6x1yfv33fd0xfry2ihylkyfa2d655q1vxvbz8dflyd64yqh"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("perl" ,perl)
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)
+
+       ;; Erlang's documentation is distributed in a separate tarball.
+       ("erlang-manpages"
+        ,(origin
+           (method url-fetch)
+           (uri (string-append "http://erlang.org/download/otp_doc_man_"
+                               version ".tar.gz"))
+           (sha256
+            (base32
+             "07j0l7ary936hil38xr3hvfw6j74pshkyyi98kc9cassbbcdd8y7"))))))
+    (inputs
+     `(("ncurses" ,ncurses)
+       ("openssl" ,openssl)
+       ("wxwidgets" ,wxwidgets)))
+    (propagated-inputs
+     `(("fontconfig" ,fontconfig)
+       ("glu" ,glu)
+       ("mesa" ,mesa)))
+    (arguments
+     `(#:test-target "release_tests"
+       #:configure-flags
+       (list "--disable-saved-compile-time"
+             "--enable-dynamic-ssl-lib"
+             "--enable-native-libs"
+             "--enable-shared-zlib"
+             "--enable-smp-support"
+             "--enable-threads"
+             "--enable-wx"
+             (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl")))
+       #:modules ((srfi srfi-19) ; make-time, et cetera.
+                  (guix build utils)
+                  (guix build gnu-build-system))
+       #:phases
+       (modify-phases %standard-phases
+         ;; The are several code fragments that embed timestamps into the
+         ;; output. Here, we alter those fragments to use the value of
+         ;; SOURCE_DATE_EPOCH instead.
+         (add-after 'unpack 'remove-timestamps
+           (lambda _
+             (let ((source-date-epoch
+                     (time-utc->date
+                       (make-time time-utc 0 (string->number
+                                               (getenv "SOURCE_DATE_EPOCH"))))))
+               (substitute* "lib/reltool/src/reltool_target.erl"
+                 (("Date = date\\(\\),")
+                  (string-append "Date = "
+                                 (date->string source-date-epoch
+                                               "'{~Y,~m,~d}',"))))
+               (substitute* "lib/reltool/src/reltool_target.erl"
+                 (("Time = time\\(\\),")
+                  (string-append "Time = "
+                                 (date->string source-date-epoch
+                                               "'{~H,~M,~S}',"))))
+               (substitute* '("lib/reltool/src/reltool_target.erl"
+                              "lib/sasl/src/systools_make.erl")
+                 (("date\\(\\), time\\(\\),")
+                  (date->string source-date-epoch
+                                "{~Y,~m,~d}, {~H,~M,~S},")))
+               (substitute* '("lib/dialyzer/test/small_SUITE_data/src/gs_make.erl"
+                              "lib/gs/src/gs_make.erl")
+                 (("tuple_to_list\\(date\\(\\)\\),tuple_to_list\\(time\\(\\)\\)")
+                  (date->string
+                    source-date-epoch
+                    "tuple_to_list({~Y,~m,~d}), tuple_to_list({~H,~M,~S})")))
+               (substitute* "lib/snmp/src/compile/snmpc_mib_to_hrl.erl"
+                 (("\\{Y,Mo,D\\} = date\\(\\),")
+                  (date->string source-date-epoch
+                                "{Y,Mo,D} = {~Y,~m,~d},")))
+               (substitute* "lib/snmp/src/compile/snmpc_mib_to_hrl.erl"
+                 (("\\{H,Mi,S\\} = time\\(\\),")
+                  (date->string source-date-epoch
+                                "{H,Mi,S} = {~H,~M,~S},"))))))
+         (add-after 'patch-source-shebangs 'patch-source-env
+           (lambda _
+             (let ((escripts
+                    (append
+                     (find-files "." "\\.escript")
+                     (find-files "lib/stdlib/test/escript_SUITE_data/")
+                     '("erts/lib_src/utils/make_atomics_api"
+                       "erts/preloaded/src/add_abstract_code"
+                       "lib/diameter/bin/diameterc"
+                       "lib/reltool/examples/display_args"
+                       "lib/reltool/examples/mnesia_core_dump_viewer"
+                       "lib/snmp/src/compile/snmpc.src"
+                       "make/verify_runtime_dependencies"
+                       "make/emd2exml.in"))))
+               (substitute* escripts
+                 (("/usr/bin/env") (which "env"))))))
+         (add-before 'configure 'set-erl-top
+           (lambda _
+             (setenv "ERL_TOP" (getcwd))))
+         (add-before 'configure 'autoconf
+           (lambda _ (zero? (system* "./otp_build" "autoconf"))))
+         (add-after 'install 'patch-erl
+           ;; This only works after install.
+           (lambda _
+             (substitute* (string-append (assoc-ref %outputs "out") "/bin/erl")
+               (("sed") (which "sed")))))
+         (add-after 'install 'install-doc
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (manpages (assoc-ref inputs "erlang-manpages"))
+                    (share (string-append out "/share/")))
+             (mkdir-p share)
+             (mkdir-p (string-append share "/misc/erlang"))
+             (with-directory-excursion share
+               (and
+                 (zero? (system* "tar" "xvf" manpages))
+                 (rename-file "COPYRIGHT"
+                              (string-append share "/misc/erlang/COPYRIGHT"))
+                 ;; Delete superfluous files.
+                 (for-each delete-file '("PR.template"
+                                         "README"))))))))))
+    (home-page "http://erlang.org/")
+    (synopsis "The Erlang programming language")
+    (description
+     "Erlang is a programming language used to build massively
+scalable soft real-time systems with requirements on high
+availability.  Some of its uses are in telecoms, banking, e-commerce,
+computer telephony and instant messaging.  Erlang's runtime system has
+built-in support for concurrency, distribution and fault tolerance.")
+    ;; Erlang is distributed under the Apache License 2.0, but some components
+    ;; have other licenses. See 'system/COPYRIGHT' in the source distribution.
+    (license (list license:asl2.0 license:bsd-2 license:bsd-3 license:expat
+                   license:lgpl2.0+ license:tcl/tk license:zlib))))
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 56617bb895..b11285ab54 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -34,6 +34,8 @@
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages fribidi)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnunet)
   #:use-module (gnu packages guile)
@@ -432,3 +434,28 @@ It offers the following features:
   import into a database.
 @end enumerate")
     (license license:gpl2+)))
+
+(define-public quesoglc
+  (package
+    (name "quesoglc")
+    (version "0.7.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/" name "/" version "/"
+                                  name "-" version "-free.tar.bz2"))
+              (sha256
+               (base32
+                "08ddhywdy2qg17m592ng3yr0p1ih96irg8wg729g75hsxxq9ipks"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    (inputs `(("fontconfig" ,fontconfig)
+              ("freeglute" ,freeglut)
+              ("fribidi" ,fribidi)
+              ("glew" ,glew)))
+    (home-page "http://quesoglc.sourceforge.net")
+    (synopsis "Implementation of the OpenGL Character Renderer (GLC)")
+    (description
+     "The OpenGL Character Renderer (GLC) is a state machine that provides
+OpenGL programs with character rendering services via an application programming
+interface (API).")
+    (license (list license:expat license:lgpl2.1+))))
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index b0bf4e3546..39fc6f2666 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -2396,3 +2396,99 @@ Super Game Boy, BS-X Satellaview, and Sufami Turbo.")
 your way through an underground cave system in search of the Grue.  Can you
 capture it and get out alive?")
     (license license:agpl3+)))
+
+(define-public warzone2100
+  (package
+    (name "warzone2100")
+    (version "3.1.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/" name
+                                  "/releases/" version "/" name "-" version
+                                  ".tar.xz"))
+              (sha256
+               (base32
+                "0hm49i2knvvg3wlnryv7h4m84s3qa7jfyym5yy6365sx8wzcrai1"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (add-after 'set-paths 'set-sdl-paths
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (setenv "CPATH"
+                              (string-append (assoc-ref inputs "sdl-union")
+                                             "/include/SDL"))
+                      #t)))))
+    (native-inputs `(("pkg-config" ,pkg-config)
+                     ("unzip" ,unzip)
+                     ("zip" ,zip)))
+    (inputs `(("fontconfig" ,fontconfig)
+              ("freetype" ,freetype)
+              ("fribidi" ,fribidi)
+              ("glew" ,glew)
+              ("libtheora" ,libtheora)
+              ("libvorbis" ,libvorbis)
+              ("libxrandr" ,libxrandr)
+              ("openal" ,openal)
+              ("physfs" ,physfs)
+              ("qt", qt-4)
+              ("quesoglc" ,quesoglc)
+              ("sdl-union" ,(sdl-union))))
+    (home-page "http://wz2100.net")
+    (synopsis "3D Real-time strategy and real-time tactics game")
+    (description
+     "Warzone 2100 offers campaign, multi-player, and single-player skirmish
+modes. An extensive tech tree with over 400 different technologies, combined
+with the unit design system, allows for a wide variety of possible units and
+tactics.")
+    ; Everything is GPLv2+ unless otherwise specified in COPYING.NONGPL
+    (license (list license:bsd-3
+                   license:cc0
+                   license:cc-by-sa3.0
+                   license:expat
+                   license:gpl2+
+                   license:lgpl2.1+))))
+
+(define-public starfighter
+  (package
+    (name "starfighter")
+    (version "1.5.1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://savannah/starfighter/"
+                    (version-major+minor version) "/"
+                    name "-" version "-src.tar.gz"))
+              (sha256
+               (base32
+                "1qc0hhw9m8sy3n9fips52c7aph3w8a8pdl4n45yaasgxzbvpn9xg"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f ; no check target
+       #:make-flags
+       (let ((out (assoc-ref %outputs "out")))
+         (list (string-append "PREFIX=" out)
+               (string-append "BINDIR=" out "/bin/")))
+       #:phases
+       (modify-phases %standard-phases
+         ;; no configure script
+         (delete 'configure))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("sdl2" ,sdl2)
+       ("sdl2-image" ,sdl2-image)
+       ("sdl2-mixer" ,sdl2-mixer)))
+    (home-page "http://starfighter.nongnu.org/")
+    (synopsis "2D scrolling shooter game")
+    (description
+     "In the year 2579, the intergalactic weapons corporation, WEAPCO, has
+dominated the galaxy.  Guide Chris Bainfield and his friend Sid Wilson on
+their quest to liberate the galaxy from the clutches of WEAPCO.  Along the
+way, you will encounter new foes, make new allies, and assist local rebels
+in strikes against the evil corporation.")
+    ;; gfx and music are under CC-BY 3.0, CC-BY-SA 3.0, CC0 or Public Domain.
+    (license (list license:gpl3+
+                   license:cc-by3.0
+                   license:cc-by-sa3.0
+                   license:cc0
+                   license:public-domain))))
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 74c4be6e24..9335005150 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
-;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
@@ -3840,7 +3840,7 @@ metadata in photo and video files of various formats.")
 (define-public shotwell
   (package
     (name "shotwell")
-    (version "0.22.1")
+    (version "0.23.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -3848,7 +3848,7 @@ metadata in photo and video files of various formats.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1a9lx9a7p6fgaf838xlw98f73xxyxmg6jmm29830lsl8ynbhq9bk"))))
+                "12imip32mav0zqg1fh4xm6zk4qsgg2435xsyb6ljz47i37zk6kg2"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:tests? #f ;no "check" target
@@ -3876,7 +3876,7 @@ metadata in photo and video files of various formats.")
        ("libraw" ,libraw)
        ("json-glib" ,json-glib)
        ("rest" ,rest)
-       ("webkitgtk" ,webkitgtk-2.4)
+       ("webkitgtk" ,webkitgtk)
        ("sqlite" ,sqlite)
        ("libsoup" ,libsoup)
        ("libxml2" ,libxml2)
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 46342ee247..b1ffbc8658 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -48,7 +48,7 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages gl)
-  #:use-module (gnu packages yasm)
+  #:use-module (gnu packages assembly)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xdisorg)
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 483710f6fe..f9e677bca4 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -57,7 +57,7 @@
   #:use-module (gnu packages telephony)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
-  #:use-module (gnu packages yasm)
+  #:use-module (gnu packages assembly)
   #:use-module (gnu packages xml))
 
 (define-public orc
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 9b761b10b5..4bea9aad76 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -42,6 +42,7 @@
   #:use-module (gnu packages ed)
   #:use-module (gnu packages base)
   #:use-module (gnu packages texinfo)
+  #:use-module (gnu packages man)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages python)
@@ -200,14 +201,14 @@ without requiring the source code to be rewritten.")
 (define-public guile-next
   (package (inherit guile-2.0)
     (name "guile-next")
-    (version "2.1.2")
+    (version "2.1.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "ftp://alpha.gnu.org/gnu/guile/guile-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0p971k3v04jj5klnv145g4172cpcp90arf0wvxxj2aqkg16j9m9c"))
+                "1k48wqca2hrsbfq4ssiv4pg9jwlqncs5iwwxklk2bnczi7lavv78"))
               (modules '((guix build utils)))
 
               ;; Remove the pre-built object files.  Instead, build everything
@@ -422,6 +423,55 @@ Guile, so its configuration can be written in Scheme; the original cron
 format is also supported.")
     (license gpl3+)))
 
+(define-public mcron2
+  ;; This is mthl's mcron development branch, not yet merged in mcron.
+  (let ((commit "31baff1a5187d8ddc89324cbe42dbeffc309c962"))
+    (package
+      (inherit mcron)
+      (name "mcron2")
+      (version (string-append (package-version mcron) "-0."
+                              (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://notabug.org/mthl/mcron/")
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "1h5wxy997hxi718hpx419c23q09939kbxrjbbq54lv0cgw1bb63z"))
+                (file-name (string-append name "-" version "-checkout"))))
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("pkg-config" ,pkg-config)
+         ("texinfo" ,texinfo)
+         ("help2man" ,help2man)))
+      (arguments
+       `(#:modules ((ice-9 match) (ice-9 ftw)
+                    ,@%gnu-build-system-modules)
+
+         #:phases (modify-phases %standard-phases
+                    (add-after 'unpack 'bootstrap
+                      (lambda _
+                        (zero? (system* "autoreconf" "-vfi"))))
+                    (add-after 'install 'wrap-mcron
+                      (lambda* (#:key outputs #:allow-other-keys)
+                        ;; Wrap the 'mcron' command to refer to the right
+                        ;; modules.
+                        (let* ((out  (assoc-ref outputs "out"))
+                               (bin  (string-append out "/bin"))
+                               (site (string-append
+                                      out "/share/guile/site")))
+                          (match (scandir site)
+                            (("." ".." version)
+                             (let ((modules (string-append site "/" version)))
+                               (wrap-program (string-append bin "/mcron")
+                                 `("GUILE_LOAD_PATH" ":" prefix
+                                   (,modules))
+                                 `("GUILE_LOAD_COMPILED_PATH" ":" prefix
+                                   (,modules)))
+                               #t))))))))))))
+
 (define-public guile-lib
   (package
     (name "guile-lib")
@@ -1008,4 +1058,69 @@ provides access to that interface and its types from the Scheme level.")
     (home-page "http://www.nongnu.org/g-wrap/index.html")
     (license lgpl2.1+)))
 
+(define-public guile-dbi
+  (package
+    (name "guile-dbi")
+    (version "2.1.6")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://download.gna.org/guile-dbi/guile-dbi-"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "116njrprhgrsv1qm904sp3b02rq01fx639r433d657gyhw3x159n"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags
+       (list (string-append
+              "--with-guile-site-dir=" %output "/share/guile/site/2.0"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'patch-extension-path
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out     (assoc-ref outputs "out"))
+                    (dbi.scm (string-append
+                              out "/share/guile/site/2.0/dbi/dbi.scm"))
+                    (ext     (string-append out "/lib/libguile-dbi")))
+               (substitute* dbi.scm (("libguile-dbi") ext))
+               #t))))))
+    (propagated-inputs
+     `(("guile" ,guile-2.0)))
+    (synopsis "Guile database abstraction layer")
+    (home-page "http://home.gna.org/guile-dbi/guile-dbi.html")
+    (description
+     "guile-dbi is a library for Guile that provides a convenient interface to
+SQL databases.  Database programming with guile-dbi is generic in that the same
+programming interface is presented regardless of which database system is used.
+It currently supports MySQL, Postgres and SQLite3.")
+    (license gpl2+)))
+
+(define-public guile-dbd-sqlite3
+  (package
+    (name "guile-dbd-sqlite3")
+    (version "2.1.6")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://download.gna.org/guile-dbi/guile-dbd-sqlite3-"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "0rg71jchxd2y8x496s8zmfmikr5g8zxi8zv2ar3f7a23pph92iw2"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("sqlite" ,sqlite)
+       ("zlib" ,(@ (gnu packages compression) zlib))))
+    (propagated-inputs
+     `(("guile-dbi" ,guile-dbi)))
+    (synopsis "Guile DBI driver for SQLite")
+    (home-page "https://github.com/jkalbhenn/guile-dbd-sqlite3")
+    (description
+     "guile-dbi is a library for Guile that provides a convenient interface to
+SQL databases.  This package implements the interface for SQLite.")
+    (license gpl2+)))
+
 ;;; guile.scm ends here
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index b043e03ea4..ba8f48d677 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -264,7 +265,7 @@ interactive environment for the functional language Haskell.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://hackage.haskell.org/package/hostname/"
+       (uri (string-append "https://hackage.haskell.org/package/hostname/"
                            "hostname-" version ".tar.gz"))
        (sha256
         (base32
@@ -311,14 +312,14 @@ determine the hostname.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/prelude-extras/prelude-extras-"
+             "https://hackage.haskell.org/package/prelude-extras/prelude-extras-"
              version
              ".tar.gz"))
        (sha256
         (base32
          "1q7mj9hysy747vimnlyrwsk1wb2axymxixa76fwcbcnmz3fi4llp"))))
     (build-system haskell-build-system)
-    (home-page "http://github.com/ekmett/prelude-extras")
+    (home-page "https://github.com/ekmett/prelude-extras")
     (synopsis "Higher order versions of Prelude classes")
     (description "This library provides higher order versions of
 @code{Prelude} classes to ease programming with polymorphic recursion and
@@ -333,7 +334,7 @@ reduce @code{UndecidableInstances}.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/data-default/data-default-"
+             "https://hackage.haskell.org/package/data-default/data-default-"
              version
              ".tar.gz"))
        (sha256
@@ -350,7 +351,7 @@ reduce @code{UndecidableInstances}.")
         ,ghc-data-default-instances-dlist)
        ("ghc-data-default-instances-old-locale"
         ,ghc-data-default-instances-old-locale)))
-    (home-page "http://hackage.haskell.org/package/data-default")
+    (home-page "https://hackage.haskell.org/package/data-default")
     (synopsis "Types with default values")
     (description
      "This package defines a class for types with a default value, and
@@ -366,12 +367,12 @@ packages.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/data-default-class/"
+             "https://hackage.haskell.org/package/data-default-class/"
              "data-default-class-" version ".tar.gz"))
        (sha256
         (base32 "0ccgr3jllinchqhw3lsn73ic6axk4196if5274rr1rghls0fxj5d"))))
     (build-system haskell-build-system)
-    (home-page "http://hackage.haskell.org/package/data-default-class")
+    (home-page "https://hackage.haskell.org/package/data-default-class")
     (synopsis "Types with default values")
     (description
      "This package defines a class for types with default values.")
@@ -385,7 +386,7 @@ packages.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/"
+             "https://hackage.haskell.org/package/"
              "data-default-instances-base/"
              "data-default-instances-base-" version ".tar.gz"))
        (sha256
@@ -393,7 +394,7 @@ packages.")
     (build-system haskell-build-system)
     (propagated-inputs
      `(("ghc-data-default-class" ,ghc-data-default-class)))
-    (home-page "http://hackage.haskell.org/package/data-default-instances-base")
+    (home-page "https://hackage.haskell.org/package/data-default-instances-base")
     (synopsis "Default instances for types in base")
     (description
      "This package provides default instances for types from the base
@@ -408,7 +409,7 @@ package.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/"
+             "https://hackage.haskell.org/package/"
              "data-default-instances-containers/"
              "data-default-instances-containers-" version ".tar.gz"))
        (sha256
@@ -416,7 +417,7 @@ package.")
     (build-system haskell-build-system)
     (propagated-inputs
      `(("ghc-data-default-class" ,ghc-data-default-class)))
-    (home-page "http://hackage.haskell.org/package/data-default-instances-containers")
+    (home-page "https://hackage.haskell.org/package/data-default-instances-containers")
     (synopsis "Default instances for types in containers")
     (description "Provides default instances for types from the containers
 package.")
@@ -430,7 +431,7 @@ package.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/"
+             "https://hackage.haskell.org/package/"
              "data-default-instances-dlist/"
              "data-default-instances-dlist-" version ".tar.gz"))
        (sha256
@@ -439,7 +440,7 @@ package.")
     (propagated-inputs
      `(("ghc-data-default-class" ,ghc-data-default-class)
        ("ghc-dlist" ,ghc-dlist)))
-    (home-page "http://hackage.haskell.org/package/data-default-instances-dlist")
+    (home-page "https://hackage.haskell.org/package/data-default-instances-dlist")
     (synopsis "Default instances for types in dlist")
     (description "Provides default instances for types from the dlist
 package.")
@@ -453,7 +454,7 @@ package.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/haddock-library/haddock-library-"
+             "https://hackage.haskell.org/package/haddock-library/haddock-library-"
              version
              ".tar.gz"))
        (sha256
@@ -483,7 +484,7 @@ the ‘haddock’ package.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/haddock-api/haddock-api-"
+             "https://hackage.haskell.org/package/haddock-api/haddock-api-"
              version
              ".tar.gz"))
        (sha256
@@ -507,7 +508,7 @@ documentation-generation tool for Haskell libraries.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/haddock/haddock-"
+             "https://hackage.haskell.org/package/haddock/haddock-"
              version
              ".tar.gz"))
        (sha256
@@ -533,7 +534,7 @@ documentation-generation tool for Haskell libraries.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/simple-reflect/simple-reflect-"
+             "https://hackage.haskell.org/package/simple-reflect/simple-reflect-"
              version
              ".tar.gz"))
        (sha256
@@ -560,7 +561,7 @@ them.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/multipart/multipart-"
+             "https://hackage.haskell.org/package/multipart/multipart-"
              version
              ".tar.gz"))
        (sha256
@@ -584,7 +585,7 @@ them.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/html/html-"
+             "https://hackage.haskell.org/package/html/html-"
              version
              ".tar.gz"))
        (sha256
@@ -592,7 +593,7 @@ them.")
          "0q9hmfii62kc82ijlg238fxrzxhsivn42x5wd6ffcr9xldg4jd8c"))))
     (build-system haskell-build-system)
     (home-page
-     "http://hackage.haskell.org/package/html")
+     "https://hackage.haskell.org/package/html")
     (synopsis "HTML combinator library")
     (description
      "This package contains a combinator library for constructing HTML
@@ -607,7 +608,7 @@ documents.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/xhtml/xhtml-"
+             "https://hackage.haskell.org/package/xhtml/xhtml-"
              version
              ".tar.gz"))
        (sha256
@@ -629,7 +630,7 @@ Strict, Transitional and Frameset variants.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/haskell-src/haskell-src-"
+             "https://hackage.haskell.org/package/haskell-src/haskell-src-"
              version
              ".tar.gz"))
        (sha256
@@ -640,7 +641,7 @@ Strict, Transitional and Frameset variants.")
      `(("ghc-happy" ,ghc-happy)
        ("ghc-syb" ,ghc-syb)))
     (home-page
-     "http://hackage.haskell.org/package/haskell-src")
+     "https://hackage.haskell.org/package/haskell-src")
     (synopsis
      "Support for manipulating Haskell source code")
     (description
@@ -658,7 +659,7 @@ package are to parse or generate Haskell 98 code.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/alex/alex-"
+             "https://hackage.haskell.org/package/alex/alex-"
              version
              ".tar.gz"))
        (sha256
@@ -687,7 +688,7 @@ tool lex or flex for C/C++.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/cgi/cgi-"
+             "https://hackage.haskell.org/package/cgi/cgi-"
              version
              ".tar.gz"))
        (sha256
@@ -718,7 +719,7 @@ tool lex or flex for C/C++.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/cmdargs/cmdargs-"
+             "https://hackage.haskell.org/package/cmdargs/cmdargs-"
              version
              ".tar.gz"))
        (sha256
@@ -739,7 +740,7 @@ tool lex or flex for C/C++.")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://hackage.haskell.org/package/concatenative/concatenative-"
+                    "https://hackage.haskell.org/package/concatenative/concatenative-"
                     version ".tar.gz"))
               (sha256
                (base32
@@ -762,7 +763,7 @@ postfix notation.  For more information on stack based languages, see
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/happy/happy-"
+             "https://hackage.haskell.org/package/happy/happy-"
              version
              ".tar.gz"))
        (sha256
@@ -788,7 +789,7 @@ Happy works in a similar way to the yacc tool for C.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/haskell-src-exts/haskell-src-exts-"
+             "https://hackage.haskell.org/package/haskell-src-exts/haskell-src-exts-"
              version
              ".tar.gz"))
        (sha256
@@ -822,7 +823,7 @@ patterns as per the HaRP extension as well as HSX-style embedded XML syntax.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/" name
+             "https://hackage.haskell.org/package/" name
              "/" name "-" version ".tar.gz"))
        (sha256
         (base32
@@ -851,7 +852,7 @@ unwanted suggestions, and to add your own custom suggestions.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/resourcet/resourcet-"
+             "https://hackage.haskell.org/package/resourcet/resourcet-"
              version
              ".tar.gz"))
        (sha256
@@ -868,7 +869,7 @@ unwanted suggestions, and to add your own custom suggestions.")
     (inputs
      `(("ghc-lifted-base" ,ghc-lifted-base)
        ("ghc-hspec" ,ghc-hspec)))
-    (home-page "http://github.com/snoyberg/conduit")
+    (home-page "https://github.com/snoyberg/conduit")
     (synopsis "Deterministic allocation and freeing of scarce resources")
     (description "ResourceT is a monad transformer which creates a region of
 code where you can safely allocate resources.")
@@ -882,7 +883,7 @@ code where you can safely allocate resources.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/xss-sanitize/xss-sanitize-"
+             "https://hackage.haskell.org/package/xss-sanitize/xss-sanitize-"
              version
              ".tar.gz"))
        (sha256
@@ -899,7 +900,7 @@ code where you can safely allocate resources.")
        ("ghc-attoparsec" ,ghc-attoparsec)
        ("ghc-hspec" ,ghc-hspec)
        ("ghc-hunit" ,ghc-hunit)))
-    (home-page "http://github.com/yesodweb/haskell-xss-sanitize")
+    (home-page "https://github.com/yesodweb/haskell-xss-sanitize")
     (synopsis "Sanitize untrusted HTML to prevent XSS attacks")
     (description "This library provides @code{sanitizeXSS}.  Run untrusted
 HTML through @code{Text.HTML.SanitizeXSS.sanitizeXSS} to prevent XSS
@@ -914,7 +915,7 @@ attacks.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/ObjectName/ObjectName-"
+             "https://hackage.haskell.org/package/ObjectName/ObjectName-"
              version
              ".tar.gz"))
        (sha256
@@ -937,7 +938,7 @@ OpenAL.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/SDL/SDL-"
+             "https://hackage.haskell.org/package/SDL/SDL-"
              version
              ".tar.gz"))
        (sha256
@@ -963,7 +964,7 @@ award winning Linux port of \"Civilization: Call To Power.\"")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/SDL-mixer/SDL-mixer-"
+             "https://hackage.haskell.org/package/SDL-mixer/SDL-mixer-"
              version
              ".tar.gz"))
        (sha256
@@ -979,7 +980,7 @@ award winning Linux port of \"Civilization: Call To Power.\"")
      `(("ghc-sdl" ,ghc-sdl)))
     (inputs
      `(("sdl-mixer" ,sdl-mixer)))
-    (home-page "http://hackage.haskell.org/package/SDL-mixer")
+    (home-page "https://hackage.haskell.org/package/SDL-mixer")
     (synopsis "Haskell bindings to libSDL_mixer")
     (description "SDL_mixer is a sample multi-channel audio mixer library.  It
 supports any number of simultaneously playing channels of 16 bit stereo audio,
@@ -995,7 +996,7 @@ MIDI, Ogg Vorbis, and SMPEG MP3 libraries.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/SDL-image/SDL-image-"
+             "https://hackage.haskell.org/package/SDL-image/SDL-image-"
              version
              ".tar.gz"))
        (sha256
@@ -1011,7 +1012,7 @@ MIDI, Ogg Vorbis, and SMPEG MP3 libraries.")
      `(("ghc-sdl" ,ghc-sdl)))
     (inputs
      `(("sdl-image" ,sdl-image)))
-    (home-page "http://hackage.haskell.org/package/SDL-image")
+    (home-page "https://hackage.haskell.org/package/SDL-image")
     (synopsis "Haskell bindings to libSDL_image")
     (description "SDL_image is an image file loading library.  It loads images
 as SDL surfaces, and supports the following formats: BMP, GIF, JPEG, LBM, PCX,
@@ -1026,14 +1027,14 @@ PNG, PNM, TGA, TIFF, XCF, XPM, XV.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/half/half-"
+             "https://hackage.haskell.org/package/half/half-"
              version
              ".tar.gz"))
        (sha256
         (base32
          "0zhwc6ps5w4ccnxl8sy623z4rjsafmnry69jpkw4hrbq11l402f1"))))
     (build-system haskell-build-system)
-    (home-page "http://github.com/ekmett/half")
+    (home-page "https://github.com/ekmett/half")
     (synopsis "Half-precision floating-point computations")
     (description "This library provides a half-precision floating-point
 computation library for Haskell.")
@@ -1047,7 +1048,7 @@ computation library for Haskell.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/OpenGLRaw/OpenGLRaw-"
+             "https://hackage.haskell.org/package/OpenGLRaw/OpenGLRaw-"
              version
              ".tar.gz"))
        (sha256
@@ -1079,7 +1080,7 @@ found at runtime, a userError is thrown.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/GLUT/GLUT-"
+             "https://hackage.haskell.org/package/GLUT/GLUT-"
              version
              ".tar.gz"))
        (sha256
@@ -1107,7 +1108,7 @@ programs.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/GLURaw/GLURaw-"
+             "https://hackage.haskell.org/package/GLURaw/GLURaw-"
              version
              ".tar.gz"))
        (sha256
@@ -1131,7 +1132,7 @@ basis for a nicer interface.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/OpenGL/OpenGL-"
+             "https://hackage.haskell.org/package/OpenGL/OpenGL-"
              version
              ".tar.gz"))
        (sha256
@@ -1159,7 +1160,7 @@ version 1.3).")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/streaming-commons/streaming-commons-"
+             "https://hackage.haskell.org/package/streaming-commons/streaming-commons-"
              version
              ".tar.gz"))
        (sha256
@@ -1192,7 +1193,7 @@ various Haskell streaming data libraries, such as @code{conduit} and
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/" name "/"
+             "https://hackage.haskell.org/package/" name "/"
              name "-" version ".tar.gz"))
        (sha256
         (base32
@@ -1220,7 +1221,7 @@ unlit literate code files; and an option to turn off macro-expansion.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/reflection/reflection-"
+             "https://hackage.haskell.org/package/reflection/reflection-"
              version
              ".tar.gz"))
        (sha256
@@ -1228,7 +1229,7 @@ unlit literate code files; and an option to turn off macro-expansion.")
          "10w3m6v3g6am203wbrikdbp57x9vw6b4jsh7bxdzsss4nmpm81zg"))))
     (build-system haskell-build-system)
     (inputs `(("ghc-tagged" ,ghc-tagged)))
-    (home-page "http://github.com/ekmett/reflection")
+    (home-page "https://github.com/ekmett/reflection")
     (synopsis "Reify arbitrary terms into types that can be reflected back
 into terms")
     (description "This package addresses the 'configuration problem' which is
@@ -1245,13 +1246,13 @@ configurations to coexist without resorting to mutable global variables or
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/old-locale/old-locale-"
+             "https://hackage.haskell.org/package/old-locale/old-locale-"
              version
              ".tar.gz"))
        (sha256
         (base32 "0l3viphiszvz5wqzg7a45zp40grwlab941q5ay29iyw8p3v8pbyv"))))
     (build-system haskell-build-system)
-    (home-page "http://hackage.haskell.org/package/old-locale")
+    (home-page "https://hackage.haskell.org/package/old-locale")
     (synopsis "Adapt to locale conventions")
     (description
      "This package provides the ability to adapt to locale conventions such as
@@ -1266,7 +1267,7 @@ date and time formats.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/old-time/old-time-"
+             "https://hackage.haskell.org/package/old-time/old-time-"
              version
              ".tar.gz"))
        (sha256
@@ -1275,11 +1276,11 @@ date and time formats.")
     (build-system haskell-build-system)
     (propagated-inputs
      `(("ghc-old-locale" ,ghc-old-locale)))
-    (home-page "http://hackage.haskell.org/package/old-time")
+    (home-page "https://hackage.haskell.org/package/old-time")
     (synopsis "Time compatibility library for Haskell")
     (description "Old-time is a package for backwards compatibility with the
 old @code{time} library.  For new projects, the newer
-@uref{http://hackage.haskell.org/package/time, time library} is recommended.")
+@uref{https://hackage.haskell.org/package/time, time library} is recommended.")
     (license license:bsd-3)))
 
 (define-public ghc-data-default-instances-old-locale
@@ -1290,7 +1291,7 @@ old @code{time} library.  For new projects, the newer
       (origin
         (method url-fetch)
         (uri (string-append
-              "http://hackage.haskell.org/package/"
+              "https://hackage.haskell.org/package/"
               "data-default-instances-old-locale/"
               "data-default-instances-old-locale-" version ".tar.gz"))
         (sha256
@@ -1300,7 +1301,7 @@ old @code{time} library.  For new projects, the newer
      `(("ghc-data-default-class" ,ghc-data-default-class)
        ("ghc-old-locale" ,ghc-old-locale)))
     (home-page
-      "http://hackage.haskell.org/package/data-default-instances-old-locale")
+      "https://hackage.haskell.org/package/data-default-instances-old-locale")
     (synopsis "Default instances for types in old-locale")
     (description "Provides Default instances for types from the old-locale
   package.")
@@ -1314,7 +1315,7 @@ old @code{time} library.  For new projects, the newer
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/dlist/dlist-"
+             "https://hackage.haskell.org/package/dlist/dlist-"
              version
              ".tar.gz"))
        (sha256
@@ -1337,13 +1338,13 @@ Writer monad), where list append quickly becomes too expensive.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://hackage.haskell.org/package/"
+       (uri (string-append "https://hackage.haskell.org/package/"
                            "extensible-exceptions/extensible-exceptions-"
                            version ".tar.gz"))
        (sha256
         (base32 "1273nqws9ij1rp1bsq5jc7k2jxpqa0svawdbim05lf302y0firbc"))))
     (build-system haskell-build-system)
-    (home-page "http://hackage.haskell.org/package/extensible-exceptions")
+    (home-page "https://hackage.haskell.org/package/extensible-exceptions")
     (synopsis "Extensible exceptions for Haskell")
     (description
      "This package provides extensible exceptions for both new and old
@@ -1358,7 +1359,7 @@ versions of GHC (i.e., < 6.10).")
     (origin
      (method url-fetch)
       (uri (string-append
-            "http://hackage.haskell.org/package/cabal-install/cabal-install-"
+            "https://hackage.haskell.org/package/cabal-install/cabal-install-"
             version
             ".tar.gz"))
       (sha256
@@ -1390,14 +1391,14 @@ installation of Haskell libraries and programs.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/mtl/mtl-"
+             "https://hackage.haskell.org/package/mtl/mtl-"
              version
              ".tar.gz"))
        (sha256
         (base32
          "1icdbj2rshzn0m1zz5wa7v3xvkf6qw811p4s7jgqwvx1ydwrvrfa"))))
     (build-system haskell-build-system)
-    (home-page "http://github.com/ekmett/mtl")
+    (home-page "https://github.com/ekmett/mtl")
     (synopsis
      "Monad classes, using functional dependencies")
     (description "Monad classes using functional dependencies, with instances
@@ -1416,7 +1417,7 @@ School of Functional Programming', 1995.  See
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/ghc-paths/ghc-paths-"
+             "https://hackage.haskell.org/package/ghc-paths/ghc-paths-"
              version
              ".tar.gz"))
        (sha256
@@ -1438,13 +1439,13 @@ School of Functional Programming', 1995.  See
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/utf8-string/utf8-string-"
+             "https://hackage.haskell.org/package/utf8-string/utf8-string-"
              version
              ".tar.gz"))
        (sha256
         (base32 "0h7imvxkahiy8pzr8cpsimifdfvv18lizrb33k6mnq70rcx9w2zv"))))
     (build-system haskell-build-system)
-    (home-page "http://github.com/glguy/utf8-string/")
+    (home-page "https://github.com/glguy/utf8-string/")
     (synopsis "Support for reading and writing UTF8 Strings")
     (description
      "A UTF8 layer for Strings.  The utf8-string package provides operations
@@ -1460,14 +1461,14 @@ UTF8 without truncation.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/setenv/setenv-"
+             "https://hackage.haskell.org/package/setenv/setenv-"
              version
              ".tar.gz"))
        (sha256
         (base32
          "0cnbgrvb9byyahb37zlqrj05rj25v190crgcw8wmlgf0mwwxyn73"))))
     (build-system haskell-build-system)
-    (home-page "http://hackage.haskell.org/package/setenv")
+    (home-page "https://hackage.haskell.org/package/setenv")
     (synopsis "Library for setting environment variables")
     (description "This package provides a Haskell library for setting
 environment variables.")
@@ -1480,7 +1481,7 @@ environment variables.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://hackage.haskell.org/package/X11/"
+       (uri (string-append "https://hackage.haskell.org/package/X11/"
                            "X11-" version ".tar.gz"))
        (sha256
         (base32 "1kzjcynm3rr83ihqx2y2d852jc49da4p18gv6jzm7g87z22x85jj"))))
@@ -1506,7 +1507,7 @@ bindings are a direct translation of the C bindings.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://hackage.haskell.org/package/X11-xft/"
+       (uri (string-append "https://hackage.haskell.org/package/X11-xft/"
                            "X11-xft-" version ".tar.gz"))
        (sha256
         (base32 "1lgqb0s2qfwwgbvwxhjbi23rbwamzdi0l0slfr20c3jpcbp3zfjf"))))
@@ -1520,7 +1521,7 @@ bindings are a direct translation of the C bindings.")
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (build-system haskell-build-system)
-    (home-page "http://hackage.haskell.org/package/X11-xft")
+    (home-page "https://hackage.haskell.org/package/X11-xft")
     (synopsis "Bindings to Xft")
     (description
      "Bindings to the Xft, X Free Type interface library, and some Xrender
@@ -1535,7 +1536,7 @@ parts.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/stringbuilder/stringbuilder-"
+             "https://hackage.haskell.org/package/stringbuilder/stringbuilder-"
              version
              ".tar.gz"))
        (sha256
@@ -1544,7 +1545,7 @@ parts.")
     (build-system haskell-build-system)
     (arguments `(#:tests? #f)) ; FIXME: circular dependencies with tests
                                ; enabled
-    (home-page "http://hackage.haskell.org/package/stringbuilder")
+    (home-page "https://hackage.haskell.org/package/stringbuilder")
     (synopsis "Writer monad for multi-line string literals")
     (description "This package provides a writer monad for multi-line string
 literals.")
@@ -1559,7 +1560,7 @@ literals.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/zlib/zlib-"
+             "https://hackage.haskell.org/package/zlib/zlib-"
              version
              ".tar.gz"))
        (sha256
@@ -1567,7 +1568,7 @@ literals.")
          "15hhsk7z3gvm7sz2ic2z1ca5c6rpsln2rr391mdbm1bxlzc1gmkm"))))
     (build-system haskell-build-system)
     (inputs `(("zlib" ,zlib)))
-    (home-page "http://hackage.haskell.org/package/zlib")
+    (home-page "https://hackage.haskell.org/package/zlib")
     (synopsis
      "Compression and decompression in the gzip and zlib formats")
     (description
@@ -1588,14 +1589,14 @@ access to the full zlib feature set.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/stm/stm-"
+             "https://hackage.haskell.org/package/stm/stm-"
              version
              ".tar.gz"))
        (sha256
         (base32
          "0gc8zvdijp3rwmidkpxv76b4i0dc8dw6nbd92rxl4vxl0655iysx"))))
     (build-system haskell-build-system)
-    (home-page "http://hackage.haskell.org/package/stm")
+    (home-page "https://hackage.haskell.org/package/stm")
     (synopsis "Software Transactional Memory")
     (description
      "A modular composable concurrency abstraction.")
@@ -1610,14 +1611,14 @@ access to the full zlib feature set.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/parallel/parallel-"
+             "https://hackage.haskell.org/package/parallel/parallel-"
              version
              ".tar.gz"))
        (sha256
         (base32
          "0hp6vf4zxsw6vz6lj505xihmnfhgjp39c9q7nyzlgcmps3xx6a5r"))))
     (build-system haskell-build-system)
-    (home-page "http://hackage.haskell.org/package/parallel")
+    (home-page "https://hackage.haskell.org/package/parallel")
     (synopsis "Parallel programming library")
     (description
      "This package provides a library for parallel programming.")
@@ -1632,7 +1633,7 @@ access to the full zlib feature set.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/text/text-"
+             "https://hackage.haskell.org/package/text/text-"
              version
              ".tar.gz"))
        (sha256
@@ -1662,7 +1663,7 @@ in terms of large data quantities and high speed.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/hashable/hashable-"
+             "https://hackage.haskell.org/package/hashable/hashable-"
              version
              ".tar.gz"))
        (sha256
@@ -1674,7 +1675,7 @@ in terms of large data quantities and high speed.")
     ;; these inputs are necessary to use this library
     (propagated-inputs
      `(("ghc-text" ,ghc-text)))
-    (home-page "http://github.com/tibbe/hashable")
+    (home-page "https://github.com/tibbe/hashable")
     (synopsis
      "Class for types that can be converted to a hash value")
     (description
@@ -1693,7 +1694,7 @@ combine hash values.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/HUnit/HUnit-"
+             "https://hackage.haskell.org/package/HUnit/HUnit-"
              version
              ".tar.gz"))
        (sha256
@@ -1716,13 +1717,13 @@ JUnit tool for Java.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/random/random-"
+             "https://hackage.haskell.org/package/random/random-"
              version
              ".tar.gz"))
        (sha256
         (base32 "0nis3lbkp8vfx8pkr6v7b7kr5m334bzb0fk9vxqklnp2aw8a865p"))))
     (build-system haskell-build-system)
-    (home-page "http://hackage.haskell.org/package/random")
+    (home-page "https://hackage.haskell.org/package/random")
     (synopsis "Random number library")
     (description "This package provides a basic random number generation
 library, including the ability to split random number generators.")
@@ -1737,7 +1738,7 @@ library, including the ability to split random number generators.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/primitive/primitive-"
+             "https://hackage.haskell.org/package/primitive/primitive-"
              version
              ".tar.gz"))
        (sha256
@@ -1758,7 +1759,7 @@ library, including the ability to split random number generators.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://hackage.haskell.org/package/test-framework/"
+       (uri (string-append "https://hackage.haskell.org/package/test-framework/"
                            "test-framework-" version ".tar.gz"))
        (sha256
         (base32
@@ -1793,7 +1794,7 @@ reporting and test statistics output.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://hackage.haskell.org/package/"
+       (uri (string-append "https://hackage.haskell.org/package/"
                            "test-framework-hunit/test-framework-hunit-"
                            version ".tar.gz"))
        (sha256
@@ -1817,7 +1818,7 @@ reporting and test statistics output.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://hackage.haskell.org/package/"
+       (uri (string-append "https://hackage.haskell.org/package/"
                            "test-framework-quickcheck2/"
                            "test-framework-quickcheck2-" version ".tar.gz"))
        (sha256
@@ -1852,7 +1853,7 @@ package.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/tf-random/tf-random-"
+             "https://hackage.haskell.org/package/tf-random/tf-random-"
              version
              ".tar.gz"))
        (sha256
@@ -1862,7 +1863,7 @@ package.")
     (propagated-inputs
      `(("ghc-primitive" ,ghc-primitive)
        ("ghc-random" ,ghc-random)))
-    (home-page "http://hackage.haskell.org/package/tf-random")
+    (home-page "https://hackage.haskell.org/package/tf-random")
     (synopsis "High-quality splittable pseudorandom number generator")
     (description "This package contains an implementation of a high-quality
 splittable pseudorandom number generator.  The generator is based on a
@@ -1879,7 +1880,7 @@ Hashing\" by Claessen, Pałka for details and the rationale of the design.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/transformers-base/transformers-base-"
+             "https://hackage.haskell.org/package/transformers-base/transformers-base-"
              version
              ".tar.gz"))
        (sha256
@@ -1891,7 +1892,7 @@ Hashing\" by Claessen, Pałka for details and the rationale of the design.")
     (inputs
      `(("ghc-transformers-compat" ,ghc-transformers-compat)))
     (home-page
-     "http://hackage.haskell.org/package/transformers-compat")
+     "https://hackage.haskell.org/package/transformers-compat")
     (synopsis
      "Backported transformer library")
     (description
@@ -1908,13 +1909,13 @@ compatibility to run on old versions of the platform.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/transformers-compat"
+             "https://hackage.haskell.org/package/transformers-compat"
              "/transformers-compat-" version ".tar.gz"))
        (sha256
         (base32
          "0lmg8ry6bgigb0v2lg0n74lxi8z5m85qq0qi4h1k9llyjb4in8ym"))))
     (build-system haskell-build-system)
-    (home-page "http://github.com/ekmett/transformers-compat/")
+    (home-page "https://github.com/ekmett/transformers-compat/")
     (synopsis "Small compatibility shim between transformers 0.3 and 0.4")
     (description "This package includes backported versions of types that were
 added to transformers in transformers 0.3 and 0.4 for users who need strict
@@ -1930,7 +1931,7 @@ but also need those types.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/unix-time/unix-time-"
+             "https://hackage.haskell.org/package/unix-time/unix-time-"
              version
              ".tar.gz"))
        (sha256
@@ -1943,7 +1944,7 @@ but also need those types.")
     (propagated-inputs
      `(("ghc-old-time" ,ghc-old-time)
        ("ghc-old-locale" ,ghc-old-locale)))
-    (home-page "http://hackage.haskell.org/package/unix-time")
+    (home-page "https://hackage.haskell.org/package/unix-time")
     (synopsis "Unix time parser/formatter and utilities")
     (description "This library provides fast parsing and formatting utilities
 for Unix time in Haskell.")
@@ -1957,7 +1958,7 @@ for Unix time in Haskell.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/unix-compat/unix-compat-"
+             "https://hackage.haskell.org/package/unix-compat/unix-compat-"
              version
              ".tar.gz"))
        (sha256
@@ -1965,7 +1966,7 @@ for Unix time in Haskell.")
          "0jxk7j5pz2kgfpqr4hznndjg31pqj5xg2qfc5308fcn9xyg1myps"))))
     (build-system haskell-build-system)
     (home-page
-     "http://github.com/jystic/unix-compat")
+     "https://github.com/jystic/unix-compat")
     (synopsis "Portable POSIX-compatibility layer")
     (description
      "This package provides portable implementations of parts of the unix
@@ -1981,7 +1982,7 @@ isn't available, portable implementations are used.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/http-types/http-types-"
+             "https://hackage.haskell.org/package/http-types/http-types-"
              version
              ".tar.gz"))
        (sha256
@@ -2009,7 +2010,7 @@ both client and server code).")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://hackage.haskell.org/package/indents/indents-"
+                    "https://hackage.haskell.org/package/indents/indents-"
                     version ".tar.gz"))
               (sha256
                (base32
@@ -2035,7 +2036,7 @@ lines continued at an indented level below.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/iproute/iproute-"
+             "https://hackage.haskell.org/package/iproute/iproute-"
              version
              ".tar.gz"))
        (sha256
@@ -2065,7 +2066,7 @@ removed.  Both IPv4 and IPv6 are supported.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/regex-base/regex-base-"
+             "https://hackage.haskell.org/package/regex-base/regex-base-"
              version
              ".tar.gz"))
        (sha256
@@ -2089,7 +2090,7 @@ regex-posix, regex-pcre, regex-parsec, regex-tdfa, regex-dfa.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/regex-posix/regex-posix-"
+             "https://hackage.haskell.org/package/regex-posix/regex-posix-"
              version
              ".tar.gz"))
        (sha256
@@ -2112,7 +2113,7 @@ Haskell library @code{regex-base}.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/regex-compat/regex-compat-"
+             "https://hackage.haskell.org/package/regex-compat/regex-compat-"
              version
              ".tar.gz"))
        (sha256
@@ -2136,7 +2137,7 @@ Haskell library @code{regex-base}.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/regex-tdfa-rc/regex-tdfa-rc-"
+             "https://hackage.haskell.org/package/regex-tdfa-rc/regex-tdfa-rc-"
              version
              ".tar.gz"))
        (sha256
@@ -2149,7 +2150,7 @@ Haskell library @code{regex-base}.")
     (inputs
      `(("ghc-mtl" ,ghc-mtl)))
     (home-page
-     "http://hackage.haskell.org/package/regex-tdfa")
+     "https://hackage.haskell.org/package/regex-tdfa")
     (synopsis "Tagged DFA regex engine for Haskell")
     (description "A new all-Haskell \"tagged\" DFA regex engine, inspired by
 @code{libtre} (fork by Roman Cheplyaka).")
@@ -2163,7 +2164,7 @@ Haskell library @code{regex-base}.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/parsers/parsers-"
+             "https://hackage.haskell.org/package/parsers/parsers-"
              version
              ".tar.gz"))
        (sha256
@@ -2181,7 +2182,7 @@ Haskell library @code{regex-base}.")
     (inputs
      `(("ghc-text" ,ghc-text)
        ("ghc-unordered-containers" ,ghc-unordered-containers)))
-    (home-page "http://github.com/ekmett/parsers/")
+    (home-page "https://github.com/ekmett/parsers/")
     (synopsis "Parsing combinators")
     (description "This library provides convenient combinators for working
 with and building parsing combinator libraries.  Given a few simple instances,
@@ -2198,7 +2199,7 @@ the parsers provided by @code{parsec}, @code{attoparsec} and @code{base}'s
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/trifecta/trifecta-"
+             "https://hackage.haskell.org/package/trifecta/trifecta-"
              version
              ".tar.gz"))
        (sha256
@@ -2226,7 +2227,7 @@ the parsers provided by @code{parsec}, @code{attoparsec} and @code{base}'s
        ("ghc-parsers" ,ghc-parsers)
        ("ghc-unordered-containers" ,ghc-unordered-containers)
        ("ghc-utf8-string" ,ghc-utf8-string)))
-    (home-page "http://github.com/ekmett/trifecta/")
+    (home-page "https://github.com/ekmett/trifecta/")
     (synopsis "Parser combinator library with convenient diagnostics")
     (description "Trifecta is a modern parser combinator library for Haskell,
 with slicing and Clang-style colored diagnostics.")
@@ -2240,7 +2241,7 @@ with slicing and Clang-style colored diagnostics.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/attoparsec/attoparsec-"
+             "https://hackage.haskell.org/package/attoparsec/attoparsec-"
              version
              ".tar.gz"))
        (sha256
@@ -2271,7 +2272,7 @@ complicated text/binary file formats.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/css-text/css-text-"
+             "https://hackage.haskell.org/package/css-text/css-text-"
              version
              ".tar.gz"))
        (sha256
@@ -2297,7 +2298,7 @@ Haskell.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/zip-archive/zip-archive-"
+             "https://hackage.haskell.org/package/zip-archive/zip-archive-"
              version
              ".tar.gz"))
        (sha256
@@ -2327,7 +2328,7 @@ modifying, and extracting files from zip archives in Haskell.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/distributive/distributive-"
+             "https://hackage.haskell.org/package/distributive/distributive-"
              version
              ".tar.gz"))
        (sha256
@@ -2339,7 +2340,7 @@ modifying, and extracting files from zip archives in Haskell.")
     (propagated-inputs
      `(("ghc-tagged" ,ghc-tagged)
        ("ghc-transformers-compat" ,ghc-transformers-compat)))
-    (home-page "http://github.com/ekmett/distributive/")
+    (home-page "https://github.com/ekmett/distributive/")
     (synopsis "Distributive functors for Haskell")
     (description "This package provides distributive functors for Haskell.
 Dual to @code{Traversable}.")
@@ -2353,14 +2354,14 @@ Dual to @code{Traversable}.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/cereal/cereal-"
+             "https://hackage.haskell.org/package/cereal/cereal-"
              version
              ".tar.gz"))
        (sha256
         (base32
          "15rhfn9hrjm01ksh9xpz9syxsp9vkvpp6b736iqq38wv2wb7416z"))))
     (build-system haskell-build-system)
-    (home-page "http://hackage.haskell.org/package/cereal")
+    (home-page "https://hackage.haskell.org/package/cereal")
     (synopsis "Binary serialization library")
     (description "This package provides a binary serialization library,
 similar to @code{binary}, that introduces an @code{isolate} primitive for
@@ -2375,7 +2376,7 @@ parser isolation, and labeled blocks for better error messages.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/comonad/comonad-"
+             "https://hackage.haskell.org/package/comonad/comonad-"
              version
              ".tar.gz"))
        (sha256
@@ -2392,7 +2393,7 @@ parser isolation, and labeled blocks for better error messages.")
      `(("ghc-semigroups" ,ghc-semigroups)
        ("ghc-tagged" ,ghc-tagged)
        ("ghc-contravariant" ,ghc-contravariant)))
-    (home-page "http://github.com/ekmett/comonad/")
+    (home-page "https://github.com/ekmett/comonad/")
     (synopsis "Comonads for Haskell")
     (description "This library provides @code{Comonad}s for Haskell.")
     (license license:bsd-3)))
@@ -2405,7 +2406,7 @@ parser isolation, and labeled blocks for better error messages.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/hscolour/hscolour-"
+             "https://hackage.haskell.org/package/hscolour/hscolour-"
              version
              ".tar.gz"))
        (sha256
@@ -2429,7 +2430,7 @@ and mIRC chat codes.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/polyparse/polyparse-"
+             "https://hackage.haskell.org/package/polyparse/polyparse-"
              version
              ".tar.gz"))
        (sha256
@@ -2459,7 +2460,7 @@ Strings.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/extra/extra-"
+             "https://hackage.haskell.org/package/extra/extra-"
              version
              ".tar.gz"))
        (sha256
@@ -2483,7 +2484,7 @@ this package makes them available back to GHC 7.2.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/profunctors/profunctors-"
+             "https://hackage.haskell.org/package/profunctors/profunctors-"
              version
              ".tar.gz"))
        (sha256
@@ -2495,7 +2496,7 @@ this package makes them available back to GHC 7.2.")
     (inputs
      `(("ghc-comonad" ,ghc-comonad)
        ("ghc-tagged" ,ghc-tagged)))
-    (home-page "http://github.com/ekmett/profunctors/")
+    (home-page "https://github.com/ekmett/profunctors/")
     (synopsis "Profunctors for Haskell")
     (description "This library provides profunctors for Haskell.")
     (license license:bsd-3)))
@@ -2508,7 +2509,7 @@ this package makes them available back to GHC 7.2.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/reducers/reducers-"
+             "https://hackage.haskell.org/package/reducers/reducers-"
              version
              ".tar.gz"))
        (sha256
@@ -2523,7 +2524,7 @@ this package makes them available back to GHC 7.2.")
        ("ghc-text" ,ghc-text)
        ("ghc-unordered-containers" ,ghc-unordered-containers)
        ("ghc-semigroups" ,ghc-semigroups)))
-    (home-page "http://github.com/ekmett/reducers/")
+    (home-page "https://github.com/ekmett/reducers/")
     (synopsis "Semigroups, specialized containers and a general map/reduce framework")
     (description "This library provides various semigroups, specialized
 containers and a general map/reduce framework for Haskell.")
@@ -2537,7 +2538,7 @@ containers and a general map/reduce framework for Haskell.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/appar/appar-"
+             "https://hackage.haskell.org/package/appar/appar-"
              version
              ".tar.gz"))
        (sha256
@@ -2545,7 +2546,7 @@ containers and a general map/reduce framework for Haskell.")
          "09jb9ij78fdkz2qk66rw99q19qnm504dpv0yq0pjsl6xwjmndsjq"))))
     (build-system haskell-build-system)
     (home-page
-     "http://hackage.haskell.org/package/appar")
+     "https://hackage.haskell.org/package/appar")
     (synopsis "Simple applicative parser")
     (description "This package provides a simple applicative parser in Parsec
 style.")
@@ -2559,7 +2560,7 @@ style.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/safe/safe-"
+             "https://hackage.haskell.org/package/safe/safe-"
              version
              ".tar.gz"))
        (sha256
@@ -2581,7 +2582,7 @@ exceptions.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/generic-deriving/generic-deriving-"
+             "https://hackage.haskell.org/package/generic-deriving/generic-deriving-"
              version
              ".tar.gz"))
        (sha256
@@ -2602,7 +2603,7 @@ deriving mechanism in Haskell to arbitrary classes.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/pcre-light/pcre-light-"
+             "https://hackage.haskell.org/package/pcre-light/pcre-light-"
              version
              ".tar.gz"))
        (sha256
@@ -2627,7 +2628,7 @@ syntax and semantics as Perl 5.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/logict/logict-"
+             "https://hackage.haskell.org/package/logict/logict-"
              version
              ".tar.gz"))
        (sha256
@@ -2652,7 +2653,7 @@ online}.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/xml/xml-"
+             "https://hackage.haskell.org/package/xml/xml-"
              version
              ".tar.gz"))
        (sha256
@@ -2674,7 +2675,7 @@ online}.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/exceptions/exceptions-"
+             "https://hackage.haskell.org/package/exceptions/exceptions-"
              version
              ".tar.gz"))
        (sha256
@@ -2686,7 +2687,7 @@ online}.")
      `(("ghc-stm" ,ghc-stm)
        ("ghc-mtl" ,ghc-mtl)
        ("ghc-transformers-compat" ,ghc-transformers-compat)))
-    (home-page "http://github.com/ekmett/exceptions/")
+    (home-page "https://github.com/ekmett/exceptions/")
     (synopsis "Extensible optionally-pure exceptions")
     (description "This library provides extensible optionally-pure exceptions
 for Haskell.")
@@ -2700,7 +2701,7 @@ for Haskell.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/temporary/temporary-"
+             "https://hackage.haskell.org/package/temporary/temporary-"
              version
              ".tar.gz"))
        (sha256
@@ -2725,7 +2726,7 @@ installed.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/temporary-rc/temporary-rc-"
+             "https://hackage.haskell.org/package/temporary-rc/temporary-rc-"
              version
              ".tar.gz"))
        (sha256
@@ -2754,7 +2755,7 @@ This is a better maintained fork of the \"temporary\" package.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/smallcheck/smallcheck-"
+             "https://hackage.haskell.org/package/smallcheck/smallcheck-"
              version
              ".tar.gz"))
        (sha256
@@ -2781,7 +2782,7 @@ automatically by SmallCheck.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/tasty-ant-xml/tasty-ant-xml-"
+             "https://hackage.haskell.org/package/tasty-ant-xml/tasty-ant-xml-"
              version
              ".tar.gz"))
        (sha256
@@ -2797,7 +2798,7 @@ automatically by SmallCheck.")
        ("ghc-tagged" ,ghc-tagged)
        ("ghc-tasty" ,ghc-tasty)))
     (home-page
-     "http://github.com/ocharles/tasty-ant-xml")
+     "https://github.com/ocharles/tasty-ant-xml")
     (synopsis
      "Render tasty output to XML for Jenkins")
     (description
@@ -2814,7 +2815,7 @@ framework.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/tasty-smallcheck/tasty-smallcheck-"
+             "https://hackage.haskell.org/package/tasty-smallcheck/tasty-smallcheck-"
              version
              ".tar.gz"))
        (sha256
@@ -2840,7 +2841,7 @@ Haskell test framework.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/silently/silently-"
+             "https://hackage.haskell.org/package/silently/silently-"
              version
              ".tar.gz"))
        (sha256
@@ -2864,7 +2865,7 @@ writing to stdout and other handles.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/"
+             "https://hackage.haskell.org/package/"
              "quickcheck-instances/quickcheck-instances-"
              version ".tar.gz"))
        (sha256
@@ -2893,7 +2894,7 @@ provided by the Haskell Platform.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/quickcheck-unicode/quickcheck-unicode-"
+             "https://hackage.haskell.org/package/quickcheck-unicode/quickcheck-unicode-"
              version
              ".tar.gz"))
        (sha256
@@ -2916,7 +2917,7 @@ testing Unicode-related software.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/quickcheck-io/quickcheck-io-"
+             "https://hackage.haskell.org/package/quickcheck-io/quickcheck-io-"
              version
              ".tar.gz"))
        (sha256
@@ -2942,7 +2943,7 @@ use HUnit assertions as QuickCheck properties.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/QuickCheck/QuickCheck-"
+             "https://hackage.haskell.org/package/QuickCheck/QuickCheck-"
              version
              ".tar.gz"))
        (sha256
@@ -2972,7 +2973,7 @@ use HUnit assertions as QuickCheck properties.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/case-insensitive/case-insensitive-"
+             "https://hackage.haskell.org/package/case-insensitive/case-insensitive-"
              version
              ".tar.gz"))
        (sha256
@@ -3006,7 +3007,7 @@ to cases.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/syb/syb-"
+             "https://hackage.haskell.org/package/syb/syb-"
              version
              ".tar.gz"))
        (sha256
@@ -3036,7 +3037,7 @@ variety of traversals.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/fgl/fgl-"
+             "https://hackage.haskell.org/package/fgl/fgl-"
              version
              ".tar.gz"))
        (sha256
@@ -3060,7 +3061,7 @@ encourages inductive, recursive definitions of graph algorithms.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://hackage.haskell.org/package/ChasingBottoms/"
+       (uri (string-append "https://hackage.haskell.org/package/ChasingBottoms/"
                            "ChasingBottoms-" version ".tar.gz"))
        (sha256
         (base32
@@ -3078,7 +3079,7 @@ encourages inductive, recursive definitions of graph algorithms.")
        ("ghc-quickcheck" ,ghc-quickcheck)
        ("ghc-random" ,ghc-random)
        ("ghc-syb" ,ghc-syb)))
-    (home-page "http://hackage.haskell.org/package/ChasingBottoms")
+    (home-page "https://hackage.haskell.org/package/ChasingBottoms")
     (synopsis "Testing of partial and infinite values in Haskell")
     (description
      ;; FIXME: There should be a @comma{} in the uref text, but it is not
@@ -3100,7 +3101,7 @@ Partial and Infinite Values\"}.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/unordered-containers"
+             "https://hackage.haskell.org/package/unordered-containers"
              "/unordered-containers-" version ".tar.gz"))
        (sha256
         (base32
@@ -3133,7 +3134,7 @@ and high speed.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/uniplate/uniplate-"
+             "https://hackage.haskell.org/package/uniplate/uniplate-"
              version
              ".tar.gz"))
        (sha256
@@ -3159,7 +3160,7 @@ work, but is substantially simpler and faster.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/base64-bytestring/base64-bytestring-"
+             "https://hackage.haskell.org/package/base64-bytestring/base64-bytestring-"
              version
              ".tar.gz"))
        (sha256
@@ -3181,7 +3182,7 @@ Haskell @code{ByteString}s.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/annotated-wl-pprint"
+             "https://hackage.haskell.org/package/annotated-wl-pprint"
              "/annotated-wl-pprint-" version
              ".tar.gz"))
        (sha256
@@ -3205,13 +3206,13 @@ a variety of ways.")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://hackage.haskell.org/package/wl-pprint/wl-pprint-"
+                    "https://hackage.haskell.org/package/wl-pprint/wl-pprint-"
                     version ".tar.gz"))
               (sha256
                (base32
                 "166zvk4zwn2zaa9kx66m1av38m34qp6h4i65bri2sfnxgvx0700r"))))
     (build-system haskell-build-system)
-    (home-page "http://hackage.haskell.org/package/wl-pprint")
+    (home-page "https://hackage.haskell.org/package/wl-pprint")
     (synopsis "Wadler/Leijen pretty printer")
     (description
      "This is a pretty printing library based on Wadler's paper @i{A Prettier
@@ -3227,7 +3228,7 @@ instances of the @code{Pretty} class.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/ansi-wl-pprint/ansi-wl-pprint-"
+             "https://hackage.haskell.org/package/ansi-wl-pprint/ansi-wl-pprint-"
              version
              ".tar.gz"))
        (sha256
@@ -3236,7 +3237,7 @@ instances of the @code{Pretty} class.")
     (build-system haskell-build-system)
     (propagated-inputs
      `(("ghc-ansi-terminal" ,ghc-ansi-terminal)))
-    (home-page "http://github.com/ekmett/ansi-wl-pprint")
+    (home-page "https://github.com/ekmett/ansi-wl-pprint")
     (synopsis "Wadler/Leijen Pretty Printer for colored ANSI terminal output")
     (description "This is a pretty printing library based on Wadler's paper
 \"A Prettier Printer\".  It has been enhanced with support for ANSI terminal
@@ -3252,7 +3253,7 @@ colored output using the ansi-terminal package.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/split/split-"
+             "https://hackage.haskell.org/package/split/split-"
              version
              ".tar.gz"))
        (sha256
@@ -3268,7 +3269,7 @@ colored output using the ansi-terminal package.")
     (build-system haskell-build-system)
     (inputs
      `(("ghc-quickcheck" ,ghc-quickcheck)))
-    (home-page "http://hackage.haskell.org/package/split")
+    (home-page "https://hackage.haskell.org/package/split")
     (synopsis "Combinator library for splitting lists")
     (description "This package provides a collection of Haskell functions for
 splitting lists into parts, akin to the @code{split} function found in several
@@ -3284,7 +3285,7 @@ mainstream languages.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/parsec/parsec-"
+             "https://hackage.haskell.org/package/parsec/parsec-"
              version
              ".tar.gz"))
        (sha256
@@ -3316,7 +3317,7 @@ is also parametric in the input stream type.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/vector/vector-"
+             "https://hackage.haskell.org/package/vector/vector-"
              version
              ".tar.gz"))
        (sha256
@@ -3345,7 +3346,7 @@ optimisation framework.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/"
+             "https://hackage.haskell.org/package/"
              "vector-binary-instances/vector-binary-instances-"
              version ".tar.gz"))
        (sha256
@@ -3374,7 +3375,7 @@ boxed and storable vectors.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/network/network-"
+             "https://hackage.haskell.org/package/network/network-"
              version
              ".tar.gz"))
        (sha256
@@ -3400,7 +3401,7 @@ boxed and storable vectors.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/network-uri/network-uri-"
+             "https://hackage.haskell.org/package/network-uri/network-uri-"
              version
              ".tar.gz"))
        (sha256
@@ -3430,7 +3431,7 @@ package into this package.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/ansi-terminal/ansi-terminal-"
+             "https://hackage.haskell.org/package/ansi-terminal/ansi-terminal-"
              version
              ".tar.gz"))
        (sha256
@@ -3453,7 +3454,7 @@ cursor, and changing the title.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/HTTP/HTTP-"
+             "https://hackage.haskell.org/package/HTTP/HTTP-"
              version
              ".tar.gz"))
        (sha256
@@ -3486,7 +3487,7 @@ responses coming back.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/hspec/hspec-"
+             "https://hackage.haskell.org/package/hspec/hspec-"
              version
              ".tar.gz"))
        (sha256
@@ -3514,7 +3515,7 @@ Haskell, inspired by the Ruby library RSpec.")
     (version "0.3.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "hspec-contrib/hspec-contrib-"
                                   version ".tar.gz"))
               (sha256
@@ -3540,7 +3541,7 @@ Haskell, inspired by the Ruby library RSpec.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/hspec-expectations/hspec-expectations-"
+             "https://hackage.haskell.org/package/hspec-expectations/hspec-expectations-"
              version
              ".tar.gz"))
        (sha256
@@ -3562,7 +3563,7 @@ Haskell, inspired by the Ruby library RSpec.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/hspec-discover/hspec-discover-"
+             "https://hackage.haskell.org/package/hspec-discover/hspec-discover-"
              version
              ".tar.gz"))
        (sha256
@@ -3586,7 +3587,7 @@ runs Hspec tests.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/hspec-core/hspec-core-"
+             "https://hackage.haskell.org/package/hspec-core/hspec-core-"
              version
              ".tar.gz"))
        (sha256
@@ -3618,7 +3619,7 @@ be used to extend Hspec's functionality.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/hspec-meta/hspec-meta-"
+             "https://hackage.haskell.org/package/hspec-meta/hspec-meta-"
              version
              ".tar.gz"))
        (sha256
@@ -3648,7 +3649,7 @@ used to test the in-development version of Hspec.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/vault/vault-"
+             "https://hackage.haskell.org/package/vault/vault-"
              version
              ".tar.gz"))
        (sha256
@@ -3677,7 +3678,7 @@ representing a store for a single element.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/mmorph/mmorph-"
+             "https://hackage.haskell.org/package/mmorph/mmorph-"
              version
              ".tar.gz"))
        (sha256
@@ -3685,7 +3686,7 @@ representing a store for a single element.")
          "0k5zlzmnixfwcjrqvhgi3i6xg532b0gsjvc39v5jigw69idndqr2"))))
     (build-system haskell-build-system)
     (home-page
-     "http://hackage.haskell.org/package/mmorph")
+     "https://hackage.haskell.org/package/mmorph")
     (synopsis "Monad morphisms")
     (description
      "This library provides monad morphism utilities, most commonly used for
@@ -3700,7 +3701,7 @@ manipulating monad transformer stacks.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/monad-control"
+             "https://hackage.haskell.org/package/monad-control"
              "/monad-control-" version ".tar.gz"))
        (sha256
         (base32
@@ -3726,7 +3727,7 @@ a subset of @code{MonadBase} into which generic control operations such as
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/byteorder/byteorder-"
+             "https://hackage.haskell.org/package/byteorder/byteorder-"
              version
              ".tar.gz"))
        (sha256
@@ -3750,7 +3751,7 @@ system.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/base-compat/base-compat-"
+             "https://hackage.haskell.org/package/base-compat/base-compat-"
              version
              ".tar.gz"))
        (sha256
@@ -3775,7 +3776,7 @@ pragmas in your code.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/blaze-builder/blaze-builder-"
+             "https://hackage.haskell.org/package/blaze-builder/blaze-builder-"
              version
              ".tar.gz"))
        (sha256
@@ -3786,7 +3787,7 @@ pragmas in your code.")
     (propagated-inputs
      `(("ghc-text" ,ghc-text)
        ("ghc-utf8-string" ,ghc-utf8-string)))
-    (home-page "http://github.com/lpsmith/blaze-builder")
+    (home-page "https://github.com/lpsmith/blaze-builder")
     (synopsis "Efficient buffered output")
     (description "This library provides an implementation of the older
 @code{blaze-builder} interface in terms of the new builder that shipped with
@@ -3803,7 +3804,7 @@ interoperate with code that uses the new implementation.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/blaze-markup/blaze-markup-"
+             "https://hackage.haskell.org/package/blaze-markup/blaze-markup-"
              version
              ".tar.gz"))
        (sha256
@@ -3828,7 +3829,7 @@ library for Haskell.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/blaze-html/blaze-html-"
+             "https://hackage.haskell.org/package/blaze-html/blaze-html-"
              version
              ".tar.gz"))
        (sha256
@@ -3853,7 +3854,7 @@ library for Haskell.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/easy-file/easy-file-"
+             "https://hackage.haskell.org/package/easy-file/easy-file-"
              version
              ".tar.gz"))
        (sha256
@@ -3861,7 +3862,7 @@ library for Haskell.")
          "0v75081bx4qzlqy29hh639nzlr7dncwza3qxbzm9njc4jarf31pz"))))
     (build-system haskell-build-system)
     (home-page
-     "http://github.com/kazu-yamamoto/easy-file")
+     "https://github.com/kazu-yamamoto/easy-file")
     (synopsis "File handling library for Haskell")
     (description "This library provides file handling utilities for Haskell.")
     (license license:bsd-3)))
@@ -3874,7 +3875,7 @@ library for Haskell.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/async/async-"
+             "https://hackage.haskell.org/package/async/async-"
              version
              ".tar.gz"))
        (sha256
@@ -3903,7 +3904,7 @@ will eventually deliver a value of type @code{a}.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/fingertree/fingertree-"
+             "https://hackage.haskell.org/package/fingertree/fingertree-"
              version
              ".tar.gz"))
        (sha256
@@ -3911,7 +3912,7 @@ will eventually deliver a value of type @code{a}.")
          "1w6x3kp3by5yjmam6wlrf9vap5l5rrqaip0djbrdp0fpf2imn30n"))))
     (build-system haskell-build-system)
     (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
-    (home-page "http://hackage.haskell.org/package/fingertree")
+    (home-page "https://hackage.haskell.org/package/fingertree")
     (synopsis "Generic finger-tree structure")
     (description "This library provides finger trees, a general sequence
 representation with arbitrary annotations, for use as a base for
@@ -3928,7 +3929,7 @@ simple general-purpose data structure\".")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/optparse-applicative"
+             "https://hackage.haskell.org/package/optparse-applicative"
              "/optparse-applicative-" version ".tar.gz"))
        (sha256
         (base32
@@ -3951,7 +3952,7 @@ command line options in Haskell.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/base-orphans/base-orphans-"
+             "https://hackage.haskell.org/package/base-orphans/base-orphans-"
              version
              ".tar.gz"))
        (sha256
@@ -3975,7 +3976,7 @@ available in later versions of base to a wider (older) range of compilers.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/auto-update/auto-update-"
+             "https://hackage.haskell.org/package/auto-update/auto-update-"
              version
              ".tar.gz"))
        (sha256
@@ -3996,7 +3997,7 @@ periodic, on-demand actions in Haskell.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/tagged/tagged-"
+             "https://hackage.haskell.org/package/tagged/tagged-"
              version
              ".tar.gz"))
        (sha256
@@ -4017,7 +4018,7 @@ having to unsafely pass dummy arguments.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/unbounded-delays/unbounded-delays-"
+             "https://hackage.haskell.org/package/unbounded-delays/unbounded-delays-"
              version
              ".tar.gz"))
        (sha256
@@ -4043,7 +4044,7 @@ unbounded @code{Integer} type.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/"
+             "https://hackage.haskell.org/package/"
              "clock/"
              "clock-" version ".tar.gz"))
        (sha256
@@ -4065,7 +4066,7 @@ timer functions of different operating systems via a unified API.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/"
+             "https://hackage.haskell.org/package/"
              "clock/"
              "clock-" version ".tar.gz"))
        (sha256
@@ -4088,7 +4089,7 @@ timer functions of different operating systems via a unified API.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/charset/charset-"
+             "https://hackage.haskell.org/package/charset/charset-"
              version
              ".tar.gz"))
        (sha256
@@ -4099,7 +4100,7 @@ timer functions of different operating systems via a unified API.")
      `(("ghc-semigroups" ,ghc-semigroups)))
     (inputs
      `(("ghc-unordered-containers" ,ghc-unordered-containers)))
-    (home-page "http://github.com/ekmett/charset")
+    (home-page "https://github.com/ekmett/charset")
     (synopsis "Fast unicode character sets for Haskell")
     (description "This package provides fast unicode character sets for
 Haskell, based on complemented PATRICIA tries.")
@@ -4113,14 +4114,14 @@ Haskell, based on complemented PATRICIA tries.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/bytestring-builder"
+             "https://hackage.haskell.org/package/bytestring-builder"
              "/bytestring-builder-" version ".tar.gz"))
        (sha256
         (base32
          "1mkg24zl0rapb3gqzkyj5ibp07wx3yzd72hmfczssl0is63rjhww"))))
     (build-system haskell-build-system)
     (arguments `(#:haddock? #f)) ; Package contains no documentation.
-    (home-page "http://hackage.haskell.org/package/bytestring-builder")
+    (home-page "https://hackage.haskell.org/package/bytestring-builder")
     (synopsis "The new bytestring builder, packaged outside of GHC")
     (description "This package provides the bytestring builder that is
 debuting in bytestring-0.10.4.0, which should be shipping with GHC 7.8.
@@ -4135,7 +4136,7 @@ Compatibility package for older packages.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/nats/nats-"
+             "https://hackage.haskell.org/package/nats/nats-"
              version
              ".tar.gz"))
        (sha256
@@ -4158,7 +4159,7 @@ Compatibility package for older packages.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/void/void-"
+             "https://hackage.haskell.org/package/void/void-"
              version
              ".tar.gz"))
        (sha256
@@ -4169,7 +4170,7 @@ Compatibility package for older packages.")
      `(("ghc-semigroups" ,ghc-semigroups)))
     (inputs
      `(("ghc-hashable" ,ghc-hashable)))
-    (home-page "http://github.com/ekmett/void")
+    (home-page "https://github.com/ekmett/void")
     (synopsis
      "Logically uninhabited data type")
     (description
@@ -4185,7 +4186,7 @@ given term should not exist.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/kan-extensions/kan-extensions-"
+             "https://hackage.haskell.org/package/kan-extensions/kan-extensions-"
              version
              ".tar.gz"))
        (sha256
@@ -4202,7 +4203,7 @@ given term should not exist.")
        ("ghc-mtl" ,ghc-mtl)
        ("ghc-semigroupoids" ,ghc-semigroupoids)
        ("ghc-tagged" ,ghc-tagged)))
-    (home-page "http://github.com/ekmett/kan-extensions/")
+    (home-page "https://github.com/ekmett/kan-extensions/")
     (synopsis "Kan extensions library")
     (description "This library provides Kan extensions, Kan lifts, various
 forms of the Yoneda lemma, and (co)density (co)monads for Haskell.")
@@ -4216,7 +4217,7 @@ forms of the Yoneda lemma, and (co)density (co)monads for Haskell.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/StateVar/StateVar-"
+             "https://hackage.haskell.org/package/StateVar/StateVar-"
              version
              ".tar.gz"))
        (sha256
@@ -4225,7 +4226,7 @@ forms of the Yoneda lemma, and (co)density (co)monads for Haskell.")
     (build-system haskell-build-system)
     (propagated-inputs
      `(("ghc-stm" ,ghc-stm)))
-    (home-page "http://hackage.haskell.org/package/StateVar")
+    (home-page "https://hackage.haskell.org/package/StateVar")
     (synopsis "State variables for Haskell")
     (description "This package provides state variables, which are references
 in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.")
@@ -4239,7 +4240,7 @@ in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/lens/lens-"
+             "https://hackage.haskell.org/package/lens/lens-"
              version
              ".tar.gz"))
        (sha256
@@ -4274,7 +4275,7 @@ in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.")
        ("ghc-nats" ,ghc-nats)
        ("ghc-simple-reflect" ,ghc-simple-reflect)
        ("hlint" ,hlint)))
-    (home-page "http://github.com/ekmett/lens/")
+    (home-page "https://github.com/ekmett/lens/")
     (synopsis "Lenses, Folds and Traversals")
     (description "This library provides @code{Control.Lens}.  The combinators
 in @code{Control.Lens} provide a highly generic toolbox for composing families
@@ -4290,7 +4291,7 @@ indexed variants.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/tagsoup/tagsoup-"
+             "https://hackage.haskell.org/package/tagsoup/tagsoup-"
              version
              ".tar.gz"))
        (sha256
@@ -4319,7 +4320,7 @@ for screen-scraping.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/digest/digest-"
+             "https://hackage.haskell.org/package/digest/digest-"
              version
              ".tar.gz"))
        (sha256
@@ -4329,7 +4330,7 @@ for screen-scraping.")
     (inputs
      `(("zlib" ,zlib)))
     (home-page
-     "http://hackage.haskell.org/package/digest")
+     "https://hackage.haskell.org/package/digest")
     (synopsis
      "Various cryptographic hashes for bytestrings")
     (description
@@ -4346,7 +4347,7 @@ are implemented as FFI bindings to efficient code from zlib.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/cheapskate/cheapskate-"
+             "https://hackage.haskell.org/package/cheapskate/cheapskate-"
              version
              ".tar.gz"))
        (sha256
@@ -4366,7 +4367,7 @@ are implemented as FFI bindings to efficient code from zlib.")
        ("ghc-wai-extra" ,ghc-wai-extra)
        ("ghc-wai" ,ghc-wai)
        ("ghc-http-types" ,ghc-http-types)))
-    (home-page "http://github.com/jgm/cheapskate")
+    (home-page "https://github.com/jgm/cheapskate")
     (synopsis "Experimental markdown processor")
     (description "Cheapskate is an experimental Markdown processor in pure
 Haskell.  It aims to process Markdown efficiently and in the most forgiving
@@ -4383,7 +4384,7 @@ attacks.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/bifunctors/bifunctors-"
+             "https://hackage.haskell.org/package/bifunctors/bifunctors-"
              version
              ".tar.gz"))
        (sha256
@@ -4393,7 +4394,7 @@ attacks.")
     (inputs
      `(("ghc-tagged" ,ghc-tagged)
        ("ghc-semigroups" ,ghc-semigroups)))
-    (home-page "http://github.com/ekmett/bifunctors/")
+    (home-page "https://github.com/ekmett/bifunctors/")
     (synopsis "Bifunctors for Haskell")
     (description "This package provides bifunctors for Haskell.")
     (license license:bsd-3)))
@@ -4406,7 +4407,7 @@ attacks.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/semigroupoids/semigroupoids-"
+             "https://hackage.haskell.org/package/semigroupoids/semigroupoids-"
              version
              ".tar.gz"))
        (sha256
@@ -4424,7 +4425,7 @@ attacks.")
     (inputs
      `(("ghc-semigroups" ,ghc-semigroups)
        ("ghc-tagged" ,ghc-tagged)))
-    (home-page "http://github.com/ekmett/semigroupoids")
+    (home-page "https://github.com/ekmett/semigroupoids")
     (synopsis "Semigroupoids operations for Haskell")
     (description "This library provides a wide array of (semi)groupoids and
 operations for working with them.  A @code{Semigroupoid} is a @code{Category}
@@ -4444,7 +4445,7 @@ just a @code{Semigroup} are added.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/contravariant/contravariant-"
+             "https://hackage.haskell.org/package/contravariant/contravariant-"
              version
              ".tar.gz"))
        (sha256
@@ -4458,7 +4459,7 @@ just a @code{Semigroup} are added.")
     (inputs
      `(("ghc-semigroups" ,ghc-semigroups)))
     (home-page
-     "http://github.com/ekmett/contravariant/")
+     "https://github.com/ekmett/contravariant/")
     (synopsis "Contravariant functors")
     (description "Contravariant functors for Haskell.")
     (license license:bsd-3)))
@@ -4471,7 +4472,7 @@ just a @code{Semigroup} are added.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/semigroups/semigroups-"
+             "https://hackage.haskell.org/package/semigroups/semigroups-"
              version
              ".tar.gz"))
        (sha256
@@ -4485,7 +4486,7 @@ just a @code{Semigroup} are added.")
     (inputs
      `(("ghc-text" ,ghc-text)
        ("ghc-hashable" ,ghc-hashable)))
-    (home-page "http://github.com/ekmett/semigroups/")
+    (home-page "https://github.com/ekmett/semigroups/")
     (synopsis "Semigroup operations for Haskell")
     (description "This package provides semigroups for Haskell.  In
 mathematics, a semigroup is an algebraic structure consisting of a set
@@ -4504,7 +4505,7 @@ semigroup.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/free/free-"
+             "https://hackage.haskell.org/package/free/free-"
              version
              ".tar.gz"))
        (sha256
@@ -4522,7 +4523,7 @@ semigroup.")
        ("ghc-mtl" ,ghc-mtl)
        ("ghc-semigroupoids" ,ghc-semigroupoids)
        ("ghc-semigroups" ,ghc-semigroups)))
-    (home-page "http://github.com/ekmett/free/")
+    (home-page "https://github.com/ekmett/free/")
     (synopsis "Unrestricted monads for Haskell")
     (description "This library provides free monads, which are useful for many
 tree-like structures and domain specific languages.  If @code{f} is a
@@ -4541,7 +4542,7 @@ definition of @code{Monad}.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/adjunctions/adjunctions-"
+             "https://hackage.haskell.org/package/adjunctions/adjunctions-"
              version
              ".tar.gz"))
        (sha256
@@ -4560,7 +4561,7 @@ definition of @code{Monad}.")
        ("ghc-semigroupoids" ,ghc-semigroupoids)
        ("ghc-semigroups" ,ghc-semigroups)
        ("ghc-void" ,ghc-void)))
-    (home-page "http://github.com/ekmett/adjunctions/")
+    (home-page "https://github.com/ekmett/adjunctions/")
     (synopsis "Adjunctions and representable functors")
     (description "This library provides adjunctions and representable functors
 for Haskell.")
@@ -4574,7 +4575,7 @@ for Haskell.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/fast-logger/fast-logger-"
+             "https://hackage.haskell.org/package/fast-logger/fast-logger-"
              version
              ".tar.gz"))
        (sha256
@@ -4600,7 +4601,7 @@ for Haskell.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/doctest/doctest-"
+             "https://hackage.haskell.org/package/doctest/doctest-"
              version
              ".tar.gz"))
        (sha256
@@ -4635,7 +4636,7 @@ It is modeled after doctest for Python, see
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/lifted-base/lifted-base-"
+             "https://hackage.haskell.org/package/lifted-base/lifted-base-"
              version
              ".tar.gz"))
        (sha256
@@ -4666,7 +4667,7 @@ Kaseorg.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/word8/word8-"
+             "https://hackage.haskell.org/package/word8/word8-"
              version
              ".tar.gz"))
        (sha256
@@ -4675,7 +4676,7 @@ Kaseorg.")
     (build-system haskell-build-system)
     (inputs
      `(("ghc-hspec" ,ghc-hspec)))
-    (home-page "http://hackage.haskell.org/package/word8")
+    (home-page "https://hackage.haskell.org/package/word8")
     (synopsis "Word8 library for Haskell")
     (description "Word8 library to be used with @code{Data.ByteString}.")
     (license license:bsd-3)))
@@ -4688,7 +4689,7 @@ Kaseorg.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/stringsearch/stringsearch-"
+             "https://hackage.haskell.org/package/stringsearch/stringsearch-"
              version
              ".tar.gz"))
        (sha256
@@ -4711,7 +4712,7 @@ occurrences of a substring (the first in case of overlaps) with another.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/tasty-quickcheck/"
+             "https://hackage.haskell.org/package/tasty-quickcheck/"
              "tasty-quickcheck-" version ".tar.gz"))
        (sha256
         (base32
@@ -4740,7 +4741,7 @@ Haskell test framework.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/tasty-golden/tasty-golden-"
+             "https://hackage.haskell.org/package/tasty-golden/tasty-golden-"
              version
              ".tar.gz"))
        (sha256
@@ -4775,7 +4776,7 @@ the correct result for the test.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/tasty/tasty-"
+             "https://hackage.haskell.org/package/tasty/tasty-"
              version
              ".tar.gz"))
        (sha256
@@ -4807,7 +4808,7 @@ and any other types of tests into a single test suite.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/tasty-hunit/tasty-hunit-"
+             "https://hackage.haskell.org/package/tasty-hunit/tasty-hunit-"
              version
              ".tar.gz"))
        (sha256
@@ -4830,7 +4831,7 @@ test framework.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/cookie/cookie-"
+             "https://hackage.haskell.org/package/cookie/cookie-"
              version
              ".tar.gz"))
        (sha256
@@ -4848,7 +4849,7 @@ test framework.")
        ("ghc-tasty" ,ghc-tasty)
        ("ghc-tasty-hunit" ,ghc-tasty-hunit)
        ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
-    (home-page "http://github.com/snoyberg/cookie")
+    (home-page "https://github.com/snoyberg/cookie")
     (synopsis "HTTP cookie parsing and rendering")
     (description "HTTP cookie parsing and rendering library for Haskell.")
     (license license:bsd-3)))
@@ -4861,7 +4862,7 @@ test framework.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/scientific/scientific-"
+             "https://hackage.haskell.org/package/scientific/scientific-"
              version
              ".tar.gz"))
        (sha256
@@ -4897,7 +4898,7 @@ notation}.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/aeson/aeson-"
+             "https://hackage.haskell.org/package/aeson/aeson-"
              version
              ".tar.gz"))
        (sha256
@@ -4932,7 +4933,7 @@ naming: in Greek mythology, Aeson was the father of Jason.)")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://hackage.haskell.org/package/aeson-pretty/aeson-pretty-"
+                    "https://hackage.haskell.org/package/aeson-pretty/aeson-pretty-"
                     version ".tar.gz"))
               (sha256
                (base32
@@ -4946,7 +4947,7 @@ naming: in Greek mythology, Aeson was the father of Jason.)")
         ,ghc-unordered-containers)
        ("ghc-attoparsec" ,ghc-attoparsec)
        ("ghc-cmdargs" ,ghc-cmdargs)))
-    (home-page "http://github.com/informatikr/aeson-pretty")
+    (home-page "https://github.com/informatikr/aeson-pretty")
     (synopsis "JSON pretty-printing library and command-line tool")
     (description
      "This package provides a JSON pretty-printing library compatible with aeson
@@ -4966,7 +4967,7 @@ essentially the opposite of pretty-printing.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/wai/wai-"
+             "https://hackage.haskell.org/package/wai/wai-"
              version
              ".tar.gz"))
        (sha256
@@ -5000,7 +5001,7 @@ communication between web applications and web servers.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/wai-logger/wai-logger-"
+             "https://hackage.haskell.org/package/wai-logger/wai-logger-"
              version
              ".tar.gz"))
        (sha256
@@ -5021,7 +5022,7 @@ communication between web applications and web servers.")
        ("ghc-http-types" ,ghc-http-types)
        ("ghc-network" ,ghc-network)
        ("ghc-wai" ,ghc-wai)))
-    (home-page "http://hackage.haskell.org/package/wai-logger")
+    (home-page "https://hackage.haskell.org/package/wai-logger")
     (synopsis "Logging system for WAI")
     (description "This package provides the logging system for WAI.")
     (license license:bsd-3)))
@@ -5034,7 +5035,7 @@ communication between web applications and web servers.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://hackage.haskell.org/package/wai-extra/wai-extra-"
+             "https://hackage.haskell.org/package/wai-extra/wai-extra-"
              version
              ".tar.gz"))
        (sha256
@@ -5068,7 +5069,7 @@ communication between web applications and web servers.")
        ("ghc-aeson" ,ghc-aeson)
        ("ghc-hspec" ,ghc-hspec)
        ("ghc-hunit" ,ghc-hunit)))
-    (home-page "http://github.com/yesodweb/wai")
+    (home-page "https://github.com/yesodweb/wai")
     (synopsis "Some basic WAI handlers and middleware")
     (description "This library provides basic WAI handlers and middleware
 functionality.")
@@ -5080,7 +5081,7 @@ functionality.")
     (version "0.1.1.2")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "deepseq-generics/deepseq-generics-"
                                   version ".tar.gz"))
               (sha256
@@ -5113,7 +5114,7 @@ providing an 'rnf' implementation.")
     (version "1.12.4.7")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "pandoc-types/pandoc-types-"
                                   version ".tar.gz"))
               (sha256
@@ -5138,7 +5139,7 @@ building up, manipulating and serialising @code{Pandoc} structures.")
     (version "0.8.4")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "texmath/texmath-" version ".tar.gz"))
               (sha256
                (base32
@@ -5154,7 +5155,7 @@ building up, manipulating and serialising @code{Pandoc} structures.")
        ("ghc-parsec" ,ghc-parsec)
        ("ghc-mtl" ,ghc-mtl)
        ("ghc-pandoc-types" ,ghc-pandoc-types)))
-    (home-page "http://github.com/jgm/texmath")
+    (home-page "https://github.com/jgm/texmath")
     (synopsis "Conversion between formats used to represent mathematics")
     (description
      "The texmath library provides functions to read and write TeX math,
@@ -5171,7 +5172,7 @@ it can parse and apply LaTeX macros.")
     (version "0.94.4.8.8.35")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "regex-pcre-builtin/regex-pcre-builtin-"
                                   version ".tar.gz"))
               (sha256
@@ -5180,7 +5181,7 @@ it can parse and apply LaTeX macros.")
     (build-system haskell-build-system)
     (propagated-inputs
      `(("ghc-regex-base" ,ghc-regex-base)))
-    (home-page "http://hackage.haskell.org/package/regex-pcre")
+    (home-page "https://hackage.haskell.org/package/regex-pcre")
     (synopsis "Enhancement of the builtin Text.Regex library")
     (description
      "This package is an enhancement of the @code{Text.Regex} library,
@@ -5194,7 +5195,7 @@ providing the PCRE backend to accompany regex-base, with bundled code from
     (version "0.3.2")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "Diff/Diff-" version ".tar.gz"))
               (sha256
                (base32
@@ -5213,7 +5214,7 @@ and utilities for pretty printing.")
     (version "0.6")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "highlighting-kate/highlighting-kate-"
                                   version ".tar.gz"))
               (sha256
@@ -5228,7 +5229,7 @@ and utilities for pretty printing.")
        ("ghc-blaze-html" ,ghc-blaze-html)
        ("ghc-utf8-string" ,ghc-utf8-string)
        ("ghc-mtl" ,ghc-mtl)))
-    (home-page "http://github.com/jgm/highlighting-kate")
+    (home-page "https://github.com/jgm/highlighting-kate")
     (synopsis "Syntax highlighting library")
     (description
      "Highlighting-kate is a syntax highlighting library with support for
@@ -5245,7 +5246,7 @@ descriptions.")
     (version "0.4.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "cmark/cmark-" version ".tar.gz"))
               (sha256
                (base32
@@ -5270,14 +5271,14 @@ libcmark (0.21.0) and does not require prior installation of the C library.")
     (version "0.0.3")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "executable-path/executable-path-"
                                   version ".tar.gz"))
               (sha256
                (base32
                 "1jg58qf19qz93c60ryglcavwdcysz4fd4qn8kpw5im9w9kniawlc"))))
     (build-system haskell-build-system)
-    (home-page "http://hackage.haskell.org/package/executable-path")
+    (home-page "https://hackage.haskell.org/package/executable-path")
     (synopsis "Find out the full path of the executable")
     (description
      "The documentation of @code{System.Environment.getProgName} says that
@@ -5292,7 +5293,7 @@ as invoked.\" This library tries to provide the missing path.")
     (version "1.0.1.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "enclosed-exceptions/enclosed-exceptions-"
                                   version ".tar.gz"))
               (sha256
@@ -5321,7 +5322,7 @@ asynchronous exceptions.")
     (version "0.1.0.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "packedstring/packedstring-"
                                   version ".tar.gz"))
               (sha256
@@ -5338,7 +5339,7 @@ asynchronous exceptions.")
             (substitute* "packedstring.cabal"
               (("CPP") "CPP, StandaloneDeriving"))
             #t)))))
-    (home-page "http://hackage.haskell.org/package/packedstring")
+    (home-page "https://hackage.haskell.org/package/packedstring")
     (synopsis "Library for packed strings")
     (description
      "This deprecated library provides an implementation of packed strings.")
@@ -5350,7 +5351,7 @@ asynchronous exceptions.")
     (version "0.7.5")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "th-lift/th-lift-" version ".tar.gz"))
               (sha256
                (base32
@@ -5358,7 +5359,7 @@ asynchronous exceptions.")
     (build-system haskell-build-system)
     (propagated-inputs
      `(("ghc-packedstring" ,ghc-packedstring)))
-    (home-page "http://github.com/mboes/th-lift")
+    (home-page "https://github.com/mboes/th-lift")
     (synopsis "Derive Template Haskell's Lift class for datatypes")
     (description
      "This is a Haskell library to derive Template Haskell's Lift class for
@@ -5371,7 +5372,7 @@ datatypes.")
     (version "0.3.0.6")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "th-expand-syns/th-expand-syns-"
                                   version ".tar.gz"))
               (sha256
@@ -5380,7 +5381,7 @@ datatypes.")
     (build-system haskell-build-system)
     (propagated-inputs
      `(("ghc-syb" ,ghc-syb)))
-    (home-page "http://hackage.haskell.org/package/th-expand-syns")
+    (home-page "https://hackage.haskell.org/package/th-expand-syns")
     (synopsis "Expands type synonyms in Template Haskell ASTs")
     (description
      "This package enables users to expand type synonyms in Template Haskell
@@ -5393,7 +5394,7 @@ datatypes.")
     (version "0.1.3")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "th-reify-many/th-reify-many-"
                                   version ".tar.gz"))
               (sha256
@@ -5404,7 +5405,7 @@ datatypes.")
      `(("ghc-mtl" ,ghc-mtl)
        ("ghc-safe" ,ghc-safe)
        ("ghc-th-expand-syns" ,ghc-th-expand-syns)))
-    (home-page "http://github.com/mgsloan/th-reify-many")
+    (home-page "https://github.com/mgsloan/th-reify-many")
     (synopsis "Recurseively reify template haskell datatype info")
     (description
      "th-reify-many provides functions for recursively reifying top level
@@ -5419,7 +5420,7 @@ function which generates instances.")
     (version "0.13.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "th-orphans/th-orphans-" version ".tar.gz"))
               (sha256
                (base32
@@ -5432,7 +5433,7 @@ function which generates instances.")
        ("ghc-generic-deriving" ,ghc-generic-deriving)))
     (native-inputs
      `(("ghc-hspec" ,ghc-hspec)))
-    (home-page "http://hackage.haskell.org/package/th-orphans")
+    (home-page "https://hackage.haskell.org/package/th-orphans")
     (synopsis "Orphan instances for TH datatypes")
     (description
      "This package provides orphan instances for Template Haskell datatypes.  In particular,
@@ -5447,7 +5448,7 @@ package, and that's where the version number started.")
     (version "0.6.0.12")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "haskell-src-meta/haskell-src-meta-"
                                   version ".tar.gz"))
               (sha256
@@ -5458,7 +5459,7 @@ package, and that's where the version number started.")
      `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
        ("ghc-syb" ,ghc-syb)
        ("ghc-th-orphans" ,ghc-th-orphans)))
-    (home-page "http://hackage.haskell.org/package/haskell-src-meta")
+    (home-page "https://hackage.haskell.org/package/haskell-src-meta")
     (synopsis "Parse source to template-haskell abstract syntax")
     (description
      "This package provides tools to parse Haskell sources to the
@@ -5471,7 +5472,7 @@ template-haskell abstract syntax.")
     (version "0.8.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "aeson-qq/aeson-qq-" version ".tar.gz"))
               (sha256
                (base32
@@ -5488,7 +5489,7 @@ template-haskell abstract syntax.")
        ("ghc-haskell-src-meta" ,ghc-haskell-src-meta)))
     (native-inputs
      `(("ghc-hspec" ,ghc-hspec)))
-    (home-page "http://github.com/zalora/aeson-qq")
+    (home-page "https://github.com/zalora/aeson-qq")
     (synopsis "JSON quasiquoter for Haskell")
     (description
      "aeson-qq provides a JSON quasiquoter for Haskell.  This package exposes
@@ -5502,7 +5503,7 @@ of a JSON value into a @code{Data.Aeson.Value}.")
     (version "1.2.5.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "conduit/conduit-" version ".tar.gz"))
               (sha256
                (base32
@@ -5536,7 +5537,7 @@ enumerator/iteratee and pipes." )
     (version "0.1.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "logging-facade/logging-facade-"
                                   version ".tar.gz"))
               (sha256
@@ -5545,7 +5546,7 @@ enumerator/iteratee and pipes." )
     (build-system haskell-build-system)
     (native-inputs
      `(("ghc-hspec" ,ghc-hspec)))
-    (home-page "http://hackage.haskell.org/package/logging-facade")
+    (home-page "https://hackage.haskell.org/package/logging-facade")
     (synopsis "Simple logging abstraction that allows multiple back-ends")
     (description
      "This package provides a simple logging abstraction that allows multiple
@@ -5558,7 +5559,7 @@ back-ends.")
     (version "0.3.2")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "mockery/mockery-" version ".tar.gz"))
               (sha256
                (base32
@@ -5569,7 +5570,7 @@ back-ends.")
        ("ghc-logging-facade" ,ghc-logging-facade)))
     (native-inputs
      `(("ghc-hspec" ,ghc-hspec)))
-    (home-page "http://hackage.haskell.org/package/mockery")
+    (home-page "https://hackage.haskell.org/package/mockery")
     (synopsis "Support functions for automated testing")
     (description
      "The mockery package provides support functions for automated testing.")
@@ -5581,7 +5582,7 @@ back-ends.")
     (version "0.8.15.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "yaml/yaml-" version ".tar.gz"))
               (sha256
                (base32
@@ -5603,7 +5604,7 @@ back-ends.")
      `(("ghc-hspec" ,ghc-hspec)
        ("ghc-hunit" ,ghc-hunit)
        ("ghc-mockery" ,ghc-mockery)))
-    (home-page "http://github.com/snoyberg/yaml/")
+    (home-page "https://github.com/snoyberg/yaml/")
     (synopsis "Parsing and rendering YAML documents")
     (description
      "This package provides a library to parse and render YAML documents.")
@@ -5615,7 +5616,7 @@ back-ends.")
     (version "0.3.6.3")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "filemanip/filemanip-" version ".tar.gz"))
               (sha256
                (base32
@@ -5638,13 +5639,13 @@ file contents, and more.")
     (version "0.5.9")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "mmap/mmap-" version ".tar.gz"))
               (sha256
                (base32
                 "1y5mk3yf4b8r6rzmlx1xqn4skaigrqnv08sqq0v7r3nbw42bpz2q"))))
     (build-system haskell-build-system)
-    (home-page "http://hackage.haskell.org/package/mmap")
+    (home-page "https://hackage.haskell.org/package/mmap")
     (synopsis "Memory mapped files for Haskell")
     (description
      "This library provides a wrapper to @code{mmap}, allowing files or
@@ -5659,7 +5660,7 @@ do on-demand loading.")
     (version "3.2.6.2")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "JuicyPixels/JuicyPixels-"
                                   version ".tar.gz"))
               (sha256
@@ -5685,7 +5686,7 @@ TIFF and GIF formats.")
     (version "1.6.4.2")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "SHA/SHA-" version ".tar.gz"))
               (sha256
                (base32
@@ -5695,7 +5696,7 @@ TIFF and GIF formats.")
      `(("ghc-quickcheck" ,ghc-quickcheck)
        ("ghc-test-framework" ,ghc-test-framework)
        ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
-    (home-page "http://hackage.haskell.org/package/SHA")
+    (home-page "https://hackage.haskell.org/package/SHA")
     (synopsis "SHA suite of message digest functions")
     (description
      "This library implements the SHA suite of message digest functions,
@@ -5712,7 +5713,7 @@ libraries, like OpenSSL.")
     (version "0.4.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "hslua/hslua-" version ".tar.gz"))
               (sha256
                (base32
@@ -5730,7 +5731,7 @@ libraries, like OpenSSL.")
        ("ghc-hunit" ,ghc-hunit)
        ("ghc-quickcheck" ,ghc-quickcheck)
        ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)))
-    (home-page "http://hackage.haskell.org/package/hslua")
+    (home-page "https://hackage.haskell.org/package/hslua")
     (synopsis "Lua language interpreter embedding in Haskell")
     (description
      "The Scripting.Lua module is a wrapper of the Lua language interpreter as
@@ -5743,7 +5744,7 @@ described in @url{http://www.lua.org/}.")
     (version "0.1.0.6")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "mime-types/mime-types-"
                                   version ".tar.gz"))
               (sha256
@@ -5764,7 +5765,7 @@ described in @url{http://www.lua.org/}.")
     (version "0.4.24")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "http-client/http-client-"
                                   version ".tar.gz"))
               (sha256
@@ -5805,13 +5806,13 @@ for more user-friendly packages.")
     (version "0.1.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "byteable/byteable-" version ".tar.gz"))
               (sha256
                (base32
                 "1qizg0kxxjqnd3cbrjhhidk5pbbciz0pb3z5kzikjjxnnnhk8fr4"))))
     (build-system haskell-build-system)
-    (home-page "http://github.com/vincenthz/hs-byteable")
+    (home-page "https://github.com/vincenthz/hs-byteable")
     (synopsis "Type class for sequence of bytes")
     (description
      "This package provides an abstract class to manipulate sequence of bytes.
@@ -5825,7 +5826,7 @@ wrapping a bytestring with stronger and more meaniful name.")
     (version "0.2.9")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "hourglass/hourglass-" version ".tar.gz"))
               (sha256
                (base32
@@ -5854,7 +5855,7 @@ representations of current time.")
     (version "0.2.2")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "pem/pem-" version ".tar.gz"))
               (sha256
                (base32
@@ -5869,7 +5870,7 @@ representations of current time.")
        ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
        ("ghc-hunit" ,ghc-hunit)
        ("ghc-quickcheck" ,ghc-quickcheck)))
-    (home-page "http://github.com/vincenthz/hs-pem")
+    (home-page "https://github.com/vincenthz/hs-pem")
     (synopsis "Privacy Enhanced Mail (PEM) format reader and writer")
     (description
      "This library provides readers and writers for the @dfn{Privacy Enhanced
@@ -5882,7 +5883,7 @@ Mail} (PEM) format.")
     (version "0.3.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "asn1-types/asn1-types-"
                                   version ".tar.gz"))
               (sha256
@@ -5892,7 +5893,7 @@ Mail} (PEM) format.")
     (propagated-inputs
      `(("ghc-memory" ,ghc-memory)
        ("ghc-hourglass" ,ghc-hourglass)))
-    (home-page "http://github.com/vincenthz/hs-asn1-types")
+    (home-page "https://github.com/vincenthz/hs-asn1-types")
     (synopsis "ASN.1 types for Haskell")
     (description
      "The package provides the standard types for dealing with the ASN.1
@@ -5905,7 +5906,7 @@ format.")
     (version "0.9.3")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "asn1-encoding/asn1-encoding-"
                                   version ".tar.gz"))
               (sha256
@@ -5920,7 +5921,7 @@ format.")
     (native-inputs
      `(("ghc-tasty" ,ghc-tasty)
        ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
-    (home-page "http://github.com/vincenthz/hs-asn1")
+    (home-page "https://github.com/vincenthz/hs-asn1")
     (synopsis "ASN1 data reader and writer in RAW, BER and DER forms")
     (description
      "This package provides a reader and writer for ASN1 data in raw form with
@@ -5933,7 +5934,7 @@ supports for high level forms of ASN1 (BER, and DER).")
     (version "0.9.4")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "asn1-parse/asn1-parse-"
                                   version ".tar.gz"))
               (sha256
@@ -5956,7 +5957,7 @@ when ASN1 pattern matching is not convenient.")
     (version "0.0.3")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "tasty-kat/tasty-kat-" version ".tar.gz"))
               (sha256
                (base32
@@ -5980,7 +5981,7 @@ tasty.")
     (version "0.9")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "cryptonite/cryptonite-"
                                   version ".tar.gz"))
               (sha256
@@ -6010,7 +6011,7 @@ generators, and more.")
     (version "0.10")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "memory/memory-" version ".tar.gz"))
               (sha256
                (base32
@@ -6036,7 +6037,7 @@ set, memory copy, ..) and more")
     (version "1.6.3")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "x509/x509-" version ".tar.gz"))
               (sha256
                (base32
@@ -6054,7 +6055,7 @@ set, memory copy, ..) and more")
     (native-inputs
      `(("ghc-tasty" ,ghc-tasty)
        ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
-    (home-page "http://github.com/vincenthz/hs-certificate")
+    (home-page "https://github.com/vincenthz/hs-certificate")
     (synopsis "X509 reader and writer")
     (description
      "This library provides functions to read and write X509 certificates.")
@@ -6066,7 +6067,7 @@ set, memory copy, ..) and more")
     (version "1.6.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "x509-store/x509-store-"
                                   version ".tar.gz"))
               (sha256
@@ -6080,7 +6081,7 @@ set, memory copy, ..) and more")
        ("ghc-asn1-encoding" ,ghc-asn1-encoding)
        ("ghc-cryptonite" ,ghc-cryptonite)
        ("ghc-x509" ,ghc-x509)))
-    (home-page "http://github.com/vincenthz/hs-certificate")
+    (home-page "https://github.com/vincenthz/hs-certificate")
     (synopsis "X.509 collection accessing and storing methods")
     (description
      "This package provides functions for accessing and storing X.509
@@ -6093,7 +6094,7 @@ collections, certificates, revocation lists, and exception lists.")
     (version "1.6.3")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "x509-validation/x509-validation-"
                                   version ".tar.gz"))
               (sha256
@@ -6112,7 +6113,7 @@ collections, certificates, revocation lists, and exception lists.")
        ("ghc-x509" ,ghc-x509)
        ("ghc-x509-store" ,ghc-x509-store)
        ("ghc-cryptonite" ,ghc-cryptonite)))
-    (home-page "http://github.com/vincenthz/hs-certificate")
+    (home-page "https://github.com/vincenthz/hs-certificate")
     (synopsis "X.509 certificate and revocation list validation")
     (description
      "This package provides functions for X.509 certificate and revocation
@@ -6125,7 +6126,7 @@ list validation.")
     (version "1.6.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "x509-system/x509-system-"
                                   version ".tar.gz"))
               (sha256
@@ -6137,7 +6138,7 @@ list validation.")
        ("ghc-pem" ,ghc-pem)
        ("ghc-x509" ,ghc-x509)
        ("ghc-x509-store" ,ghc-x509-store)))
-    (home-page "http://github.com/vincenthz/hs-certificate")
+    (home-page "https://github.com/vincenthz/hs-certificate")
     (synopsis "Handle system X.509 accessors and storage")
     (description
      "This package provides a library to handle system accessors and storage
@@ -6150,7 +6151,7 @@ for X.509 certificates.")
     (version "1.3.3")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "tls/tls-" version ".tar.gz"))
               (sha256
                (base32
@@ -6174,7 +6175,7 @@ for X.509 certificates.")
      `(("ghc-tasty" ,ghc-tasty)
        ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
        ("ghc-quickcheck" ,ghc-quickcheck)))
-    (home-page "http://github.com/vincenthz/hs-tls")
+    (home-page "https://github.com/vincenthz/hs-tls")
     (synopsis
      "TLS/SSL protocol native implementation (Server and Client)")
     (description
@@ -6193,7 +6194,7 @@ extensions.")
     (version "0.5.4")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "socks/socks-" version ".tar.gz"))
               (sha256
                (base32
@@ -6202,7 +6203,7 @@ extensions.")
     (propagated-inputs
      `(("ghc-cereal" ,ghc-cereal)
        ("ghc-network" ,ghc-network)))
-    (home-page "http://github.com/vincenthz/hs-socks")
+    (home-page "https://github.com/vincenthz/hs-socks")
     (synopsis "SOCKS proxy (version 5) implementation.")
     (description
      "This library provides a SOCKS proxy (version 5) implementation.")
@@ -6214,7 +6215,7 @@ extensions.")
     (version "0.2.5")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "connection/connection-"
                                   version ".tar.gz"))
               (sha256
@@ -6231,7 +6232,7 @@ extensions.")
        ("ghc-x509-store" ,ghc-x509-store)
        ("ghc-x509-system" ,ghc-x509-system)
        ("ghc-x509-validation" ,ghc-x509-validation)))
-    (home-page "http://github.com/vincenthz/hs-connection")
+    (home-page "https://github.com/vincenthz/hs-connection")
     (synopsis "Simple and easy network connections API")
     (description
      "This package provides a simple network library for all your connection
@@ -6245,7 +6246,7 @@ the choice of SSL/TLS, and SOCKS.")
     (version "0.2.2")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://hackage.haskell.org/package/"
+              (uri (string-append "https://hackage.haskell.org/package/"
                                   "http-client-tls/http-client-tls-"
                                   version ".tar.gz"))
               (sha256
@@ -6278,7 +6279,7 @@ libraries, such as http-conduit.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://hackage.haskell.org/package/pandoc/pandoc-"
+       (uri (string-append "https://hackage.haskell.org/package/pandoc/pandoc-"
                            version ".tar.gz"))
        (sha256
         (base32
@@ -6351,13 +6352,13 @@ provided for those who need a drop-in replacement for Markdown.pl.")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://hackage.haskell.org/package/union-find/union-find-"
+                    "https://hackage.haskell.org/package/union-find/union-find-"
                     version ".tar.gz"))
               (sha256
                (base32
                 "1v7hj42j9w6jlzi56jg8rh4p58gfs1c5dx30wd1qqvn0p0mnihp6"))))
     (build-system haskell-build-system)
-    (home-page "http://github.com/nominolo/union-find")
+    (home-page "https://github.com/nominolo/union-find")
     (synopsis "Efficient union and equivalence testing of sets")
     (description
      "The Union/Find algorithm implements these operations in (effectively)
diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm
index 79b006f416..4497150db7 100644
--- a/gnu/packages/imagemagick.scm
+++ b/gnu/packages/imagemagick.scm
@@ -41,14 +41,14 @@
 (define-public imagemagick
   (package
     (name "imagemagick")
-    (version "6.9.4-9")
+    (version "6.9.4-10")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://imagemagick/ImageMagick-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0js5l6inar2p7zi5qhr8g34qs0gm2x03gs8k8yjh4cnzzac18d82"))))
+               "0bbac9zdjl2g8x127jx5jisih9r49980w7ar6m8xj3nyh3m83jd2"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--with-frozenpaths")
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index e1651938b9..753fb7726c 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -58,15 +58,15 @@
 (define-public java-swt
   (package
     (name "java-swt")
-    (version "4.5")
+    (version "4.6")
     (source
      ;; The types of many variables and procedures differ in the sources
      ;; dependent on whether the target architecture is a 32-bit system or a
      ;; 64-bit system.  Instead of patching the sources on demand in a build
      ;; phase we download either the 32-bit archive (which mostly uses "int"
      ;; types) or the 64-bit archive (which mostly uses "long" types).
-     (let ((hash32 "03mhzraikcs4fsz7d3h5af9pw1bbcfd6dglsvbk2ciwimy9zj30q")
-           (hash64 "1qq0pjll6030v4ml0hifcaaik7sx3fl7ghybfdw95vsvxafwp2ff")
+     (let ((hash32 "0jmx1h65wqxsyjzs64i2z6ryiynllxzm13cq90fky2qrzagcw1ir")
+           (hash64 "0wnd01xssdq9pgx5xqh5lfiy3dmk60dzzqdxzdzf883h13692lgy")
            (file32 "x86")
            (file64 "x86_64"))
        (let-values (((hash file)
@@ -78,7 +78,7 @@
            (uri (string-append
                  "http://ftp-stud.fht-esslingen.de/pub/Mirrors/"
                  "eclipse/eclipse/downloads/drops4/R-" version
-                 "-201506032000/swt-" version "-gtk-linux-" file ".zip"))
+                 "-201606061100/swt-" version "-gtk-linux-" file ".zip"))
            (sha256 (base32 hash))))))
     (build-system ant-build-system)
     (arguments
diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm
index 0d5e0a3428..ec4e72e8ba 100644
--- a/gnu/packages/kodi.scm
+++ b/gnu/packages/kodi.scm
@@ -66,7 +66,7 @@
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
-  #:use-module (gnu packages yasm)
+  #:use-module (gnu packages assembly)
   #:use-module (gnu packages zip))
 
 (define-public crossguid
diff --git a/gnu/packages/lightning.scm b/gnu/packages/lightning.scm
deleted file mode 100644
index 7dacb8f4cd..0000000000
--- a/gnu/packages/lightning.scm
+++ /dev/null
@@ -1,44 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
-;;;
-;;; This file is part of GNU Guix.
-;;;
-;;; GNU Guix is free software; you can redistribute it and/or modify it
-;;; under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 3 of the License, or (at
-;;; your option) any later version.
-;;;
-;;; GNU Guix is distributed in the hope that it will be useful, but
-;;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;;; GNU General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (gnu packages lightning)
-  #:use-module (guix packages)
-  #:use-module (guix download)
-  #:use-module (guix build-system gnu)
-  #:use-module (guix licenses))
-
-(define-public lightning
-  (package
-    (name "lightning")
-    (version "2.1.0")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnu/lightning/lightning-"
-                                 version ".tar.gz"))
-             (sha256
-              (base32
-               "19j9nwl88k660045s40cbz5zrl1wpd2mcxnnc8qqnnaj311a58qz"))))
-    (build-system gnu-build-system)
-    (synopsis "Library for generating assembly code at runtime")
-    (description
-     "GNU Lightning is a library that generates assembly language code at
-run-time.  Thus, it is useful in creating Just-In-Time compilers.  It
-abstracts over the target CPU by exposing a standardized RISC instruction set
-to the clients.")
-    (home-page "http://www.gnu.org/software/lightning/")
-    (license gpl3+)))
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index a9d1676075..bfb6580cbf 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -225,7 +225,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
     (search-path %load-path file)))
 
 (define-public linux-libre
-  (let* ((version "4.6.2")
+  (let* ((version "4.6.3")
          (build-phase
           '(lambda* (#:key system inputs #:allow-other-keys #:rest args)
              ;; Avoid introducing timestamps
@@ -303,7 +303,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
              (uri (linux-libre-urls version))
              (sha256
               (base32
-               "1sq75sbs85kwngq8l0n5v5v1z973l71by98k3wbw1mfq3g0s323b"))))
+               "1ajhdk9jq0pfxlhvzwarbxc23418yqav1v0z0mnfs575y5lq2gmp"))))
     (build-system gnu-build-system)
     (supported-systems '("x86_64-linux" "i686-linux"))
     (native-inputs `(("perl" ,perl)
@@ -340,13 +340,13 @@ It has been modified to remove all non-free binary blobs.")
 (define-public linux-libre-4.4
   (package
     (inherit linux-libre)
-    (version "4.4.13")
+    (version "4.4.14")
     (source (origin
               (method url-fetch)
               (uri (linux-libre-urls version))
               (sha256
                (base32
-                "1qcgnprgl9hy4g51bkx4bjs1cdsyy9kpwqymxggwghrzdid41x9l"))))
+                "1yfmzrjrkj8mn2dfd7p98w13afchrkpz26gwfcm2fhsmla16n1my"))))
     (native-inputs
      (let ((conf (kernel-config (or (%current-target-system)
                                     (%current-system))
@@ -357,13 +357,13 @@ It has been modified to remove all non-free binary blobs.")
 (define-public linux-libre-4.1
   (package
     (inherit linux-libre)
-    (version "4.1.26")
+    (version "4.1.27")
     (source (origin
               (method url-fetch)
               (uri (linux-libre-urls version))
               (sha256
                (base32
-                "1vrqz7z0b9zl6g8nbvz1hb2jhgy5zpnbdwc1v3zc4wjc35i2c4i4"))))
+                "0bbp782gdj8kz986a8hfygdrj7is0c8wgbb2mpb9gqhkfxcg74kf"))))
     (native-inputs
      (let ((conf (kernel-config (or (%current-target-system)
                                     (%current-system))
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 70757149f1..dfc21cc95f 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -1474,13 +1474,17 @@ websites such as Libre.fm.")
 (define-public beets
   (package
     (name "beets")
-    (version "1.3.17")
+    (version "1.3.18")
     (source (origin
               (method url-fetch)
-              (uri (pypi-uri name version))
+              (uri (string-append
+                     "https://pypi.python.org/packages/"
+                     "14/6f/c9c79c5339ab3ecced265ca18adbf5bae3d4058bae737b6164d738fb4d2c/"
+                     name "-" version ".tar.gz"))
+              (patches (search-patches "beets-image-test-failure.patch"))
               (sha256
                (base32
-                "0yg7sp18sdpszkinhb0bi6yinbn316jy1baxrwiw0m4byrj3rr6c"))))
+                "09pgyywa5llbc36y0lrr21ywgsp8m2zx6p8ncf8hxik28knd5kld"))))
     (build-system python-build-system)
     (arguments
      `(#:python ,python-2 ; only Python 2 is supported
@@ -1504,7 +1508,7 @@ websites such as Libre.fm.")
        ("python2-rarfile" ,python2-rarfile)
        ("python2-responses" ,python2-responses)))
     ;; TODO: Install optional plugins and dependencies.
-    (propagated-inputs
+    (inputs
      `(("python2-enum34" ,python2-enum34)
        ("python2-jellyfish" ,python2-jellyfish)
        ("python2-munkres" ,python2-munkres)
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 46743fefb5..f3a1cda149 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -21,9 +21,11 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (guix gexp)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
+  #:use-module ((guix build utils) #:select (with-directory-excursion))
   #:use-module ((guix licenses) #:select (gpl2+ gpl3+ lgpl2.1+ asl2.0))
   #:use-module (gnu packages)
   #:use-module (gnu packages guile)
@@ -48,7 +50,12 @@
   #:use-module (gnu packages popt)
   #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages cpio)
-  #:use-module (gnu packages tls))
+  #:use-module (gnu packages tls)
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-26)
+  #:use-module (ice-9 popen)
+  #:use-module (ice-9 rdelim)
+  #:use-module (ice-9 match))
 
 (define (boot-guile-uri arch)
   "Return the URI for the bootstrap Guile tarball for ARCH."
@@ -246,6 +253,73 @@ the Nix package manager.")
 
 (define-public guix guix-devel)
 
+(define (source-file? file stat)
+  "Return true if FILE is likely a source file, false if it is a typical
+generated file."
+  (define (wrong-extension? file)
+    (or (string-suffix? "~" file)
+        (member (file-extension file)
+                '("o" "a" "lo" "so" "go"))))
+
+  (match (basename file)
+    ((or ".git" "autom4te.cache" "configure" "Makefile" "Makefile.in" ".libs")
+     #f)
+    ((? wrong-extension?)
+     #f)
+    (_
+     #t)))
+
+(define (make-git-predicate directory)
+  "Return a predicate that returns true if a file is part of the Git checkout
+living at DIRECTORY.  Upon Git failure, return #f instead of a predicate."
+  (define (parent-directory? thing directory)
+    ;; Return #t if DIRECTORY is the parent of THING.
+    (or (string-suffix? thing directory)
+        (and (string-index thing #\/)
+             (parent-directory? (dirname thing) directory))))
+
+  (let* ((pipe        (with-directory-excursion directory
+                        (open-pipe* OPEN_READ "git" "ls-files")))
+         (files       (let loop ((lines '()))
+                        (match (read-line pipe)
+                          ((? eof-object?)
+                           (reverse lines))
+                          (line
+                           (loop (cons line lines))))))
+         (status      (close-pipe pipe)))
+    (and (zero? status)
+         (lambda (file stat)
+           (match (stat:type stat)
+             ('directory
+              ;; 'git ls-files' does not list directories, only regular files,
+              ;; so we need this special trick.
+              (any (cut parent-directory? <> file) files))
+             ((or 'regular 'symlink)
+              (any (cut string-suffix? <> file) files))
+             (_
+              #f))))))
+
+(define-public current-guix
+  (let ((select? (delay (or (make-git-predicate
+                             (string-append (current-source-directory)
+                                            "/../.."))
+                            source-file?))))
+    (lambda ()
+      "Return a package representing Guix built from the current source tree.
+This works by adding the current source tree to the store (after filtering it
+out) and returning a package that uses that as its 'source'."
+      (package
+        (inherit guix)
+        (version (string-append (package-version guix) "+"))
+        (source (local-file "../.." "guix-current"
+                            #:recursive? #t
+                            #:select? (force select?)))))))
+
+
+;;;
+;;; Other tools.
+;;;
+
 (define-public nix
   (package
     (name "nix")
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 30ed13093e..1579821385 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2016 Jessica Tallon <tsyesika@tsyesika.se>
 ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -295,3 +296,39 @@ Synchronization is possible using the integrated git support, which commits
 changes to your password database to a git repository that can be managed
 through the pass command.")
     (license license:gpl2+)))
+
+(define-public argon2
+  (package
+    (name "argon2")
+    (version "20160406")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://codeload.github.com/P-H-C/phc-winner-"
+         name "/tar.gz/" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0g6wa94sh639xl1qc8z21q43r1mp8y77r1zf8nwx5pfsxd8fmyzv"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:make-flags '("CC=gcc")
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'install
+           (lambda _
+             (let ((out (assoc-ref %outputs "out")))
+               (install-file "argon2" (string-append out "/bin"))
+               (install-file "libargon2.a" (string-append out "/lib"))
+               (install-file "libargon2.so" (string-append out "/lib"))
+               (copy-recursively "include"
+                                 (string-append out "/include"))))))))
+    (home-page "https://www.argon2.com/")
+    (synopsis "Password hashing library")
+    (description "Argon2 provides a key derivation function that was declared
+winner of the 2015 Password Hashing Competition.")
+    (license license:cc0)))
diff --git a/gnu/packages/patches/beets-image-test-failure.patch b/gnu/packages/patches/beets-image-test-failure.patch
new file mode 100644
index 0000000000..360d7d3ed4
--- /dev/null
+++ b/gnu/packages/patches/beets-image-test-failure.patch
@@ -0,0 +1,46 @@
+Fix test failure due to missing image library backend.
+
+Cherry-picked from upstream:
+https://github.com/beetbox/beets/commit/07c95a1bf16bf86c640436208dda828cc7df0181
+
+From 07c95a1bf16bf86c640436208dda828cc7df0181 Mon Sep 17 00:00:00 2001
+From: Adrian Sampson <adrian@radbox.org>
+Date: Thu, 2 Jun 2016 11:39:05 -0700
+Subject: [PATCH] Require an imaging backend for fuzzy ratio tests
+
+These fail outright if we don't have a way to get image sizes (e.g.,
+ImageMagick).
+---
+ test/test_art.py | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/test/test_art.py b/test/test_art.py
+index 02d26f4..1b12b76 100644
+--- a/test/test_art.py
++++ b/test/test_art.py
+@@ -561,21 +561,25 @@ def test_respect_enforce_ratio_no(self):
+         self._assertImageIsValidArt(self.IMG_500x490, True)
+ 
+     def test_respect_enforce_ratio_px_above(self):
++        self._require_backend()
+         self.plugin.enforce_ratio = True
+         self.plugin.margin_px = 5
+         self._assertImageIsValidArt(self.IMG_500x490, False)
+ 
+     def test_respect_enforce_ratio_px_below(self):
++        self._require_backend()
+         self.plugin.enforce_ratio = True
+         self.plugin.margin_px = 15
+         self._assertImageIsValidArt(self.IMG_500x490, True)
+ 
+     def test_respect_enforce_ratio_percent_above(self):
++        self._require_backend()
+         self.plugin.enforce_ratio = True
+         self.plugin.margin_percent = (500 - 490) / 500 * 0.5
+         self._assertImageIsValidArt(self.IMG_500x490, False)
+ 
+     def test_respect_enforce_ratio_percent_below(self):
++        self._require_backend()
+         self.plugin.enforce_ratio = True
+         self.plugin.margin_percent = (500 - 490) / 500 * 1.5
+         self._assertImageIsValidArt(self.IMG_500x490, True)
diff --git a/gnu/packages/patches/hydra-automake-1.15.patch b/gnu/packages/patches/hydra-automake-1.15.patch
index 0d8fa98519..91c7b9202b 100644
--- a/gnu/packages/patches/hydra-automake-1.15.patch
+++ b/gnu/packages/patches/hydra-automake-1.15.patch
@@ -23,7 +23,7 @@ Automake's parallel test harness.
 -  HYDRA_HOME="$(top_srcdir)/src"			\
 -  HYDRA_CONFIG=						\
 -  NIX_REMOTE=						\
--  NIX_CONF_DIR="$(abs_builddir)/nix/etc/nix"		\
+-  GUIX_CONFIGURATION_DIRECTORY="$(abs_builddir)/nix/etc/nix"		\
 -  NIX_STATE_DIR="$(abs_builddir)/nix/var/nix"		\
 -  NIX_MANIFESTS_DIR="$(abs_builddir)/nix/var/nix/manifests"	\
 -  NIX_STORE_DIR="$(abs_builddir)/nix/store"			\
@@ -39,7 +39,7 @@ Automake's parallel test harness.
 +  HYDRA_HOME="$(top_srcdir)/src"; export HYDRA_HOME;	\
 +  HYDRA_CONFIG=; export HYDRA_CONFIG;			\
 +  NIX_REMOTE=; export NIX_REMOTE;			\
-+  NIX_CONF_DIR="$(abs_builddir)/nix/etc/nix"; export NIX_CONF_DIR; \
++  GUIX_CONFIGURATION_DIRECTORY="$(abs_builddir)/nix/etc/nix"; export GUIX_CONFIGURATION_DIRECTORY; \
 +  NIX_STATE_DIR="$(abs_builddir)/nix/var/nix"; export NIX_STATE_DIR; \
 +  NIX_MANIFESTS_DIR="$(abs_builddir)/nix/var/nix/manifests"; export NIX_MANIFESTS_DIR; \
 +  NIX_STORE_DIR="$(abs_builddir)/nix/store"; export NIX_STORE_DIR; \
diff --git a/gnu/packages/patches/nasm-no-ps-pdf.patch b/gnu/packages/patches/nasm-no-ps-pdf.patch
new file mode 100644
index 0000000000..b03b57a6ed
--- /dev/null
+++ b/gnu/packages/patches/nasm-no-ps-pdf.patch
@@ -0,0 +1,20 @@
+Avoid building PS and PDF docs, which do not build bit-reproducible.  NASM
+already installs doc in info and html.
+
+--- nasm-2.12.01/doc/Makefile.in.orig	2016-06-21 18:02:59.483484829 +0200
++++ nasm-2.12.01/doc/Makefile.in	2016-06-21 18:03:46.700151410 +0200
+@@ -27,7 +27,7 @@
+ PS2PDF          = @PS2PDF@		# Part of GhostScript
+ 
+ SRCS		= nasmdoc.src inslist.src changes.src
+-OUT		= info html nasmdoc.txt nasmdoc.ps nasmdoc.pdf
++OUT		= info html nasmdoc.txt
+ 
+ # exports
+ export srcdir
+@@ -100,4 +100,4 @@
+ 	$(INSTALL_DATA) info/* $(INSTALLROOT)$(infodir)
+ 	mkdir -p $(INSTALLROOT)$(docdir)/html
+ 	$(INSTALL_DATA) html/* $(INSTALLROOT)$(docdir)/html
+-	$(INSTALL_DATA) nasmdoc.ps nasmdoc.pdf nasmdoc.txt $(INSTALLROOT)$(docdir)
++	$(INSTALL_DATA) nasmdoc.txt $(INSTALLROOT)$(docdir)
diff --git a/gnu/packages/patches/ruby-puma-ignore-broken-test.patch b/gnu/packages/patches/ruby-puma-ignore-broken-test.patch
new file mode 100644
index 0000000000..fb653dc0ee
--- /dev/null
+++ b/gnu/packages/patches/ruby-puma-ignore-broken-test.patch
@@ -0,0 +1,13 @@
+diff --git a/test/test_integration.rb b/test/test_integration.rb
+index d9b189c..6e21180 100644
+--- a/test/test_integration.rb
++++ b/test/test_integration.rb
+@@ -115,7 +115,7 @@ class TestIntegration < Test::Unit::TestCase
+     assert_kind_of Thread, t.join(1), "server didn't stop"
+   end
+ 
+-  def test_phased_restart_via_pumactl
++  def no_test_phased_restart_via_pumactl
+     if Puma.jruby? || Puma.windows?
+       assert true
+       return
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index e2b39c7d12..211505a846 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Coypright © 2016 ng0 <ng0@we.make.ritual.n0.is>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -5092,7 +5093,7 @@ testing exception-throwing code with about the same amount of typing.")
 (define-public perl-test-harness
   (package
     (name "perl-test-harness")
-    (version "3.35")
+    (version "3.36")
     (source
      (origin
        (method url-fetch)
@@ -5100,7 +5101,7 @@ testing exception-throwing code with about the same amount of typing.")
                            "Test-Harness-" version ".tar.gz"))
        (sha256
         (base32
-         "06l29y1bpizb9vd9g49lgi0wzj1xy4rsk42ahdj3fpgqnvb9wp05"))))
+         "0gmnjss0hjkyiwvgby50nl5nzv254pn7fjqqdysjil21n09nymp7"))))
     (build-system perl-build-system)
     (arguments
      `(#:phases (alist-cons-before
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 7587678dc1..b92746a260 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -21,6 +21,7 @@
 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
 ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2016 Daniel Pimentel <d4n1@d4n1.org>
+;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2182,13 +2183,17 @@ is used by the Requests library to verify HTTPS requests.")
 (define-public python-click
   (package
     (name "python-click")
-    (version "6.2")
+    (version "6.6")
     (source
      (origin
        (method url-fetch)
-         (uri (pypi-uri "click" version))
+         (uri (string-append
+                "https://pypi.python.org/packages/"
+                "7a/00/c14926d8232b36b08218067bcd5853caefb4737cda3f0a47437151344792/"
+                "click-" version ".tar.gz"))
        (sha256
-        (base32 "10kavbisnk9m93jl2wi34pw7ryr2qbxshh2cysxwxd7bymqgz87v"))))
+        (base32
+         "1sggipyz52crrybwbr9xvwxd4aqigvplf53k9w3ygxmzivd1jsnc"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-setuptools" ,python-setuptools)))
@@ -6942,13 +6947,16 @@ for atomic filesystem operations.")
 (define-public python-requests-toolbelt
   (package
     (name "python-requests-toolbelt")
-    (version "0.6.0")
+    (version "0.6.2")
     (source (origin
              (method url-fetch)
-             (uri (pypi-uri "requests-toolbelt" version))
+             (uri (string-append
+                    "https://pypi.python.org/packages/"
+                    "e1/a4/a94c037bc72ad70441aff1403d3243510d2542ddca7759faaeffeb11aefe/"
+                    "requests-toolbelt-" version ".tar.gz"))
              (sha256
               (base32
-               "07slish560haspn0hpwgy2izhk2snqq06s6acp8xzmhhz079qknc"))))
+               "15q9nrgp85nqlr4kdz1zvj8z2npafi2sr12y7fqgxbkq28j1aci6"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-requests" ,python-requests)))
@@ -6961,13 +6969,16 @@ with python-requests.")
 (define-public python-click-threading
   (package
     (name "python-click-threading")
-    (version "0.1.2")
+    (version "0.2.0")
     (source (origin
              (method url-fetch)
-             (uri (pypi-uri "click-threading" version))
+             (uri (string-append
+                    "https://pypi.python.org/packages/"
+                    "fe/b7/e7f609d18a2a351cb71616adcf54df1acd82f83cb9b5936935a4d20e2c23/"
+                    "click-threading-" version ".tar.gz"))
              (sha256
               (base32
-               "0jmrv4334lfxa2ss53c06dafdwqbk1pb3ihd26izn5igw1bm8145"))))
+               "18bcqikxwb3drb8rf60cclxkxw52521b38ax3byah6j8cn8y9p4j"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-click" ,python-click)))
@@ -7117,13 +7128,16 @@ framework which enables you to test server connections locally.")
 (define-public python-wsgi-intercept
   (package
     (name "python-wsgi-intercept")
-    (version "1.1.2")
+    (version "1.2.2")
     (source (origin
              (method url-fetch)
-             (uri (pypi-uri "wsgi_intercept" version))
+             (uri (string-append
+                    "https://pypi.python.org/packages/"
+                    "38/76/ebcbc24d0cb77db34520a3ca6ed1bd43ace17d182bbd8dd7d976f1c176fb/"
+                    "wsgi_intercept-" version ".tar.gz"))
              (sha256
               (base32
-               "14ajy415ch5d0dnspg4b592p66wlgzah7ay218flp13517fp49zl"))))
+               "0kjj2v2dvmnpdd5h5gk9rzz0f54rhjb0yiz3zg65bmp65slfw65d"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-pytest" ,python-pytest)
@@ -9103,10 +9117,7 @@ to provide a high-level synchronous API on top of the libev event loop.")
     (version "16.2.0")
     (source (origin
               (method url-fetch)
-              (uri (list (pypi-uri "Twisted" version ".tar.bz2") ; 404
-                         (string-append
-                          "https://pypi.io/packages/source/T/Twisted/"
-                          "Twisted-" version ".tar.bz2")))
+              (uri (pypi-uri "Twisted" version ".tar.bz2"))
               (sha256
                (base32
                 "0ydxrp9myw1mvsz3qfzx5579y5llmqa82pxvqchgp5syczffi450"))))
@@ -9300,3 +9311,366 @@ It supports both the original 1.0 specification, as well as the
 new (proposed) 2.0 spec, which includes batch submission, keyword arguments,
 etc.")
     (license asl2.0)))
+
+(define-public python-chai
+  (package
+    (name "python-chai")
+    (version "1.1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "chai" version))
+              (sha256
+               (base32
+                "016kf3irrclpkpvcm7q0gmkfibq7jgy30a9v73pp42bq9h9a32bl"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-setuptools" ,python-setuptools)))
+    (home-page "https://github.com/agoragames/chai")
+    (synopsis "Mocking framework for Python")
+    (description
+     "Chai provides an api for mocking, stubbing and spying your python
+objects, patterned after the Mocha library for Ruby.")
+    (license bsd-3)))
+
+(define-public python2-chai
+  (package-with-python2 python-chai))
+
+(define-public python-arrow
+  (package
+    (name "python-arrow")
+    (version "0.8.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "arrow" version))
+              (sha256
+               (base32
+                "1bz7hkdgpqcjs866y58z8jywpy7al0f4rxdr00bh2l5qddyw245j"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-setuptools" ,python-setuptools)
+       ("python-dateutil" ,python-dateutil-2)
+       ;; For testing
+       ("python-chai" ,python-chai)
+       ("python-simplejson" ,python-simplejson)))
+    (home-page "https://github.com/crsmithdev/arrow/")
+    (synopsis "Dates and times for Python")
+    (description
+     "Arrow is a Python library to creating, manipulating, formatting and
+converting dates, times, and timestamps.  It implements and updates the
+datetime type.")
+    (license asl2.0)))
+
+(define-public python2-arrow
+  (package-with-python2 python-arrow))
+
+(define-public python-inflection
+  (package
+    (name "python-inflection")
+    (version "0.3.1")
+    (source
+     (origin (method url-fetch)
+             (uri (pypi-uri "inflection" version))
+             (sha256
+              (base32
+               "1jhnxgnw8y3mbzjssixh6qkc7a3afc4fygajhqrqalnilyvpzshq"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-setuptools" ,python-setuptools)))
+    (home-page "http://github.com/jpvanhal/inflection")
+    (synopsis "Python string transformation library")
+    (description
+     "Inflection is a string transformation library.  It singularizes
+and pluralizes English words, and transforms strings from CamelCase to
+underscored string.")
+    (license license:expat)))
+
+(define-public python2-inflection
+  (package-with-python2 python-inflection))
+
+(define-public python-pylev
+  (package
+    (name "python-pylev")
+    (version "1.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "pylev" version))
+              (sha256
+               (base32
+                "1hz1x9blsbxya1y9nnhnwwdnqmakxi9mc0jkwj0rn6b1h44i0f86"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-setuptools" ,python-setuptools)))
+    (home-page "http://github.com/toastdriven/pylev")
+    (synopsis "Levenshtein distance implementation in Python")
+    (description "Pure Python Levenshtein implementation, based off the
+Wikipedia code samples at
+@url{http://en.wikipedia.org/wiki/Levenshtein_distance}.")
+    (license bsd-3)))
+
+(define-public python2-pylev
+  (package-with-python2 python-pylev))
+
+(define-public python-cleo
+  (package
+    (name "python-cleo")
+    (version "0.4.1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "cleo" version))
+              (sha256
+               (base32
+                "1k2dcl6mqpn5bljyl6w42rqyd9mb3y9kh2mg7m2x3kfjwvg0rpva"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-psutil" ,python-psutil)
+       ("python-pylev" ,python-pylev)
+       ("python-setuptools" ,python-setuptools)
+       ;; For testing
+       ("python-mock" ,python-mock)
+       ("python-pytest" ,python-pytest)))
+    (home-page "https://github.com/sdispater/cleo")
+    (synopsis "Command-line arguments library for Python")
+    (description
+     "Cleo allows you to create command-line commands with signature in
+docstring and colored output.")
+    (license license:expat)))
+
+(define-public python2-cleo
+  (package-with-python2 python-cleo))
+
+(define-public python-lazy-object-proxy
+  (package
+    (name "python-lazy-object-proxy")
+    (version "1.2.2")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "lazy-object-proxy" version))
+              (sha256
+               (base32
+                "0s22aqqkdscyh8sjspyyax7qa1aiz8p4midrnyf39717fhfczm6x"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-setuptools" ,python-setuptools)))
+    (home-page "https://github.com/ionelmc/python-lazy-object-proxy")
+    (synopsis "Lazy object proxy for python")
+    (description
+     "Lazy object proxy is an object that wraps a callable but defers the call
+until the object is actually required, and caches the result of said call.")
+    (license bsd-2)))
+
+(define-public python2-lazy-object-proxy
+  (package-with-python2 python-lazy-object-proxy))
+
+(define-public python-dnspython
+  (package
+  (name "python-dnspython")
+  (version "1.14.0")
+  (source (origin
+            (method url-fetch)
+            (uri (string-append "http://www.dnspython.org/kits/"
+                                version "/dnspython-" version ".tar.gz"))
+            (sha256
+             (base32
+              "1z472r63gdqsxhsxj3plr5vs478yf4303vrqxxpsccc940g441hl"))))
+  (build-system python-build-system)
+  (arguments '(#:tests? #f)) ; XXX: requires internet access
+  (native-inputs
+   `(("python-setuptools" ,python-setuptools)))
+  (home-page "http://www.dnspython.org")
+  (synopsis "DNS toolkit for Python")
+  (description
+   "dnspython is a DNS toolkit for Python.  It supports almost all record
+types.  It can be used for queries, zone transfers, and dynamic updates.
+It supports TSIG authenticated messages and EDNS0.")
+  (license license:expat)))
+
+(define-public python2-dnspython
+  (package-with-python2 python-dnspython))
+
+(define-public python-email-validator
+  (package
+    (name "python-email-validator")
+    (version "1.0.1")
+    (source
+     (origin (method url-fetch)
+             (uri (pypi-uri "email_validator" version))
+             (sha256
+              (base32
+               "0mn8jg5h8ifl8w6a6m0hq8kbk0mzw9vm054qfamkn89b3npz52qw"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'use-dnspython
+           (lambda _
+             (substitute* "setup.py"
+               (("dnspython3") "dnspython"))
+             #t)))))
+    (native-inputs
+     `(("python-dnspython" ,python-dnspython)
+       ("python-idna" ,python-idna)
+       ("python-setuptools" ,python-setuptools)))
+    (home-page "https://github.com/JoshData/python-email-validator")
+    (synopsis "Email address validation library for Python")
+    (description
+     "This library validates email address syntax and deliverability.")
+    (license cc0)))
+
+(define-public python2-email-validator
+  (package-with-python2 python-email-validator))
+
+(define-public python-ukpostcodeparser
+  (package
+    (name "python-ukpostcodeparser")
+    (version "1.0.3")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "UkPostcodeParser" version))
+              (sha256
+               (base32
+                "1jwg9z4rz51mcka1821rwgycsd0mcicyp1kiwjfa2kvg8bm9p2qd"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-setuptools" ,python-setuptools)))
+    (home-page "https://github.com/hamstah/ukpostcodeparser")
+    (synopsis "UK Postcode parser for Python")
+    (description
+     "This library provides the @code{parse_uk_postcode} function for
+parsing UK postcodes.")
+    (license license:expat)))
+
+(define-public python2-ukpostcodeparser
+  (package-with-python2 python-ukpostcodeparser))
+
+(define-public python-fake-factory
+  (package
+  (name "python-fake-factory")
+  (version "0.5.7")
+  (source (origin
+            (method url-fetch)
+            (uri (pypi-uri "fake-factory" version))
+            (sha256
+             (base32
+              "1chmarnrdzn4r017n8qlic0m0bbnhw04s3hkwribjvm3mqpb6pa0"))))
+  (build-system python-build-system)
+  (arguments
+   '(#:phases
+     (modify-phases %standard-phases
+       (add-before 'check 'disable-failing-test
+         ;; XXX: faker/tests/ne_np/__init__.py, line 40, in test_names
+         ;;      first_name, last_name = name.split()
+         ;; ValueError: too many values to unpack (expected 2)
+         (lambda _
+           (delete-file "faker/tests/ne_np/__init__.py")
+           #t)))))
+  (native-inputs
+   `(("python-dateutil" ,python-dateutil-2)
+     ("python-setuptools" ,python-setuptools)
+     ("python-six" ,python-six)
+     ;; For testing
+     ("python-email-validator" ,python-email-validator)
+     ("python-mock" ,python-mock)
+     ("python-ukpostcodeparser" ,python-ukpostcodeparser)))
+  (home-page "http://github.com/joke2k/faker")
+  (synopsis "Python package that generates fake data")
+  (description
+   "Faker is a Python package that generates fake data such as names,
+addresses, and phone numbers.")
+  (license license:expat)
+  (properties `((python2-variant . ,(delay python2-fake-factory))))))
+
+(define-public python2-fake-factory
+  (let ((base (package-with-python2 (strip-python2-variant
+                                     python-fake-factory))))
+    (package
+      (inherit base)
+      (native-inputs
+       `(("python2-ipaddress" ,python2-ipaddress)
+         ,@(package-native-inputs base))))))
+
+(define-public python-pyaml
+  (package
+    (name "python-pyaml")
+    (version "15.8.2")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "pyaml" version))
+              (sha256
+               (base32
+                "1f5m28vkh4ksq3d80d8mmd2z8wxvc3mgy2pmrv2751dm2xgznm4w"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-setuptools" ,python-setuptools)))
+    (propagated-inputs
+     `(("python-pyyaml" ,python-pyyaml)))
+    (home-page "https://github.com/mk-fg/pretty-yaml")
+    (synopsis "YAML pretty-print library for Python")
+    (description
+     "pyaml is a PyYAML based python module to produce pretty and readable
+YAML-serialized data.")
+    (license (non-copyleft "http://www.wtfpl.net/txt/copying/"))))
+
+(define-public python2-pyaml
+  (package-with-python2 python-pyaml))
+
+(define-public python-flexmock
+  (package
+    (name "python-flexmock")
+    (version "0.10.2")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "flexmock" version))
+              (sha256
+               (base32
+                "0arc6njvs6i9v9hgvzk5m50296g7zy5m9d7pyb43vdsdgxrci5gy"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-setuptools" ,python-setuptools)))
+    (home-page "https://flexmock.readthedocs.org")
+    (synopsis "Testing library for Python")
+    (description
+     "flexmock is a testing library for Python that makes it easy to create
+mocks, stubs and fakes.")
+    (license bsd-3)))
+
+(define-public python2-flexmock
+  (package-with-python2 python-flexmock))
+
+(define-public python-orator
+  (package
+    (name "python-orator")
+    (version "0.8.2")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "orator" version))
+              (sha256
+               (base32
+                "1li49irsqha17nrda4nsb48biyy0rarp9pphf0jpqwm5zr8hv569"))))
+    (build-system python-build-system)
+    (arguments '(#:tests? #f)) ; no tests
+    (native-inputs
+     `(("python-arrow" ,python-arrow)
+       ("python-blinker" ,python-blinker)
+       ("python-cleo" ,python-cleo)
+       ("python-fake-factory" ,python-fake-factory)
+       ("python-inflection" ,python-inflection)
+       ("python-lazy-object-proxy" ,python-lazy-object-proxy)
+       ("python-pyaml" ,python-pyaml)
+       ("python-setuptools" ,python-setuptools)
+       ("python-simplejson" ,python-simplejson)
+       ("python-wrapt" ,python-wrapt)))
+    (home-page "https://orator-orm.com/")
+    (synopsis "ActiveRecord ORM for Python")
+    (description
+     "Orator provides a simple ActiveRecord-like Object Relational Mapping
+implementation for Python.")
+    (license license:expat)
+    (properties `((python2-variant . ,(delay python2-orator))))))
+
+(define-public python2-orator
+  (let ((base (package-with-python2 (strip-python2-variant python-orator))))
+    (package
+      (inherit base)
+      (native-inputs
+       `(("python2-ipaddress" ,python2-ipaddress)
+         ,@(package-native-inputs base))))))
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 527f76b404..877f229fe1 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3939,6 +3939,70 @@ part of the Prawn PDF generator.")
     ;; for details."
     (license (list license:gpl2 license:gpl3 license:ruby))))
 
+(define-public ruby-puma
+  (package
+    (name "ruby-puma")
+    (version "3.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       ;; Fetch from GitHub because distributed gem does not contain tests.
+       (uri (string-append "https://github.com/puma/puma/archive/v"
+                           version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "10svyj2jk949y1dmkxyzipk1ddzl4iz9limrcws1zhpganpvq3j8"))
+       ;; Ignore broken test reported upstream.
+       ;; https://github.com/puma/puma/issues/995
+       (patches (search-patches "ruby-puma-ignore-broken-test.patch"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'fix-gemspec
+           (lambda _
+             (substitute* "puma.gemspec"
+               (("git ls-files") "find * |sort"))
+             #t)))))
+    (native-inputs
+     `(("ruby-hoe" ,ruby-hoe)
+       ("ruby-rake-compiler" ,ruby-rake-compiler)
+       ("ruby-hoe-git" ,ruby-hoe-git)
+       ("ruby-rack" ,ruby-rack)))
+    (synopsis "Simple, concurrent HTTP server for Ruby/Rack")
+    (description
+     "Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server
+for Ruby/Rack applications.  Puma is intended for use in both development and
+production environments.  In order to get the best throughput, it is highly
+recommended that you use a Ruby implementation with real threads like Rubinius
+or JRuby.")
+    (home-page "http://puma.io")
+    (license license:expat)))
+
+(define-public ruby-hoe-git
+  (package
+    (name "ruby-hoe-git")
+    (version "1.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (rubygems-uri "hoe-git" version))
+       (sha256
+        (base32
+         "10jmmbjm0lkglwxbn4rpqghgg1ipjxrswm117n50adhmy8yij650"))))
+    (build-system ruby-build-system)
+    (propagated-inputs
+     `(("ruby-hoe" ,ruby-hoe)
+       ("git" ,git)))
+    (synopsis "Hoe plugins for tighter Git integration")
+    (description
+     "This package provides a set of Hoe plugins for tighter Git integration.
+It provides tasks to automate release tagging and pushing and changelog
+generation.")
+    (home-page "http://github.com/jbarnette/hoe-git")
+    (license license:expat)))
+
 (define-public ruby-sequel
   (package
     (name "ruby-sequel")
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index e409dd546e..eac550e4ab 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -323,14 +323,14 @@ mashups, office (web agendas, mail clients, ...), etc.")
 (define-public chicken
   (package
     (name "chicken")
-    (version "4.10.0")
+    (version "4.11.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "http://code.call-cc.org/releases/"
                                  version "/chicken-" version ".tar.gz"))
              (sha256
               (base32
-               "16w96jrhb6qf62fgznk53f55yhfv81damghdjn31k5hirnmza1qf"))))
+               "12ddyiikqknpr8h6llsxbg2fz75xnayvcnsvr1cwv8xnjn7jpp73"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((guix build gnu-build-system)
diff --git a/gnu/packages/screen.scm b/gnu/packages/screen.scm
index 5827a1c53e..a4eefd85a6 100644
--- a/gnu/packages/screen.scm
+++ b/gnu/packages/screen.scm
@@ -34,13 +34,13 @@
 (define-public screen
   (package
     (name "screen")
-    (version "4.3.1")
+    (version "4.4.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/screen/screen-"
                                  version ".tar.gz"))
              (sha256
-              (base32 "0qwxd4axkgvxjigz9xs0kcv6qpfkrzr2gm43w9idx0z2mvw4jh7s"))))
+              (base32 "12r12xwhsg59mlprikbbmn60gh8lqhrvyar7mlxg4fwsfma2lwpg"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("makeinfo" ,texinfo)))
diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index 8dfd21d6a5..42bb2b8f92 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -21,8 +22,13 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
-  #:use-module (gnu packages documentation))
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages check)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages documentation)
+  #:use-module (gnu packages pkg-config))
 
 (define-public cereal
   (package
@@ -72,3 +78,48 @@
 arbitrary data types and reversibly turns them into different representations,
 such as compact binary encodings, XML, or JSON.")
     (license license:bsd-3)))
+
+
+(define-public msgpack
+  (package
+    (name "msgpack")
+    (version "1.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://github.com/msgpack/msgpack-c/releases/download/"
+         "cpp-" version "/msgpack-" version ".tar.gz"))
+       (snippet
+        '(let ((p (open-file "msgpack.pc.in" "a")))
+           (begin
+             (display
+              (string-append "Requires: " "zlib" "\n") p)
+             (close-output-port p))))
+       (sha256
+        (base32
+         "0bpjfh9vz0n2k93mph3x15clmigkgs223xfn8h12ymrh5gsi5ica"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("googletest" ,googletest)
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("zlib" ,zlib))) ;; Msgpack installs two headers (zbuffer.h,
+    ;; zbuffer.hpp) which #include <zlib.h>.  However, 'guix gc --references'
+    ;; does not detect a store reference to zlib since these headers are not
+    ;; compiled.
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'autoconf
+           (lambda _
+             (system* "autoreconf" "-vfi"))))))
+    (home-page "http://www.msgpack.org")
+    (synopsis "Binary serialization library")
+    (description "Msgpack is a library for C/C++ that implements binary
+serialization.")
+    (license license:boost1.0)))
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 1288d9d7ef..c84845dd29 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -378,6 +378,50 @@ and Francois (2011, JSS), and the book by Eddelbuettel (2013, Springer); see
 'citation(\"Rcpp\")' for details on these last two.")
     (license license:gpl2+)))
 
+(define-public r-mgcv
+  (package
+   (name "r-mgcv")
+   (version "1.8-12")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (cran-uri "mgcv" version))
+     (sha256
+      (base32
+       "1khzy36nn6xbnzqfc2953ng0sv8w91mns1ymhibaqn1150x1qid0"))))
+   (build-system r-build-system)
+   (home-page "http://cran.r-project.org/web/packages/mgcv")
+   (synopsis "Mixed generalised additive model computation")
+   (description
+    "GAMs, GAMMs and other generalized ridge regression with multiple smoothing
+parameter estimation by GCV, REML or UBRE/AIC.  The library includes a
+@code{gam()} function, a wide variety of smoothers, JAGS support and
+distributions beyond the exponential family.")
+   (license license:gpl2+)))
+
+(define-public r-permute
+  (package
+   (name "r-permute")
+   (version "0.9-0")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (cran-uri "permute" version))
+     (sha256
+      (base32
+       "0w68cqw6s4pixix8bh1qzsy1pm64jqh1cjznw74h82ygp8sj7p73"))))
+   (build-system r-build-system)
+   ;; Tests do not run correctly, but running them properly would entail a
+   ;; circular dependency with vegan.
+   (home-page "https://github.com/gavinsimpson/permute")
+   (synopsis "Functions for Generating Restricted Permutations of Data")
+   (description
+    "This package provides a set of restricted permutation designs for freely
+exchangeable, line transects (time series), spatial grid designs and permutation
+of blocks (groups of samples).  @code{permute} also allows split-plot designs,
+in which the whole-plots or split-plots or both can be freely exchangeable.")
+   (license license:gpl2+)))
+
 (define-public r-plyr
   (package
     (name "r-plyr")
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index c1ab8b3f5c..219f6856f8 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
+;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -55,27 +56,27 @@
 (define texlive-extra-src
   (origin
     (method url-fetch)
-    (uri "ftp://tug.org/historic/systems/texlive/2015/texlive-20150523-extra.tar.xz")
+    (uri "ftp://tug.org/historic/systems/texlive/2016/texlive-20160523-extra.tar.xz")
     (sha256 (base32
-              "1dkhhacga8h1v2m9xv1w02glbdda2m8lfp1la1y1zb9yjj8jsa6i"))))
+              "0q4a92zmwhn4ry6xgrp4k8wq11ax2sg9rg9yrsrdkr719y0x887a"))))
 
 (define texlive-texmf-src
   (origin
     (method url-fetch)
-    (uri "ftp://tug.org/historic/systems/texlive/2015/texlive-20150523-texmf.tar.xz")
+    (uri "ftp://tug.org/historic/systems/texlive/2016/texlive-20160523-texmf.tar.xz")
     (sha256 (base32
-              "1a3hpcg6x69ysqx432v6sk4alg0x34813cwk41frmvzprdajpyqy"))))
+              "0mfp6kq1p2ys5ni9czx9xl0xh264axri25vqw37yzk8jn3py9l08"))))
 
 (define texlive-bin
   (package
    (name "texlive-bin")
-   (version "2015")
+   (version "2016")
    (source
     (origin
      (method url-fetch)
-      (uri "ftp://tug.org/historic/systems/texlive/2015/texlive-20150521-source.tar.xz")
+      (uri "ftp://tug.org/historic/systems/texlive/2016/texlive-20160523-source.tar.xz")
       (sha256 (base32
-               "0sa6kmz4jwhv6lw702gxszhhjkvw071wba0ngk1c76g8vixwv6zd"))))
+               "07kb8rsw8d42wy3fj1qgqj26y92spx1lbhx6z73wwdb3msnvh4i9"))))
    (build-system gnu-build-system)
    (inputs
     `(("texlive-extra-src" ,texlive-extra-src)
@@ -171,7 +172,7 @@ This package contains the binaries.")
 (define texlive-texmf
   (package
    (name "texlive-texmf")
-   (version "2015")
+   (version "2016")
    (source texlive-texmf-src)
    (build-system gnu-build-system)
    (inputs
@@ -220,6 +221,7 @@ This package contains the binaries.")
                 (system* "updmap-sys" "--nohash" "--syncwithtrees")
                 (system* "mktexlsr")
                 (system* "fmtutil-sys" "--all")))))))
+   (properties `((max-silent-time . 9600))) ; don't time out while grafting
    (synopsis "TeX Live, a package of the TeX typesetting system")
    (description
     "TeX Live provides a comprehensive TeX document production system.
@@ -234,7 +236,7 @@ This package contains the complete tree of texmf-dist data.")
 (define-public texlive
   (package
    (name "texlive")
-   (version "2015")
+   (version "2016")
    (source #f)
    (build-system trivial-build-system)
    (inputs `(("bash" ,bash) ; for wrap-program
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 801bd29442..2b2076c484 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -112,14 +112,14 @@ as well as the classic centralized workflow.")
   ;; Keep in sync with 'git-manpages'!
   (package
    (name "git")
-   (version "2.8.4")
+   (version "2.9.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://kernel.org/software/scm/git/git-"
                                 version ".tar.xz"))
             (sha256
              (base32
-              "0mqnzs4wz2x1fa6kq2ckgf42fgx6qwp64ra1lgg73245l4r9l3hj"))))
+              "02dl8yvvl7m4zy39s0xmqr958ah7krvkv94lmx4vz3wl95wsj7zl"))))
    (build-system gnu-build-system)
    (native-inputs
     `(("native-perl" ,perl)
@@ -292,7 +292,7 @@ everything from small to very large projects with speed and efficiency.")
                     version ".tar.xz"))
               (sha256
                (base32
-                "1xdpp1i8sgdzk708vnxrm1z6dg4mip12fswihb8hlg2v5qqgrpfj"))))
+                "0ic4zs4axkkwa44nqv5iihj3q2nm42kx0j8scnfp1z93m6pw31fw"))))
     (build-system trivial-build-system)
     (arguments
      '(#:modules ((guix build utils))
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index c77a7e1529..819c0d5f48 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -77,7 +77,7 @@
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
-  #:use-module (gnu packages yasm)
+  #:use-module (gnu packages assembly)
   #:use-module (gnu packages zip))
 
 (define-public aalib
@@ -755,7 +755,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
 (define-public mpv
   (package
     (name "mpv")
-    (version "0.17.0")
+    (version "0.18.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -763,7 +763,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
                     ".tar.gz"))
               (sha256
                (base32
-                "0vms3viwqcwl1mrgmf2yy4c69fvv7xpbkyrl693l6zpwynqd4b30"))
+                "0az0zqb2rakak51zsvfqzj9a8jiqpvc61jxap8hjdkkb9y6n6mmn"))
               (file-name (string-append name "-" version ".tar.gz"))))
     (build-system waf-build-system)
     (native-inputs
@@ -818,7 +818,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
           (lambda* (#:key inputs #:allow-other-keys)
             (copy-file (assoc-ref inputs "waf") "waf")
             (setenv "CC" "gcc"))))
-       #:configure-flags (list "--enable-gpl3" "--enable-zsh-comp")
+       #:configure-flags (list "--enable-zsh-comp")
        ;; No check function defined.
        #:tests? #f))
     (home-page "https://mpv.io/")
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 3e145fc5d7..19870ef8f4 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
 ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2899,14 +2900,14 @@ applications.")
 (define-public perl-uri
   (package
     (name "perl-uri")
-    (version "1.67")
+    (version "1.71")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
                                  "URI-" version ".tar.gz"))
              (sha256
               (base32
-               "0ki7i830gs0cwwwjsyv3s6yy1l76ym8pfqp0lp7vw0j9bwyx923h"))))
+               "05a1ck1bhvqkkk690xhsxf7276dnagk96qkh2jy4prrrgw6wm3lw"))))
     (build-system perl-build-system)
     (license (package-license perl))
     (synopsis "Perl Uniform Resource Identifiers (absolute and relative)")
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index ad81f975dc..61479bef47 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
 ;;; Copyright © 2015 Cyrill Schenkel <cyrill.schenkel@gmail.com>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -149,7 +150,7 @@ autotools system.")
       `(("libxfont" ,libxfont)))
     (native-inputs
        `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Convert X font from BDF to PCF")
     (description
      "BDFtoPCF is a font compiler for the X server and font server.  It
@@ -174,7 +175,7 @@ which can be read by any architecture.")
             "07hvfm84scz8zjw14riiln2v4w03jlhp756ypwhq27g48jmic8a6"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg BigReqsProto protocol headers")
     (description
      "Big Requests Extension defines a protocol to enable the use of
@@ -201,7 +202,7 @@ requests that exceed 262140 bytes in length.")
       `(("fixesproto" ,fixesproto)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg CompositeProto protocol headers")
     (description
      "Composite Extension contains header files and documentation for
@@ -225,7 +226,7 @@ the damage protocol.")
             "0nzwr5pv9hg7c21n995pdiv0zqhs91yz3r8rn3aska4ykcp12z2w"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg DamageProto protocol headers")
     (description
      "Damage Extension contains header files and documentation for
@@ -249,7 +250,7 @@ the damage protocol.")
             "02b5x9dkgajizm8dqyx2w6hmqx3v25l67mgf35nj6sz0lgk52877"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg DMXProto protocol headers")
     (description
      "DMX (Distributed Multihead X) Extension defines a protocol for clients
@@ -273,7 +274,7 @@ servers making up a large display.")
           (base32
             "015az1vfdqmil1yay5nlsmpf6cf7vcbpslxjb72cfkzlvrv59dgr"))))
     (build-system gnu-build-system)
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg DRI2Proto protocol headers")
     (description
      "Direct Rendering Infrastructure 2 Extension defines a protocol to
@@ -296,7 +297,7 @@ requiring data to be passed through the X server.")
           (base32
             "0x609xvnl8jky5m8jdklw4nymx3irkv32w99dfd8nl800bblkgh1"))))
     (build-system gnu-build-system)
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg DRI3Proto protocol headers")
     (description
      "Direct Rendering Infrastructure 3 Extension provides mechanisms to
@@ -326,7 +327,7 @@ provided.")
       `(("mkfontscale" ,mkfontscale)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg font encoding files")
     (description "Xorg font encoding files.")
     (license license:public-domain)))
@@ -358,7 +359,7 @@ provided.")
         ;; install fonts into subdirectory of package output instead of
         ;; font-util-?.?.?/share/fonts/X11
         (string-append "--with-fontrootdir=" %output "/share/fonts/X11"))))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg adobe-100dpi fonts")
     (description "Xorg adobe-100dpi fonts.")
     (license license:x11)))
@@ -388,7 +389,7 @@ provided.")
     (arguments
       `(#:configure-flags (list
         (string-append "--with-fontrootdir=" %output "/share/fonts/X11"))))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg adobe-75dpi fonts")
     (description "Xorg adobe-75dpi fonts.")
     (license license:x11)))
@@ -433,7 +434,7 @@ provided.")
                                        (format p "0~%"))))
                                  '("75dpi" "100dpi" "misc" "cyrillic"))
                        #t))))))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg font aliases")
     (description
      "This package provides some common aliases for Xorg fonts.
@@ -461,7 +462,7 @@ For example: '6x10', '9x15bold', etc.")
         ("bdftopcf" ,bdftopcf)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg arabic-misc font")
     (description "Xorg arabic-misc font.")
     (license license:x11)))
@@ -498,7 +499,7 @@ For example: '6x10', '9x15bold', etc.")
         ("bdftopcf" ,bdftopcf)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg cronyx-cyrillic font")
     (description "Xorg cronyx-cyrillic font.")
     (license license:x11)))
@@ -531,7 +532,7 @@ For example: '6x10', '9x15bold', etc.")
         ("bdftopcf" ,bdftopcf)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg dec-misc font")
     (description "Xorg dec-misc font.")
     (license license:x11)))
@@ -560,7 +561,7 @@ For example: '6x10', '9x15bold', etc.")
         ("bdftopcf" ,bdftopcf)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg isas-misc font")
     (description "Xorg isas-misc font.")
     (license license:x11)))
@@ -590,7 +591,7 @@ For example: '6x10', '9x15bold', etc.")
         ("bdftopcf" ,bdftopcf)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg micro-misc font")
     (description "Xorg micro-misc font.")
     (license license:public-domain)))
@@ -616,7 +617,7 @@ For example: '6x10', '9x15bold', etc.")
         ("bdftopcf" ,bdftopcf)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg misc-cyrillic fonts")
     (description "Xorg misc-cyrillic fonts.")
     (license license:x11)))
@@ -641,7 +642,7 @@ For example: '6x10', '9x15bold', etc.")
       `(("mkfontdir" ,mkfontdir)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg misc-ethiopic fonts")
     (description "Xorg misc-ethiopic fonts.")
     (license license:x11)))
@@ -675,7 +676,7 @@ For example: '6x10', '9x15bold', etc.")
     (arguments
       `(#:configure-flags (list
         (string-append "--with-fontrootdir=" %output "/share/fonts/X11"))))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg misc-misc fonts")
     (description "Xorg misc-misc fixed fonts.")
     (license license:public-domain)))
@@ -701,7 +702,7 @@ For example: '6x10', '9x15bold', etc.")
         ("bdftopcf" ,bdftopcf)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg mutt-misc fonts")
     (description "Xorg mutt-misc fonts.")
     (license license:x11)))
@@ -731,7 +732,7 @@ For example: '6x10', '9x15bold', etc.")
     (arguments
       `(#:configure-flags (list
         (string-append "--with-fontrootdir=" %output "/share/fonts/X11"))))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg schumacher-misc fonts")
     (description "Xorg schumacher-misc fonts.")
     (license license:x11)))
@@ -757,7 +758,7 @@ For example: '6x10', '9x15bold', etc.")
         ("bdftopcf" ,bdftopcf)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg screen-cyrillic fonts")
     (description "Xorg screen-cyrillic fonts.")
     (license license:x11)))
@@ -783,7 +784,7 @@ For example: '6x10', '9x15bold', etc.")
         ("bdftopcf" ,bdftopcf)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg sony-misc fonts")
     (description "Xorg sony-misc fonts.")
     (license license:x11)))
@@ -809,7 +810,7 @@ For example: '6x10', '9x15bold', etc.")
         ("bdftopcf" ,bdftopcf)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg sun-misc fonts")
     (description "Xorg sun-misc fonts.")
     (license license:x11)))
@@ -831,7 +832,7 @@ For example: '6x10', '9x15bold', etc.")
             "08drjb6cf84pf5ysghjpb4i7xkd2p86k3wl2a0jxs1jif6qbszma"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg font utilities")
     (description
      "Xorg font package creation/installation utilities.")
@@ -858,7 +859,7 @@ For example: '6x10', '9x15bold', etc.")
         ("bdftopcf" ,bdftopcf)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg winitzki-cyrillic font")
     (description "Xorg winitzki-cyrillic font.")
     (license license:public-domain)))
@@ -883,7 +884,7 @@ For example: '6x10', '9x15bold', etc.")
       `(("mkfontdir" ,mkfontdir)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg xfree86-type1 font")
     (description "Xorg xfree86-type1 font.")
     (license license:x11)))
@@ -905,7 +906,7 @@ For example: '6x10', '9x15bold', etc.")
             "1f2sdsd74y34nnaf4m1zlcbhyv8xb6irnisc99f84c4ivnq4d415"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg FontsProto protocol headers")
     (description
      "Fonts Extension contains header files and documentation for
@@ -929,7 +930,7 @@ the fonts protocol.")
             "0h5ykmcddwid5qj6sbrszgkcypwn3mslvswxpgy2n2iixnyr9amd"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg GLProto protocol headers")
     (description
      "OpenGL Extension defines a protocol for the client to send 3D
@@ -956,7 +957,7 @@ rendering commands to the X server.")
       `(("libice" ,libice)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "ICE authority file utility")
     (description
      "ICEAuth program is used to edit and display the authorization
@@ -982,7 +983,7 @@ authentication records.")
             "1lf1jlxp0fc8h6fjdffhd084dqab94966l1zm3rwwsis0mifwiss"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg InputProto protocol headers")
     (description
      "Input Extension defines a protocol to provide additional input
@@ -1006,7 +1007,7 @@ devices management such as graphic tablets.")
             "0mxqj1pzhjpz9495vrjnpi10kv2n1s4vs7di0sh3yvipfq5j30pq"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg KBProto protocol headers")
     (description
      "X Keyboard (XKB) Extension defines a protocol to provide a number
@@ -1040,7 +1041,7 @@ of new capabilities and controls for text keyboards.")
         ("dmxproto" ,dmxproto)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg DMX library")
     (description
      "DMX (Distributed Multihead X) extension library.")
@@ -1092,7 +1093,7 @@ synchronization between the X server and direct-rendering clients.")
         ("xproto" ,xproto)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg font encoding library")
     (description "Xorg font encoding library.")
     (license license:x11)))
@@ -1119,7 +1120,7 @@ synchronization between the X server and direct-rendering clients.")
         ("fontsproto" ,fontsproto)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Font Service client library")
     (description
      "Font Service client library is used by clients of X Font
@@ -1147,7 +1148,7 @@ themselves.")
       `(("zlib" ,zlib)))
     (native-inputs
        `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg PCI access library")
     (description "Xorg Generic PCI access library.")
     (license license:x11)))
@@ -1169,7 +1170,7 @@ themselves.")
             "16bjv3in19l84hbri41iayvvg4ls9gv1ma0x0qlbmwy67i7dbdim"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Library with pthread stubs")
     (description
      "This library provides weak aliases for pthread functions not
@@ -1202,7 +1203,7 @@ hit when running single-threaded.")
         ("util-linux" ,util-linux)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Session Management library")
     (description "Xorg Session Management library.")
     (license license:x11)))
@@ -1230,7 +1231,7 @@ hit when running single-threaded.")
         ("windowswmproto" ,windowswmproto)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg WindowsWM library")
     (description
      "Cygwin/X rootless window management extension.
@@ -1263,7 +1264,7 @@ with the Cygwin XWin server when running X11 in a rootless mode.")
         ("compositeproto" ,compositeproto)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Composite library")
     (description
      "Client library for the Composite extension to the X11 protocol.")
@@ -1289,7 +1290,7 @@ with the Cygwin XWin server when running X11 in a rootless mode.")
       `(("xproto" ,xproto)))
     (native-inputs
        `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Display Manager Control Protocol library")
     (description "Xorg Display Manager Control Protocol library.")
     (license license:x11)))
@@ -1320,7 +1321,7 @@ with the Cygwin XWin server when running X11 in a rootless mode.")
         ("xproto" ,xproto)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg FreeType library")
     (description
      "Xorg FreeType library connects X applications with the FreeType font
@@ -1348,7 +1349,7 @@ configuration files.")
       `(("libx11" ,libx11)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg XKB file handling library")
     (description "Xorg XKB file handling library.")
     (license license:x11)))
@@ -1375,7 +1376,7 @@ configuration files.")
         ("libxext" ,libxext)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Xmu library")
     (description
      "Xmu library contains miscellaneous utilities and is not part of the
@@ -1408,7 +1409,7 @@ treat it as part of their software base when porting.")
         ("libxext" ,libxext)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg XPM library")
     (description "XPM (X Pixmap) image file format library.")
     (license license:x11)))
@@ -1436,7 +1437,7 @@ treat it as part of their software base when porting.")
         ("resourceproto" ,resourceproto)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Resource extension library")
     (description "X Resource extension library.")
     (license license:x11)))
@@ -1464,7 +1465,7 @@ treat it as part of their software base when porting.")
       `(("scrnsaverproto" ,scrnsaverproto)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Screen Saver library")
     (description "X11 Screen Saver extension client library.")
     (license license:x11)))
@@ -1492,7 +1493,7 @@ treat it as part of their software base when porting.")
         ("libxext" ,libxext)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg XFree86-DGA library")
     (description "Client library for the XFree86-DGA extension.")
     (license license:x11)))
@@ -1520,7 +1521,7 @@ treat it as part of their software base when porting.")
       `(("libfontenc" ,libfontenc)))
     (native-inputs
        `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Convert terminal I/O from legacy encodings to UTF-8")
     (description
      "Luit is a filter that can be run between an arbitrary application and
@@ -1548,7 +1549,7 @@ input from UTF-8 into the locale's encoding.")
     (inputs
       `(("xproto" ,xproto)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg makedepend utility")
     (description
      "Makedepend is an utility for creating dependencies in makefiles.")
@@ -1577,7 +1578,7 @@ input from UTF-8 into the locale's encoding.")
         ("libfontenc" ,libfontenc)))
     (native-inputs
        `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Create an index of scalable font files for X server")
     (description
      "MkFontScale creates the 'fonts.scale' and 'fonts.dir' index files used
@@ -1600,7 +1601,7 @@ by the legacy X11 font system.")
           (base32
             "1kir51aqg9cwazs14ivcldcn3mzadqgykc9cg87rm40zf947sb41"))))
     (build-system gnu-build-system)
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg PresentProto protocol headers")
     (description
      "Present Extension provides a way for applications to update their
@@ -1626,7 +1627,7 @@ mechanism than copying the contents of the source pixmap.")
             "06liap8n4s25sgp27d371cc7yg9a08dxcr3pmdjp761vyin3360j"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg PrintProto protocol headers")
     (description
      "Print Extension defines a protocol for a portable,
@@ -1650,7 +1651,7 @@ network-transparent printing system.")
             "0s4496z61y5q45q20gldwpf788b9nsa8hb13gnck1mwwwwrmarsc"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg RandRProto protocol headers")
     (description
      "Resize and Rotate Extension defines a protocol for clients to
@@ -1675,7 +1676,7 @@ window of a screen.")
             "0w3kgr1zabwf79bpc28dcnj0fpni6r53rpi82ngjbalj5s6m8xx7"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg RecordProto protocol headers")
     (description
      "Record Extension defines a protocol for the recording and playback
@@ -1699,7 +1700,7 @@ of user actions in the X Window System.")
             "0dr5xw6s0qmqg0q5pdkb4jkdhaja0vbfqla79qh5j1xjj9dmlwq6"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg RenderProto protocol headers")
     (description
      "Rendering Extension defines a protcol for a digital image composition
@@ -1723,7 +1724,7 @@ as the foundation of a new rendering model within the X Window System.")
             "0638iyfiiyjw1hg3139pai0j6m65gkskrvd9684zgc6ydcx00riw"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg ResourceProto protocol headers")
     (description
      "Resource Extension defines a protocol that allows a client to
@@ -1747,7 +1748,7 @@ query the X server about its usage of various resources.")
             "0rfdbfwd35d761xkfifcscx56q0n56043ixlmv70r4v4l66hmdwb"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg ScrnSaverProto protocol headers")
     (description
      "Screen Saver Extension defines a protocol to control screensaver
@@ -1774,7 +1775,7 @@ features and to query screensaver info on specific windows.")
       `(("xproto" ,xproto)))
     (native-inputs
        `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Register X sessions in system utmp/utmpx databases")
     (description
      "SessReg is a simple program for managing utmp/wtmp entries for X
@@ -1809,7 +1810,7 @@ used with other display managers such as gdm or kdm.")
        (list (string-append "--with-xkb-config-root="
                             (assoc-ref %build-inputs "xkeyboard-config")
                             "/share/X11/xkb"))))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Set the keyboard using the X Keyboard Extension")
     (description
      "Setxkbmap is an X11 client to change the keymaps in the X server
@@ -1838,7 +1839,7 @@ listed on the command line.")
         ("libxmu" ,libxmu)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Session Manager Proxy")
     (description
      "SMProxy allows X applications that do not support X11R6 session
@@ -1878,7 +1879,7 @@ management to participate in an X11R6 session.")
                         (delete-file "share/util-macros/INSTALL")
                         (rmdir "share/util-macros"))))
                   %standard-phases))))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg autoconf macros")
     (description
      "This package provides a set of autoconf macros used by the
@@ -1903,7 +1904,7 @@ generate new versions of their configure scripts with autoconf.")
             "1dnlkd9nb0m135lgd6hd61vc29sdyarsyya8aqpx7z10p261dbld"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg VideoProto protocol headers")
     (description
      "Video Extension provides a protocol for a video output mechanism,
@@ -1927,7 +1928,7 @@ mainly to rescale video playback in the video controller hardware.")
             "0syjxgy4m8l94qrm03nvn5k6bkxc8knnlld1gbllym97nvnv0ny0"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg WindowsWMProto protocol headers")
     (description
      "WindowsWM Extension defines a protocol, used for coordination between
@@ -1959,7 +1960,7 @@ server.")
         ("libxrender" ,libxrender)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "X server performance benchmarker")
     (description
      "X11Perf is a simple performance benchmarker for the Xorg X server.")
@@ -1992,7 +1993,7 @@ server.")
     ;; FIXME: The test suite needs http://liw.fi/cmdtest/
     (arguments `(#:tests? #f))
 
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "X authority file utility")
     (description
      "XAuth program is used to edit and display the authorization
@@ -2020,7 +2021,7 @@ information used in connecting to the X server.")
        ("xcb-util" ,xcb-util)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Control display backlight")
     (description
      "Xbacklight is used to adjust the backlight brightness where
@@ -2046,7 +2047,7 @@ the same way.")
             "178ym90kwidia6nas4qr5n5yqh698vv8r02js0r4vg3b6lsb0w9n"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "X bitmaps")
     (description
      "xbitmaps provides basic bitmaps (little pictures) used by some
@@ -2071,7 +2072,7 @@ legacy X clients.")
     (build-system gnu-build-system)
     (native-inputs
       `(("pkg-config" ,pkg-config) ("python" ,python-minimal-wrapper)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "XML-XCB protocol descriptions")
     (description
      "XCB-Proto provides the XML-XCB protocol descriptions that libxcb
@@ -2102,7 +2103,7 @@ generators in individual language bindings.")
             "1pyjv45wivnwap2wvsbrzdvjc5ql8bakkbkrvcv6q9bjjf33ccmi"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg XCMiscProto protocol headers")
     (description
      "XC-MISC Extension defines a protocol that provides Xlib two ways
@@ -2129,7 +2130,7 @@ to query the server for available resource IDs.")
       `(("libx11" ,libx11)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Device Color Characterization utility")
     (description
      "XCMSDB is used to load, query, or remove Device Color
@@ -2164,7 +2165,7 @@ X11 Inter-Client Communication Conventions Manual (ICCCM).")
        (list (string-append "--with-cursordir="
                             (assoc-ref %outputs "out")
                             "/share/icons"))))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Default Xorg cursors")
     (description
      "This package provides a default set of cursor themes for the Xorg
@@ -2192,7 +2193,7 @@ X server: 'handhelds', 'redglass' and 'whiteglass'.")
         ("libpng" ,libpng)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Create an X cursor file from PNG images")
     (description
      "XCursorGen prepares X11 cursor sets for use with libXcursor.")
@@ -2227,7 +2228,7 @@ X server: 'handhelds', 'redglass' and 'whiteglass'.")
         ("libdmx" ,libdmx)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg display information utility")
     (description
      "Xdpyinfo is used to display information about an X server: the
@@ -2258,7 +2259,7 @@ available.")
         ("libx11" ,libx11)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Query DRI configuration information")
     (description
      "XDRIInfo is used to query configuration information of X11
@@ -2288,7 +2289,7 @@ DRI (Direct Rendering Infrastructure) drivers.")
         ("libx11" ,libx11)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Print contents of X events")
     (description
      "XEv creates a window and then asks the X server to send it X11
@@ -2317,7 +2318,7 @@ usage.")
             "1c2vma9gqgc2v06rfxdiqgwhxmzk2cbmknwf1ng3m76vr0xb5x7k"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg XExtProto protocol headers")
     (description
      "XExtProto provides the following extensions: DOUBLE-BUFFER, DPMS,
@@ -2379,7 +2380,7 @@ devices, thus making direct access unnecessary.")
        (list (string-append "--with-sdkdir="
                             (assoc-ref %outputs "out")
                             "/include/xorg"))))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Generic input driver for X server")
     (description
      "xf86-input-evdev is a generic input driver for the Xorg X server.
@@ -2409,7 +2410,7 @@ including most mice, keyboards, tablets and touchscreens.")
     (inputs
      `(("libinput" ,libinput)
        ("xorg-server" ,xorg-server)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Input driver for X server based on libinput")
     (description
      "xf86-input-libinput is an input driver for the Xorg X server based
@@ -2439,7 +2440,7 @@ provide all features that libinput supports it does little beyond.")
        (list (string-append "--with-sdkdir="
                             (assoc-ref %outputs "out")
                             "/include/xorg"))))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Joystick input driver for X server")
     (description
      "xf86-input-joystick is a joystick input driver for the Xorg X server.
@@ -2464,7 +2465,7 @@ It is used to cotrol the pointer with a joystick device.")
     (build-system gnu-build-system)
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Keyboard input driver for X server")
     (description
      "xf86-input-keyboard is a keyboard input driver for the Xorg X server.")
@@ -2493,7 +2494,7 @@ It is used to cotrol the pointer with a joystick device.")
        (list (string-append "--with-sdkdir="
                             (assoc-ref %outputs "out")
                             "/include/xorg"))))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Mouse input driver for X server")
     (description
      "xf86-input-mouse is a mouse input driver for the Xorg X server.
@@ -2532,7 +2533,7 @@ as USB mice.")
              (string-append "--with-xorg-conf-dir="
                             (assoc-ref %outputs "out")
                             "/share/X11/xorg.conf.d"))))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Touchpad input driver for X server")
     (description
      "xf86-input-synaptics is a touchpad driver for the Xorg X server.")
@@ -2556,7 +2557,7 @@ as USB mice.")
     (build-system gnu-build-system)
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Void (null) input driver for X server")
     (description
      "xf86-input-void is a null input driver for the Xorg X server.")
@@ -2581,7 +2582,7 @@ as USB mice.")
     (build-system gnu-build-system)
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Ark Logic video driver for X server")
     (description
      "xf86-video-ark is an Ark Logic video driver for the Xorg X server.")
@@ -2607,7 +2608,7 @@ as USB mice.")
 ;;     (build-system gnu-build-system)
 ;;     (inputs `(("xorg-server" ,xorg-server)))
 ;;     (native-inputs `(("pkg-config" ,pkg-config)))
-;;     (home-page "http://www.x.org/wiki/")
+;;     (home-page "https://www.x.org/wiki/")
 ;;     (synopsis "ASpeed Technologies video driver for X server")
 ;;     (description
 ;;      "xf86-video-ast is an ASpeed Technologies video driver for the Xorg
@@ -2635,7 +2636,7 @@ as USB mice.")
               ("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (arguments `(#:configure-flags `("--disable-glamor"))) ; TODO: Enable glamor
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "ATI Radeon video driver for X server")
     (description
      "xf86-video-ati is an ATI Radeon video driver for the Xorg
@@ -2660,7 +2661,7 @@ X server.")
     (build-system gnu-build-system)
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Cirrus Logic video driver for X server")
     (description
      "xf86-video-cirrus is a Cirrus Logic video driver for the Xorg
@@ -2689,7 +2690,7 @@ X server.")
     (build-system gnu-build-system)
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Framebuffer device video driver for X server")
     (description
      "xf86-video-fbdev is a video driver for the Xorg X server for
@@ -2719,7 +2720,7 @@ framebuffer device.")
      ;; This driver is only supported on i686 systems.
      (filter (lambda (system) (string-prefix? "i686-" system))
              %supported-systems))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "AMD Geode GX/LX video driver for X server")
     (description
      "xf86-video-geode is an Xorg X server video driver for the AMD
@@ -2749,7 +2750,7 @@ compositing.  Both support Xv overlay and dynamic rotation with XRandR.")
 ;;     (build-system gnu-build-system)
 ;;     (inputs `(("pkg-config" ,pkg-config)
 ;;               ("xorg-server" ,xorg-server)))
-;;     (home-page "http://www.x.org/wiki/")
+;;     (home-page "https://www.x.org/wiki/")
 ;;     (synopsis "Glide video driver for X server")
 ;;     (description
 ;;      "xf86-video-glide is a Glide video driver for the Xorg X server.")
@@ -2775,7 +2776,7 @@ compositing.  Both support Xv overlay and dynamic rotation with XRandR.")
     (inputs `(("xf86dgaproto" ,xf86dgaproto)
               ("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "GLINT/Permedia video driver for X server")
     (description
      "xf86-video-glint is a GLINT/Permedia video driver for the Xorg
@@ -2801,7 +2802,7 @@ X server.")
     (build-system gnu-build-system)
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "I128 video driver for X server")
     (description
      "xf86-video-i128 is an I128 (Imagine 128) video driver for the Xorg
@@ -2819,7 +2820,7 @@ X server.")
          ;; there's no current tarball
          (method git-fetch)
          (uri (git-reference
-               (url "http://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel.git")
+               (url "https://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel.git")
                (commit commit)))
          (sha256
           (base32
@@ -2846,7 +2847,7 @@ X server.")
                     (add-after 'unpack 'bootstrap
                       (lambda _
                         (zero? (system* "autoreconf" "-vfi")))))))
-      (home-page "http://www.x.org/wiki/")
+      (home-page "https://www.x.org/wiki/")
       (synopsis "Intel video driver for X server")
       (description
        "xf86-video-intel is a 2D graphics driver for the Xorg X server.
@@ -2875,7 +2876,7 @@ It supports a variety of Intel graphics chipsets.")
               ("xorg-server" ,xorg-server)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Mach64 video driver for X server")
     (description
      "xf86-video-mach64 is a video driver for the Xorg X server.
@@ -2905,7 +2906,7 @@ the same level of support for generic VGA or 8514/A adapters.")
               ("xf86driproto" ,xf86driproto)
               ("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Matrox video driver for X server")
     (description
      "xf86-video-mga is a Matrox video driver for the Xorg X server.")
@@ -2930,7 +2931,7 @@ the same level of support for generic VGA or 8514/A adapters.")
               ("libx11" ,libx11)
               ("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "\"Modesetting\" video driver for X server")
     (description
      "This is a generic \"modesetting\" video driver, that relies on the Linux
@@ -2955,7 +2956,7 @@ kernel mode setting (KMS).")
     (inputs `(("xf86dgaproto" ,xf86dgaproto)
               ("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "NeoMagic video driver for X server")
     (description
      "xf86-video-neomagic is a NeoMagic video driver for the Xorg X server.")
@@ -2981,7 +2982,7 @@ kernel mode setting (KMS).")
 ;;     (build-system gnu-build-system)
 ;;     (inputs `(("xorg-server" ,xorg-server)))
 ;;     (native-inputs `(("pkg-config" ,pkg-config)))
-;;     (home-page "http://www.x.org/wiki/")
+;;     (home-page "https://www.x.org/wiki/")
 ;;     (synopsis "Newport video driver for X server")
 ;;     (description
 ;;      "xf86-video-newport is an Xorg X server video driver for the SGI
@@ -3007,7 +3008,7 @@ kernel mode setting (KMS).")
     (build-system gnu-build-system)
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "NVIDIA video driver for X server")
     (description
      "This package contains Xorg support for the NVIDIA GeForce 8 series of
@@ -3065,7 +3066,7 @@ graphics cards.")
               ("xorg-server" ,xorg-server)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Openchrome video driver for X server")
     (description
      "xf86-video-openchrome is a video driver for the Xorg X server.
@@ -3093,7 +3094,7 @@ UniChrome Pro and Chrome9 integrated graphics processors.")
               ("xf86driproto" ,xf86driproto)
               ("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "ATI Rage 128 video driver for X server")
     (description
      "xf86-video-r128 is a video driver for the Xorg X server.
@@ -3120,7 +3121,7 @@ This driver is intended for ATI Rage 128 based cards.")
               ("xf86driproto" ,xf86driproto)
               ("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Savage video driver for X server")
     (description
      "xf86-video-savage is an S3 Savage video driver for the Xorg X server.")
@@ -3144,7 +3145,7 @@ This driver is intended for ATI Rage 128 based cards.")
     (build-system gnu-build-system)
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Silicon Motion video driver for X server")
     (description
      "xf86-video-siliconmotion is a Silicon Motion video driver for the
@@ -3173,7 +3174,7 @@ Xorg X server.")
               ("xorg-server" ,xorg-server)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Sis video driver for X server")
     (description
      "xf86-video-SiS is a SiS video driver for the Xorg X server.
@@ -3198,7 +3199,7 @@ This driver supports SiS chipsets of 300/315/330/340 series.")
     (build-system gnu-build-system)
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "GX/TurboGX video driver for X server")
     (description
      "xf86-video-suncg6 is a GX/TurboGX video driver for the Xorg X server.")
@@ -3222,7 +3223,7 @@ This driver supports SiS chipsets of 300/315/330/340 series.")
     (build-system gnu-build-system)
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "SUNFFB video driver for X server")
     (description
      "xf86-video-sunffb is a SUNFFB video driver for the Xorg X server.")
@@ -3248,7 +3249,7 @@ This driver supports SiS chipsets of 300/315/330/340 series.")
               ("xf86driproto" ,xf86driproto)
               ("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "3Dfx video driver for X server")
     (description
      "xf86-video-tdfx is a 3Dfx video driver for the Xorg X server.")
@@ -3274,7 +3275,7 @@ This driver supports SiS chipsets of 300/315/330/340 series.")
     (inputs `(("xf86dgaproto" ,xf86dgaproto)
               ("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "TGA video driver for X server")
     (description
      "xf86-video-tga is a TGA (DEC 21030) video driver for the Xorg
@@ -3300,7 +3301,7 @@ X server.")
     (inputs `(("xf86dgaproto" ,xf86dgaproto)
               ("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Trident video driver for X server")
     (description
      "xf86-video-trident is a Trident video driver for the Xorg X server.")
@@ -3328,7 +3329,7 @@ X server.")
     (build-system gnu-build-system)
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "VESA video driver for X server")
     (description
      "xf86-video-vesa is a generic VESA video driver for the Xorg
@@ -3357,7 +3358,7 @@ X server.")
               ("xorg-server" ,xorg-server)))
     (native-inputs
        `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "VMware SVGA video driver for X server")
     (description
      "xf86-video-vmware is a VMware SVGA video driver for the Xorg X server.")
@@ -3391,7 +3392,7 @@ xf86-video-voodoo/patch/?id=9172ae566a0e85313fc80ab62b4455393eefe593")
     (inputs `(("xf86dgaproto" ,xf86dgaproto)
               ("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Voodoo/Voodoo2 video driver for X server")
     (description
      "xf86-video-voodoo is a Voodoo video driver for the Xorg X server.")
@@ -3417,7 +3418,7 @@ xf86-video-voodoo/patch/?id=9172ae566a0e85313fc80ab62b4455393eefe593")
           (base32
             "0j0n7sj5xfjpmmgx6n5x556rw21hdd18fwmavp95wps7qki214ms"))))
     (build-system gnu-build-system)
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg XF86BigFontProto protocol headers")
     (description
      "XFree86 Bigfont Extension contains header files and documentation
@@ -3440,7 +3441,7 @@ for the XF86BigFontProto protocol.")
           (base32
             "0l4hx48207mx0hp09026r6gy9nl3asbq0c75hri19wp1118zcpmc"))))
     (build-system gnu-build-system)
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg XF86DGAProto protocol headers")
     (description
      "XFree86 Direct Graphic Access Extension defines a protocol for
@@ -3463,7 +3464,7 @@ direct linear framebuffer access.")
           (base32
             "07v69m0g2dfzb653jni4x656jlr7l84c1k39j8qc8vfb45r8sjww"))))
     (build-system gnu-build-system)
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg XF86DRIProto protocol headers")
     (description
      "XFree86 Direct Rendering Infrastructure Extension defines a
@@ -3487,7 +3488,7 @@ requiring data to be passed through the X server.")
           (base32
             "0w47d7gfa8zizh2bshdr2rffvbr4jqjv019mdgyh6cmplyd4kna5"))))
     (build-system gnu-build-system)
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg XF86VidModeProto protocol headers")
     (description
      "XFree86 Video Mode Extension defines a protocol for dynamically
@@ -3515,7 +3516,7 @@ configuring modelines and gamma.")
         ("libx11" ,libx11)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Alter a monitor's gamma correction")
     (description
      "XGamma is used to query and alter the gamma correction of a
@@ -3544,7 +3545,7 @@ monitor via the X video mode extension.")
         ("libx11" ,libx11)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg server access control utility")
     (description
      "XHost is used to manage the list of host names or user names
@@ -3568,7 +3569,7 @@ allowed to make connections to the X server.")
             "0ns8abd27x7gbp4r44z3wc5k9zqxxj8zjnazqpcyr4n17nxp8xcp"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg XineramaProto protocol headers")
     (description
      "Xinerama Extension allows clients to query information about multiple
@@ -3607,7 +3608,7 @@ alternative implementations like XRandR or TwinView.")
         ("inputproto" ,inputproto)))
     (native-inputs
        `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Configure input devices for X server")
     (description
      "XInput is used to configure and test XInput devices.")
@@ -3635,7 +3636,7 @@ alternative implementations like XRandR or TwinView.")
         ("libx11" ,libx11)))
     (native-inputs
         `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Compile XKB keyboard description")
     (description
      "xkbcomp keymap compiler converts a description of an XKB keymap
@@ -3684,7 +3685,7 @@ make keyboards more accessible to people with physical impairments.")
         ("libx11" ,libx11)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "XKB event daemon demo")
     (description
      "XKB event daemon listens for the specified XKB events and executes
@@ -3714,7 +3715,7 @@ requested commands if they occur.")
         ("inputproto" ,inputproto)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "XKB utilities")
     (description
      "XKBUtils is a collection of small utilities for X Keyboard (XKB)
@@ -3750,7 +3751,7 @@ extension to the X11 protocol.  It includes:
     (native-inputs
       `(("intltool" ,intltool)
         ("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg XKB configuration files")
     (description
      "xkeyboard-config provides a database for X Keyboard (XKB) Extension.
@@ -3780,7 +3781,7 @@ can be combined together using the 'rules' component of this database.")
         ("libx11" ,libx11)))
     (native-inputs
        `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Kill a client by its X resource")
     (description
      "XKill is used to force the X server to close connections to
@@ -3808,7 +3809,7 @@ programs that have displayed undesired windows on a user's screen.")
       `(("libxcb" ,libxcb)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "List interned X server atoms")
     (description
      "XLsAtoms is used to list the interned atoms defined on X server.")
@@ -3834,7 +3835,7 @@ programs that have displayed undesired windows on a user's screen.")
       `(("libxcb" ,libxcb)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "List client applications running on a display")
     (description
      "XLsClients is used to list information about the client programs
@@ -3862,7 +3863,7 @@ running on X server.")
        ("libx11" ,libx11)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "List fonts available from an X server")
     (description
      "xlsfonts lists fonts available from an X server via the X11 core
@@ -3891,7 +3892,7 @@ protocol.")
         ("libx11" ,libx11)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Modify keymaps and button mappings on X server")
     (description
      "Xmodmap is used to display and edit the keyboard modifier map and
@@ -3922,7 +3923,7 @@ tastes.")
             "0k5pffyi5bx8dmfn033cyhgd3gf6viqj3x769fqixifwhbgy2777"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg SGML documentation tools")
     (description
     "This package provides a common set of SGML entities and XML/CSS style
@@ -3955,7 +3956,7 @@ refers to the included common xorg.css stylesheet.")
         ("libx11" ,libx11)))
     (native-inputs
         `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Print an X window dump from xwd")
     (description
      "XPr takes as input a window dump file produced by xwd and formats
@@ -3983,7 +3984,7 @@ it for output on various types of printers.")
         ("libx11" ,libx11)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Display X server properties")
     (description
      "xprop is used to display and/or set window and font properties of
@@ -4012,7 +4013,7 @@ an X server.")
         ("libx11" ,libx11)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Command line interface to X RandR extension")
     (description
      "xrandr - primitive command line interface to X11 Resize, Rotate,
@@ -4040,7 +4041,7 @@ and Reflect (RandR) extension.")
         ("libx11" ,libx11)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "X server resource database utility")
     (description
      "XRDB is used to get or set the contents of the RESOURCE_MANAGER
@@ -4070,7 +4071,7 @@ file.")
       `(("libx11" ,libx11)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Refresh all or part of an X screen")
     (description
      "Xrefresh is a simple X program that causes all or part of your
@@ -4101,7 +4102,7 @@ up your screen.")
         ("libx11" ,libx11)))
     (native-inputs
        `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "User preference utility for X server")
     (description
      "XSet is used to set various user preference options of the display.")
@@ -4129,7 +4130,7 @@ up your screen.")
         ("xbitmaps" ,xbitmaps)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Root window parameter setting utility for X server")
     (description
      "XSetRoot allows you to tailor the appearance of the root window on
@@ -4153,7 +4154,7 @@ a display running X server.")
             "00c3ph17acnsch3gbdmx33b9ifjnl5w7vx8hrmic1r1cjcv3pgdd"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Network Transport layer library")
     (description
      "Xtrans is a library of code that is shared among various X packages to
@@ -4184,7 +4185,7 @@ libICE, the X font server, and related components.")
         ("libx11" ,libx11)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Print out X-Video extension adaptor information")
     (description
      "XVInfo is used to print out the capabilities of any video adaptors
@@ -4214,7 +4215,7 @@ extension.")
         ("xproto" ,xproto)))
     (native-inputs
        `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Dump current contents of X window or screen to file")
     (description
      "Xwd is used to store window images in a specially formatted dump
@@ -4246,7 +4247,7 @@ dump and twice whenthe dump is completed.")
         ("xproto" ,xproto)))
     (native-inputs
        `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Window information utility for X server")
     (description
      "XWinInfo is used to print out information about windows on an X server.
@@ -4274,7 +4275,7 @@ Various information is displayed depending on which options are selected.")
         ("libx11" ,libx11)))
     (native-inputs
        `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Display an X window dump from xwd")
     (description
      "Xwud is used to display in a window an image saved in a specially
@@ -4327,7 +4328,7 @@ formatted dump file, such as produced by xwd.")
       `(("xextproto" ,xextproto)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg FixesProto protocol headers")
     (description
      "Fixes Extension makes changes to many areas of the protocol to resolve
@@ -4359,7 +4360,7 @@ cannot be adequately worked around on the client side of the wire.")
         ("libx11" ,libx11)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Damage Extension library")
     (description "Xorg library for the XDamage extension.")
     (license license:x11)))
@@ -4387,7 +4388,7 @@ cannot be adequately worked around on the client side of the wire.")
         ("libx11" ,libx11)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Common extensions library")
     (description
      "Library for common extensions to the X11 protocol.")
@@ -4416,7 +4417,7 @@ cannot be adequately worked around on the client side of the wire.")
         ("libx11" ,libx11)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Xinerama protocol library")
     (description "API for Xinerama extension to X11 protocol.")
     (license license:x11)))
@@ -4444,7 +4445,7 @@ cannot be adequately worked around on the client side of the wire.")
         ("libxext" ,libxext)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Print Client library")
     (description "Xorg Print Client library.")
     (license license:x11)))
@@ -4472,7 +4473,7 @@ cannot be adequately worked around on the client side of the wire.")
         ("libx11" ,libx11)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Render Extension library")
     (description "Library for the Render Extension to the X11 protocol.")
     (license license:x11)))
@@ -4501,7 +4502,7 @@ cannot be adequately worked around on the client side of the wire.")
         ("inputproto" ,inputproto)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg library for Xtest and Record extensions")
     (description
      "libXtst provides the Xlib-based client API for the XTEST & RECORD
@@ -4540,7 +4541,7 @@ protocol and arbitrary X extension protocol.")
         ("libx11" ,libx11)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg XVideo Extension library")
     (description "Library for the X Video Extension to the X11 protocol.")
     (license license:x11)))
@@ -4565,7 +4566,7 @@ protocol and arbitrary X extension protocol.")
       `(("mkfontscale" ,mkfontscale)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Create an index of X font files in a directory")
     (description
      "MkFontDir creates the 'fonts.dir' files needed by the legacy X
@@ -4593,7 +4594,7 @@ script around the mkfontscale program.")
       `(("util-macros" ,util-macros))) ; to get util-macros in (almost?) all package inputs
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg X11Proto protocol headers")
     (description
      "XProto provides the headers and specification documents defining
@@ -4629,7 +4630,7 @@ common definitions and porting layer.")
       `(("xtrans" ,xtrans)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Inter-Client Exchange library")
     (description "Xorg Inter-Client Exchange library.")
     (license license:x11)))
@@ -4654,7 +4655,7 @@ common definitions and porting layer.")
       `(("xproto" ,xproto)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Authorization library")
     (description
      "libXau provides an authorization library for individual access to
@@ -4683,7 +4684,7 @@ an X Window System display.")
         ("libx11" ,libx11)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Fixes Extension library")
     (description "Library for the XFixes Extension to the X11 protocol.")
     (license license:x11)))
@@ -4714,7 +4715,7 @@ an X Window System display.")
         ("xtrans" ,xtrans)))
     (native-inputs
        `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Font handling library")
     (description
      "libXfont provides the core of the legacy X11 font system, handling the
@@ -4750,7 +4751,7 @@ new API's in libXft, or the legacy API's in libX11.")
       `(("xproto" ,xproto)))
     (native-inputs
        `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Input Extension library")
     (description "Library for the XInput Extension to the X11 protocol.")
     (license license:x11)))
@@ -4780,7 +4781,7 @@ new API's in libXft, or the legacy API's in libX11.")
         ("xproto" ,xproto)))
     (native-inputs
        `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Resize and Rotate Extension library")
     (description
      "Library for the Resize and Rotate Extension to the X11 protocol.")
@@ -4810,7 +4811,7 @@ new API's in libXft, or the legacy API's in libX11.")
         ("libx11" ,libx11)))
     (native-inputs
        `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg XvMC library")
     (description "Xorg XvMC library.")
     (license license:x11)))
@@ -4838,7 +4839,7 @@ new API's in libXft, or the legacy API's in libX11.")
       `(("libx11" ,libx11)))
     (native-inputs
        `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg XF86 Video Mode Extension library")
     (description
      "Library for the XFree86 Video Mode Extension Extension to the X11
@@ -4873,7 +4874,7 @@ protocol.")
         ("python" ,python-minimal-wrapper)))
     (arguments
      `(#:configure-flags '("--enable-xkb")))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "The X C Binding (XCB) library")
     (description
      "libxcb provides an interface to the X Window System protocol,
@@ -4984,7 +4985,7 @@ over Xlib, including:
                      (("\\$\\(MKDIR_P\\).*logdir.*")
                       "true\n")))
                  %standard-phases)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg implementation of the X Window System")
     (description
      "This package provides the Xorg X server itself.
@@ -5032,7 +5033,7 @@ draggable titlebars and borders.")
         ("xtrans" ,xtrans)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Core X11 protocol client library")
     (description "Xorg Core X11 protocol client library.")
     (license license:x11)))
@@ -5062,7 +5063,7 @@ draggable titlebars and borders.")
         ("xproto" ,xproto)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Cursor management library")
     (description "Xorg Cursor management library.")
     (license license:x11)))
@@ -5097,7 +5098,7 @@ draggable titlebars and borders.")
       `(("libx11" ,libx11)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg XToolkit Intrinsics library")
     (description "Xorg XToolkit Intrinsics library.")
     (license license:x11)))
@@ -5127,7 +5128,7 @@ draggable titlebars and borders.")
       `(("xproto" ,xproto)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Xaw library")
     (description
      "Xaw is the X Athena Widget Set based on the X Toolkit
@@ -5151,7 +5152,7 @@ Intrinsics (Xt) Library.")
      `(("libxcb" ,libxcb)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://cgit.freedesktop.org/xcb/util/")
+    (home-page "https://cgit.freedesktop.org/xcb/util/")
     (synopsis "Core XCB utility functions")
     (description
      "The XCB util module provides a number of libraries which sit on
@@ -5190,7 +5191,7 @@ The XCB util module provides the following libraries:
      `(("libxcb" ,libxcb)
        ("xcb-util-renderutil" ,xcb-util-renderutil)
        ("xcb-util-image" ,xcb-util-image)))
-    (home-page "http://cgit.freedesktop.org/xcb/util-cursor/")
+    (home-page "https://cgit.freedesktop.org/xcb/util-cursor/")
     (synopsis "Port of libxcursor")
     (description "XCB-util-cursor is a port of libxcursor.")
     (license
@@ -5218,7 +5219,7 @@ The XCB util module provides the following libraries:
      `(("xcb-util" ,xcb-util)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://cgit.freedesktop.org/xcb/util-image/")
+    (home-page "https://cgit.freedesktop.org/xcb/util-image/")
     (synopsis "XCB port of Xlib's XImage and XShmImage")
     (description
      "The XCB util module provides a number of libraries which sit on
@@ -5250,7 +5251,7 @@ The XCB util-image module provides the following library:
      `(("libxcb" ,libxcb)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://cgit.freedesktop.org/xcb/util-keysyms/")
+    (home-page "https://cgit.freedesktop.org/xcb/util-keysyms/")
     (synopsis "Standard X constants and conversion to/from keycodes")
     (description
      "The XCB util module provides a number of libraries which sit on
@@ -5282,7 +5283,7 @@ The XCB util-keysyms module provides the following library:
      `(("libxcb" ,libxcb)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://cgit.freedesktop.org/xcb/util-renderutil/")
+    (home-page "https://cgit.freedesktop.org/xcb/util-renderutil/")
     (synopsis "Convenience functions for the Render extension")
     (description
      "The XCB util module provides a number of libraries which sit on
@@ -5315,7 +5316,7 @@ The XCB util-renderutil module provides the following library:
     (native-inputs
      `(("m4" ,m4)
        ("pkg-config" ,pkg-config)))
-    (home-page "http://cgit.freedesktop.org/xcb/util-wm/")
+    (home-page "https://cgit.freedesktop.org/xcb/util-wm/")
     (synopsis "Client and window-manager helpers for ICCCM and EWMH")
     (description
      "The XCB util modules provides a number of libraries which sit on
@@ -5385,7 +5386,7 @@ user-friendly mechanism to start the X server.")
      `(("libx11" ,libx11)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Xaw3d library")
     (description
      "Xaw is the X 3D Athena Widget Set based on the X Toolkit
@@ -5470,7 +5471,7 @@ perl programs to display windows and graphics on X11 servers.")
        ;; there's no current tarball
        (method git-fetch)
        (uri (git-reference
-             (url "http://anongit.freedesktop.org/git/xorg/app/xcompmgr.git")
+             (url "https://anongit.freedesktop.org/git/xorg/app/xcompmgr.git")
              (commit (string-append name "-" version))))
        (sha256
         (base32
@@ -5498,6 +5499,6 @@ perl programs to display windows and graphics on X11 servers.")
     (description "xcompmgr is a sample compositing manager for X servers
 supporting the XFIXES, DAMAGE, RENDER, and COMPOSITE extensions.  It enables
 basic eye-candy effects.")
-    (home-page "http://cgit.freedesktop.org/xorg/app/xcompmgr/")
+    (home-page "https://cgit.freedesktop.org/xorg/app/xcompmgr/")
     (license (license:x11-style
-              "http://cgit.freedesktop.org/xorg/app/xcompmgr/tree/COPYING"))))
+              "https://cgit.freedesktop.org/xorg/app/xcompmgr/tree/COPYING"))))
diff --git a/gnu/packages/yasm.scm b/gnu/packages/yasm.scm
deleted file mode 100644
index 31a9083cdf..0000000000
--- a/gnu/packages/yasm.scm
+++ /dev/null
@@ -1,55 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
-;;;
-;;; This file is part of GNU Guix.
-;;;
-;;; GNU Guix is free software; you can redistribute it and/or modify it
-;;; under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 3 of the License, or (at
-;;; your option) any later version.
-;;;
-;;; GNU Guix is distributed in the hope that it will be useful, but
-;;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;;; GNU General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (gnu packages yasm)
-  #:use-module (gnu packages)
-  #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (guix packages)
-  #:use-module (guix download)
-  #:use-module (guix build-system gnu)
-  #:use-module (gnu packages python)
-  #:use-module (gnu packages xml))
-
-(define-public yasm
-  (package
-    (name "yasm")
-    (version "1.3.0")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (string-append "http://www.tortall.net/projects/yasm/releases/yasm-"
-                          version ".tar.gz"))
-      (sha256
-       (base32
-        "0gv0slmm0qpq91za3v2v9glff3il594x5xsrbgab7xcmnh0ndkix"))))
-    (build-system gnu-build-system)
-    (inputs
-     `(("python" ,python-wrapper)
-       ("xmlto" ,xmlto)))
-    (home-page "http://yasm.tortall.net/")
-    (synopsis "Rewrite of the NASM assembler")
-    (description
-     "Yasm is a complete rewrite of the NASM assembler.
-
-Yasm currently supports the x86 and AMD64 instruction sets, accepts NASM
-and GAS assembler syntaxes, outputs binary, ELF32, ELF64, 32 and 64-bit
-Mach-O, RDOFF2, COFF, Win32, and Win64 object formats, and generates source
-debugging information in STABS, DWARF 2, and CodeView 8 formats.")
-    (license (license:non-copyleft "file://COPYING"
-                                "See COPYING in the distribution."))))
diff --git a/gnu/services.scm b/gnu/services.scm
index 9268c51dd8..50e76df818 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -73,6 +73,7 @@
             setuid-program-service-type
             profile-service-type
             firmware-service-type
+            gc-root-service-type
 
             %boot-service
             %activation-service
@@ -489,6 +490,33 @@ kernel."
                 (compose concatenate)
                 (extend append)))
 
+(define (gc-roots->system-entry roots)
+  "Return an entry in the system's output containing symlinks to ROOTS."
+  (mlet %store-monad ((entry (gexp->derivation
+                              "gc-roots"
+                              #~(let ((roots '#$roots))
+                                  (mkdir #$output)
+                                  (chdir #$output)
+                                  (for-each symlink
+                                            roots
+                                            (map number->string
+                                                 (iota (length roots))))))))
+    (return (if (null? roots)
+                '()
+                `(("gc-roots" ,entry))))))
+
+(define gc-root-service-type
+  ;; A service to associate extra garbage-collector roots to the system.  This
+  ;; is a simple hack that guarantees that the system retains references to
+  ;; the given list of roots.  Roots must be "lowerable" objects like
+  ;; packages, or derivations.
+  (service-type (name 'gc-roots)
+                (extensions
+                 (list (service-extension system-service-type
+                                          gc-roots->system-entry)))
+                (compose concatenate)
+                (extend append)))
+
 
 ;;;
 ;;; Service folding.
diff --git a/gnu/services/mcron.scm b/gnu/services/mcron.scm
new file mode 100644
index 0000000000..313c8364f8
--- /dev/null
+++ b/gnu/services/mcron.scm
@@ -0,0 +1,115 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu services mcron)
+  #:use-module (gnu services)
+  #:use-module (gnu services base)
+  #:use-module (gnu services shepherd)
+  #:autoload   (gnu packages guile) (mcron2)
+  #:use-module (guix records)
+  #:use-module (guix gexp)
+  #:use-module (srfi srfi-1)
+  #:use-module (ice-9 match)
+  #:use-module (ice-9 vlist)
+  #:export (mcron-configuration
+            mcron-configuration?
+            mcron-configuration-mcron
+            mcron-configuration-jobs
+
+            mcron-service-type
+            mcron-service))
+
+;;; Commentary:
+;;;
+;;; This module implements a service that to run instances of GNU mcron, a
+;;; periodic job execution daemon.  Example of a service:
+;;
+;;  (service mcron-service-type
+;;           (mcron-configuration
+;;            (jobs (list #~(job next-second-from
+;;                               (lambda ()
+;;                                 (call-with-output-file "/dev/console"
+;;                                   (lambda (port)
+;;                                     (display "hello!\n" port)))))))))
+;;;
+;;; Code:
+
+(define-record-type* <mcron-configuration> mcron-configuration
+  make-mcron-configuration
+  mcron-configuration?
+  (mcron             mcron-configuration-mcron    ;package
+                     (default mcron2))
+  (jobs              mcron-configuration-jobs     ;list of <mcron-job>
+                     (default '())))
+
+(define (job-file job)
+  (scheme-file "mcron-job" job))
+
+(define mcron-shepherd-services
+  (match-lambda
+    (($ <mcron-configuration> mcron ())           ;nothing to do!
+     '())
+    (($ <mcron-configuration> mcron jobs)
+     (list (shepherd-service
+            (provision '(mcron))
+            (requirement '(user-processes))
+            (modules `((srfi srfi-1)
+                       (srfi srfi-26)
+                       ,@%default-modules))
+            (start #~(make-forkexec-constructor
+                      (list (string-append #$mcron "/bin/mcron")
+                            #$@(map job-file jobs))
+
+                      ;; Disable auto-compilation of the job files and set a
+                      ;; sane value for 'PATH'.
+                      #:environment-variables
+                      (cons* "GUILE_AUTO_COMPILE=0"
+                             "PATH=/run/current-system/profile/bin"
+                             (remove (cut string-prefix? "PATH=" <>)
+                                     (environ)))))
+            (stop #~(make-kill-destructor)))))))
+
+(define mcron-service-type
+  (service-type (name 'mcron)
+                (extensions
+                 (list (service-extension shepherd-root-service-type
+                                          mcron-shepherd-services)
+                       (service-extension profile-service-type
+                                          (compose list
+                                                   mcron-configuration-mcron))))
+                (compose concatenate)
+                (extend (lambda (config jobs)
+                          (mcron-configuration
+                           (inherit config)
+                           (jobs (append (mcron-configuration-jobs config)
+                                         jobs)))))))
+
+(define* (mcron-service jobs #:optional (mcron mcron2))
+  "Return an mcron service running @var{mcron} that schedules @var{jobs}, a
+list of gexps denoting mcron job specifications.
+
+This is a shorthand for:
+@example
+  (service mcron-service-type
+           (mcron-configuration (mcron mcron) (jobs jobs)))
+@end example
+"
+  (service mcron-service-type
+           (mcron-configuration (mcron mcron) (jobs jobs))))
+
+;;; mcron.scm ends here
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index a72613e9c5..de14f6fb4c 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -208,8 +208,7 @@ the user's target storage device rather than on the RAM disk."
   "Return a list of tuples representing configuration templates to add to
 /etc."
   (define (file f)
-    (local-file (search-path %load-path
-                             (string-append "gnu/system/examples/" f))))
+    (local-file (string-append "examples/" f)))
 
   (define directory
     (computed-file "configuration-templates"
diff --git a/gnu/tests.scm b/gnu/tests.scm
index 08d8315ea0..ea779ed6f0 100644
--- a/gnu/tests.scm
+++ b/gnu/tests.scm
@@ -18,11 +18,28 @@
 
 (define-module (gnu tests)
   #:use-module (guix gexp)
+  #:use-module (guix utils)
+  #:use-module (guix records)
   #:use-module (gnu system)
   #:use-module (gnu services)
   #:use-module (gnu services shepherd)
-  #:export (backdoor-service-type
-            marionette-operating-system))
+  #:use-module ((gnu packages) #:select (scheme-modules))
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-9 gnu)
+  #:use-module (ice-9 match)
+  #:export (marionette-service-type
+            marionette-operating-system
+            define-os-with-source
+
+            system-test
+            system-test?
+            system-test-name
+            system-test-value
+            system-test-description
+            system-test-location
+
+            fold-system-tests
+            all-system-tests))
 
 ;;; Commentary:
 ;;;
@@ -112,7 +129,7 @@
 (define marionette-service-type
   ;; This is the type of the "marionette" service, allowing a guest system to
   ;; be manipulated from the host.  This marionette REPL is essentially a
-  ;; universal marionette.
+  ;; universal backdoor.
   (service-type (name 'marionette-repl)
                 (extensions
                  (list (service-extension shepherd-root-service-type
@@ -127,4 +144,73 @@ in a virtual machine--i.e., controlled from the host system."
     (services (cons (service marionette-service-type imported-modules)
                     (operating-system-user-services os)))))
 
+(define-syntax define-os-with-source
+  (syntax-rules (use-modules operating-system)
+    "Define two variables: OS containing the given operating system, and
+SOURCE containing the source to define OS as an sexp.
+
+This is convenient when we need both the <operating-system> object so we can
+instantiate it, and the source to create it so we can store in in a file in
+the system under test."
+    ((_ (os source)
+        (use-modules modules ...)
+        (operating-system fields ...))
+     (begin
+       (define os
+         (operating-system fields ...))
+       (define source
+         '(begin
+            (use-modules modules ...)
+            (operating-system fields ...)))))))
+
+
+;;;
+;;; Tests.
+;;;
+
+(define-record-type* <system-test> system-test make-system-test
+  system-test?
+  (name        system-test-name)                  ;string
+  (value       system-test-value)                 ;%STORE-MONAD value
+  (description system-test-description)           ;string
+  (location    system-test-location (innate)      ;<location>
+               (default (and=> (current-source-location)
+                               source-properties->location))))
+
+(define (write-system-test test port)
+  (match test
+    (($ <system-test> name _ _ ($ <location> file line))
+     (format port "#<system-test ~a ~a:~a ~a>"
+             name file line
+             (number->string (object-address test) 16)))
+    (($ <system-test> name)
+     (format port "#<system-test ~a ~a>" name
+             (number->string (object-address test) 16)))))
+
+(set-record-type-printer! <system-test> write-system-test)
+
+(define (test-modules)
+  "Return the list of modules that define system tests."
+  (scheme-modules (dirname (search-path %load-path "guix.scm"))
+                  "gnu/tests"))
+
+(define (fold-system-tests proc seed)
+  "Invoke PROC on each system test, passing it the test and the previous
+result."
+  (fold (lambda (module result)
+          (fold (lambda (thing result)
+                  (if (system-test? thing)
+                      (proc thing result)
+                      result))
+                result
+                (module-map (lambda (sym var)
+                              (false-if-exception (variable-ref var)))
+                            module)))
+        '()
+        (test-modules)))
+
+(define (all-system-tests)
+  "Return the list of system tests."
+  (reverse (fold-system-tests cons '())))
+
 ;;; tests.scm ends here
diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm
index 0f19449508..4fe779802b 100644
--- a/gnu/tests/base.scm
+++ b/gnu/tests/base.scm
@@ -24,13 +24,16 @@
   #:use-module (gnu system shadow)
   #:use-module (gnu system vm)
   #:use-module (gnu services)
+  #:use-module (gnu services mcron)
   #:use-module (gnu services shepherd)
   #:use-module (guix gexp)
   #:use-module (guix store)
   #:use-module (guix monads)
   #:use-module (guix packages)
   #:use-module (srfi srfi-1)
-  #:export (%test-basic-os))
+  #:export (run-basic-test
+            %test-basic-os
+            %test-mcron))
 
 (define %simple-os
   (operating-system
@@ -56,109 +59,227 @@
                  %base-user-accounts))))
 
 
+(define* (run-basic-test os command #:optional (name "basic"))
+  "Return a derivation called NAME that tests basic features of the OS started
+using COMMAND, a gexp that evaluates to a list of strings.  Compare some
+properties of running system to what's declared in OS, an <operating-system>."
+  (define test
+    #~(begin
+        (use-modules (gnu build marionette)
+                     (srfi srfi-1)
+                     (srfi srfi-26)
+                     (srfi srfi-64)
+                     (ice-9 match))
+
+        (define marionette
+          (make-marionette #$command))
+
+        (mkdir #$output)
+        (chdir #$output)
+
+        (test-begin "basic")
+
+        (test-assert "uname"
+          (match (marionette-eval '(uname) marionette)
+            (#("Linux" host-name version _ architecture)
+             (and (string=? host-name
+                            #$(operating-system-host-name os))
+                  (string-prefix? #$(package-version
+                                     (operating-system-kernel os))
+                                  version)
+                  (string-prefix? architecture %host-type)))))
+
+        (test-assert "shell and user commands"
+          ;; Is everything in $PATH?
+          (zero? (marionette-eval '(system "
+. /etc/profile
+set -e -x
+guix --version
+ls --version
+grep --version
+info --version")
+                                  marionette)))
+
+        (test-assert "accounts"
+          (let ((users (marionette-eval '(begin
+                                           (use-modules (ice-9 match))
+                                           (let loop ((result '()))
+                                             (match (getpw)
+                                               (#f (reverse result))
+                                               (x  (loop (cons x result))))))
+                                        marionette)))
+            (lset= string=?
+                   (map passwd:name users)
+                   (list
+                    #$@(map user-account-name
+                            (operating-system-user-accounts os))))))
+
+        (test-assert "shepherd services"
+          (let ((services (marionette-eval '(begin
+                                              (use-modules (gnu services herd))
+                                              (call-with-values current-services
+                                                append))
+                                           marionette)))
+            (lset= eq?
+                   (pk 'services services)
+                   '(root #$@(operating-system-shepherd-service-names os)))))
+
+        (test-equal "login on tty1"
+          "root\n"
+          (begin
+            (marionette-control "sendkey ctrl-alt-f1" marionette)
+            ;; Wait for the 'term-tty1' service to be running (using
+            ;; 'start-service' is the simplest and most reliable way to do
+            ;; that.)
+            (marionette-eval
+             '(begin
+                (use-modules (gnu services herd))
+                (start-service 'term-tty1))
+             marionette)
+
+            ;; Now we can type.
+            (marionette-type "root\n\nid -un > logged-in\n" marionette)
+
+            ;; It can take a while before the shell commands are executed.
+            (let loop ((i 0))
+              (unless (or (file-exists? "/root/logged-in") (> i 15))
+                (sleep 1)
+                (loop (+ i 1))))
+            (marionette-eval '(use-modules (rnrs io ports)) marionette)
+            (marionette-eval '(call-with-input-file "/root/logged-in"
+                                get-string-all)
+                             marionette)))
+
+        (test-assert "screendump"
+          (begin
+            (marionette-control (string-append "screendump " #$output
+                                               "/tty1.ppm")
+                                marionette)
+            (file-exists? "tty1.ppm")))
+
+        (test-end)
+        (exit (= (test-runner-fail-count (test-runner-current)) 0))))
+
+  (gexp->derivation name test
+                    #:modules '((gnu build marionette))))
+
 (define %test-basic-os
-  ;; Monadic derivation that instruments %SIMPLE-OS, runs it in a VM, and runs
-  ;; a series of basic functionality tests.
-  (mlet* %store-monad ((os -> (marionette-operating-system
-                               %simple-os
-                               #:imported-modules '((gnu services herd)
-                                                    (guix combinators))))
-                       (run   (system-qemu-image/shared-store-script
-                               os #:graphic? #f)))
+  (system-test
+   (name "basic")
+   (description
+    "Instrument %SIMPLE-OS, run it in a VM, and run a series of basic
+functionality tests.")
+   (value
+    (mlet* %store-monad ((os -> (marionette-operating-system
+                                 %simple-os
+                                 #:imported-modules '((gnu services herd)
+                                                      (guix combinators))))
+                         (run   (system-qemu-image/shared-store-script
+                                 os #:graphic? #f)))
+      ;; XXX: Add call to 'virtualized-operating-system' to get the exact same
+      ;; set of services as the OS produced by
+      ;; 'system-qemu-image/shared-store-script'.
+      (run-basic-test (virtualized-operating-system os '())
+                      #~(list #$run))))))
+
+
+;;;
+;;; Mcron.
+;;;
+
+(define %mcron-os
+  ;; System with an mcron service, with one mcron job for "root" and one mcron
+  ;; job for an unprivileged user (note: #:user is an 'mcron2' thing.)
+  (let ((job1 #~(job next-second-from
+                     (lambda ()
+                       (call-with-output-file "witness"
+                         (lambda (port)
+                           (display (list (getuid) (getgid)) port))))))
+        (job2 #~(job next-second-from
+                     (lambda ()
+                       (call-with-output-file "witness"
+                         (lambda (port)
+                           (display (list (getuid) (getgid)) port))))
+                     #:user "alice"))
+        (job3 #~(job next-second-from             ;to test $PATH
+                     "touch witness-touch")))
+    (operating-system
+      (inherit %simple-os)
+      (services (cons (mcron-service (list job1 job2 job3))
+                      (operating-system-user-services %simple-os))))))
+
+(define (run-mcron-test name)
+  (mlet* %store-monad ((os ->   (marionette-operating-system
+                                 %mcron-os
+                                 #:imported-modules '((gnu services herd)
+                                                      (guix combinators))))
+                       (command (system-qemu-image/shared-store-script
+                                 os #:graphic? #f)))
     (define test
       #~(begin
           (use-modules (gnu build marionette)
-                       (srfi srfi-1)
-                       (srfi srfi-26)
                        (srfi srfi-64)
                        (ice-9 match))
 
           (define marionette
-            (make-marionette (list #$run)))
+            (make-marionette (list #$command)))
+
+          (define (wait-for-file file)
+            ;; Wait until FILE exists in the guest; 'read' its content and
+            ;; return it.
+            (marionette-eval
+             `(let loop ((i 10))
+                (cond ((file-exists? ,file)
+                       (call-with-input-file ,file read))
+                      ((> i 0)
+                       (sleep 1)
+                       (loop (- i 1)))
+                      (else
+                       (error "file didn't show up" ,file))))
+             marionette))
 
           (mkdir #$output)
           (chdir #$output)
 
-          (test-begin "basic")
+          (test-begin "mcron")
 
-          (test-assert "uname"
-            (match (marionette-eval '(uname) marionette)
-              (#("Linux" "komputilo" version _ "x86_64")
-               (string-prefix? #$(package-version
-                                  (operating-system-kernel os))
-                               version))))
+          (test-eq "service running"
+            'running!
+            (marionette-eval
+             '(begin
+                (use-modules (gnu services herd))
+                (start-service 'mcron)
+                'running!)
+             marionette))
 
-          (test-assert "shell and user commands"
-            ;; Is everything in $PATH?
-            (zero? (marionette-eval '(system "
-. /etc/profile
-set -e -x
-guix --version
-ls --version
-grep --version
-info --version")
-                                    marionette)))
-
-          (test-assert "accounts"
-            (let ((users (marionette-eval '(begin
-                                             (use-modules (ice-9 match))
-                                             (let loop ((result '()))
-                                               (match (getpw)
-                                                 (#f (reverse result))
-                                                 (x  (loop (cons x result))))))
-                                          marionette)))
-              (lset= string=?
-                     (map passwd:name users)
-                     (list
-                      #$@(map user-account-name
-                              (operating-system-user-accounts os))))))
-
-          (test-assert "shepherd services"
-            (let ((services (marionette-eval '(begin
-                                                (use-modules (gnu services herd))
-                                                (call-with-values current-services
-                                                  append))
-                                             marionette)))
-              (lset= eq?
-                     (pk 'services services)
-                     '(root #$@(operating-system-shepherd-service-names
-                                (virtualized-operating-system os '()))))))
-
-          (test-equal "login on tty1"
-            "root\n"
-            (begin
-              (marionette-control "sendkey ctrl-alt-f1" marionette)
-              ;; Wait for the 'term-tty1' service to be running (using
-              ;; 'start-service' is the simplest and most reliable way to do
-              ;; that.)
-              (marionette-eval
-               '(begin
-                  (use-modules (gnu services herd))
-                  (start-service 'term-tty1))
-               marionette)
-
-              ;; Now we can type.
-              (marionette-type "root\n\nid -un > logged-in\n" marionette)
-
-              ;; It can take a while before the shell commands are executed.
-              (let loop ((i 0))
-                (unless (or (file-exists? "/root/logged-in") (> i 15))
-                  (sleep 1)
-                  (loop (+ i 1))))
-              (marionette-eval '(use-modules (rnrs io ports)) marionette)
-              (marionette-eval '(call-with-input-file "/root/logged-in"
-                                  get-string-all)
-                               marionette)))
-
-          (test-assert "screendump"
-            (begin
-              (marionette-control (string-append "screendump " #$output
-                                                 "/tty1.ppm")
-                                  marionette)
-              (file-exists? "tty1.ppm")))
+          ;; Make sure root's mcron job runs, has its cwd set to "/root", and
+          ;; runs with the right UID/GID.
+          (test-equal "root's job"
+            '(0 0)
+            (wait-for-file "/root/witness"))
+
+          ;; Likewise for Alice's job.  We cannot know what its GID is since
+          ;; it's chosen by 'groupadd', but it's strictly positive.
+          (test-assert "alice's job"
+            (match (wait-for-file "/home/alice/witness")
+              ((1000 gid)
+               (>= gid 100))))
+
+          ;; Last, the job that uses a command; allows us to test whether
+          ;; $PATH is sane.  (Note that 'marionette-eval' stringifies objects
+          ;; that don't have a read syntax, hence the string.)
+          (test-equal "root's job with command"
+            "#<eof>"
+            (wait-for-file "/root/witness-touch"))
 
           (test-end)
           (exit (= (test-runner-fail-count (test-runner-current)) 0))))
 
-    (gexp->derivation "basic" test
+    (gexp->derivation name test
                       #:modules '((gnu build marionette)))))
+
+(define %test-mcron
+  (system-test
+   (name "mcron")
+   (description "Make sure the mcron service works as advertised.")
+   (value (run-mcron-test name))))
diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm
new file mode 100644
index 0000000000..5d893deb4c
--- /dev/null
+++ b/gnu/tests/install.scm
@@ -0,0 +1,212 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu tests install)
+  #:use-module (gnu)
+  #:use-module (gnu tests)
+  #:use-module (gnu tests base)
+  #:use-module (gnu system)
+  #:use-module (gnu system install)
+  #:use-module (gnu system vm)
+  #:use-module ((gnu build vm) #:select (qemu-command))
+  #:use-module (gnu packages qemu)
+  #:use-module (gnu packages package-management)
+  #:use-module (guix store)
+  #:use-module (guix monads)
+  #:use-module (guix packages)
+  #:use-module (guix grafts)
+  #:use-module (guix gexp)
+  #:use-module (guix utils)
+  #:export (%test-installed-os))
+
+;;; Commentary:
+;;;
+;;; Test the installation of GuixSD using the documented approach at the
+;;; command line.
+;;;
+;;; Code:
+
+(define-os-with-source (%minimal-os %minimal-os-source)
+  ;; The OS we want to install.
+  (use-modules (gnu) (gnu tests) (srfi srfi-1))
+
+  (operating-system
+    (host-name "liberigilo")
+    (timezone "Europe/Paris")
+    (locale "en_US.UTF-8")
+
+    (bootloader (grub-configuration (device "/dev/vdb")))
+    (kernel-arguments '("console=ttyS0"))
+    (file-systems (cons (file-system
+                          (device "my-root")
+                          (title 'label)
+                          (mount-point "/")
+                          (type "ext4"))
+                        %base-file-systems))
+    (users (cons (user-account
+                  (name "alice")
+                  (comment "Bob's sister")
+                  (group "users")
+                  (supplementary-groups '("wheel" "audio" "video"))
+                  (home-directory "/home/alice"))
+                 %base-user-accounts))
+    (services (cons (service marionette-service-type
+                             '((gnu services herd)
+                               (guix combinators)))
+                    %base-services))))
+
+(define (operating-system-with-current-guix os)
+  "Return a variant of OS that uses the current Guix."
+  (operating-system
+    (inherit os)
+    (services (modify-services (operating-system-user-services os)
+                (guix-service-type config =>
+                                   (guix-configuration
+                                    (inherit config)
+                                    (guix (current-guix))))))))
+
+(define (operating-system-with-gc-roots os roots)
+  "Return a variant of OS where ROOTS are registered as GC roots."
+  (operating-system
+    (inherit os)
+    (services (cons (service gc-root-service-type roots)
+                    (operating-system-user-services os)))))
+
+
+(define MiB (expt 2 20))
+
+(define* (run-install #:key
+                      (os (marionette-operating-system
+                           ;; Since the image has no network access, use the
+                           ;; current Guix so the store items we need are in
+                           ;; the image.
+                           (operating-system
+                             (inherit (operating-system-with-current-guix
+                                       installation-os))
+                             (kernel-arguments '("console=ttyS0")))
+                           #:imported-modules '((gnu services herd)
+                                                (guix combinators))))
+                      (target-size (* 1200 MiB)))
+  "Run the GuixSD installation procedure from OS and return a VM image of
+TARGET-SIZE bytes containing the installed system."
+
+  (mlet* %store-monad ((_      (set-grafting #f))
+                       (system (current-system))
+                       (target (operating-system-derivation %minimal-os))
+
+                       ;; Since the installation system has no network access,
+                       ;; we cheat a little bit by adding TARGET to its GC
+                       ;; roots.  This way, we know 'guix system init' will
+                       ;; succeed.
+                       (image  (system-disk-image
+                                (operating-system-with-gc-roots
+                                 os (list target))
+                                #:disk-image-size (* 1500 MiB))))
+    (define install
+      #~(begin
+          (use-modules (guix build utils)
+                       (gnu build marionette))
+
+          (set-path-environment-variable "PATH" '("bin")
+                                         (list #$qemu-minimal))
+
+          (system* "qemu-img" "create" "-f" "qcow2"
+                   #$output #$(number->string target-size))
+
+          (define marionette
+            (make-marionette
+             (cons (which #$(qemu-command system))
+                   (cons* "-no-reboot" "-m" "800"
+                          "-drive"
+                          (string-append "file=" #$image
+                                         ",if=virtio,readonly")
+                          "-drive"
+                          (string-append "file=" #$output ",if=virtio")
+                          (if (file-exists? "/dev/kvm")
+                              '("-enable-kvm")
+                              '())))))
+
+          (pk 'uname (marionette-eval '(uname) marionette))
+
+          ;; Wait for tty1.
+          (marionette-eval '(begin
+                              (use-modules (gnu services herd))
+                              (start 'term-tty1))
+                           marionette)
+
+          (marionette-eval '(call-with-output-file "/etc/litl-config.scm"
+                              (lambda (port)
+                                (write '#$%minimal-os-source port)))
+                           marionette)
+
+          (exit (marionette-eval '(zero? (system "
+. /etc/profile
+set -e -x;
+guix --version
+guix gc --list-live | grep isc-dhcp
+
+export GUIX_BUILD_OPTIONS=--no-grafts
+guix build isc-dhcp
+parted --script /dev/vdb mklabel gpt \\
+  mkpart primary ext2 1M 3M \\
+  mkpart primary ext2 3M 1G \\
+  set 1 boot on \\
+  set 1 bios_grub on
+mkfs.ext4 -L my-root /dev/vdb2
+ls -l /dev/vdb
+mount /dev/vdb2 /mnt
+df -h /mnt
+herd start cow-store /mnt
+mkdir /mnt/etc
+cp /etc/litl-config.scm /mnt/etc/config.scm
+guix system init /mnt/etc/config.scm /mnt --no-substitutes
+sync
+reboot\n"))
+                                 marionette))))
+
+    (gexp->derivation "installation" install
+                      #:modules '((guix build utils)
+                                  (gnu build marionette)))))
+
+
+(define %test-installed-os
+  (system-test
+   (name "installed-os")
+   (description
+    "Test basic functionality of an OS installed like one would do by hand.
+This test is expensive in terms of CPU and storage usage since we need to
+build (current-guix) and then store a couple of full system images.")
+   (value
+    (mlet %store-monad ((image  (run-install))
+                        (system (current-system)))
+      (run-basic-test %minimal-os
+                      #~(let ((image #$image))
+                          ;; First we need a writable copy of the image.
+                          (format #t "copying image '~a'...~%" image)
+                          (copy-file image "disk.img")
+                          (chmod "disk.img" #o644)
+                          `(,(string-append #$qemu-minimal "/bin/"
+                                            #$(qemu-command system))
+                            ,@(if (file-exists? "/dev/kvm")
+                                  '("-enable-kvm")
+                                  '())
+                            "-no-reboot" "-m" "256"
+                            "-drive" "file=disk.img,if=virtio"))
+                      "installed-os")))))
+
+;;; install.scm ends here