summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am1
-rw-r--r--build-aux/hydra/evaluate.scm15
-rw-r--r--build-aux/hydra/gnu-system.scm37
-rw-r--r--build-aux/run-system-tests.scm24
-rw-r--r--build-aux/test-env.in12
-rw-r--r--doc/guix.texi140
-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
-rw-r--r--guix/build-system/python.scm2
-rw-r--r--guix/build/bournish.scm62
-rw-r--r--guix/build/emacs-build-system.scm11
-rw-r--r--guix/config.scm.in4
-rw-r--r--guix/gexp.scm6
-rw-r--r--guix/import/pypi.scm6
-rwxr-xr-xguix/scripts/substitute.scm28
-rw-r--r--guix/store.scm31
-rw-r--r--guix/utils.scm36
-rw-r--r--nix/libstore/globals.cc2
-rw-r--r--nix/local.mk2
-rw-r--r--po/guix/fr.po2056
-rw-r--r--tests/containers.scm17
-rw-r--r--tests/packages.scm2
72 files changed, 4927 insertions, 1238 deletions
diff --git a/Makefile.am b/Makefile.am
index fd76be4d72..b7792d0721 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -328,7 +328,6 @@ check-local:
 endif !CAN_RUN_TESTS
 
 check-system: $(GOBJECTS)
-	$(AM_V_at)echo "Running system tests..."
 	$(AM_V_at)$(top_builddir)/pre-inst-env			\
 	   $(GUILE) --no-auto-compile				\
 	   -e '(@@ (run-system-tests) run-system-tests)'	\
diff --git a/build-aux/hydra/evaluate.scm b/build-aux/hydra/evaluate.scm
index afc7730ff2..ab10253f31 100644
--- a/build-aux/hydra/evaluate.scm
+++ b/build-aux/hydra/evaluate.scm
@@ -49,6 +49,17 @@ values."
                  (/ (time-nanosecond time) 1e9)))
       (apply values results))))
 
+(define (assert-valid-job job thing)
+  "Raise an error if THING is not an alist with a valid 'derivation' entry.
+Otherwise return THING."
+  (unless (and (list? thing)
+               (and=> (assoc-ref thing 'derivation)
+                      (lambda (value)
+                        (and (string? value)
+                             (string-suffix? ".drv" value)))))
+    (error "job did not produce a valid alist" job thing))
+  thing)
+
 
 ;; Without further ado...
 (match (command-line)
@@ -83,7 +94,9 @@ values."
            (map (lambda (job thunk)
                   (format (current-error-port) "evaluating '~a'... " job)
                   (force-output (current-error-port))
-                  (cons job (call-with-time-display thunk)))
+                  (cons job
+                        (assert-valid-job job
+                                          (call-with-time-display thunk))))
                 names thunks)))
         port))))
   ((command _ ...)
diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm
index d15be1bad2..a84cdebbad 100644
--- a/build-aux/hydra/gnu-system.scm
+++ b/build-aux/hydra/gnu-system.scm
@@ -59,6 +59,7 @@
              (gnu system)
              (gnu system vm)
              (gnu system install)
+             (gnu tests)
              (srfi srfi-1)
              (srfi srfi-26)
              (ice-9 match))
@@ -129,6 +130,9 @@ SYSTEM."
          (file (string-append dir "/demo-os.scm")))
     (read-operating-system file)))
 
+(define %guixsd-supported-systems
+  '("x86_64-linux" "i686-linux"))
+
 (define (qemu-jobs store system)
   "Return a list of jobs that build QEMU images for SYSTEM."
   (define (->alist drv)
@@ -150,7 +154,7 @@ system.")
   (define MiB
     (expt 2 20))
 
-  (if (member system '("x86_64-linux" "i686-linux"))
+  (if (member system %guixsd-supported-systems)
       (list (->job 'qemu-image
                    (run-with-store store
                      (mbegin %store-monad
@@ -167,6 +171,36 @@ system.")
                                           (* 1024 MiB))))))
       '()))
 
+(define (system-test-jobs store system)
+  "Return a list of jobs for the system tests."
+  (define (test->thunk test)
+    (lambda ()
+      (define drv
+        (run-with-store store
+          (mbegin %store-monad
+            (set-current-system system)
+            (set-grafting #f)
+            (set-guile-for-build (default-guile))
+            (system-test-value test))))
+
+      `((derivation . ,(derivation-file-name drv))
+        (description . ,(format #f "GuixSD '~a' system test"
+                                (system-test-name test)))
+        (long-description . ,(system-test-description test))
+        (license . ,gpl3+)
+        (home-page . ,%guix-home-page-url)
+        (maintainers . ("bug-guix@gnu.org")))))
+
+  (define (->job test)
+    (let ((name (string->symbol
+                 (string-append "test." (system-test-name test)
+                                "." system))))
+      (cons name (test->thunk test))))
+
+  (if (member system %guixsd-supported-systems)
+      (map ->job (all-system-tests))
+      '()))
+
 (define (tarball-jobs store system)
   "Return Hydra jobs to build the self-contained Guix binary tarball."
   (define (->alist drv)
@@ -274,6 +308,7 @@ valid."
                                                 system))))
                        (append (filter-map job all)
                                (qemu-jobs store system)
+                               (system-test-jobs store system)
                                (tarball-jobs store system)
                                (cross-jobs system))))
                     ((core)
diff --git a/build-aux/run-system-tests.scm b/build-aux/run-system-tests.scm
index e98de9cb7e..3f3a70e7b4 100644
--- a/build-aux/run-system-tests.scm
+++ b/build-aux/run-system-tests.scm
@@ -17,13 +17,14 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (run-system-tests)
-  #:use-module (gnu tests base)
+  #:use-module (gnu tests)
   #:use-module (guix store)
   #:use-module (guix monads)
   #:use-module (guix derivations)
   #:use-module (guix ui)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-34)
+  #:use-module (ice-9 match)
   #:export (run-system-tests))
 
 (define (built-derivations* drv)
@@ -44,13 +45,26 @@
                 lst)
          (lift1 reverse %store-monad))))
 
-(define %system-tests
-  (list %test-basic-os))
-
 (define (run-system-tests . args)
+  (define tests
+    ;; Honor the 'TESTS' environment variable so that one can select a subset
+    ;; of tests to run in the usual way:
+    ;;
+    ;;   make check-system TESTS=installed-os
+    (match (getenv "TESTS")
+      (#f
+       (all-system-tests))
+      ((= string-tokenize (tests ...))
+       (filter (lambda (test)
+                 (member (system-test-name test) tests))
+               (all-system-tests)))))
+
+  (format (current-error-port) "Running ~a system tests...~%"
+          (length tests))
+
   (with-store store
     (run-with-store store
-      (mlet* %store-monad ((drv (sequence %store-monad %system-tests))
+      (mlet* %store-monad ((drv (mapm %store-monad system-test-value tests))
                            (out -> (map derivation->output-path drv)))
         (mbegin %store-monad
           (show-what-to-build* drv)
diff --git a/build-aux/test-env.in b/build-aux/test-env.in
index c153763a56..1657556b19 100644
--- a/build-aux/test-env.in
+++ b/build-aux/test-env.in
@@ -69,16 +69,16 @@ then
     fi
 
     # The configuration directory, for import/export signing keys.
-    NIX_CONF_DIR="@GUIX_TEST_ROOT@/etc"
-    if [ ! -d "$NIX_CONF_DIR" ]
+    GUIX_CONFIGURATION_DIRECTORY="@GUIX_TEST_ROOT@/etc"
+    if [ ! -d "$GUIX_CONFIGURATION_DIRECTORY" ]
     then
 	# Copy the keys so that the secret key has the right permissions (the
 	# daemon errors out when this is not the case.)
-	mkdir -p "$NIX_CONF_DIR"
+	mkdir -p "$GUIX_CONFIGURATION_DIRECTORY"
 	cp "@abs_top_srcdir@/tests/signing-key.sec"	\
 	    "@abs_top_srcdir@/tests/signing-key.pub"	\
-	    "$NIX_CONF_DIR"
-	chmod 400 "$NIX_CONF_DIR/signing-key.sec"
+	    "$GUIX_CONFIGURATION_DIRECTORY"
+	chmod 400 "$GUIX_CONFIGURATION_DIRECTORY/signing-key.sec"
     fi
 
     # A place to store data of the substituter.
@@ -100,7 +100,7 @@ then
 	NIX_LOCALSTATE_DIR NIX_LOG_DIR NIX_STATE_DIR NIX_DB_DIR	\
 	NIX_ROOT_FINDER GUIX_BINARY_SUBSTITUTE_URL		\
         GUIX_ALLOW_UNAUTHENTICATED_SUBSTITUTES			\
-        NIX_CONF_DIR XDG_CACHE_HOME NIXPKGS
+        GUIX_CONFIGURATION_DIRECTORY XDG_CACHE_HOME NIXPKGS
 
     # Launch the daemon without chroot support because is may be
     # unavailable, for instance if we're not running as root.
diff --git a/doc/guix.texi b/doc/guix.texi
index 0bb68bb477..7204f2e939 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -204,6 +204,7 @@ System Configuration
 Services
 
 * Base Services::               Essential system services.
+* Scheduled Job Execution::     The mcron service.
 * Networking Services::         Network setup, SSH daemon, etc.
 * X Window::                    Graphical display.
 * Desktop Services::            D-Bus and desktop services.
@@ -619,6 +620,31 @@ Upon failure, please email @email{bug-guix@@gnu.org} and attach the
 as well as version numbers of the dependencies (@pxref{Requirements}) in
 your message.
 
+Guix also comes with a whole-system test suite that tests complete
+GuixSD operating system instances.  It can only run on systems where
+Guix is already installed, using:
+
+@example
+make check-system
+@end example
+
+@noindent
+or, again, by defining @code{TESTS} to select a subset of tests to run:
+
+@example
+make check-system TESTS="basic mcron"
+@end example
+
+These system tests are defined in the @code{(gnu tests @dots{})}
+modules.  They work by running the operating systems under test with
+lightweight instrumentation in a virtual machine (VM).  They can be
+computationally intensive or rather cheap, depending on whether
+substitutes are available for their dependencies (@pxref{Substitutes}).
+Some of them require a lot of storage space to hold VM images.
+
+Again in case of test failures, please send @email{bug-guix@@gnu.org}
+all the details.
+
 @node Setting Up the Daemon
 @section Setting Up the Daemon
 
@@ -682,8 +708,13 @@ Bash syntax and the @code{shadow} commands):
 @noindent
 The number of build users determines how many build jobs may run in
 parallel, as specified by the @option{--max-jobs} option
-(@pxref{Invoking guix-daemon, @option{--max-jobs}}).  The
-@code{guix-daemon} program may then be run as @code{root} with the
+(@pxref{Invoking guix-daemon, @option{--max-jobs}}).  To use
+@command{guix system vm} and related commands, you may need to add the
+build users to the @code{kvm} group so they can access @file{/dev/kvm},
+using @code{-G guixbuild,kvm} instead of @code{-G guixbuild}
+(@pxref{Invoking guix system}).
+
+The @code{guix-daemon} program may then be run as @code{root} with the
 following command@footnote{If your machine uses the systemd init system,
 dropping the @file{@var{prefix}/lib/systemd/system/guix-daemon.service}
 file in @file{/etc/systemd/system} will ensure that
@@ -7185,6 +7216,7 @@ declaration.
 
 @menu
 * Base Services::               Essential system services.
+* Scheduled Job Execution::     The mcron service.
 * Networking Services::         Network setup, SSH daemon, etc.
 * X Window::                    Graphical display.
 * Desktop Services::            D-Bus and desktop services.
@@ -7463,6 +7495,100 @@ archive}).  If that is not the case, the service will fail to start.
 @end deffn
 
 
+@node Scheduled Job Execution
+@subsubsection Scheduled Job Execution
+
+@cindex cron
+@cindex scheduling jobs
+The @code{(gnu services mcron)} module provides an interface to
+GNU@tie{}mcron, a daemon to run jobs at scheduled times (@pxref{Top,,,
+mcron, GNU@tie{}mcron}).  GNU@tie{}mcron is similar to the traditional
+Unix @command{cron} daemon; the main difference is that it is
+implemented in Guile Scheme, which provides a lot of flexibility when
+specifying the scheduling of jobs and their actions.
+
+The example below defines an operating system that runs the
+@command{updatedb} (@pxref{Invoking updatedb,,, find, Finding Files})
+and the @command{guix gc} commands (@pxref{Invoking guix gc}) daily, as
+well as the @command{mkid} command on behalf of an unprivileged user
+(@pxref{mkid invocation,,, idutils, ID Database Utilities}).  It uses
+gexps to introduce job definitions that are passed to mcron
+(@pxref{G-Expressions}).
+
+@lisp
+(use-modules (guix) (gnu) (gnu services mcron))
+(use-package-modules base idutils)
+
+(define updatedb-job
+  ;; Run 'updatedb' at 3AM every day.  Here we write the
+  ;; job's action as a Scheme procedure.
+  #~(job '(next-hour '(3))
+         (lambda ()
+           (execl (string-append #$findutils "/bin/updatedb")
+                  "updatedb"
+                  "--prunepaths=/tmp /var/tmp /gnu/store"))))
+
+(define garbage-collector-job
+  ;; Collect garbage 5 minutes after midnight every day.
+  ;; The job's action is a shell command.
+  #~(job "5 0 * * *"            ;Vixie cron syntax
+         "guix gc -F 1G"))
+
+(define idutils-jobs
+  ;; Update the index database as user "charlie" at 12:15PM
+  ;; and 19:15PM.  This runs from the user's home directory.
+  #~(job '(next-minute-from (next-hour '(12 19)) '(15))
+         (string-append #$idutils "/bin/mkid src")
+         #:user "charlie"))
+
+(operating-system
+  ;; @dots{}
+  (services (cons (mcron-service (list garbage-collector-job
+                                       updatedb-job
+                                       idutils-job))
+                  %base-services)))
+@end lisp
+
+@xref{Guile Syntax, mcron job specifications,, mcron, GNU@tie{}mcron},
+for more information on mcron job specifications.  Below is the
+reference of the mcron service.
+
+@deffn {Scheme Procedure} mcron-service @var{jobs} [#:mcron @var{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
+@end deffn
+
+@defvr {Scheme Variable} mcron-service-type
+This is the type of the @code{mcron} service, whose value is an
+@code{mcron-configuration} object.
+
+This service type can be the target of a service extension that provides
+it additional job specifications (@pxref{Service Composition}).  In
+other words, it is possible to define services that provide addition
+mcron jobs to run.
+@end defvr
+
+@deftp {Data Type} mcron-configuration
+Data type representing the configuration of mcron.
+
+@table @asis
+@item @code{mcron} (default: @var{mcron2})
+The mcron package to use.
+
+@item @code{jobs}
+This is a list of gexps (@pxref{G-Expressions}), where each gexp
+corresponds to an mcron job specification (@pxref{Syntax, mcron job
+specifications,, mcron, GNU@tie{}mcron}).
+@end table
+@end deftp
+
+
 @node Networking Services
 @subsubsection Networking Services
 
@@ -10121,12 +10247,14 @@ a list of available debugging commands.
 @end table
 @end table
 
-Note that all the actions above, except @code{build} and @code{init},
-rely on KVM support in the Linux-Libre kernel.  Specifically, the
-machine should have hardware virtualization support, the corresponding
+@quotation Note
+All the actions above, except @code{build} and @code{init},
+can use KVM support in the Linux-libre kernel.  Specifically, if the
+machine has hardware virtualization support, the corresponding
 KVM kernel module should be loaded, and the @file{/dev/kvm} device node
 must exist and be readable and writable by the user and by the
-build users of the daemon.
+build users of the daemon (@pxref{Build Environment Setup}).
+@end quotation
 
 Once you have built, configured, re-configured, and re-re-configured
 your GuixSD installation, you may find it useful to list the operating
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
diff --git a/guix/build-system/python.scm b/guix/build-system/python.scm
index c3d6c62404..705943eb73 100644
--- a/guix/build-system/python.scm
+++ b/guix/build-system/python.scm
@@ -48,7 +48,7 @@
   "Return a URI string for the Python package hosted on the Python Package
 Index (PyPI) corresponding to NAME and VERSION.  EXTENSION is the file name
 extension, such as '.tar.gz'."
-  (string-append "https://pypi.python.org/packages/source/"
+  (string-append "https://pypi.io/packages/source/"
                  (string-take name 1) "/" name "/"
                  name "-" version extension))
 
diff --git a/guix/build/bournish.scm b/guix/build/bournish.scm
index 1f17e0a22d..928bef5b9e 100644
--- a/guix/build/bournish.scm
+++ b/guix/build/bournish.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,6 +26,7 @@
   #:use-module (ice-9 match)
   #:use-module (ice-9 ftw)
   #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-11)
   #:use-module (srfi srfi-26)
   #:export (%bournish-language))
 
@@ -103,6 +105,63 @@ characters."
        ((@ (guix build utils) dump-port) port (current-output-port))
        *unspecified*)))
 
+(define (lines+chars port)
+  "Return the number of lines and number of chars read from PORT."
+  (let loop ((lines 0) (chars 0))
+    (match (read-char port)
+      ((? eof-object?)              ;done!
+       (values lines chars))
+      (#\newline                    ;recurse
+       (loop (1+ lines) (1+ chars)))
+      (_                            ;recurse
+       (loop lines (1+ chars))))))
+
+(define (file-exists?* file)
+  "Like 'file-exists?' but emits a warning if FILE is not accessible."
+  (catch 'system-error
+    (lambda ()
+      (stat file))
+    (lambda args
+      (let ((errno (system-error-errno args)))
+        (format (current-error-port) "~a: ~a~%"
+                file (strerror errno))
+        #f))))
+
+(define (wc-print file)
+  (let-values (((lines chars)
+                (call-with-input-file file lines+chars)))
+              (format #t "~a ~a ~a~%" lines chars file)))
+
+(define (wc-l-print file)
+  (let-values (((lines chars)
+                (call-with-input-file file lines+chars)))
+              (format #t "~a ~a~%" lines file)))
+
+(define (wc-c-print file)
+  (let-values (((lines chars)
+                (call-with-input-file file lines+chars)))
+              (format #t "~a ~a~%" chars file)))
+
+(define (wc-command-implementation . files)
+  (for-each wc-print (filter file-exists?* files)))
+
+(define (wc-l-command-implementation . files)
+  (for-each wc-l-print (filter file-exists?* files)))
+
+(define (wc-c-command-implementation . files)
+  (for-each wc-c-print (filter file-exists?* files)))
+
+(define (wc-command . args)
+  "Emit code for the 'wc' command."
+  (cond ((member "-l" args)
+         `((@@ (guix build bournish) wc-l-command-implementation)
+           ,@(delete "-l" args)))
+        ((member "-c" args)
+         `((@@ (guix build bournish) wc-c-command-implementation)
+           ,@(delete "-c" args)))
+        (else
+         `((@@ (guix build bournish) wc-command-implementation) ,@args))))
+
 (define (help-command . _)
   (display "\
 Hello, this is Bournish, a minimal Bourne-like shell in Guile!
@@ -129,7 +188,8 @@ commands such as 'ls' and 'cd'; it lacks globbing, pipes---everything.\n"))
     ("help"   ,help-command)
     ("ls"     ,ls-command)
     ("which"  ,which-command)
-    ("cat"    ,cat-command)))
+    ("cat"    ,cat-command)
+    ("wc"     ,wc-command)))
 
 (define (read-bournish port env)
   "Read a Bournish expression from PORT, and return the corresponding Scheme
diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm
index ab970012a7..44e8b0d31e 100644
--- a/guix/build/emacs-build-system.scm
+++ b/guix/build/emacs-build-system.scm
@@ -1,5 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
+;;; Copyright © 2016 David Thompson <davet@gnu.org>
+;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -152,10 +154,11 @@ store in '.el' files."
 (define (emacs-inputs-el-directories dirs)
   "Build the list of Emacs Lisp directories from the Emacs package directory
 DIRS."
-  (map (lambda (d)
-         (string-append d %install-suffix "/"
-                        (store-directory->elpa-name-version d)))
-       dirs))
+  (append-map (lambda (d)
+                (list (string-append d "/share/emacs/site-lisp")
+                      (string-append d %install-suffix "/"
+                                     (store-directory->elpa-name-version d))))
+              dirs))
 
 (define (package-name-version->elpa-name-version name-ver)
   "Convert the Guix package NAME-VER to the corresponding ELPA name-version
diff --git a/guix/config.scm.in b/guix/config.scm.in
index d7df9f7d2b..adffa0cfec 100644
--- a/guix/config.scm.in
+++ b/guix/config.scm.in
@@ -59,8 +59,8 @@
   (or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix"))
 
 (define %config-directory
-  ;; This must match `NIX_CONF_DIR' as defined in `nix/local.mk'.
-  (or (getenv "NIX_CONF_DIR") "@guix_sysconfdir@/guix"))
+  ;; This must match `GUIX_CONFIGURATION_DIRECTORY' as defined in `nix/local.mk'.
+  (or (getenv "GUIX_CONFIGURATION_DIRECTORY") "@guix_sysconfdir@/guix"))
 
 (define %guix-register-program
   ;; The 'guix-register' program.
diff --git a/guix/gexp.scm b/guix/gexp.scm
index 2bf1013b3c..b929b79c26 100644
--- a/guix/gexp.scm
+++ b/guix/gexp.scm
@@ -856,8 +856,10 @@ and in the current monad setting (system type, etc.)"
 
 (define %utils-module
   ;; This file provides 'mkdir-p', needed to implement 'imported-files' and
-  ;; other primitives below.
-  (local-file (search-path %load-path "guix/build/utils.scm")
+  ;; other primitives below.  Note: We give the file name relative to this
+  ;; file you are currently reading; 'search-path' could return a file name
+  ;; relative to the current working directory.
+  (local-file "build/utils.scm"
               "build-utils.scm"))
 
 (define* (imported-files files
diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm
index 70ef507666..efa69081ef 100644
--- a/guix/import/pypi.scm
+++ b/guix/import/pypi.scm
@@ -175,8 +175,10 @@ cannot determine package dependencies"))
                  (lambda (port)
                    (let* ((metadata (json->scm port))
                           (run_requires (hash-ref metadata "run_requires"))
-                          (requirements (hash-ref (list-ref run_requires 0)
-                                                  "requires")))
+                          (requirements (if run_requires
+                                            (hash-ref (list-ref run_requires 0)
+                                                       "requires")
+                                            '())))
                      (map (lambda (r)
                             (python->package-name (clean-requirement r)))
                           requirements)))))
diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm
index 81ce770dc5..5722aa821d 100755
--- a/guix/scripts/substitute.scm
+++ b/guix/scripts/substitute.scm
@@ -94,10 +94,15 @@
 ;;; Code:
 
 (define %narinfo-cache-directory
-  ;; A local cache of narinfos, to avoid going to the network.
-  (or (and=> (getenv "XDG_CACHE_HOME")
-             (cut string-append <> "/guix/substitute"))
-      (string-append %state-directory "/substitute/cache")))
+  ;; A local cache of narinfos, to avoid going to the network.  Most of the
+  ;; time, 'guix substitute' is called by guix-daemon as root and stores its
+  ;; cached data in /var/guix/….  However, when invoked from 'guix challenge'
+  ;; as a user, it stores its cache in ~/.cache.
+  (if (zero? (getuid))
+      (or (and=> (getenv "XDG_CACHE_HOME")
+                 (cut string-append <> "/guix/substitute"))
+          (string-append %state-directory "/substitute/cache"))
+      (string-append (cache-directory) "/substitute")))
 
 (define %allow-unauthenticated-substitutes?
   ;; Whether to allow unchecked substitutes.  This is useful for testing
@@ -501,17 +506,10 @@ indicates that PATH is unavailable at CACHE-URL."
               (value ,(and=> narinfo narinfo->string))))
 
   (let ((file (narinfo-cache-file cache-url path)))
-    (catch 'system-error
-      (lambda ()
-        (mkdir-p (dirname file))
-        (with-atomic-file-output file
-          (lambda (out)
-            (write (cache-entry cache-url narinfo) out))))
-      (lambda args
-        ;; We may not have write access to the local cache when called from an
-        ;; unprivileged process such as 'guix challenge'.
-        (unless (= EACCES (system-error-errno args))
-          (apply throw args)))))
+    (mkdir-p (dirname file))
+    (with-atomic-file-output file
+      (lambda (out)
+        (write (cache-entry cache-url narinfo) out))))
 
   narinfo)
 
diff --git a/guix/store.scm b/guix/store.scm
index a64016611d..276684e2fb 100644
--- a/guix/store.scm
+++ b/guix/store.scm
@@ -1061,24 +1061,19 @@ Return #t on success.
 Use with care as it directly modifies the store!  This is primarily meant to
 be used internally by the daemon's build hook."
   ;; Currently this is implemented by calling out to the fine C++ blob.
-  (catch 'system-error
-    (lambda ()
-      (let ((pipe (apply open-pipe* OPEN_WRITE %guix-register-program
-                         `(,@(if prefix
-                                 `("--prefix" ,prefix)
-                                 '())
-                           ,@(if state-directory
-                                 `("--state-directory" ,state-directory)
-                                 '())))))
-        (and pipe
-             (begin
-               (format pipe "~a~%~a~%~a~%"
-                       path (or deriver "") (length references))
-               (for-each (cut format pipe "~a~%" <>) references)
-               (zero? (close-pipe pipe))))))
-    (lambda args
-      ;; Failed to run %GUIX-REGISTER-PROGRAM.
-      #f)))
+  (let ((pipe (apply open-pipe* OPEN_WRITE %guix-register-program
+                     `(,@(if prefix
+                             `("--prefix" ,prefix)
+                             '())
+                       ,@(if state-directory
+                             `("--state-directory" ,state-directory)
+                             '())))))
+    (and pipe
+         (begin
+           (format pipe "~a~%~a~%~a~%"
+                   path (or deriver "") (length references))
+           (for-each (cut format pipe "~a~%" <>) references)
+           (zero? (close-pipe pipe))))))
 
 
 ;;;
diff --git a/guix/utils.scm b/guix/utils.scm
index a642bd3d62..9e1b8ead0a 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -637,10 +637,11 @@ output port, and PROC's result is returned."
 
 (define (cache-directory)
   "Return the cache directory for Guix, by default ~/.cache/guix."
-  (or (getenv "XDG_CONFIG_HOME")
-      (and=> (or (getenv "HOME")
-                 (passwd:dir (getpwuid (getuid))))
-             (cut string-append <> "/.cache/guix"))))
+  (string-append (or (getenv "XDG_CACHE_HOME")
+                     (and=> (or (getenv "HOME")
+                                (passwd:dir (getpwuid (getuid))))
+                            (cut string-append <> "/.cache")))
+                 "/guix"))
 
 (define (readlink* file)
   "Call 'readlink' until the result is not a symlink."
@@ -702,6 +703,18 @@ output port, and PROC's result is returned."
 ;;; Source location.
 ;;;
 
+(define (absolute-dirname file)
+  "Return the absolute name of the directory containing FILE, or #f upon
+failure."
+  (match (search-path %load-path file)
+    (#f #f)
+    ((? string? file)
+     ;; If there are relative names in %LOAD-PATH, FILE can be relative and
+     ;; needs to be canonicalized.
+     (if (string-prefix? "/" file)
+         (dirname file)
+         (canonicalize-path (dirname file))))))
+
 (define-syntax current-source-directory
   (lambda (s)
     "Return the absolute name of the current directory, or #f if it could not
@@ -711,11 +724,16 @@ be determined."
        (match (assq 'filename (syntax-source s))
          (('filename . (? string? file-name))
           ;; If %FILE-PORT-NAME-CANONICALIZATION is 'relative, then FILE-NAME
-          ;; can be relative.  In that case, we try to find out the absolute
-          ;; file name by looking at %LOAD-PATH.
-          (if (string-prefix? "/" file-name)
-              (dirname file-name)
-              (and=> (search-path %load-path file-name) dirname)))
+          ;; can be relative.  In that case, we try to find out at run time
+          ;; the absolute file name by looking at %LOAD-PATH; doing this at
+          ;; run time rather than expansion time is necessary to allow files
+          ;; to be moved on the file system.
+          (cond ((not file-name)
+                 #f)                ;raising an error would upset Geiser users
+                ((string-prefix? "/" file-name)
+                 (dirname file-name))
+                (else
+                 #`(absolute-dirname #,file-name))))
          (_
           #f))))))
 
diff --git a/nix/libstore/globals.cc b/nix/libstore/globals.cc
index 84fc885eba..65dad24d91 100644
--- a/nix/libstore/globals.cc
+++ b/nix/libstore/globals.cc
@@ -67,7 +67,7 @@ void Settings::processEnvironment()
     nixLogDir = canonPath(getEnv("NIX_LOG_DIR", NIX_LOG_DIR));
     nixStateDir = canonPath(getEnv("NIX_STATE_DIR", NIX_STATE_DIR));
     nixDBPath = getEnv("NIX_DB_DIR", nixStateDir + "/db");
-    nixConfDir = canonPath(getEnv("NIX_CONF_DIR", NIX_CONF_DIR));
+    nixConfDir = canonPath(getEnv("GUIX_CONFIGURATION_DIRECTORY", GUIX_CONFIGURATION_DIRECTORY));
     nixLibexecDir = canonPath(getEnv("NIX_LIBEXEC_DIR", NIX_LIBEXEC_DIR));
     nixBinDir = canonPath(getEnv("NIX_BIN_DIR", NIX_BIN_DIR));
     nixDaemonSocketFile = canonPath(nixStateDir + DEFAULT_SOCKET_PATH);
diff --git a/nix/local.mk b/nix/local.mk
index 07a92f74ea..b0e9bc1a2b 100644
--- a/nix/local.mk
+++ b/nix/local.mk
@@ -106,7 +106,7 @@ libstore_a_CPPFLAGS =				\
   -DNIX_DATA_DIR=\"$(datadir)\"			\
   -DNIX_STATE_DIR=\"$(localstatedir)/guix\"	\
   -DNIX_LOG_DIR=\"$(localstatedir)/log/guix\"	\
-  -DNIX_CONF_DIR=\"$(sysconfdir)/guix\"		\
+  -DGUIX_CONFIGURATION_DIRECTORY=\"$(sysconfdir)/guix\"		\
   -DNIX_LIBEXEC_DIR=\"$(libexecdir)\"		\
   -DNIX_BIN_DIR=\"$(bindir)\"			\
   -DOPENSSL_PATH="\"guix-authenticate\""	\
diff --git a/po/guix/fr.po b/po/guix/fr.po
index d1a49077e2..b5b566a93b 100644
--- a/po/guix/fr.po
+++ b/po/guix/fr.po
@@ -5,11 +5,11 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: guix 0.8\n"
+"Project-Id-Version: guix 0.9.1\n"
 "Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2014-11-09 22:32+0100\n"
-"PO-Revision-Date: 2014-12-09 09:42+0100\n"
-"Last-Translator: Rémy Chevalier <remychevalier@laposte.net>\n"
+"POT-Creation-Date: 2016-03-04 16:52+0100\n"
+"PO-Revision-Date: 2016-06-26 02:43+0200\n"
+"Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
 "Language-Team: French <traduc@traduc.org>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
@@ -17,47 +17,154 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: gnu/packages.scm:120
+#: gnu/packages.scm:73
 #, scheme-format
-msgid "cannot access `~a': ~a~%"
-msgstr "impossible d'accéder à \"~a\": ~a~%"
+msgid "~a: patch not found"
+msgstr "~a: paquet introuvable"
 
-#: gnu/packages.scm:350
+#: gnu/packages.scm:84
 #, scheme-format
-msgid "looking for the latest release of GNU ~a..."
-msgstr "recherche de la dernière version de GNU ~a..."
+msgid "could not find bootstrap binary '~a' for system '~a'"
+msgstr ""
 
-#: gnu/packages.scm:354
+#: gnu/packages.scm:136
 #, scheme-format
-msgid "~a: note: using ~a but ~a is available upstream~%"
-msgstr "~a: note: utilisation de ~a mais ~a est disponible en amont"
+msgid "cannot access `~a': ~a~%"
+msgstr "impossible d'accéder à \"~a\": ~a~%"
 
-#: gnu/packages.scm:376 guix/scripts/package.scm:305
+#: gnu/packages.scm:289
 #, scheme-format
 msgid "ambiguous package specification `~a'~%"
 msgstr "spécification du paquet \"~a\" ambiguë~%"
 
-#: gnu/packages.scm:377 guix/scripts/package.scm:307
+#: gnu/packages.scm:290
 #, scheme-format
 msgid "choosing ~a from ~a~%"
 msgstr "choix de ~a parmi ~a~%"
 
-#: gnu/packages.scm:383
+#: gnu/packages.scm:294
+#, scheme-format
+msgid "deprecated NAME-VERSION syntax.~%"
+msgstr ""
+
+#: gnu/packages.scm:298
 #, scheme-format
 msgid "~A: package not found for version ~a~%"
 msgstr "~A: paquet introuvable pour la version ~a~%"
 
-#: gnu/packages.scm:385
+#: gnu/packages.scm:305
 #, scheme-format
 msgid "~A: unknown package~%"
 msgstr "~A: paquet inconnu~%"
 
-#: guix/scripts/build.scm:65
+#: gnu/packages.scm:333
+#, scheme-format
+msgid "package `~a' lacks output `~a'~%"
+msgstr "le paquet \"~a\" requiert la sortie \"~a\"~%"
+
+#: gnu/services.scm:527
+#, scheme-format
+msgid "no target of type '~a' for service ~s"
+msgstr ""
+
+#: gnu/services.scm:538 gnu/services.scm:599
+#, scheme-format
+msgid "more than one target service of type '~a'"
+msgstr ""
+
+#: gnu/services.scm:589
+#, scheme-format
+msgid "service of type '~a' not found"
+msgstr ""
+
+#: gnu/system.scm:546
+#, scheme-format
+msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%"
+msgstr ""
+
+#: gnu/system.scm:562
+#, scheme-format
+msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%"
+msgstr ""
+
+#: gnu/system.scm:679
+#, fuzzy, scheme-format
+#| msgid "~a: invalid checker"
+msgid "~a: invalid locale name"
+msgstr "~a: vérificateur non valide"
+
+#: gnu/system.scm:798
+#, scheme-format
+msgid "unrecognized boot parameters for '~a'~%"
+msgstr "paramètres de démarrage non reconus pour \"~a\"~%"
+
+#: gnu/services/shepherd.scm:166
+#, scheme-format
+msgid "service '~a' provided more than once"
+msgstr ""
+
+#: gnu/services/shepherd.scm:181
+#, scheme-format
+msgid "service '~a' requires '~a', which is undefined"
+msgstr ""
+
+#: gnu/system/shadow.scm:213
+#, scheme-format
+msgid "supplementary group '~a' of user '~a' is undeclared"
+msgstr ""
+
+#: gnu/system/shadow.scm:223
+#, scheme-format
+msgid "primary group '~a' of user '~a' is undeclared"
+msgstr ""
+
+#: guix/scripts.scm:52
+#, scheme-format
+msgid "invalid argument: ~a~%"
+msgstr "argument non valide: ~a~%"
+
+#: guix/scripts.scm:78 guix/scripts/download.scm:97 guix/scripts/gc.scm:157
+#: guix/scripts/import/cran.scm:78 guix/scripts/import/elpa.scm:77
+#: guix/scripts/pull.scm:219 guix/scripts/lint.scm:874
+#: guix/scripts/publish.scm:354 guix/scripts/graph.scm:346
+#, scheme-format
+msgid "~A: unrecognized option~%"
+msgstr "~A: option non reconnue~%"
+
+#: guix/scripts/build.scm:112
 #, scheme-format
 msgid "failed to create GC root `~a': ~a~%"
 msgstr "impossible de créer la racine du GC \"~a\": ~a~%"
 
-#: guix/scripts/build.scm:102
+#: guix/scripts/build.scm:189
+#, fuzzy, scheme-format
+#| msgid "ambiguous package specification `~a'~%"
+msgid "invalid replacement specification: ~s~%"
+msgstr "spécification du paquet \"~a\" ambiguë~%"
+
+#: guix/scripts/build.scm:237
+msgid ""
+"\n"
+"      --with-source=SOURCE\n"
+"                         use SOURCE when building the corresponding package"
+msgstr ""
+"\n"
+"      --with-source=SOURCE\n"
+"                         utiliser la SOURCE donnée pour compiler le paquet correspondant"
+
+#: guix/scripts/build.scm:240
+msgid ""
+"\n"
+"      --with-input=PACKAGE=REPLACEMENT\n"
+"                         replace dependency PACKAGE by REPLACEMENT"
+msgstr ""
+
+#: guix/scripts/build.scm:265
+#, scheme-format
+msgid "transformation '~a' had no effect on ~a~%"
+msgstr ""
+
+#: guix/scripts/build.scm:283
 msgid ""
 "\n"
 "  -L, --load-path=DIR    prepend DIR to the package module search path"
@@ -65,7 +172,7 @@ msgstr ""
 "\n"
 "  -L, --load-path=REP    préfixer le chemin de recherche par REP "
 
-#: guix/scripts/build.scm:104
+#: guix/scripts/build.scm:285
 msgid ""
 "\n"
 "  -K, --keep-failed      keep build tree of failed builds"
@@ -73,7 +180,19 @@ msgstr ""
 "\n"
 "  -K, --keep-failed      garder l'arbre de compilation pour les compilations ayant échoué"
 
-#: guix/scripts/build.scm:106
+#: guix/scripts/build.scm:287
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -n, --dry-run          do not build the derivations"
+msgid ""
+"\n"
+"  -k, --keep-going       keep going when some of the derivations fail"
+msgstr ""
+"\n"
+"  -n, --dry-run          ne pas compiler les dérivations"
+
+#: guix/scripts/build.scm:289
 msgid ""
 "\n"
 "  -n, --dry-run          do not build the derivations"
@@ -81,7 +200,7 @@ msgstr ""
 "\n"
 "  -n, --dry-run          ne pas compiler les dérivations"
 
-#: guix/scripts/build.scm:108
+#: guix/scripts/build.scm:291
 msgid ""
 "\n"
 "      --fallback         fall back to building when the substituter fails"
@@ -89,7 +208,7 @@ msgstr ""
 "\n"
 "      --fallback         revenir à la compilation quand le substitut échoue"
 
-#: guix/scripts/build.scm:110
+#: guix/scripts/build.scm:293
 msgid ""
 "\n"
 "      --no-substitutes   build instead of resorting to pre-built substitutes"
@@ -97,7 +216,22 @@ msgstr ""
 "\n"
 "      --no-substitutes   compiler plutot que recourir à des substituts pré-compilés"
 
-#: guix/scripts/build.scm:112
+#: guix/scripts/build.scm:295 guix/scripts/size.scm:215
+msgid ""
+"\n"
+"      --substitute-urls=URLS\n"
+"                         fetch substitute from URLS if they are authorized"
+msgstr ""
+
+#: guix/scripts/build.scm:298
+msgid ""
+"\n"
+"      --no-grafts        do not graft packages"
+msgstr ""
+"\n"
+"      --no-grafts        ne pas greffer kes paquets"
+
+#: guix/scripts/build.scm:300
 msgid ""
 "\n"
 "      --no-build-hook    do not attempt to offload builds via the build hook"
@@ -105,7 +239,7 @@ msgstr ""
 "\n"
 "      --no-build-hook    ne pas essayer de décharger les compilations via le hook de compilation"
 
-#: guix/scripts/build.scm:114
+#: guix/scripts/build.scm:302
 msgid ""
 "\n"
 "      --max-silent-time=SECONDS\n"
@@ -115,7 +249,7 @@ msgstr ""
 "      --max-silent-time=N\n"
 "                         marquer la compilation comme ayant échouée après N secondes de silence"
 
-#: guix/scripts/build.scm:117
+#: guix/scripts/build.scm:305
 msgid ""
 "\n"
 "      --timeout=SECONDS  mark the build as failed after SECONDS of activity"
@@ -123,7 +257,7 @@ msgstr ""
 "\n"
 "      --timeout=N  marquer la compilation comme ayant échouée après N secondes d'activité"
 
-#: guix/scripts/build.scm:119
+#: guix/scripts/build.scm:307
 msgid ""
 "\n"
 "      --verbosity=LEVEL  use the given verbosity LEVEL"
@@ -131,7 +265,13 @@ msgstr ""
 "\n"
 "      --verbosity=NIVEAU  utiliser le NIVEAU de verbosité donné"
 
-#: guix/scripts/build.scm:121
+#: guix/scripts/build.scm:309
+msgid ""
+"\n"
+"      --rounds=N         build N times in a row to detect non-determinism"
+msgstr ""
+
+#: guix/scripts/build.scm:311
 msgid ""
 "\n"
 "  -c, --cores=N          allow the use of up to N CPU cores for the build"
@@ -139,12 +279,19 @@ msgstr ""
 "\n"
 "  -c, --cores=N          utiliser jusqu'à N coeurs CPU pour la compilation"
 
-#: guix/scripts/build.scm:195
-#, scheme-format
-msgid "~a: not a number~%"
-msgstr "~a: pas un nombre~%"
+#: guix/scripts/build.scm:313
+msgid ""
+"\n"
+"  -M, --max-jobs=N       allow at most N build jobs"
+msgstr ""
+
+#: guix/scripts/build.scm:419 guix/scripts/build.scm:426
+#, fuzzy, scheme-format
+#| msgid "wrong number of arguments~%"
+msgid "not a number: '~a' option argument: ~a~%"
+msgstr "nombre d'arguments incorrect~%"
 
-#: guix/scripts/build.scm:213
+#: guix/scripts/build.scm:446
 msgid ""
 "Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n"
 "Build the given PACKAGE-OR-DERIVATION and return their output paths.\n"
@@ -152,7 +299,7 @@ msgstr ""
 "Usage: guix build [OPTION]... PAQUET-OU-DERIVATION...\n"
 "Compiler le PAQUET-OU-DERIVATION donné et retourner leur chemin de sortie.\n"
 
-#: guix/scripts/build.scm:215
+#: guix/scripts/build.scm:448
 msgid ""
 "\n"
 "  -e, --expression=EXPR  build the package or derivation EXPR evaluates to"
@@ -160,49 +307,51 @@ msgstr ""
 "\n"
 "  -e, --expression=EXPR  compiler le paquet ou la dérivation évalué par EXPR"
 
-#: guix/scripts/build.scm:217
+#: guix/scripts/build.scm:450
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -e, --expression=EXPR  build the package or derivation EXPR evaluates to"
 msgid ""
 "\n"
-"  -S, --source           build the packages' source derivations"
+"  -f, --file=FILE        build the package or derivation that the code within\n"
+"                         FILE evaluates to"
 msgstr ""
 "\n"
-"  -S, --source           compiler les dérivations de source du paquet"
+"  -e, --expression=EXPR  compiler le paquet ou la dérivation évalué par EXPR"
 
-#: guix/scripts/build.scm:219
+#: guix/scripts/build.scm:453
 msgid ""
 "\n"
-"  -s, --system=SYSTEM    attempt to build for SYSTEM--e.g., \"i686-linux\""
+"  -S, --source           build the packages' source derivations"
 msgstr ""
 "\n"
-"  -s, --system=SYSTEME    essayer de compiler pour le SYSTEME donné, par exemple \"i686-linux\""
+"  -S, --source           compiler les dérivations de source du paquet"
 
-#: guix/scripts/build.scm:221
+#: guix/scripts/build.scm:455
 msgid ""
 "\n"
-"      --target=TRIPLET   cross-build for TRIPLET--e.g., \"armel-linux-gnu\""
+"      --sources[=TYPE]   build source derivations; TYPE may optionally be one\n"
+"                         of \"package\", \"all\" (default), or \"transitive\""
 msgstr ""
-"\n"
-"      --target=TRIPLET   effectuer une compilation croisée pour TRIPLET, par exemple \"armel-linux-gnu\""
 
-#: guix/scripts/build.scm:223
+#: guix/scripts/build.scm:458
 msgid ""
 "\n"
-"      --with-source=SOURCE\n"
-"                         use SOURCE when building the corresponding package"
+"  -s, --system=SYSTEM    attempt to build for SYSTEM--e.g., \"i686-linux\""
 msgstr ""
 "\n"
-"      --with-source=SOURCE\n"
-"                         utiliser la SOURCE donnée pour compiler le paquet correspondant"
+"  -s, --system=SYSTEME    essayer de compiler pour le SYSTEME donné, par exemple \"i686-linux\""
 
-#: guix/scripts/build.scm:226
+#: guix/scripts/build.scm:460
 msgid ""
 "\n"
-"      --no-grafts        do not graft packages"
+"      --target=TRIPLET   cross-build for TRIPLET--e.g., \"armel-linux-gnu\""
 msgstr ""
 "\n"
-"      --no-grafts        ne pas greffer kes paquets"
+"      --target=TRIPLET   effectuer une compilation croisée pour TRIPLET, par exemple \"armel-linux-gnu\""
 
-#: guix/scripts/build.scm:228
+#: guix/scripts/build.scm:462
 msgid ""
 "\n"
 "  -d, --derivations      return the derivation paths of the given packages"
@@ -210,7 +359,13 @@ msgstr ""
 "\n"
 "  -d, --derivations      retourner les chemins de dérivation pour les paquets donnés"
 
-#: guix/scripts/build.scm:230
+#: guix/scripts/build.scm:464
+msgid ""
+"\n"
+"      --check            rebuild items to check for non-determinism issues"
+msgstr ""
+
+#: guix/scripts/build.scm:466
 msgid ""
 "\n"
 "  -r, --root=FILE        make FILE a symlink to the result, and register it\n"
@@ -220,7 +375,7 @@ msgstr ""
 "  -r, --root=FICHIER     faire de FICHIER un lien symbolique pointant sur le résultat\n"
 "                         et l'enregistrer en tant que racine du garbage collector"
 
-#: guix/scripts/build.scm:233
+#: guix/scripts/build.scm:469
 msgid ""
 "\n"
 "      --log-file         return the log file names for the given derivations"
@@ -228,11 +383,15 @@ msgstr ""
 "\n"
 "      --log-file         retourner les fichiers de journalisation pour les dérivations données"
 
-#: guix/scripts/build.scm:238 guix/scripts/download.scm:53
-#: guix/scripts/package.scm:451 guix/scripts/gc.scm:58
-#: guix/scripts/hash.scm:55 guix/scripts/pull.scm:81
-#: guix/scripts/substitute-binary.scm:560 guix/scripts/system.scm:371
-#: guix/scripts/lint.scm:262
+#: guix/scripts/build.scm:476 guix/scripts/download.scm:54
+#: guix/scripts/package.scm:386 guix/scripts/gc.scm:70
+#: guix/scripts/hash.scm:56 guix/scripts/import.scm:91
+#: guix/scripts/import/cran.scm:46 guix/scripts/pull.scm:83
+#: guix/scripts/substitute.scm:758 guix/scripts/system.scm:631
+#: guix/scripts/lint.scm:823 guix/scripts/publish.scm:63
+#: guix/scripts/edit.scm:44 guix/scripts/size.scm:223
+#: guix/scripts/graph.scm:327 guix/scripts/challenge.scm:181
+#: guix/scripts/container.scm:33 guix/scripts/container/exec.scm:43
 msgid ""
 "\n"
 "  -h, --help             display this help and exit"
@@ -240,11 +399,15 @@ msgstr ""
 "\n"
 "  -h, --help             afficher cette aide et quitter"
 
-#: guix/scripts/build.scm:240 guix/scripts/download.scm:55
-#: guix/scripts/package.scm:453 guix/scripts/gc.scm:60
-#: guix/scripts/hash.scm:57 guix/scripts/pull.scm:83
-#: guix/scripts/substitute-binary.scm:562 guix/scripts/system.scm:373
-#: guix/scripts/lint.scm:266
+#: guix/scripts/build.scm:478 guix/scripts/download.scm:56
+#: guix/scripts/package.scm:388 guix/scripts/gc.scm:72
+#: guix/scripts/hash.scm:58 guix/scripts/import.scm:93
+#: guix/scripts/import/cran.scm:48 guix/scripts/pull.scm:85
+#: guix/scripts/substitute.scm:760 guix/scripts/system.scm:633
+#: guix/scripts/lint.scm:827 guix/scripts/publish.scm:65
+#: guix/scripts/edit.scm:46 guix/scripts/size.scm:225
+#: guix/scripts/graph.scm:329 guix/scripts/challenge.scm:183
+#: guix/scripts/container.scm:35 guix/scripts/container/exec.scm:45
 msgid ""
 "\n"
 "  -V, --version          display version information and exit"
@@ -252,25 +415,24 @@ msgstr ""
 "\n"
 "  -V, --version          afficher les informations sur la version et quitter"
 
-#: guix/scripts/build.scm:366
+#: guix/scripts/build.scm:505
 #, scheme-format
-msgid "sources do not match any package:~{ ~a~}~%"
-msgstr "les sources ne correspondent à aucun paquet:~{ ~a~}~%"
+msgid ""
+"invalid argument: '~a' option argument: ~a, ~\n"
+"must be one of 'package', 'all', or 'transitive'~%"
+msgstr ""
 
-#: guix/scripts/build.scm:395 guix/scripts/download.scm:96
-#: guix/scripts/package.scm:673 guix/scripts/gc.scm:122
-#: guix/scripts/pull.scm:213 guix/scripts/system.scm:426
-#: guix/scripts/lint.scm:313
+#: guix/scripts/build.scm:549
 #, scheme-format
-msgid "~A: unrecognized option~%"
-msgstr "~A: option non reconnue~%"
+msgid "~s: not something we can build~%"
+msgstr ""
 
-#: guix/scripts/build.scm:423
+#: guix/scripts/build.scm:629
 #, scheme-format
 msgid "no build log for '~a'~%"
 msgstr "aucun journal de compilation pour \"~a\"~%"
 
-#: guix/scripts/download.scm:44
+#: guix/scripts/download.scm:45
 msgid ""
 "Usage: guix download [OPTION] URL\n"
 "Download the file at URL, add it to the store, and print its store path\n"
@@ -286,7 +448,7 @@ msgstr ""
 "Formats supportés: 'nix-base32' (défaut), 'base32', et 'base16'\n"
 "('hex' et 'hexadecimal' peuvent aussi être utilisés).\n"
 
-#: guix/scripts/download.scm:50 guix/scripts/hash.scm:50
+#: guix/scripts/download.scm:51 guix/scripts/hash.scm:51
 msgid ""
 "\n"
 "  -f, --format=FMT       write the hash in the given format"
@@ -294,73 +456,118 @@ msgstr ""
 "\n"
 "  -f, --format=FORMAT       écrire l'empreinte dans le FORMAT donné"
 
-#: guix/scripts/download.scm:73 guix/scripts/hash.scm:75
+#: guix/scripts/download.scm:74 guix/scripts/hash.scm:76
 #, scheme-format
 msgid "unsupported hash format: ~a~%"
 msgstr "format d'empreinte non supporté: ~a~%"
 
-#: guix/scripts/download.scm:106
+#: guix/scripts/download.scm:100 guix/scripts/package.scm:836
+#: guix/scripts/publish.scm:356
+#, scheme-format
+msgid "~A: extraneous argument~%"
+msgstr "~A: argument superflu~%"
+
+#: guix/scripts/download.scm:109
+#, fuzzy, scheme-format
+#| msgid "~a: download failed~%"
+msgid "no download URI was specified~%"
+msgstr "~a: le téléchargement a échoué~%"
+
+#: guix/scripts/download.scm:111
 #, scheme-format
 msgid "~a: failed to parse URI~%"
 msgstr "~a: impossible d'évaluer l'URI~%"
 
-#: guix/scripts/download.scm:117
+#: guix/scripts/download.scm:122
 #, scheme-format
 msgid "~a: download failed~%"
 msgstr "~a: le téléchargement a échoué~%"
 
-#: guix/scripts/package.scm:97
+#: guix/scripts/package.scm:103
 #, scheme-format
-msgid "failed to build the empty profile~%"
-msgstr "échec de la compilation du profil vide~%"
+msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%"
+msgstr "Essayez \"info '(guix) Invoking guix package'\" pour plus d'information.~%"
 
-#: guix/scripts/package.scm:113
+#: guix/scripts/package.scm:125
 #, scheme-format
-msgid "switching from generation ~a to ~a~%"
-msgstr "passage de la génération ~a à ~a~%"
+msgid "error: while creating directory `~a': ~a~%"
+msgstr "erreur: pendant la création du répertoire \"~a\": ~a~%"
 
-#: guix/scripts/package.scm:132
+#: guix/scripts/package.scm:129
 #, scheme-format
-msgid "nothing to do: already at the empty profile~%"
-msgstr "aucune action à faire: profil courant vide"
+msgid "Please create the `~a' directory, with you as the owner.~%"
+msgstr "Veuillez créer un répertoire \"~a\" dont vous êtes le propriétaire.~%"
 
-#: guix/scripts/package.scm:144
+#: guix/scripts/package.scm:136
 #, scheme-format
-msgid "deleting ~a~%"
-msgstr "suppression de ~a~%"
+msgid "error: directory `~a' is not owned by you~%"
+msgstr "erreur: vous de possédez pas le répertoire \"~a\""
 
-#: guix/scripts/package.scm:295
+#: guix/scripts/package.scm:139
 #, scheme-format
-msgid "package `~a' lacks output `~a'~%"
-msgstr "le paquet \"~a\" requiert la sortie \"~a\"~%"
+msgid "Please change the owner of `~a' to user ~s.~%"
+msgstr "Veuillez définir ~s comme propriétaire de \"~a\".~%"
 
-#: guix/scripts/package.scm:312
+#: guix/scripts/package.scm:174
 #, scheme-format
-msgid "~a: package not found~%"
-msgstr "~a: paquet introuvable~%"
+msgid "not removing generation ~a, which is current~%"
+msgstr ""
+
+#: guix/scripts/package.scm:181
+#, fuzzy, scheme-format
+#| msgid "cannot switch to generation '~a'~%"
+msgid "no matching generation~%"
+msgstr "impossible de passer à la génération \"~a\"~%"
+
+#: guix/scripts/package.scm:184 guix/scripts/package.scm:657
+#: guix/scripts/system.scm:459
+#, scheme-format
+msgid "invalid syntax: ~a~%"
+msgstr "syntaxe non valide: ~a~%"
 
-#: guix/scripts/package.scm:390
+#: guix/scripts/package.scm:209
+#, scheme-format
+msgid "nothing to be done~%"
+msgstr "aucune action à faire~%"
+
+#: guix/scripts/package.scm:223
+#, scheme-format
+msgid "~a package in profile~%"
+msgid_plural "~a packages in profile~%"
+msgstr[0] "~a paquet dans le profile~%"
+msgstr[1] "~a paquets dans le profile~%"
+
+#: guix/scripts/package.scm:311
 #, scheme-format
 msgid "The following environment variable definitions may be needed:~%"
 msgstr "Il pourrait être nécessaire de définir les variables d'environnement suivantes:~%"
 
-#: guix/scripts/package.scm:406
+#: guix/scripts/package.scm:327
+#, fuzzy
+#| msgid ""
+#| "Usage: guix package [OPTION]... PACKAGES...\n"
+#| "Install, remove, or upgrade PACKAGES in a single transaction.\n"
 msgid ""
-"Usage: guix package [OPTION]... PACKAGES...\n"
-"Install, remove, or upgrade PACKAGES in a single transaction.\n"
+"Usage: guix package [OPTION]...\n"
+"Install, remove, or upgrade packages in a single transaction.\n"
 msgstr ""
 "Usage: guix package [OPTION]... PAQUETS...\n"
 "Installer, supprimer ou mettre à jour les PAQUETS spécifiés en une seule transaction.\n"
 
-#: guix/scripts/package.scm:408
+#: guix/scripts/package.scm:329
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -i, --install=PACKAGE  install PACKAGE"
 msgid ""
 "\n"
-"  -i, --install=PACKAGE  install PACKAGE"
+"  -i, --install PACKAGE ...\n"
+"                         install PACKAGEs"
 msgstr ""
 "\n"
 "  -i, --install=PAQUET  installer PAQUET"
 
-#: guix/scripts/package.scm:410
+#: guix/scripts/package.scm:332
 msgid ""
 "\n"
 "  -e, --install-from-expression=EXP\n"
@@ -370,15 +577,36 @@ msgstr ""
 "  -e, --install-from-expression=EXP\n"
 "                         installer le paquet évalué par EXP"
 
-#: guix/scripts/package.scm:413
+#: guix/scripts/package.scm:335
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -e, --install-from-expression=EXP\n"
+#| "                         install the package EXP evaluates to"
+msgid ""
+"\n"
+"  -f, --install-from-file=FILE\n"
+"                         install the package that the code within FILE\n"
+"                         evaluates to"
+msgstr ""
+"\n"
+"  -e, --install-from-expression=EXP\n"
+"                         installer le paquet évalué par EXP"
+
+#: guix/scripts/package.scm:339
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -r, --remove=PACKAGE   remove PACKAGE"
 msgid ""
 "\n"
-"  -r, --remove=PACKAGE   remove PACKAGE"
+"  -r, --remove PACKAGE ...\n"
+"                         remove PACKAGEs"
 msgstr ""
 "\n"
 "  -r, --remove=PAQUET   supprimer PAQUET"
 
-#: guix/scripts/package.scm:415
+#: guix/scripts/package.scm:342
 msgid ""
 "\n"
 "  -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP"
@@ -386,7 +614,26 @@ msgstr ""
 "\n"
 "  -u, --upgrade[=REGEXP] mettre à jour tous les paquets installés correspondant à REGEXP"
 
-#: guix/scripts/package.scm:417
+#: guix/scripts/package.scm:344
+msgid ""
+"\n"
+"  -m, --manifest=FILE    create a new profile generation with the manifest\n"
+"                         from FILE"
+msgstr ""
+
+#: guix/scripts/package.scm:347
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP"
+msgid ""
+"\n"
+"      --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP"
+msgstr ""
+"\n"
+"  -u, --upgrade[=REGEXP] mettre à jour tous les paquets installés correspondant à REGEXP"
+
+#: guix/scripts/package.scm:349
 msgid ""
 "\n"
 "      --roll-back        roll back to the previous generation"
@@ -394,15 +641,20 @@ msgstr ""
 "\n"
 "      --roll-back        revenir à la génération antérieure"
 
-#: guix/scripts/package.scm:419
+#: guix/scripts/package.scm:351
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --search-paths     display needed environment variable definitions"
 msgid ""
 "\n"
-"      --search-paths     display needed environment variable definitions"
+"      --search-paths[=KIND]\n"
+"                         display needed environment variable definitions"
 msgstr ""
 "\n"
 "      --search-paths     afficher les définitions de variable d'environnement requises"
 
-#: guix/scripts/package.scm:421
+#: guix/scripts/package.scm:354
 msgid ""
 "\n"
 "  -l, --list-generations[=PATTERN]\n"
@@ -412,7 +664,7 @@ msgstr ""
 "  -l, --list-generations[=PATTERN]\n"
 "                         lister les générations correspondant à PATTERN"
 
-#: guix/scripts/package.scm:424
+#: guix/scripts/package.scm:357
 msgid ""
 "\n"
 "  -d, --delete-generations[=PATTERN]\n"
@@ -422,7 +674,7 @@ msgstr ""
 "  -d, --delete-generations[=PATTERN]\n"
 "                         supprimer les générations correspondant à PATTERN"
 
-#: guix/scripts/package.scm:427
+#: guix/scripts/package.scm:360
 msgid ""
 "\n"
 "  -S, --switch-generation=PATTERN\n"
@@ -432,7 +684,7 @@ msgstr ""
 "  -d, --delete-generations[=PATTERN]\n"
 "                         basculer vers une génération correspondant à PATTERN"
 
-#: guix/scripts/package.scm:430
+#: guix/scripts/package.scm:363
 msgid ""
 "\n"
 "  -p, --profile=PROFILE  use PROFILE instead of the user's default profile"
@@ -440,7 +692,7 @@ msgstr ""
 "\n"
 "  -p, --profile=PROFIL  utiliser PROFIL au lieu du profil par défaut de l'utilisateur"
 
-#: guix/scripts/package.scm:433
+#: guix/scripts/package.scm:366
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the profile"
@@ -448,7 +700,7 @@ msgstr ""
 "\n"
 "      --bootstrap        utiliser le programme d'amorçage Guile pour compiler le profil"
 
-#: guix/scripts/package.scm:435 guix/scripts/pull.scm:74
+#: guix/scripts/package.scm:368 guix/scripts/pull.scm:76
 msgid ""
 "\n"
 "      --verbose          produce verbose output"
@@ -456,7 +708,7 @@ msgstr ""
 "\n"
 "      --verbose          utiliser le mode verbeux"
 
-#: guix/scripts/package.scm:438
+#: guix/scripts/package.scm:371
 msgid ""
 "\n"
 "  -s, --search=REGEXP    search in synopsis and description using REGEXP"
@@ -464,7 +716,7 @@ msgstr ""
 "\n"
 "  -s, --search=REGEXP    chercher dans le synopsis et la description en utilisant REGEXP"
 
-#: guix/scripts/package.scm:440
+#: guix/scripts/package.scm:373
 msgid ""
 "\n"
 "  -I, --list-installed[=REGEXP]\n"
@@ -474,7 +726,7 @@ msgstr ""
 "  -I, --list-installed[=REGEXP]\n"
 "                         lister les paquets installés correspondant à REGEXP"
 
-#: guix/scripts/package.scm:443
+#: guix/scripts/package.scm:376
 msgid ""
 "\n"
 "  -A, --list-available[=REGEXP]\n"
@@ -484,77 +736,39 @@ msgstr ""
 "  -A, --list-available[=REGEXP]\n"
 "                         lister les paquets disponibles correspondant à REGEXP"
 
-#: guix/scripts/package.scm:446
+#: guix/scripts/package.scm:379
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  --show=PACKAGE         show details about PACKAGE"
 msgid ""
 "\n"
-"  --show=PACKAGE         show details about PACKAGE"
+"      --show=PACKAGE     show details about PACKAGE"
 msgstr ""
 "\n"
 "  --show=PAQUET         montrer des détails sur le PAQUET"
 
-#: guix/scripts/package.scm:677
-#, scheme-format
-msgid "~A: extraneous argument~%"
-msgstr "~A: argument superflu~%"
-
-#: guix/scripts/package.scm:687
-#, scheme-format
-msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%"
-msgstr "Essayez \"info '(guix) Invoking guix package'\" pour plus d'information.~%"
-
-#: guix/scripts/package.scm:709
-#, scheme-format
-msgid "error: while creating directory `~a': ~a~%"
-msgstr "erreur: pendant la création du répertoire \"~a\": ~a~%"
-
-#: guix/scripts/package.scm:713
-#, scheme-format
-msgid "Please create the `~a' directory, with you as the owner.~%"
-msgstr "Veuillez créer un répertoire \"~a\" dont vous êtes le propriétaire.~%"
-
-#: guix/scripts/package.scm:720
+#: guix/scripts/package.scm:474
 #, scheme-format
-msgid "error: directory `~a' is not owned by you~%"
-msgstr "erreur: vous de possédez pas le répertoire \"~a\""
-
-#: guix/scripts/package.scm:723
-#, scheme-format
-msgid "Please change the owner of `~a' to user ~s.~%"
-msgstr "Veuillez définir ~s comme propriétaire de \"~a\".~%"
+msgid "~a: unsupported kind of search path~%"
+msgstr ""
 
-#: guix/scripts/package.scm:756
+#: guix/scripts/package.scm:753
 #, scheme-format
 msgid "cannot switch to generation '~a'~%"
 msgstr "impossible de passer à la génération \"~a\"~%"
 
-#: guix/scripts/package.scm:788 guix/scripts/package.scm:889
+#: guix/scripts/package.scm:769
 #, scheme-format
-msgid "invalid syntax: ~a~%"
-msgstr "syntaxe non valide: ~a~%"
-
-#: guix/scripts/package.scm:825
-#, scheme-format
-msgid "nothing to be done~%"
-msgstr "aucune action à faire~%"
-
-#: guix/scripts/package.scm:840
-#, scheme-format
-msgid "~a package in profile~%"
-msgid_plural "~a packages in profile~%"
-msgstr[0] "~a paquet dans le profile~%"
-msgstr[1] "~a paquets dans le profile~%"
-
-#: guix/scripts/package.scm:855
-#, scheme-format
-msgid "Generation ~a\t~a"
-msgstr "Génération ~a\t~a"
+msgid "would install new manifest from '~a' with ~d entries~%"
+msgstr ""
 
-#: guix/scripts/package.scm:862
+#: guix/scripts/package.scm:771
 #, scheme-format
-msgid "~a\t(current)~%"
-msgstr "~a\t(actuel)~%"
+msgid "installing new manifest from '~a' with ~d entries~%"
+msgstr ""
 
-#: guix/scripts/gc.scm:39
+#: guix/scripts/gc.scm:40
 msgid ""
 "Usage: guix gc [OPTION]... PATHS...\n"
 "Invoke the garbage collector.\n"
@@ -562,7 +776,7 @@ msgstr ""
 "Usage: guix gc [OPTION]... CHEMINS...\n"
 "Appeller le garbage collector.\n"
 
-#: guix/scripts/gc.scm:41
+#: guix/scripts/gc.scm:42
 msgid ""
 "\n"
 "  -C, --collect-garbage[=MIN]\n"
@@ -572,7 +786,7 @@ msgstr ""
 "  -C, --collect-garbage[=MIN]\n"
 "                         collecter au moins MIN octets dans le garbage-collector"
 
-#: guix/scripts/gc.scm:44
+#: guix/scripts/gc.scm:45
 msgid ""
 "\n"
 "  -d, --delete           attempt to delete PATHS"
@@ -580,7 +794,13 @@ msgstr ""
 "\n"
 "  -d, --delete           supprimer les CHEMINS"
 
-#: guix/scripts/gc.scm:46
+#: guix/scripts/gc.scm:47
+msgid ""
+"\n"
+"      --optimize         optimize the store by deduplicating identical files"
+msgstr ""
+
+#: guix/scripts/gc.scm:49
 msgid ""
 "\n"
 "      --list-dead        list dead paths"
@@ -588,7 +808,7 @@ msgstr ""
 "\n"
 "      --list-dead        lister les chemins non valides"
 
-#: guix/scripts/gc.scm:48
+#: guix/scripts/gc.scm:51
 msgid ""
 "\n"
 "      --list-live        list live paths"
@@ -596,7 +816,7 @@ msgstr ""
 "\n"
 "      --list-live        lister les chemins valides"
 
-#: guix/scripts/gc.scm:51
+#: guix/scripts/gc.scm:54
 msgid ""
 "\n"
 "      --references       list the references of PATHS"
@@ -604,7 +824,7 @@ msgstr ""
 "\n"
 "      --references       lister les références de CHEMINS"
 
-#: guix/scripts/gc.scm:53
+#: guix/scripts/gc.scm:56
 msgid ""
 "\n"
 "  -R, --requisites       list the requisites of PATHS"
@@ -612,7 +832,7 @@ msgstr ""
 "\n"
 "  -R, --requisites       lister les prérequis de CHEMINS"
 
-#: guix/scripts/gc.scm:55
+#: guix/scripts/gc.scm:58
 msgid ""
 "\n"
 "      --referrers        list the referrers of PATHS"
@@ -620,12 +840,44 @@ msgstr ""
 "\n"
 "      --referrers        lister les référents de CHEMINS"
 
-#: guix/scripts/gc.scm:84
+#: guix/scripts/gc.scm:61
+msgid ""
+"\n"
+"      --verify[=OPTS]    verify the integrity of the store; OPTS is a\n"
+"                         comma-separated combination of 'repair' and\n"
+"                         'contents'"
+msgstr ""
+
+#: guix/scripts/gc.scm:65
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --list-dead        list dead paths"
+msgid ""
+"\n"
+"      --list-failures    list cached build failures"
+msgstr ""
+"\n"
+"      --list-dead        lister les chemins non valides"
+
+#: guix/scripts/gc.scm:67
+msgid ""
+"\n"
+"      --clear-failures   remove PATHS from the set of cached failures"
+msgstr ""
+
+#: guix/scripts/gc.scm:96
 #, scheme-format
 msgid "invalid amount of storage: ~a~%"
 msgstr "quantité de stockage non valide: ~a~%"
 
-#: guix/scripts/hash.scm:45
+#: guix/scripts/gc.scm:187
+#, fuzzy, scheme-format
+#| msgid "~A: extraneous argument~%"
+msgid "extraneous arguments: ~{~a ~}~%"
+msgstr "~A: argument superflu~%"
+
+#: guix/scripts/hash.scm:46
 msgid ""
 "Usage: guix hash [OPTION] FILE\n"
 "Return the cryptographic hash of FILE.\n"
@@ -639,7 +891,7 @@ msgstr ""
 "Formats supportés: 'nix-base32' (défaut), 'base32', et 'base16' ('hex'\n"
 "et 'hexadecimal' peuvent également être utilisés).\n"
 
-#: guix/scripts/hash.scm:52
+#: guix/scripts/hash.scm:53
 msgid ""
 "\n"
 "  -r, --recursive        compute the hash on FILE recursively"
@@ -647,22 +899,123 @@ msgstr ""
 "\n"
 "  -r, --recursive        calculer l'empreinte de FICHIER de manière récursive"
 
-#: guix/scripts/hash.scm:103
+#: guix/scripts/hash.scm:104
 #, scheme-format
 msgid "unrecognized option: ~a~%"
 msgstr "option non reconnue: ~a~%"
 
-#: guix/scripts/hash.scm:134 guix/ui.scm:252
+#: guix/scripts/hash.scm:135 guix/ui.scm:460
 #, scheme-format
 msgid "~a~%"
 msgstr "~a~%"
 
-#: guix/scripts/hash.scm:137
+#: guix/scripts/hash.scm:138 guix/scripts/system.scm:761
 #, scheme-format
 msgid "wrong number of arguments~%"
 msgstr "nombre d'arguments incorrect~%"
 
-#: guix/scripts/pull.scm:72
+#: guix/scripts/import.scm:85
+#, fuzzy
+#| msgid ""
+#| "Usage: guix COMMAND ARGS...\n"
+#| "Run COMMAND with ARGS.\n"
+msgid ""
+"Usage: guix import IMPORTER ARGS ...\n"
+"Run IMPORTER with ARGS.\n"
+msgstr ""
+"Usage: guix COMMANDE ARGS...\n"
+"Lance la COMMANDE avec les arguments ARGS.\n"
+
+#: guix/scripts/import.scm:88
+#, fuzzy
+#| msgid "COMMAND must be one of the sub-commands listed below:\n"
+msgid "IMPORTER must be one of the importers listed below:\n"
+msgstr "COMMANDE doit être une des sous-commandes listées ci-dessous:\n"
+
+#: guix/scripts/import.scm:102
+#, fuzzy, scheme-format
+#| msgid "guix: missing command name~%"
+msgid "guix import: missing importer name~%"
+msgstr "guix: nom de commande manquant~%"
+
+#: guix/scripts/import.scm:113
+#, scheme-format
+msgid "guix import: invalid importer~%"
+msgstr ""
+
+#: guix/scripts/import/cran.scm:42
+msgid ""
+"Usage: guix import cran PACKAGE-NAME\n"
+"Import and convert the CRAN package for PACKAGE-NAME.\n"
+msgstr ""
+
+#: guix/scripts/import/cran.scm:44
+msgid ""
+"\n"
+"  -a, --archive=ARCHIVE  specify the archive repository"
+msgstr ""
+
+#: guix/scripts/import/cran.scm:94
+#, fuzzy, scheme-format
+#| msgid "failed to load operating system file '~a': ~s~%"
+msgid "failed to download description for package '~a'~%"
+msgstr "impossible de charger le fichier du système d'exploitation \"~a\": ~s~%"
+
+#: guix/scripts/import/cran.scm:98 guix/scripts/import/elpa.scm:95
+#, fuzzy, scheme-format
+#| msgid "wrong number of arguments~%"
+msgid "too few arguments~%"
+msgstr "nombre d'arguments incorrect~%"
+
+#: guix/scripts/import/cran.scm:100 guix/scripts/import/elpa.scm:97
+#, fuzzy, scheme-format
+#| msgid "wrong arguments"
+msgid "too many arguments~%"
+msgstr "arguments non valides"
+
+#: guix/scripts/import/elpa.scm:41
+msgid ""
+"Usage: guix import elpa PACKAGE-NAME\n"
+"Import the latest package named PACKAGE-NAME from an ELPA repository.\n"
+msgstr ""
+
+#: guix/scripts/import/elpa.scm:43
+msgid ""
+"\n"
+"  -a, --archive=ARCHIVE          specify the archive repository"
+msgstr ""
+
+#: guix/scripts/import/elpa.scm:45
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -h, --help             display this help and exit"
+msgid ""
+"\n"
+"  -h, --help                     display this help and exit"
+msgstr ""
+"\n"
+"  -h, --help             afficher cette aide et quitter"
+
+#: guix/scripts/import/elpa.scm:47
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -V, --version          display version information and exit"
+msgid ""
+"\n"
+"  -V, --version                  display version information and exit"
+msgstr ""
+"\n"
+"  -V, --version          afficher les informations sur la version et quitter"
+
+#: guix/scripts/import/elpa.scm:92
+#, fuzzy, scheme-format
+#| msgid "failed to install locale: ~a~%"
+msgid "failed to download package '~a'~%"
+msgstr "impossible d'installer la locale: ~a~%"
+
+#: guix/scripts/pull.scm:74
 msgid ""
 "Usage: guix pull [OPTION]...\n"
 "Download and deploy the latest version of Guix.\n"
@@ -670,7 +1023,7 @@ msgstr ""
 "Usage: guix pull [OPTION]...\n"
 "Télécharger et déployer la dernière version de Guix.\n"
 
-#: guix/scripts/pull.scm:76
+#: guix/scripts/pull.scm:78
 msgid ""
 "\n"
 "      --url=URL          download the Guix tarball from URL"
@@ -678,7 +1031,7 @@ msgstr ""
 "\n"
 "      --url=URL          télécharger le tarball de Guix depuis URL"
 
-#: guix/scripts/pull.scm:78
+#: guix/scripts/pull.scm:80
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the new Guix"
@@ -686,131 +1039,142 @@ msgstr ""
 "\n"
 "      --bootstrap        utiliser le programme d'amorçage Guile pour compiler le nouveau Guix"
 
-#: guix/scripts/pull.scm:132
+#: guix/scripts/pull.scm:134
 msgid "tarball did not produce a single source directory"
 msgstr "la tarball n'a produit aucun répertoire source"
 
-#: guix/scripts/pull.scm:150
+#: guix/scripts/pull.scm:152
 #, scheme-format
 msgid "unpacking '~a'...~%"
 msgstr "dépaquetage \"~a\"...~%"
 
-#: guix/scripts/pull.scm:159
+#: guix/scripts/pull.scm:161
 msgid "failed to unpack source code"
 msgstr "échec du dépaquetage du code source"
 
-#: guix/scripts/pull.scm:200
+#: guix/scripts/pull.scm:204
+msgid "Guix already up to date\n"
+msgstr "Guix est déja à jour\n"
+
+#: guix/scripts/pull.scm:209
 #, scheme-format
 msgid "updated ~a successfully deployed under `~a'~%"
 msgstr "~a a été mis à jour et déployé avec succès sous \"~a\"~%"
 
-#: guix/scripts/pull.scm:203
+#: guix/scripts/pull.scm:212
 #, scheme-format
 msgid "failed to update Guix, check the build log~%"
 msgstr "échec de la mise à jour de Guix; consultez le journal de compilation~%"
 
-#: guix/scripts/pull.scm:205
-msgid "Guix already up to date\n"
-msgstr "Guix est déja à jour\n"
-
-#: guix/scripts/pull.scm:215
+#: guix/scripts/pull.scm:221
 #, scheme-format
 msgid "~A: unexpected argument~%"
 msgstr "~A: argument inattendu~%"
 
-#: guix/scripts/pull.scm:224
+#: guix/scripts/pull.scm:230
 msgid "failed to download up-to-date source, exiting\n"
 msgstr "impossible de télécharger une source à jour; fin\n"
 
-#: guix/scripts/substitute-binary.scm:80
+#: guix/scripts/substitute.scm:103
 #, scheme-format
 msgid "authentication and authorization of substitutes disabled!~%"
 msgstr "authentification et autorisation des substituts désactivées !~%"
 
-#: guix/scripts/substitute-binary.scm:163
+#: guix/scripts/substitute.scm:179
 #, scheme-format
 msgid "download from '~a' failed: ~a, ~s~%"
 msgstr "le téléchargement depuis '~a' a échoué: ~a, ~s~%"
 
-#: guix/scripts/substitute-binary.scm:178
-#, scheme-format
-msgid "while fetching ~a: server is unresponsive~%"
+#: guix/scripts/substitute.scm:191
+#, fuzzy, scheme-format
+#| msgid "while fetching ~a: server is unresponsive~%"
+msgid "while fetching ~a: server is somewhat slow~%"
 msgstr "pendant la recherche de ~a: le serveur ne répond pas~%"
 
-#: guix/scripts/substitute-binary.scm:180
+#: guix/scripts/substitute.scm:193
 #, scheme-format
 msgid "try `--no-substitutes' if the problem persists~%"
 msgstr "essayez l'option \"--no-substitutes\" si le problème persiste~%"
 
-#: guix/scripts/substitute-binary.scm:244
-#, scheme-format
-msgid "signature version must be a number: ~a~%"
+#: guix/scripts/substitute.scm:266
+#, fuzzy, scheme-format
+#| msgid "signature version must be a number: ~a~%"
+msgid "signature version must be a number: ~s~%"
 msgstr "la version de la signature doit être un nombre: ~a~%"
 
-#: guix/scripts/substitute-binary.scm:248
+#: guix/scripts/substitute.scm:270
 #, scheme-format
 msgid "unsupported signature version: ~a~%"
 msgstr "version de signature non supportée: ~a~%"
 
-#: guix/scripts/substitute-binary.scm:256
+#: guix/scripts/substitute.scm:278
 #, scheme-format
 msgid "signature is not a valid s-expression: ~s~%"
 msgstr "la signature n'est pas une s-expression valide: ~s~%"
 
-#: guix/scripts/substitute-binary.scm:260
+#: guix/scripts/substitute.scm:282
 #, scheme-format
 msgid "invalid format of the signature field: ~a~%"
 msgstr "signature non valide pour \"~a\"~%"
 
-#: guix/scripts/substitute-binary.scm:295
+#: guix/scripts/substitute.scm:317
 #, scheme-format
 msgid "invalid signature for '~a'~%"
 msgstr "signature non valide pour \"~a\"~%"
 
-#: guix/scripts/substitute-binary.scm:297
+#: guix/scripts/substitute.scm:319
 #, scheme-format
 msgid "hash mismatch for '~a'~%"
 msgstr "empreinte non valide pour \"~a\"~%"
 
-#: guix/scripts/substitute-binary.scm:299
+#: guix/scripts/substitute.scm:321
 #, scheme-format
 msgid "'~a' is signed with an unauthorized key~%"
 msgstr "\"~a\" est signé avec une clé non autorisée~%"
 
-#: guix/scripts/substitute-binary.scm:301
+#: guix/scripts/substitute.scm:323
 #, scheme-format
 msgid "signature on '~a' is corrupt~%"
 msgstr "la signature de \"~a\" est corrompue~%"
 
-#: guix/scripts/substitute-binary.scm:338
+#: guix/scripts/substitute.scm:361
 #, scheme-format
 msgid "substitute at '~a' lacks a signature~%"
 msgstr "le substitut à \"~a\" requiert une signature~%"
 
-#: guix/scripts/substitute-binary.scm:526
+#: guix/scripts/substitute.scm:537
 #, scheme-format
-msgid "Downloading, please wait...~%"
-msgstr "Téléchargement en cours..."
+msgid "updating list of substitutes from '~a'... ~5,1f%"
+msgstr ""
 
-#: guix/scripts/substitute-binary.scm:528
+#: guix/scripts/substitute.scm:585
 #, scheme-format
-msgid "(Please consider upgrading Guile to get proper progress report.)~%"
-msgstr "(Veuillez mettre Guile à jour pour obtenir le rapport de progression approprié.)~%"
+msgid "~s: unsupported server URI scheme~%"
+msgstr ""
 
-#: guix/scripts/substitute-binary.scm:541
+#: guix/scripts/substitute.scm:596
+#, scheme-format
+msgid "'~a' uses different store '~a'; ignoring it~%"
+msgstr ""
+
+#: guix/scripts/substitute.scm:739
 #, scheme-format
 msgid "host name lookup error: ~a~%"
 msgstr "erreur lors de la consultation du nom d'hôte: ~a~%"
 
-#: guix/scripts/substitute-binary.scm:550
+#: guix/scripts/substitute.scm:748
+#, fuzzy
+#| msgid ""
+#| "Usage: guix substitute-binary [OPTION]...\n"
+#| "Internal tool to substitute a pre-built binary to a local build.\n"
 msgid ""
-"Usage: guix substitute-binary [OPTION]...\n"
+"Usage: guix substitute [OPTION]...\n"
 "Internal tool to substitute a pre-built binary to a local build.\n"
 msgstr ""
 "Usage: guix substitute-binary [OPTION]...\n"
 "Outil interne pour substituer un binaire pré-compilé à une compilation locale.\n"
 
-#: guix/scripts/substitute-binary.scm:552
+#: guix/scripts/substitute.scm:750
 msgid ""
 "\n"
 "      --query            report on the availability of substitutes for the\n"
@@ -821,7 +1185,7 @@ msgstr ""
 "                         noms de fichier de dépôt passés sur l'entrée\n"
 "                         standard"
 
-#: guix/scripts/substitute-binary.scm:555
+#: guix/scripts/substitute.scm:753
 msgid ""
 "\n"
 "      --substitute STORE-FILE DESTINATION\n"
@@ -833,21 +1197,11 @@ msgstr ""
 "                         télécharger FICHIER-DEPOT et l'enregistrer comme un Nar\n"
 "                         dans le fichier DESTINATION"
 
-#: guix/scripts/substitute-binary.scm:600
+#: guix/scripts/substitute.scm:878
 msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n"
 msgstr "l'ACL pour l'import d'archives ne semble pas initialisée ; les substituts pourraient être indisponibles\n"
 
-#: guix/scripts/substitute-binary.scm:634
-#, scheme-format
-msgid "these substitute URLs will not be used:~{ ~a~}~%"
-msgstr "ces URL de substitution ne seront pas utilisées:~{ ~a~}~%"
-
-#: guix/scripts/substitute-binary.scm:660
-#, scheme-format
-msgid "failed to look up host '~a' (~a), substituter disabled~%"
-msgstr "impossible de trouver l'hôte \"~a\" (~a), substitution désactivée~%"
-
-#: guix/scripts/substitute-binary.scm:767
+#: guix/scripts/substitute.scm:960
 #, scheme-format
 msgid "~a: unrecognized options~%"
 msgstr "~a: options non reconnues~%"
@@ -872,7 +1226,7 @@ msgstr "error: clé publique non autorisée: ~a~%"
 msgid "error: corrupt signature data: ~a~%"
 msgstr "erreur: signature corrompue: ~a~%"
 
-#: guix/scripts/authenticate.scm:126
+#: guix/scripts/authenticate.scm:120
 msgid ""
 "Usage: guix authenticate OPTION...\n"
 "Sign or verify the signature on the given file.  This tool is meant to\n"
@@ -882,92 +1236,190 @@ msgstr ""
 "Signer ou vérifier la signature du fichier donné.  Cet outil est destiné\n"
 "à être utilisé en interne par \"guix-daemon\".\n"
 
-#: guix/scripts/authenticate.scm:132
+#: guix/scripts/authenticate.scm:126
 msgid "wrong arguments"
 msgstr "arguments non valides"
 
-#: guix/scripts/system.scm:74
+#: guix/scripts/system.scm:111
 #, scheme-format
-msgid "failed to open operating system file '~a': ~a~%"
-msgstr "impossible d'ouvrir le fichier du système d'exploitation \"~a\": ~a~%"
+msgid "failed to register '~a' under '~a'~%"
+msgstr "impossible d'enregistrer \"~a\" sous \"~a\"~%"
 
-#: guix/scripts/system.scm:78 guix/ui.scm:258
+#: guix/scripts/system.scm:143
 #, scheme-format
-msgid "~a: ~a~%"
-msgstr "~a: ~a~%"
+msgid "failed to install GRUB on device '~a'~%"
+msgstr "échec de l'installation de GRUB sur le périphérique \"~a\"~%"
 
-#: guix/scripts/system.scm:81
+#: guix/scripts/system.scm:161
 #, scheme-format
-msgid "failed to load operating system file '~a': ~s~%"
-msgstr "impossible de charger le fichier du système d'exploitation \"~a\": ~s~%"
+msgid "initializing the current root file system~%"
+msgstr "initialisation du système de fichier racine courant~%"
 
-#: guix/scripts/system.scm:116
+#: guix/scripts/system.scm:175
 #, scheme-format
-msgid "failed to register '~a' under '~a'~%"
-msgstr "impossible d'enregistrer \"~a\" sous \"~a\"~%"
+msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%"
+msgstr ""
 
-#: guix/scripts/system.scm:144
+#: guix/scripts/system.scm:233
 #, scheme-format
-msgid "initializing the current root file system~%"
-msgstr "initialisation du système de fichier racine courant~%"
+msgid "while talking to shepherd: ~a~%"
+msgstr ""
 
-#: guix/scripts/system.scm:162 guix/scripts/system.scm:325
+#: guix/scripts/system.scm:279
+#, fuzzy, scheme-format
+#| msgid "unpacking '~a'...~%"
+msgid "unloading service '~a'...~%"
+msgstr "dépaquetage \"~a\"...~%"
+
+#: guix/scripts/system.scm:287
 #, scheme-format
-msgid "failed to install GRUB on device '~a'~%"
-msgstr "échec de l'installation de GRUB sur le périphérique \"~a\"~%"
+msgid "loading new services:~{ ~a~}...~%"
+msgstr ""
 
-#: guix/scripts/system.scm:197
+#: guix/scripts/system.scm:311
 #, scheme-format
 msgid "activating system...~%"
 msgstr "activation du système...~%"
 
-#: guix/scripts/system.scm:239
+#: guix/scripts/system.scm:402
+msgid "the DAG of services"
+msgstr ""
+
+#: guix/scripts/system.scm:415
+msgid "the dependency graph of shepherd services"
+msgstr ""
+
+#: guix/scripts/system.scm:436
+#, fuzzy, scheme-format
+#| msgid "invalid number: ~a~%"
+msgid "  file name: ~a~%"
+msgstr "nombre non valide: ~a~%"
+
+#: guix/scripts/system.scm:437
 #, scheme-format
-msgid "unrecognized boot parameters for '~a'~%"
-msgstr "paramètres de démarrage non reconus pour \"~a\"~%"
+msgid "  canonical file name: ~a~%"
+msgstr ""
+
+#. TRANSLATORS: Please preserve the two-space indentation.
+#: guix/scripts/system.scm:439
+#, fuzzy, scheme-format
+#| msgid "~a: ~a~%"
+msgid "  label: ~a~%"
+msgstr "~a: ~a~%"
+
+#: guix/scripts/system.scm:440
+#, scheme-format
+msgid "  root device: ~a~%"
+msgstr ""
+
+#: guix/scripts/system.scm:441
+#, scheme-format
+msgid "  kernel: ~a~%"
+msgstr ""
 
-#: guix/scripts/system.scm:330
+#: guix/scripts/system.scm:549
 #, scheme-format
 msgid "initializing operating system under '~a'...~%"
 msgstr "initialisation du système d'exploitation sous \"~a\"...~%"
 
-#: guix/scripts/system.scm:346
+#: guix/scripts/system.scm:588
+#, fuzzy
+#| msgid ""
+#| "Usage: guix system [OPTION] ACTION FILE\n"
+#| "Build the operating system declared in FILE according to ACTION.\n"
 msgid ""
-"Usage: guix system [OPTION] ACTION FILE\n"
+"Usage: guix system [OPTION] ACTION [FILE]\n"
 "Build the operating system declared in FILE according to ACTION.\n"
 msgstr ""
 "Usage: guix system [OPTION] ACTION FICHIER\n"
 "Compiler le système d'exploitation déclaré dans FICHER en suivant ACTION.\n"
 
-#: guix/scripts/system.scm:349
+#: guix/scripts/system.scm:591 guix/scripts/container.scm:28
 msgid "The valid values for ACTION are:\n"
 msgstr "Les valeurs possibles pour ACTION sont: \n"
 
-#: guix/scripts/system.scm:350
-msgid "  - 'reconfigure', switch to a new operating system configuration\n"
+#: guix/scripts/system.scm:593
+#, fuzzy
+#| msgid "  - 'reconfigure', switch to a new operating system configuration\n"
+msgid "   reconfigure      switch to a new operating system configuration\n"
 msgstr "  - 'reconfigure', changer la configuration du système d'exploitation\n"
 
-#: guix/scripts/system.scm:352
-msgid "  - 'build', build the operating system without installing anything\n"
+#: guix/scripts/system.scm:595
+msgid "   list-generations list the system generations\n"
+msgstr ""
+
+#: guix/scripts/system.scm:597
+#, fuzzy
+#| msgid "  - 'build', build the operating system without installing anything\n"
+msgid "   build            build the operating system without installing anything\n"
 msgstr "  - 'build', compiler le système d'exploitation sans rien installer\n"
 
-#: guix/scripts/system.scm:354
-msgid "  - 'vm', build a virtual machine image that shares the host's store\n"
+#: guix/scripts/system.scm:599
+#, fuzzy
+#| msgid "  - 'vm', build a virtual machine image that shares the host's store\n"
+msgid "   container        build a container that shares the host's store\n"
 msgstr "  - 'vm', compiler une machine virtuelle partageant le dépôt de l'hôte\n"
 
-#: guix/scripts/system.scm:356
-msgid "  - 'vm-image', build a freestanding virtual machine image\n"
+#: guix/scripts/system.scm:601
+#, fuzzy
+#| msgid "  - 'vm', build a virtual machine image that shares the host's store\n"
+msgid "   vm               build a virtual machine image that shares the host's store\n"
+msgstr "  - 'vm', compiler une machine virtuelle partageant le dépôt de l'hôte\n"
+
+#: guix/scripts/system.scm:603
+#, fuzzy
+#| msgid "  - 'vm-image', build a freestanding virtual machine image\n"
+msgid "   vm-image         build a freestanding virtual machine image\n"
 msgstr "  - 'vm-image', compiler une image autonome de machine virtuelle\n"
 
-#: guix/scripts/system.scm:358
-msgid "  - 'disk-image', build a disk image, suitable for a USB stick\n"
+#: guix/scripts/system.scm:605
+#, fuzzy
+#| msgid "  - 'disk-image', build a disk image, suitable for a USB stick\n"
+msgid "   disk-image       build a disk image, suitable for a USB stick\n"
 msgstr "  - 'disk-image', compiler une image disque adaptée pour une clé USB\n"
 
-#: guix/scripts/system.scm:360
-msgid "  - 'init', initialize a root file system to run GNU.\n"
+#: guix/scripts/system.scm:607
+#, fuzzy
+#| msgid "  - 'init', initialize a root file system to run GNU.\n"
+msgid "   init             initialize a root file system to run GNU\n"
 msgstr "  - 'init', initialiser un système de fichier racine pour lancer GNU.\n"
 
-#: guix/scripts/system.scm:364
+#: guix/scripts/system.scm:609
+msgid "   extension-graph  emit the service extension graph in Dot format\n"
+msgstr ""
+
+#: guix/scripts/system.scm:611
+msgid "   shepherd-graph   emit the graph of shepherd services in Dot format\n"
+msgstr ""
+
+#: guix/scripts/system.scm:615
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -d, --derivations      return the derivation paths of the given packages"
+msgid ""
+"\n"
+"  -d, --derivation       return the derivation of the given system"
+msgstr ""
+"\n"
+"  -d, --derivations      retourner les chemins de dérivation pour les paquets donnés"
+
+#: guix/scripts/system.scm:617
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --with-source=SOURCE\n"
+#| "                         use SOURCE when building the corresponding package"
+msgid ""
+"\n"
+"      --on-error=STRATEGY\n"
+"                         apply STRATEGY when an error occurs while reading FILE"
+msgstr ""
+"\n"
+"      --with-source=SOURCE\n"
+"                         utiliser la SOURCE donnée pour compiler le paquet correspondant"
+
+#: guix/scripts/system.scm:620
 msgid ""
 "\n"
 "      --image-size=SIZE  for 'vm-image', produce an image of SIZE"
@@ -975,7 +1427,7 @@ msgstr ""
 "\n"
 "      --image-size=TAILLE  pour 'vm-image', produire une image de TAILLE"
 
-#: guix/scripts/system.scm:366
+#: guix/scripts/system.scm:622
 msgid ""
 "\n"
 "      --no-grub          for 'init', do not install GRUB"
@@ -983,7 +1435,19 @@ msgstr ""
 "\n"
 "      --no-grub          pour 'init', ne pas installer GRUB"
 
-#: guix/scripts/system.scm:368
+#: guix/scripts/system.scm:624
+msgid ""
+"\n"
+"      --share=SPEC       for 'vm', share host file system according to SPEC"
+msgstr ""
+
+#: guix/scripts/system.scm:626
+msgid ""
+"\n"
+"      --expose=SPEC      for 'vm', expose host file system according to SPEC"
+msgstr ""
+
+#: guix/scripts/system.scm:628
 msgid ""
 "\n"
 "      --full-boot        for 'vm', make a full boot sequence"
@@ -991,66 +1455,285 @@ msgstr ""
 "\n"
 "      --full-boot        pour 'vm', accomplire une séquence complète de démarrage"
 
-#: guix/scripts/system.scm:434
+#: guix/scripts/system.scm:713
+#, scheme-format
+msgid "no configuration file specified~%"
+msgstr "aucun fichier de configuration spécifié~%"
+
+#: guix/scripts/system.scm:776
 #, scheme-format
 msgid "~a: unknown action~%"
 msgstr "~a: action inconnue~%"
 
-#: guix/scripts/system.scm:451
+#: guix/scripts/system.scm:791
 #, scheme-format
 msgid "wrong number of arguments for action '~a'~%"
 msgstr "nombre d'arguments incorrect pour l'action \"~a\"~%"
 
-#: guix/scripts/system.scm:471
-#, scheme-format
-msgid "no configuration file specified~%"
-msgstr "aucun fichier de configuration spécifié~%"
+#: guix/scripts/system.scm:796
+#, fuzzy, scheme-format
+#| msgid "guix: missing command name~%"
+msgid "guix system: missing command name~%"
+msgstr "guix: nom de commande manquant~%"
 
-#: guix/scripts/lint.scm:51
-#, scheme-format
-msgid "~a: ~a: ~a~%"
-msgstr "~a: ~a: ~a~%"
+#: guix/scripts/system.scm:798
+#, fuzzy, scheme-format
+#| msgid "Try `guix --help' for more information.~%"
+msgid "Try 'guix system --help' for more information.~%"
+msgstr "Essayez \"guix --help\" pour plus d'informations.~%"
 
-#: guix/scripts/lint.scm:72
+#: guix/scripts/lint.scm:127
 #, scheme-format
 msgid "Available checkers:~%"
 msgstr "Vérificateurs disponibles:~%"
 
-#: guix/scripts/lint.scm:226
+#: guix/scripts/lint.scm:147
+msgid "description should not be empty"
+msgstr ""
+
+#: guix/scripts/lint.scm:157
+msgid "Texinfo markup in description is invalid"
+msgstr ""
+
+#: guix/scripts/lint.scm:165
+msgid "description should start with an upper-case letter or digit"
+msgstr ""
+
+#: guix/scripts/lint.scm:181
+#, scheme-format
+msgid ""
+"sentences in description should be followed ~\n"
+"by two spaces; possible infraction~p at ~{~a~^, ~}"
+msgstr ""
+
+#: guix/scripts/lint.scm:205
+msgid "pkg-config should probably be a native input"
+msgstr ""
+
+#: guix/scripts/lint.scm:220
+msgid "synopsis should not be empty"
+msgstr ""
+
+#: guix/scripts/lint.scm:228
+msgid "no period allowed at the end of the synopsis"
+msgstr ""
+
+#: guix/scripts/lint.scm:240
+msgid "no article allowed at the beginning of the synopsis"
+msgstr ""
+
+#: guix/scripts/lint.scm:247
+msgid "synopsis should be less than 80 characters long"
+msgstr ""
+
+#: guix/scripts/lint.scm:253
+msgid "synopsis should start with an upper-case letter or digit"
+msgstr ""
+
+#: guix/scripts/lint.scm:260
+msgid "synopsis should not start with the package name"
+msgstr ""
+
+#: guix/scripts/lint.scm:354 guix/scripts/lint.scm:366
+#, scheme-format
+msgid "URI ~a not reachable: ~a (~s)"
+msgstr ""
+
+#: guix/scripts/lint.scm:373
+#, fuzzy, scheme-format
+#| msgid "guix: ~a: command not found~%"
+msgid "URI ~a domain not found: ~a"
+msgstr "guix: ~a: commande introuvable~%"
+
+#: guix/scripts/lint.scm:381
+#, scheme-format
+msgid "URI ~a unreachable: ~a"
+msgstr ""
+
+#: guix/scripts/lint.scm:407
+#, fuzzy
+#| msgid "The valid values for ACTION are:\n"
+msgid "invalid value for home page"
+msgstr "Les valeurs possibles pour ACTION sont: \n"
+
+#: guix/scripts/lint.scm:410
+#, fuzzy, scheme-format
+#| msgid ""
+#| "\n"
+#| "~a home page: <~a>"
+msgid "invalid home page URL: ~s"
+msgstr ""
+"\n"
+"~a page d'accueil: <~a>"
+
+#: guix/scripts/lint.scm:430
+msgid "file names of patches should start with the package name"
+msgstr ""
+
+#: guix/scripts/lint.scm:467
+#, scheme-format
+msgid "~a: ~a: proposed synopsis: ~s~%"
+msgstr ""
+
+#: guix/scripts/lint.scm:479
+#, scheme-format
+msgid "~a: ~a: proposed description:~%     \"~a\"~%"
+msgstr ""
+
+#: guix/scripts/lint.scm:516
+msgid "all the source URIs are unreachable:"
+msgstr ""
+
+#: guix/scripts/lint.scm:539
+msgid "the source file name should contain the package name"
+msgstr ""
+
+#: guix/scripts/lint.scm:548 guix/scripts/lint.scm:552
+#, fuzzy, scheme-format
+#| msgid "failed to create GC root `~a': ~a~%"
+msgid "failed to create derivation: ~a"
+msgstr "impossible de créer la racine du GC \"~a\": ~a~%"
+
+#: guix/scripts/lint.scm:566
+#, fuzzy, scheme-format
+#| msgid "failed to read expression ~s: ~s~%"
+msgid "failed to create derivation: ~s~%"
+msgstr "impossible de lire l'expression ~s: ~s~%"
+
+#: guix/scripts/lint.scm:576
+msgid "invalid license field"
+msgstr ""
+
+#: guix/scripts/lint.scm:602
+#, scheme-format
+msgid "failed to retrieve CVE vulnerabilities from ~s: ~a (~s)~%"
+msgstr ""
+
+#: guix/scripts/lint.scm:607 guix/scripts/lint.scm:615
+#, scheme-format
+msgid "assuming no CVE vulnerabilities~%"
+msgstr ""
+
+#: guix/scripts/lint.scm:613
+#, fuzzy, scheme-format
+#| msgid "failed to install locale: ~a~%"
+msgid "failed to lookup NIST host: ~a~%"
+msgstr "impossible d'installer la locale: ~a~%"
+
+#: guix/scripts/lint.scm:644
+#, scheme-format
+msgid "probably vulnerable to ~a"
+msgstr ""
+
+#: guix/scripts/lint.scm:659
+#, scheme-format
+msgid "tabulation on line ~a, column ~a"
+msgstr ""
+
+#: guix/scripts/lint.scm:668
+#, scheme-format
+msgid "trailing white space on line ~a"
+msgstr ""
+
+#: guix/scripts/lint.scm:678
+#, scheme-format
+msgid "line ~a is way too long (~a characters)"
+msgstr ""
+
+#: guix/scripts/lint.scm:689
+#, scheme-format
+msgid "line ~a: parentheses feel lonely, move to the previous or next line"
+msgstr ""
+
+#: guix/scripts/lint.scm:744
 msgid "Validate package descriptions"
 msgstr "Validers des descriptions de paquets"
 
-#: guix/scripts/lint.scm:230
+#: guix/scripts/lint.scm:748
+#, fuzzy
+#| msgid "Validate package descriptions"
+msgid "Validate synopsis & description of GNU packages"
+msgstr "Validers des descriptions de paquets"
+
+#: guix/scripts/lint.scm:752
 msgid "Identify inputs that should be native inputs"
 msgstr "Identifier les entrées qui devraient être natives"
 
-#: guix/scripts/lint.scm:234
-msgid "Validate filenames of patches"
+#: guix/scripts/lint.scm:756
+#, fuzzy
+#| msgid "Validate filenames of patches"
+msgid "Validate file names and availability of patches"
 msgstr "Valider les noms de patches"
 
-#: guix/scripts/lint.scm:238
-msgid "Validate package synopsis"
+#: guix/scripts/lint.scm:760
+#, fuzzy
+#| msgid "Validate package synopsis"
+msgid "Validate home-page URLs"
 msgstr "Valider les synopsis de paquets"
 
-#: guix/scripts/lint.scm:257
+#. TRANSLATORS: <license> is the name of a data type and must not be
+#. translated.
+#: guix/scripts/lint.scm:766
+msgid "Make sure the 'license' field is a <license> or a list thereof"
+msgstr ""
+
+#: guix/scripts/lint.scm:771
+msgid "Validate source URLs"
+msgstr ""
+
+#: guix/scripts/lint.scm:775
+#, fuzzy
+#| msgid "Validate filenames of patches"
+msgid "Validate file names of sources"
+msgstr "Valider les noms de patches"
+
+#: guix/scripts/lint.scm:779
+msgid "Report failure to compile a package to a derivation"
+msgstr ""
+
+#: guix/scripts/lint.scm:783
+#, fuzzy
+#| msgid "Validate package synopsis"
+msgid "Validate package synopses"
+msgstr "Valider les synopsis de paquets"
+
+#: guix/scripts/lint.scm:787
+msgid "Check the Common Vulnerabilities and Exposures (CVE) database"
+msgstr ""
+
+#: guix/scripts/lint.scm:792
+msgid "Look for formatting issues in the source"
+msgstr ""
+
+#: guix/scripts/lint.scm:817
+#, fuzzy
+#| msgid ""
+#| "Usage: guix lint [OPTION]... [PACKAGE]...\n"
+#| "Run a set of checkers on the specified package; if none is specified, run the checkers on all packages.\n"
 msgid ""
 "Usage: guix lint [OPTION]... [PACKAGE]...\n"
-"Run a set of checkers on the specified package; if none is specified, run the checkers on all packages.\n"
+"Run a set of checkers on the specified package; if none is specified,\n"
+"run the checkers on all packages.\n"
 msgstr ""
 "Usage: guix lint [OPTION]... [PAQUET]...\n"
 "Lancer un ensemble de vérificateurs sur le paquet spécifié; si aucun n'est spécifié, lancer les vérificateurs sur tous les paquets.\n"
 
-#: guix/scripts/lint.scm:259
+#: guix/scripts/lint.scm:820
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -c, --checkers=CHECKER1,CHECKER2...\n"
+#| "                         only run the specificed checkers"
 msgid ""
 "\n"
 "  -c, --checkers=CHECKER1,CHECKER2...\n"
-"                         only run the specificed checkers"
+"                         only run the specified checkers"
 msgstr ""
 "\n"
 "  -c, --checkers=CHECKER1,CHECKER2...\n"
 "                         lancer uniquement les vérificateurs spécifiés"
 
-#: guix/scripts/lint.scm:264
+#: guix/scripts/lint.scm:825
 msgid ""
 "\n"
 "  -l, --list-checkers    display the list of available lint checkers"
@@ -1058,39 +1741,445 @@ msgstr ""
 "\n"
 "  -l, --list-checkers    affiche la liste des vérificateurs disponibles"
 
-#: guix/scripts/lint.scm:283
-#, scheme-format
-msgid "~a: invalid checker"
+#: guix/scripts/lint.scm:845
+#, fuzzy, scheme-format
+#| msgid "~a: invalid checker"
+msgid "~a: invalid checker~%"
 msgstr "~a: vérificateur non valide"
 
-#: guix/gnu-maintenance.scm:373
+#: guix/scripts/publish.scm:52
+#, scheme-format
+msgid ""
+"Usage: guix publish [OPTION]...\n"
+"Publish ~a over HTTP.\n"
+msgstr ""
+
+#: guix/scripts/publish.scm:54
+msgid ""
+"\n"
+"  -p, --port=PORT        listen on PORT"
+msgstr ""
+
+#: guix/scripts/publish.scm:56
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --references       list the references of PATHS"
+msgid ""
+"\n"
+"      --listen=HOST      listen on the network interface for HOST"
+msgstr ""
+"\n"
+"      --references       lister les références de CHEMINS"
+
+#: guix/scripts/publish.scm:58
+msgid ""
+"\n"
+"  -u, --user=USER        change privileges to USER as soon as possible"
+msgstr ""
+
+#: guix/scripts/publish.scm:60
+msgid ""
+"\n"
+"  -r, --repl[=PORT]      spawn REPL server on PORT"
+msgstr ""
+
+#: guix/scripts/publish.scm:76
+#, fuzzy, scheme-format
+#| msgid "download from '~a' failed: ~a, ~s~%"
+msgid "lookup of host '~a' failed: ~a~%"
+msgstr "le téléchargement depuis '~a' a échoué: ~a, ~s~%"
+
+#: guix/scripts/publish.scm:100
+#, scheme-format
+msgid "lookup of host '~a' returned nothing"
+msgstr ""
+
+#: guix/scripts/publish.scm:342
+#, scheme-format
+msgid "user '~a' not found: ~a~%"
+msgstr ""
+
+#: guix/scripts/publish.scm:377
+#, scheme-format
+msgid "server running as root; consider using the '--user' option!~%"
+msgstr ""
+
+#: guix/scripts/publish.scm:379
+#, scheme-format
+msgid "publishing ~a on ~a, port ~d~%"
+msgstr ""
+
+#: guix/scripts/edit.scm:41
+msgid ""
+"Usage: guix edit PACKAGE...\n"
+"Start $VISUAL or $EDITOR to edit the definitions of PACKAGE...\n"
+msgstr ""
+
+#: guix/scripts/edit.scm:62
+#, scheme-format
+msgid "file '~a' not found in search path ~s~%"
+msgstr ""
+
+#: guix/scripts/edit.scm:83
+#, scheme-format
+msgid "source location of package '~a' is unknown~%"
+msgstr ""
+
+#: guix/scripts/edit.scm:96
+#, fuzzy, scheme-format
+#| msgid "failed to connect to `~a': ~a~%"
+msgid "failed to launch '~a': ~a~%"
+msgstr "impossible de se connecter à \"~a\": ~a~%"
+
+#: guix/scripts/size.scm:75
+#, scheme-format
+msgid "no available substitute information for '~a'~%"
+msgstr ""
+
+#: guix/scripts/size.scm:83
+msgid "store item"
+msgstr ""
+
+#: guix/scripts/size.scm:83
+msgid "total"
+msgstr ""
+
+#: guix/scripts/size.scm:83
+msgid "self"
+msgstr ""
+
+#. TRANSLATORS: This is the title of a graph, meaning that the graph
+#. represents a profile of the store (the "store" being the place where
+#. packages are stored.)
+#: guix/scripts/size.scm:204
+msgid "store profile"
+msgstr ""
+
+#: guix/scripts/size.scm:213
+#, fuzzy
+#| msgid ""
+#| "Usage: guix package [OPTION]... PACKAGES...\n"
+#| "Install, remove, or upgrade PACKAGES in a single transaction.\n"
+msgid ""
+"Usage: guix size [OPTION]... PACKAGE\n"
+"Report the size of PACKAGE and its dependencies.\n"
+msgstr ""
+"Usage: guix package [OPTION]... PAQUETS...\n"
+"Installer, supprimer ou mettre à jour les PAQUETS spécifiés en une seule transaction.\n"
+
+#: guix/scripts/size.scm:218
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -s, --system=SYSTEM    attempt to build for SYSTEM--e.g., \"i686-linux\""
+msgid ""
+"\n"
+"  -s, --system=SYSTEM    consider packages for SYSTEM--e.g., \"i686-linux\""
+msgstr ""
+"\n"
+"  -s, --system=SYSTEME    essayer de compiler pour le SYSTEME donné, par exemple \"i686-linux\""
+
+#: guix/scripts/size.scm:220
+msgid ""
+"\n"
+"  -m, --map-file=FILE    write to FILE a graphical map of disk usage"
+msgstr ""
+
+#: guix/scripts/size.scm:274
+msgid "missing store item argument\n"
+msgstr ""
+
+#: guix/scripts/size.scm:292
+#, fuzzy
+#| msgid "wrong arguments"
+msgid "too many arguments\n"
+msgstr "arguments non valides"
+
+#: guix/scripts/graph.scm:77
+msgid "the DAG of packages, excluding implicit inputs"
+msgstr ""
+
+#: guix/scripts/graph.scm:133
+msgid "the DAG of packages, including implicit inputs"
+msgstr ""
+
+#: guix/scripts/graph.scm:142
+msgid "the DAG of packages and origins, including implicit inputs"
+msgstr ""
+
+#: guix/scripts/graph.scm:172
+msgid "same as 'bag', but without the bootstrap nodes"
+msgstr ""
+
+#: guix/scripts/graph.scm:217
+msgid "the DAG of derivations"
+msgstr ""
+
+#: guix/scripts/graph.scm:241
+#, scheme-format
+msgid "references for '~a' are not known~%"
+msgstr ""
+
+#: guix/scripts/graph.scm:248
+msgid "the DAG of run-time dependencies (store references)"
+msgstr ""
+
+#: guix/scripts/graph.scm:278
+#, fuzzy, scheme-format
+#| msgid "~a: unknown action~%"
+msgid "~a: unknown node type~%"
+msgstr "~a: action inconnue~%"
+
+#: guix/scripts/graph.scm:282
+#, fuzzy
+#| msgid "The valid values for ACTION are:\n"
+msgid "The available node types are:\n"
+msgstr "Les valeurs possibles pour ACTION sont: \n"
+
+#. TRANSLATORS: Here 'dot' is the name of a program; it must not be
+#. translated.
+#: guix/scripts/graph.scm:318
+msgid ""
+"Usage: guix graph PACKAGE...\n"
+"Emit a Graphviz (dot) representation of the dependencies of PACKAGE...\n"
+msgstr ""
+
+#: guix/scripts/graph.scm:320
+msgid ""
+"\n"
+"  -t, --type=TYPE        represent nodes of the given TYPE"
+msgstr ""
+
+#: guix/scripts/graph.scm:322
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --list-dead        list dead paths"
+msgid ""
+"\n"
+"      --list-types       list the available graph types"
+msgstr ""
+"\n"
+"      --list-dead        lister les chemins non valides"
+
+#: guix/scripts/graph.scm:324
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -e, --expression=EXPR  build the package or derivation EXPR evaluates to"
+msgid ""
+"\n"
+"  -e, --expression=EXPR  consider the package EXPR evaluates to"
+msgstr ""
+"\n"
+"  -e, --expression=EXPR  compiler le paquet ou la dérivation évalué par EXPR"
+
+#: guix/scripts/challenge.scm:104
+#, fuzzy, scheme-format
+#| msgid "substitute at '~a' lacks a signature~%"
+msgid "~a: no substitute at '~a'~%"
+msgstr "le substitut à \"~a\" requiert une signature~%"
+
+#: guix/scripts/challenge.scm:120
+#, fuzzy, scheme-format
+#| msgid "invalid signature for '~a'~%"
+msgid "no substitutes for '~a'~%"
+msgstr "signature non valide pour \"~a\"~%"
+
+#: guix/scripts/challenge.scm:137 guix/scripts/challenge.scm:157
+#, fuzzy, scheme-format
+#| msgid "no build log for '~a'~%"
+msgid "no local build for '~a'~%"
+msgstr "aucun journal de compilation pour \"~a\"~%"
+
+#: guix/scripts/challenge.scm:154
+#, scheme-format
+msgid "~a contents differ:~%"
+msgstr ""
+
+#: guix/scripts/challenge.scm:156
+#, fuzzy, scheme-format
+#| msgid "~a: ~a: ~a~%"
+msgid "  local hash: ~a~%"
+msgstr "~a: ~a: ~a~%"
+
+#: guix/scripts/challenge.scm:161
+#, fuzzy, scheme-format
+#| msgid "~a: ~a~%"
+msgid "  ~50a: ~a~%"
+msgstr "~a: ~a~%"
+
+#: guix/scripts/challenge.scm:165
+#, scheme-format
+msgid "  ~50a: unavailable~%"
+msgstr ""
+
+#: guix/scripts/challenge.scm:175
+msgid ""
+"Usage: guix challenge [PACKAGE...]\n"
+"Challenge the substitutes for PACKAGE... provided by one or more servers.\n"
+msgstr ""
+
+#: guix/scripts/challenge.scm:177
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "      --max-silent-time=SECONDS\n"
+#| "                         mark the build as failed after SECONDS of silence"
+msgid ""
+"\n"
+"      --substitute-urls=URLS\n"
+"                         compare build results with those at URLS"
+msgstr ""
+"\n"
+"      --max-silent-time=N\n"
+"                         marquer la compilation comme ayant échouée après N secondes de silence"
+
+#: guix/gnu-maintenance.scm:542
+msgid "Updater for GNU packages"
+msgstr ""
+
+#: guix/gnu-maintenance.scm:549
+msgid "Updater for GNOME packages"
+msgstr ""
+
+#: guix/gnu-maintenance.scm:556
+msgid "Updater for X.org packages"
+msgstr ""
+
+#: guix/scripts/container.scm:25
+msgid ""
+"Usage: guix container ACTION ARGS...\n"
+"Build and manipulate Linux containers.\n"
+msgstr ""
+
+#: guix/scripts/container.scm:30
+msgid "   exec            execute a command inside of an existing container\n"
+msgstr ""
+
+#: guix/scripts/container.scm:53
+#, fuzzy, scheme-format
+#| msgid "guix: missing command name~%"
+msgid "guix container: missing action~%"
+msgstr "guix: nom de commande manquant~%"
+
+#: guix/scripts/container.scm:63
+#, scheme-format
+msgid "guix container: invalid action~%"
+msgstr ""
+
+#: guix/scripts/container/exec.scm:40
+msgid ""
+"Usage: guix container exec PID COMMAND [ARGS...]\n"
+"Execute COMMMAND within the container process PID.\n"
+msgstr ""
+
+#: guix/scripts/container/exec.scm:69
+#, fuzzy, scheme-format
+#| msgid "~A: extraneous argument~%"
+msgid "~a: extraneous argument~%"
+msgstr "~A: argument superflu~%"
+
+#: guix/scripts/container/exec.scm:80
+#, fuzzy, scheme-format
+#| msgid "no configuration file specified~%"
+msgid "no pid specified~%"
+msgstr "aucun fichier de configuration spécifié~%"
+
+#: guix/scripts/container/exec.scm:83
+#, fuzzy, scheme-format
+#| msgid "no configuration file specified~%"
+msgid "no command specified~%"
+msgstr "aucun fichier de configuration spécifié~%"
+
+#: guix/scripts/container/exec.scm:86
+#, scheme-format
+msgid "no such process ~d~%"
+msgstr ""
+
+#: guix/scripts/container/exec.scm:94
+#, scheme-format
+msgid "exec failed with status ~d~%"
+msgstr ""
+
+#: guix/upstream.scm:158
 #, scheme-format
 msgid "signature verification failed for `~a'~%"
 msgstr "la vérification de la signature a échoué pour \"~a\"~%"
 
-#: guix/gnu-maintenance.scm:375
+#: guix/upstream.scm:160
 #, scheme-format
 msgid "(could be because the public key is not in your keyring)~%"
 msgstr "(il est possible que la clé publique ne soit pas dans dans votre trousseau)~%"
 
-#: guix/gnu-maintenance.scm:450
+#: guix/upstream.scm:192
+msgid "gz"
+msgstr ""
+
+#: guix/upstream.scm:255
 #, scheme-format
 msgid "~a: could not locate source file"
 msgstr "~a: le fichier source est introuvable"
 
-#: guix/gnu-maintenance.scm:455
+#: guix/upstream.scm:260
 #, scheme-format
 msgid "~a: ~a: no `version' field in source; skipping~%"
 msgstr "~a: ~a: aucun champ \"version\" dans la source; ignoré~%"
 
-#: guix/ui.scm:135
+#: guix/ui.scm:236
+msgid "entering debugger; type ',bt' for a backtrace\n"
+msgstr ""
+
+#: guix/ui.scm:252 guix/ui.scm:269
+#, fuzzy, scheme-format
+#| msgid "failed to connect to `~a': ~a~%"
+msgid "failed to load '~a': ~a~%"
+msgstr "impossible de se connecter à \"~a\": ~a~%"
+
+#: guix/ui.scm:255
+#, fuzzy, scheme-format
+#| msgid "~a: ~a: ~a~%"
+msgid "~a: error: ~a~%"
+msgstr "~a: ~a: ~a~%"
+
+#: guix/ui.scm:258 guix/ui.scm:512
+#, scheme-format
+msgid "exception thrown: ~s~%"
+msgstr ""
+
+#: guix/ui.scm:260 guix/ui.scm:278
+#, fuzzy, scheme-format
+#| msgid "failed to install locale: ~a~%"
+msgid "failed to load '~a':~%"
+msgstr "impossible d'installer la locale: ~a~%"
+
+#: guix/ui.scm:272
+#, fuzzy, scheme-format
+#| msgid "~a: ~a: ~a~%"
+msgid "~a: warning: ~a~%"
+msgstr "~a: ~a: ~a~%"
+
+#: guix/ui.scm:275
+#, fuzzy, scheme-format
+#| msgid "failed to read expression ~s: ~s~%"
+msgid "failed to load '~a': exception thrown: ~s~%"
+msgstr "impossible de lire l'expression ~s: ~s~%"
+
+#: guix/ui.scm:287
 #, scheme-format
 msgid "failed to install locale: ~a~%"
 msgstr "impossible d'installer la locale: ~a~%"
 
-#: guix/ui.scm:154
+#: guix/ui.scm:306
+#, fuzzy
+#| msgid ""
+#| "Copyright (C) 2014 the Guix authors\n"
+#| "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
+#| "This is free software: you are free to change and redistribute it.\n"
+#| "There is NO WARRANTY, to the extent permitted by law.\n"
 msgid ""
-"Copyright (C) 2014 the Guix authors\n"
+"Copyright (C) 2016 the Guix authors\n"
 "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
 "This is free software: you are free to change and redistribute it.\n"
 "There is NO WARRANTY, to the extent permitted by law.\n"
@@ -1100,7 +2189,7 @@ msgstr ""
 "Ceci est un logiciel libre: vous êtes libre de le modifier et de le redistribuer.\n"
 "Il n'y a AUCUNE GARANTIE, dans la limite de ce qui est autorisé par la loi.\n"
 
-#: guix/ui.scm:162
+#: guix/ui.scm:314
 #, scheme-format
 msgid ""
 "\n"
@@ -1109,7 +2198,7 @@ msgstr ""
 "\n"
 "Signalez toute anomalie à : ~a."
 
-#: guix/ui.scm:164
+#: guix/ui.scm:316
 #, scheme-format
 msgid ""
 "\n"
@@ -1118,7 +2207,7 @@ msgstr ""
 "\n"
 "~a page d'accueil: <~a>"
 
-#: guix/ui.scm:166
+#: guix/ui.scm:318
 msgid ""
 "\n"
 "General help using GNU software: <http://www.gnu.org/gethelp/>"
@@ -1126,160 +2215,228 @@ msgstr ""
 "\n"
 "Aide générale sur l'utilisation des logiciels GNU: <http://www.gnu.org/gethelp/>"
 
-#: guix/ui.scm:173
+#: guix/ui.scm:363
+#, fuzzy, scheme-format
+#| msgid "signature is not a valid s-expression: ~s~%"
+msgid "'~a' is not a valid regular expression: ~a~%"
+msgstr "la signature n'est pas une s-expression valide: ~s~%"
+
+#: guix/ui.scm:369
 #, scheme-format
 msgid "~a: invalid number~%"
 msgstr "~a: nombre non valide~%"
 
-#: guix/ui.scm:190
+#: guix/ui.scm:386
 #, scheme-format
 msgid "invalid number: ~a~%"
 msgstr "nombre non valide: ~a~%"
 
-#: guix/ui.scm:213
+#: guix/ui.scm:409
 #, scheme-format
 msgid "unknown unit: ~a~%"
 msgstr "unité inconnue: ~a~%"
 
-#: guix/ui.scm:224
+#: guix/ui.scm:420
 #, scheme-format
 msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%"
 msgstr "~a:~a:~a: le paquet \"~a\" a une entrée non valide: ~s~%"
 
-#: guix/ui.scm:231
+#: guix/ui.scm:427
 #, scheme-format
 msgid "~a: ~a: build system `~a' does not support cross builds~%"
 msgstr "~a: ~a: le système de compilation \"~a\" ne supporte pas la compilation croisée~%"
 
-#: guix/ui.scm:236
+#: guix/ui.scm:432
 #, scheme-format
 msgid "profile '~a' does not exist~%"
 msgstr "le profile \"~a\" n'existe pas~%"
 
-#: guix/ui.scm:239
+#: guix/ui.scm:435
 #, scheme-format
 msgid "generation ~a of profile '~a' does not exist~%"
 msgstr "la génération ~a du profile \"~a\" n'existe pas~%"
 
-#: guix/ui.scm:243
+#: guix/ui.scm:442
+#, scheme-format
+msgid "corrupt input while restoring '~a' from ~s~%"
+msgstr ""
+
+#: guix/ui.scm:444
+#, fuzzy, scheme-format
+#| msgid "corrupt file set archive"
+msgid "corrupt input while restoring archive from ~s~%"
+msgstr "archive corrompue"
+
+#: guix/ui.scm:447
 #, scheme-format
 msgid "failed to connect to `~a': ~a~%"
 msgstr "impossible de se connecter à \"~a\": ~a~%"
 
-#: guix/ui.scm:248
+#: guix/ui.scm:452
 #, scheme-format
 msgid "build failed: ~a~%"
 msgstr "la compilation a échoué: ~a~%"
 
-#: guix/ui.scm:277
+#: guix/ui.scm:455
+#, scheme-format
+msgid "reference to invalid output '~a' of derivation '~a'~%"
+msgstr ""
+
+#: guix/ui.scm:466
+#, scheme-format
+msgid "~a: ~a~%"
+msgstr "~a: ~a~%"
+
+#: guix/ui.scm:501
 #, scheme-format
 msgid "failed to read expression ~s: ~s~%"
 msgstr "impossible de lire l'expression ~s: ~s~%"
 
-#: guix/ui.scm:283
-#, scheme-format
-msgid "failed to evaluate expression `~a': ~s~%"
+#: guix/ui.scm:507
+#, fuzzy, scheme-format
+#| msgid "failed to evaluate expression `~a': ~s~%"
+msgid "failed to evaluate expression '~a':~%"
 msgstr "impossible d'évaluer l'expression `~a': ~s~%"
 
-#: guix/ui.scm:292
+#: guix/ui.scm:510
+#, fuzzy, scheme-format
+#| msgid "host name lookup error: ~a~%"
+msgid "syntax error: ~a~%"
+msgstr "erreur lors de la consultation du nom d'hôte: ~a~%"
+
+#: guix/ui.scm:524
 #, scheme-format
 msgid "expression ~s does not evaluate to a package~%"
 msgstr "l'expression ~s ne correspond à aucun paquet~%"
 
-#: guix/ui.scm:339
+#: guix/ui.scm:586
 #, scheme-format
 msgid "~:[The following derivation would be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations would be built:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[La dérivation suivante serait compilée:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Les dérivations suivantes seraient compilées:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:344
+#: guix/ui.scm:591
 #, scheme-format
 msgid "~:[The following file would be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files would be downloaded:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Le fichier suivant serait téléchargé:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Les fichiers suivants seraient téléchargés:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:350
+#: guix/ui.scm:597
 #, scheme-format
 msgid "~:[The following derivation will be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations will be built:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[La dérivation suivante sera compilée:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Les dérivations suivantes seront compilées:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:355
+#: guix/ui.scm:602
 #, scheme-format
 msgid "~:[The following file will be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files will be downloaded:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Le fichier suivant sera téléchargé:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Les fichiers suivants seront téléchargés:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:407
+#: guix/ui.scm:657
 #, scheme-format
 msgid "The following package would be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be removed:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant serait supprimé:~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seraient supprimés:~%~{~a~%~}~%"
 
-#: guix/ui.scm:412
+#: guix/ui.scm:662
 #, scheme-format
 msgid "The following package will be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be removed:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant sera supprimé:~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seront supprimés:~%~{~a~%~}~%"
 
-#: guix/ui.scm:425
+#: guix/ui.scm:675
+#, fuzzy, scheme-format
+#| msgid "The following package would be upgraded:~%~{~a~%~}~%"
+#| msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%"
+msgid "The following package would be downgraded:~%~{~a~%~}~%"
+msgid_plural "The following packages would be downgraded:~%~{~a~%~}~%"
+msgstr[0] "Le paquet suivant serait mis à jour:~%~{~a~%~}~%"
+msgstr[1] "Les paquets suivants seraient mis à jour:~%~{~a~%~}~%"
+
+#: guix/ui.scm:680
+#, fuzzy, scheme-format
+#| msgid "The following package will be upgraded:~%~{~a~%~}~%"
+#| msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%"
+msgid "The following package will be downgraded:~%~{~a~%~}~%"
+msgid_plural "The following packages will be downgraded:~%~{~a~%~}~%"
+msgstr[0] "Le paquet suivant sera mis à jour:~%~{~a~%~}~%"
+msgstr[1] "Les paquets suivants seront mis à jour:~%~{~a~%~}~%"
+
+#: guix/ui.scm:693
 #, scheme-format
 msgid "The following package would be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant serait mis à jour:~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seraient mis à jour:~%~{~a~%~}~%"
 
-#: guix/ui.scm:430
+#: guix/ui.scm:698
 #, scheme-format
 msgid "The following package will be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant sera mis à jour:~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seront mis à jour:~%~{~a~%~}~%"
 
-#: guix/ui.scm:441
+#: guix/ui.scm:709
 #, scheme-format
 msgid "The following package would be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be installed:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant serait installé:~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seraient installés:~%~{~a~%~}~%"
 
-#: guix/ui.scm:446
+#: guix/ui.scm:714
 #, scheme-format
 msgid "The following package will be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be installed:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant sera installé:~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seront installés:~%~{~a~%~}~%"
 
-#: guix/ui.scm:463
+#: guix/ui.scm:731
 msgid "<unknown location>"
 msgstr "<emplacement inconnu>"
 
-#: guix/ui.scm:489
+#: guix/ui.scm:750
 #, scheme-format
 msgid "failed to create configuration directory `~a': ~a~%"
 msgstr "impossible de créer le répertoire de configuration \"~a\": ~a~%"
 
-#: guix/ui.scm:589 guix/ui.scm:603
+#: guix/ui.scm:869 guix/ui.scm:883
 msgid "unknown"
 msgstr "inconnu"
 
-#: guix/ui.scm:712
+#: guix/ui.scm:1033
 #, scheme-format
-msgid "invalid argument: ~a~%"
-msgstr "argument non valide: ~a~%"
+msgid "Generation ~a\t~a"
+msgstr "Génération ~a\t~a"
 
-#: guix/ui.scm:717
+#: guix/ui.scm:1040
+#, scheme-format
+msgid "~a\t(current)~%"
+msgstr "~a\t(actuel)~%"
+
+#: guix/ui.scm:1057
+#, fuzzy, scheme-format
+#| msgid "switching from generation ~a to ~a~%"
+msgid "switched from generation ~a to ~a~%"
+msgstr "passage de la génération ~a à ~a~%"
+
+#: guix/ui.scm:1073
+#, scheme-format
+msgid "deleting ~a~%"
+msgstr "suppression de ~a~%"
+
+#: guix/ui.scm:1121
 #, scheme-format
 msgid "Try `guix --help' for more information.~%"
 msgstr "Essayez \"guix --help\" pour plus d'informations.~%"
 
-#: guix/ui.scm:747
+#: guix/ui.scm:1148
 msgid ""
 "Usage: guix COMMAND ARGS...\n"
 "Run COMMAND with ARGS.\n"
@@ -1287,41 +2444,31 @@ msgstr ""
 "Usage: guix COMMANDE ARGS...\n"
 "Lance la COMMANDE avec les arguments ARGS.\n"
 
-#: guix/ui.scm:750
+#: guix/ui.scm:1151
 msgid "COMMAND must be one of the sub-commands listed below:\n"
 msgstr "COMMANDE doit être une des sous-commandes listées ci-dessous:\n"
 
-#: guix/ui.scm:770
+#: guix/ui.scm:1171
 #, scheme-format
 msgid "guix: ~a: command not found~%"
 msgstr "guix: ~a: commande introuvable~%"
 
-#: guix/ui.scm:788
+#: guix/ui.scm:1188
 #, scheme-format
 msgid "guix: missing command name~%"
 msgstr "guix: nom de commande manquant~%"
 
-#: guix/ui.scm:796
+#: guix/ui.scm:1196
 #, scheme-format
 msgid "guix: unrecognized option '~a'~%"
 msgstr "guix: option \"~a\" non reconnue ~%"
 
-#: guix/http-client.scm:217
-#, scheme-format
-msgid "using Guile ~a, which does not support ~s encoding~%"
-msgstr "utilisation de Guile ~a, qui ne supporte pas l'encodage ~s~%"
-
-#: guix/http-client.scm:220
-#, scheme-format
-msgid "download failed; use a newer Guile~%"
-msgstr "le téléchargement a échoué; veuillez utiliser une version plus récente de Guile~%"
-
-#: guix/http-client.scm:232
+#: guix/http-client.scm:261
 #, scheme-format
 msgid "following redirection to `~a'...~%"
 msgstr "redirection vers \"~a\"...~%"
 
-#: guix/http-client.scm:241
+#: guix/http-client.scm:270
 msgid "download failed"
 msgstr "le téléchargement a échoué"
 
@@ -1354,15 +2501,182 @@ msgstr "archive corrompue"
 msgid "importing file or directory '~a'...~%"
 msgstr "import du fichier ou répertoire \"~a\"...~%"
 
-#: guix/nar.scm:220
+#: guix/nar.scm:222
 #, scheme-format
 msgid "found valid signature for '~a'~%"
 msgstr "signature valide trouvée pour \"~a\"~%"
 
-#: guix/nar.scm:227
+#: guix/nar.scm:229
 msgid "imported file lacks a signature"
 msgstr "les fichiers importés requièrent une signature"
 
-#: guix/nar.scm:266
+#: guix/nar.scm:268
 msgid "invalid inter-file archive mark"
 msgstr "marque d'archive inter-fichier non valide"
+
+#: nix/nix-daemon/guix-daemon.cc:61
+msgid "guix-daemon -- perform derivation builds and store accesses"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:63
+msgid "This program is a daemon meant to run in the background.  It serves requests sent over a Unix-domain socket.  It accesses the store, and builds derivations on behalf of its clients."
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:87
+msgid "SYSTEM"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:88
+msgid "assume SYSTEM as the current system type"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:89 nix/nix-daemon/guix-daemon.cc:92
+msgid "N"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:90
+msgid "use N CPU cores to build each derivation; 0 means as many as available"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:93
+msgid "allow at most N build jobs"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:95
+msgid "disable chroot builds"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:96
+msgid "DIR"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:97
+msgid "add DIR to the build chroot"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:98
+msgid "GROUP"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:99
+msgid "perform builds as a user of GROUP"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:101
+msgid "do not use substitutes"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:102
+msgid "URLS"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:103
+msgid "use URLS as the default list of substitute providers"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:105
+msgid "do not use the 'build hook'"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:107
+msgid "cache build failures"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:109
+msgid "build each derivation N times in a row"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:111
+msgid "do not keep build logs"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:113
+msgid "disable compression of the build logs"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:118
+msgid "disable automatic file \"deduplication\" in the store"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:128
+msgid "impersonate Linux 2.6"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:132
+msgid "tell whether the GC must keep outputs of live derivations"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:135
+msgid "tell whether the GC must keep derivations corresponding to live outputs"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:138
+msgid "SOCKET"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:139
+msgid "listen for connections on SOCKET"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:141
+msgid "produce debugging output"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:201
+#, c-format
+msgid "error: %s: invalid number of rounds\n"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:220 nix/nix-daemon/guix-daemon.cc:396
+#, c-format
+msgid "error: %s\n"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:281
+#, c-format
+msgid "error: libgcrypt version mismatch\n"
+msgstr ""
+
+#: nix/nix-daemon/guix-daemon.cc:372
+#, c-format
+msgid "warning: daemon is running as root, so using `--build-users-group' is highly recommended\n"
+msgstr ""
+
+#~ msgid "looking for the latest release of GNU ~a..."
+#~ msgstr "recherche de la dernière version de GNU ~a..."
+
+#~ msgid "~a: note: using ~a but ~a is available upstream~%"
+#~ msgstr "~a: note: utilisation de ~a mais ~a est disponible en amont"
+
+#~ msgid "~a: not a number~%"
+#~ msgstr "~a: pas un nombre~%"
+
+#~ msgid "sources do not match any package:~{ ~a~}~%"
+#~ msgstr "les sources ne correspondent à aucun paquet:~{ ~a~}~%"
+
+#~ msgid "failed to build the empty profile~%"
+#~ msgstr "échec de la compilation du profil vide~%"
+
+#~ msgid "nothing to do: already at the empty profile~%"
+#~ msgstr "aucune action à faire: profil courant vide"
+
+#~ msgid "Downloading, please wait...~%"
+#~ msgstr "Téléchargement en cours..."
+
+#~ msgid "(Please consider upgrading Guile to get proper progress report.)~%"
+#~ msgstr "(Veuillez mettre Guile à jour pour obtenir le rapport de progression approprié.)~%"
+
+#~ msgid "these substitute URLs will not be used:~{ ~a~}~%"
+#~ msgstr "ces URL de substitution ne seront pas utilisées:~{ ~a~}~%"
+
+#~ msgid "failed to look up host '~a' (~a), substituter disabled~%"
+#~ msgstr "impossible de trouver l'hôte \"~a\" (~a), substitution désactivée~%"
+
+#~ msgid "failed to open operating system file '~a': ~a~%"
+#~ msgstr "impossible d'ouvrir le fichier du système d'exploitation \"~a\": ~a~%"
+
+#~ msgid "using Guile ~a, which does not support ~s encoding~%"
+#~ msgstr "utilisation de Guile ~a, qui ne supporte pas l'encodage ~s~%"
+
+#~ msgid "download failed; use a newer Guile~%"
+#~ msgstr "le téléchargement a échoué; veuillez utiliser une version plus récente de Guile~%"
diff --git a/tests/containers.scm b/tests/containers.scm
index 5a0f9937bb..bbcff3f51f 100644
--- a/tests/containers.scm
+++ b/tests/containers.scm
@@ -30,15 +30,18 @@
 
 ;; Skip these tests unless user namespaces are available and the setgroups
 ;; file (introduced in Linux 3.19 to address a security issue) exists.
-(unless (and (user-namespace-supported?)
-             (unprivileged-user-namespace-supported?)
-             (setgroups-supported?))
-  (test-skip 7))
+(define (skip-if-unsupported)
+  (unless (and (user-namespace-supported?)
+               (unprivileged-user-namespace-supported?)
+               (setgroups-supported?))
+    (test-skip 1)))
 
+(skip-if-unsupported)
 (test-assert "call-with-container, exit with 0 when there is no error"
   (zero?
    (call-with-container '() (const #t) #:namespaces '(user))))
 
+(skip-if-unsupported)
 (test-assert "call-with-container, user namespace"
   (zero?
    (call-with-container '()
@@ -47,6 +50,7 @@
        (assert-exit (and (zero? (getuid)) (zero? (getgid)))))
      #:namespaces '(user))))
 
+(skip-if-unsupported)
 (test-assert "call-with-container, uts namespace"
   (zero?
    (call-with-container '()
@@ -57,6 +61,7 @@
        (primitive-exit 0))
      #:namespaces '(user uts))))
 
+(skip-if-unsupported)
 (test-assert "call-with-container, pid namespace"
   (zero?
    (call-with-container '()
@@ -72,6 +77,7 @@
               (status:exit-val status)))))))
      #:namespaces '(user pid))))
 
+(skip-if-unsupported)
 (test-assert "call-with-container, mnt namespace"
   (zero?
    (call-with-container '(("none" device "/testing" "tmpfs" () #f #f))
@@ -79,6 +85,7 @@
        (assert-exit (file-exists? "/testing")))
      #:namespaces '(user mnt))))
 
+(skip-if-unsupported)
 (test-equal "call-with-container, mnt namespace, wrong bind mount"
   `(system-error ,ENOENT)
   ;; An exception should be raised; see <http://bugs.gnu.org/23306>.
@@ -91,12 +98,14 @@
     (lambda args
       (list 'system-error (system-error-errno args)))))
 
+(skip-if-unsupported)
 (test-assert "call-with-container, all namespaces"
   (zero?
    (call-with-container '()
      (lambda ()
        (primitive-exit 0)))))
 
+(skip-if-unsupported)
 (test-assert "container-excursion"
   (call-with-temporary-directory
    (lambda (root)
diff --git a/tests/packages.scm b/tests/packages.scm
index d3f432ada2..94f5ea71a5 100644
--- a/tests/packages.scm
+++ b/tests/packages.scm
@@ -797,7 +797,7 @@
                  #:guile-for-build (%guile-for-build))))
     (build-derivations %store (list prof))
     (string-match (format #f "^export XML_CATALOG_FILES=\"~a/xml/+bar/baz/catalog\\.xml\"\n"
-                          (derivation->output-path prof))
+                          (regexp-quote (derivation->output-path prof)))
                   (with-output-to-string
                     (lambda ()
                       (guix-package "-p" (derivation->output-path prof)