Merge branch 'staging' into core-updates
authorMarius Bakke <mbakke@fastmail.com>
Sun, 10 Mar 2019 17:47:02 +0000 (18:47 +0100)
committerMarius Bakke <mbakke@fastmail.com>
Sun, 10 Mar 2019 17:47:02 +0000 (18:47 +0100)
19 files changed:
1  2 
doc/guix.texi
gnu/local.mk
gnu/packages/compression.scm
gnu/packages/fontutils.scm
gnu/packages/games.scm
gnu/packages/glib.scm
gnu/packages/gnome.scm
gnu/packages/gtk.scm
gnu/packages/linux.scm
gnu/packages/mpd.scm
gnu/packages/perl.scm
gnu/packages/python-xyz.scm
gnu/packages/rust.scm
gnu/packages/tex.scm
gnu/packages/version-control.scm
gnu/packages/video.scm
gnu/packages/xdisorg.scm
gnu/packages/xorg.scm
guix/scripts/pack.scm

diff --combined doc/guix.texi
@@@ -4777,6 -4777,23 +4777,23 @@@ symlink target
  For instance, @code{-S /opt/gnu/bin=bin} creates a @file{/opt/gnu/bin}
  symlink pointing to the @file{bin} sub-directory of the profile.
  
+ @item --save-provenance
+ Save provenance information for the packages passed on the command line.
+ Provenance information includes the URL and commit of the channels in use
+ (@pxref{Channels}).
+ Provenance information is saved in the
+ @file{/gnu/store/@dots{}-profile/manifest} file in the pack, along with the
+ usual package metadata---the name and version of each package, their
+ propagated inputs, and so on.  It is useful information to the recipient of
+ the pack, who then knows how the pack was (supposedly) obtained.
+ This option is not enabled by default because, like timestamps, provenance
+ information contributes nothing to the build process.  In other words, there
+ is an infinity of channel URLs and commit IDs that can lead to the same pack.
+ Recording such ``silent'' metadata in the output thus potentially breaks the
+ source-to-binary bitwise reproducibility property.
  @item --localstatedir
  @itemx --profile-name=@var{name}
  Include the ``local state directory'', @file{/var/guix}, in the resulting
@@@ -6221,8 -6238,11 +6238,11 @@@ The outputs of the derivation---derivat
  directory in the store, but may produce more.
  
  @item
- The inputs of the derivations, which may be other derivations or plain
- files in the store (patches, build scripts, etc.)
+ @cindex build-time dependencies
+ @cindex dependencies, build-time
+ The inputs of the derivations---i.e., its build-time dependencies---which may
+ be other derivations or plain files in the store (patches, build scripts,
+ etc.)
  
  @item
  The system type targeted by the derivation---e.g., @code{x86_64-linux}.
@@@ -6253,6 -6273,16 +6273,16 @@@ of a fixed-output derivation are indepe
  source code download produces the same result regardless of the download
  method and tools being used.
  
+ @cindex references
+ @cindex run-time dependencies
+ @cindex dependencies, run-time
+ The outputs of derivations---i.e., the build results---have a set of
+ @dfn{references}, as reported by the @code{references} RPC or the
+ @command{guix gc --references} command (@pxref{Invoking guix gc}).  References
+ are the set of run-time dependencies of the build results.  References are a
+ subset of the inputs of the derivation; this subset is automatically computed
+ by the build daemon by scanning all the files in the outputs.
  The @code{(guix derivations)} module provides a representation of
  derivations as Scheme objects, along with procedures to create and
  otherwise manipulate derivations.  The lowest-level primitive to create
@@@ -24464,80 -24494,7 +24494,80 @@@ Binutils, libc, and the other packages 
  These bootstrap binaries are ``taken for granted'', though we can also
  re-create them if needed (more on that later).
  
 -@unnumberedsec Preparing to Use the Bootstrap Binaries
 +For @code{i686-linux} and @code{x86_64-linux} the Guix bootstrap process is
 +more elaborate, @pxref{Reduced Binary Seed Bootstrap}.
 +
 +@menu
 +* Reduced Binary Seed Bootstrap::  A Bootstrap worthy of GNU.
 +* Preparing to Use the Bootstrap Binaries:: Building that what matters most.
 +@end menu
 +
 +@node Reduced Binary Seed Bootstrap
 +@section The Reduced Binary Seed Bootstrap
 +
 +Guix---like other GNU/Linux distributions---is traditionally bootstrapped from
 +a set of bootstrap binaries: Bourne shell, command-line tools provided by GNU
 +Coreutils, Awk, Findutils, `sed', and `grep' and Guile, GCC, Binutils, and the
 +GNU C Library (@pxref{Bootstrapping}).  Usually, these bootstrap binaries are
 +``taken for granted.''
 +
 +Taking these binaries for granted means that we consider them to be a correct
 +and trustworthy `seed' for building the complete system.  Therein lies a
 +problem: the current combined size of these bootstrap binaries is about 250MB
 +(@pxref{Bootstrappable Builds,,, mes, GNU Mes}).  Auditing or even inspecting
 +these is next to impossible.
 +
 +For @code{i686-linux} and @code{x86_64-linux}, Guix now features a ``Reduced
 +Binary Seed'' bootstrap @footnote{We would like to say: ``Full Source
 +Bootstrap'' and while we are working towards that goal it would be hyperbole
 +to use that term for what we do now.}.
 +
 +The Reduced Binary Seed bootstrap removes the most critical tools---from a
 +trust perspective---from the bootstrap binaries: GCC, Binutils and the GNU C
 +Library are replaced by: @code{bootstrap-mescc-tools} (a tiny assembler and
 +linker) and @code{bootstrap-mes} (a small Scheme Interpreter and a C compiler
 +written in Scheme and the Mes C Library, built for TinyCC and for GCC).  Using
 +these new binary seeds and a new set of
 +@c
 +packages@footnote{@c
 +nyacc-boot,
 +mes-boot,
 +tcc-boot0,
 +tcc-boot,
 +make-mesboot0,
 +diffutils-mesboot,
 +binutils-mesboot0,
 +gcc-core-mesboot,
 +mesboot-headers,
 +glibc-mesboot0,
 +gcc-mesboot0,
 +binutils-mesboot,
 +make-mesboot,
 +gcc-mesboot1,
 +gcc-mesboot1-wrapper,
 +glibc-headers-mesboot,
 +glibc-mesboot,
 +gcc-mesboot,
 +and
 +gcc-mesboot-wrapper.
 +}
 +@c
 +the ``missing'' Binutils, GCC, and the GNU C Library are built from source.
 +From here on the more traditional bootstrap process resumes.  This approach
 +has reduced the bootstrap binaries in size to about 130MB.  Work is ongoing to
 +reduce this further.  If you are interested, join us on @code{#bootstrappable}
 +on the Freenode IRC network.
 +
 +@c ./pre-inst-env guix graph --type=bag -e '(begin (use-modules (guix packages)) (%current-system "i686-linux") (@@ (gnu packages commencement) gcc-mesboot))' > doc/images/gcc-mesboot-bag-graph.dot
 +@c dot -T png doc/images/gcc-mesboot-bag-graph.dot > doc/images/gcc-mesboot-bag-graph.png
 +
 +Below is the generated dependency graph for @code{gcc-mesboot}, the bootstrap
 +compiler used to build the rest of GuixSD.
 +
 +@image{images/gcc-mesboot-bag-graph,6in,,Dependency graph of the gcc-mesboot}
 +
 +@node Preparing to Use the Bootstrap Binaries
 +@section Preparing to Use the Bootstrap Binaries
  
  @c As of Emacs 24.3, Info-mode displays the image, but since it's a
  @c large image, it's hard to scroll.  Oh well.
@@@ -24551,15 -24508,7 +24581,15 @@@ packages bootstrap)} module.  A simila
  @example
  guix graph -t derivation \
    -e '(@@@@ (gnu packages bootstrap) %bootstrap-gcc)' \
 -  | dot -Tps > t.ps
 +  | dot -Tps > gcc.ps
 +@end example
 +
 +or, for the Reduced Binary Seed bootstrap
 +
 +@example
 +guix graph -t derivation \
 +  -e '(@@@@ (gnu packages bootstrap) %bootstrap-mes)' \
 +  | dot -Tps > mes.ps
  @end example
  
  At this level of detail, things are
@@@ -24591,10 -24540,10 +24621,10 @@@ write them in an output directory with 
  corresponds to the @code{#:modules} argument of
  @code{build-expression->derivation} (@pxref{Derivations}).
  
 -Finally, the various tarballs are unpacked by the
 -derivations @code{gcc-bootstrap-0.drv}, @code{glibc-bootstrap-0.drv},
 -etc., at which point we have a working C tool chain.
 -
 +Finally, the various tarballs are unpacked by the derivations
 +@code{gcc-bootstrap-0.drv}, @code{glibc-bootstrap-0.drv}, or
 +@code{bootstrap-mes-0.drv} and @code{bootstrap-mescc-tools-0.drv}, at which
 +point we have a working C tool chain.
  
  @unnumberedsec Building the Build Tools
  
@@@ -24659,11 -24608,9 +24689,11 @@@ those rarely need to be updated.  Never
  automated way to produce them, should an update occur, and this is what
  the @code{(gnu packages make-bootstrap)} module provides.
  
 -The following command builds the tarballs containing the bootstrap
 -binaries (Guile, Binutils, GCC, libc, and a tarball containing a mixture
 -of Coreutils and other basic command-line tools):
 +The following command builds the tarballs containing the bootstrap binaries
 +(Binutils, GCC, glibc, for the traditional bootstrap and linux-libre-headers,
 +bootstrap-mescc-tools, bootstrap-mes for the Reduced Binary Seed bootstrap,
 +and Guile, and a tarball containing a mixture of Coreutils and other basic
 +command-line tools):
  
  @example
  guix build bootstrap-tarballs
  
  @unnumberedsec Reducing the Set of Bootstrap Binaries
  
 -Our bootstrap binaries currently include GCC, Guile, etc.  That's a lot
 -of binary code!  Why is that a problem?  It's a problem because these
 -big chunks of binary code are practically non-auditable, which makes it
 -hard to establish what source code produced them.  Every unauditable
 -binary also leaves us vulnerable to compiler backdoors as described by
 -Ken Thompson in the 1984 paper @emph{Reflections on Trusting Trust}.
 +Our traditional bootstrap includes GCC, GNU Libc, Guile, etc.  That's a lot of
 +binary code!  Why is that a problem?  It's a problem because these big chunks
 +of binary code are practically non-auditable, which makes it hard to establish
 +what source code produced them.  Every unauditable binary also leaves us
 +vulnerable to compiler backdoors as described by Ken Thompson in the 1984
 +paper @emph{Reflections on Trusting Trust}.
  
  This is mitigated by the fact that our bootstrap binaries were generated
  from an earlier Guix revision.  Nevertheless it lacks the level of
@@@ -24698,19 -24645,8 +24728,19 @@@ The @uref{http://bootstrappable.org, Bo
  on-going projects to do that.  One of these is about replacing the
  bootstrap GCC with a sequence of assemblers, interpreters, and compilers
  of increasing complexity, which could be built from source starting from
 -a simple and auditable assembler.  Your help is welcome!
 -
 +a simple and auditable assembler.
 +
 +Our first major achievement is the replacement of of GCC, the GNU C Library
 +and Binutils by MesCC-Tools (a simple hex linker and macro assembler) and Mes
 +(@pxref{Top, GNU Mes Reference Manual,, mes, GNU Mes}, a Scheme interpreter
 +and C compiler in Scheme).  Neither MesCC-Tools nor Mes can be fully
 +bootstrapped yet and thus we inject them as binary seeds.  We call this the
 +Reduced Binary Seed bootstrap, as it has halved the size of our bootstrap
 +binaries!  Also, it has eliminated the C compiler binary; i686-linux and
 +x86_64-linux Guix packages are now bootstrapped without any binary C compiler.
 +
 +Work is ongoing to make MesCC-Tools and Mes fully bootstrappable and we are
 +also looking at any other bootstrap binaries.  Your help is welcome!
  
  @node Porting
  @chapter Porting to a New Platform
diff --combined gnu/local.mk
@@@ -236,6 -236,7 +236,7 @@@ GNU_SYSTEM_MODULES =                               
    %D%/packages/hexedit.scm                    \
    %D%/packages/hugs.scm                               \
    %D%/packages/hurd.scm                               \
+   %D%/packages/hyperledger.scm                        \
    %D%/packages/ibus.scm                               \
    %D%/packages/icu4c.scm                      \
    %D%/packages/idris.scm                      \
    %D%/services/xorg.scm                               \
                                                \
    %D%/system.scm                              \
+   %D%/system/accounts.scm                     \
    %D%/system/file-systems.scm                 \
    %D%/system/install.scm                      \
    %D%/system/linux-container.scm              \
    %D%/system/uuid.scm                         \
    %D%/system/vm.scm                           \
                                                \
+   %D%/build/accounts.scm                      \
    %D%/build/activation.scm                    \
    %D%/build/bootloader.scm                    \
    %D%/build/cross-toolchain.scm                       \
@@@ -630,6 -633,8 +633,6 @@@ dist_patch_DATA =                                          
    %D%/packages/patches/a2ps-CVE-2014-0466.patch       \
    %D%/packages/patches/abiword-explictly-cast-bools.patch     \
    %D%/packages/patches/abiword-black-drawing-with-gtk322.patch        \
 -  %D%/packages/patches/acl-fix-perl-regex.patch               \
 -  %D%/packages/patches/acl-hurd-path-max.patch                        \
    %D%/packages/patches/adb-add-libraries.patch                        \
    %D%/packages/patches/aegis-constness-error.patch            \
    %D%/packages/patches/aegis-perl-tempdir1.patch              \
    %D%/packages/patches/apr-skip-getservbyname-test.patch      \
    %D%/packages/patches/aria2-CVE-2019-3500.patch              \
    %D%/packages/patches/aspell-default-dict-dir.patch          \
 +  %D%/packages/patches/aspell-gcc-compat.patch                        \
    %D%/packages/patches/ath9k-htc-firmware-binutils.patch      \
    %D%/packages/patches/ath9k-htc-firmware-gcc.patch           \
    %D%/packages/patches/ath9k-htc-firmware-objcopy.patch               \
    %D%/packages/patches/bazaar-CVE-2017-14176.patch            \
    %D%/packages/patches/beets-python-3.7-fix.patch             \
    %D%/packages/patches/beignet-correct-file-names.patch               \
 +  %D%/packages/patches/binutils-boot-2.20.1a.patch            \
    %D%/packages/patches/biber-fix-encoding-write.patch         \
    %D%/packages/patches/binutils-loongson-workaround.patch     \
-   %D%/packages/patches/blast+-fix-makefile.patch              \
    %D%/packages/patches/boost-fix-icu-build.patch              \
    %D%/packages/patches/byobu-writable-status.patch            \
    %D%/packages/patches/calibre-no-updates-dialog.patch                \
    %D%/packages/patches/deja-dup-use-ref-keyword-for-iter.patch        \
    %D%/packages/patches/dfu-programmer-fix-libusb.patch                \
    %D%/packages/patches/diffutils-gets-undeclared.patch                \
 -  %D%/packages/patches/diffutils-getopt.patch                 \
    %D%/packages/patches/docbook-xsl-nonrecursive-string-subst.patch    \
    %D%/packages/patches/doc++-include-directives.patch         \
    %D%/packages/patches/doc++-segfault-fix.patch                       \
    %D%/packages/patches/gcc-arm-bug-71399.patch                        \
    %D%/packages/patches/gcc-arm-link-spec-fix.patch            \
    %D%/packages/patches/gcc-asan-missing-include.patch         \
 +  %D%/packages/patches/gcc-boot-2.95.3.patch                  \
 +  %D%/packages/patches/gcc-boot-4.7.4.patch                   \
    %D%/packages/patches/gcc-cross-environment-variables.patch  \
    %D%/packages/patches/gcc-fix-texi2pod.patch                 \
    %D%/packages/patches/gcc-4.8-libsanitizer-fix.patch         \
    %D%/packages/patches/gcc-6-source-date-epoch-1.patch                \
    %D%/packages/patches/gcc-6-source-date-epoch-2.patch                \
    %D%/packages/patches/gcc-8-strmov-store-file-names.patch    \
-   %D%/packages/patches/gcr-disable-failing-tests.patch                \
-   %D%/packages/patches/gcr-fix-collection-tests-to-work-with-gpg-21.patch     \
    %D%/packages/patches/gd-CVE-2018-5711.patch                 \
    %D%/packages/patches/gd-CVE-2018-1000222.patch              \
    %D%/packages/patches/gd-CVE-2019-6977.patch                 \
    %D%/packages/patches/glibc-CVE-2018-11236.patch             \
    %D%/packages/patches/glibc-CVE-2018-11237.patch             \
    %D%/packages/patches/glibc-allow-kernel-2.6.32.patch                \
 +  %D%/packages/patches/glibc-boot-2.16.0.patch                        \
 +  %D%/packages/patches/glibc-boot-2.2.5.patch                 \
 +  %D%/packages/patches/glibc-bootstrap-system-2.16.0.patch    \
    %D%/packages/patches/glibc-bootstrap-system.patch           \
    %D%/packages/patches/glibc-hidden-visibility-ldconfig.patch \
    %D%/packages/patches/glibc-hurd-magic-pid.patch             \
    %D%/packages/patches/glibc-versioned-locpath.patch          \
    %D%/packages/patches/glibc-2.27-git-fixes.patch             \
    %D%/packages/patches/glibc-2.28-git-fixes.patch             \
 +  %D%/packages/patches/glibc-supported-locales.patch          \
    %D%/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch          \
    %D%/packages/patches/glog-gcc-5-demangling.patch            \
    %D%/packages/patches/gmp-arm-asm-nothumb.patch              \
    %D%/packages/patches/gmp-faulty-test.patch                  \
    %D%/packages/patches/gnome-shell-theme.patch                        \
-   %D%/packages/patches/gnome-todo-libical-compat.patch                \
    %D%/packages/patches/gnome-tweak-tool-search-paths.patch    \
    %D%/packages/patches/gnucash-fix-test-transaction-failure.patch \
    %D%/packages/patches/gnutls-skip-trust-store-test.patch     \
    %D%/packages/patches/gpsbabel-minizip.patch                 \
    %D%/packages/patches/gpsbabel-qstring.patch                 \
    %D%/packages/patches/grep-timing-sensitive-test.patch               \
 -  %D%/packages/patches/groff-source-date-epoch.patch          \
    %D%/packages/patches/groovy-add-exceptionutilsgenerator.patch       \
    %D%/packages/patches/grub-binutils-compat.patch             \
    %D%/packages/patches/grub-check-error-efibootmgr.patch      \
    %D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \
    %D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
    %D%/packages/patches/gzdoom-search-in-installed-share.patch \
 +  %D%/packages/patches/handbrake-opt-in-nvenc.patch           \
    %D%/packages/patches/haskell-mode-unused-variables.patch    \
    %D%/packages/patches/haskell-mode-make-check.patch          \
    %D%/packages/patches/hdf4-architectures.patch               \
    %D%/packages/patches/liba52-link-with-libm.patch            \
    %D%/packages/patches/liba52-set-soname.patch                        \
    %D%/packages/patches/liba52-use-mtune-not-mcpu.patch                \
 -  %D%/packages/patches/libarchive-CVE-2017-14166.patch                \
 -  %D%/packages/patches/libarchive-CVE-2017-14502.patch                \
    %D%/packages/patches/libarchive-CVE-2018-1000877.patch      \
    %D%/packages/patches/libarchive-CVE-2018-1000878.patch      \
    %D%/packages/patches/libarchive-CVE-2018-1000880.patch      \
    %D%/packages/patches/libexif-CVE-2017-7544.patch            \
    %D%/packages/patches/libextractor-CVE-2018-20430.patch      \
    %D%/packages/patches/libextractor-CVE-2018-20431.patch      \
 -  %D%/packages/patches/libgcrypt-make-yat2m-reproducible.patch        \
    %D%/packages/patches/libgit2-mtime-0.patch                  \
    %D%/packages/patches/libgit2-oom-test.patch                 \
    %D%/packages/patches/libgdata-fix-tests.patch                       \
    %D%/packages/patches/mcrypt-CVE-2012-4426.patch                     \
    %D%/packages/patches/mcrypt-CVE-2012-4527.patch                     \
    %D%/packages/patches/mesa-skip-disk-cache-test.patch                \
 +  %D%/packages/patches/mescc-tools-boot.patch                 \
    %D%/packages/patches/meson-for-build-rpath.patch            \
    %D%/packages/patches/metabat-fix-compilation.patch          \
    %D%/packages/patches/mhash-keygen-test-segfault.patch               \
    %D%/packages/patches/pygpgme-disable-problematic-tests.patch  \
    %D%/packages/patches/pyqt-configure.patch                   \
    %D%/packages/patches/pyqt-public-sip.patch                  \
 -  %D%/packages/patches/python2-CVE-2018-14647.patch           \
 -  %D%/packages/patches/python2-CVE-2018-1000802.patch         \
    %D%/packages/patches/python-2-deterministic-build-info.patch        \
    %D%/packages/patches/python-2.7-adjust-tests.patch          \
    %D%/packages/patches/python-2.7-search-paths.patch          \
    %D%/packages/patches/python-axolotl-AES-fix.patch           \
    %D%/packages/patches/python-cairocffi-dlopen-path.patch     \
    %D%/packages/patches/python-cffi-x87-stack-clean.patch      \
 -  %D%/packages/patches/python-fix-tests.patch                 \
    %D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
    %D%/packages/patches/python-configobj-setuptools.patch      \
    %D%/packages/patches/python-faker-fix-build-32bit.patch     \
    %D%/packages/patches/python-pycrypto-CVE-2013-7459.patch    \
    %D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
    %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch        \
 +  %D%/packages/patches/python-pytest-pluggy-compat.patch      \
    %D%/packages/patches/python2-subprocess32-disable-input-test.patch  \
    %D%/packages/patches/python-unittest2-python3-compat.patch  \
    %D%/packages/patches/python-unittest2-remove-argparse.patch \
    %D%/packages/patches/rust-1.25-accept-more-detailed-gdb-lines.patch \
    %D%/packages/patches/rust-bootstrap-stage0-test.patch               \
    %D%/packages/patches/rust-coresimd-doctest.patch            \
+   %D%/packages/patches/rust-1.30-gdb-llvm.patch                       \
    %D%/packages/patches/rust-reproducible-builds.patch          \
    %D%/packages/patches/rxvt-unicode-escape-sequences.patch    \
    %D%/packages/patches/scalapack-blacs-mpi-deprecations.patch \
    %D%/packages/patches/scotch-build-parallelism.patch         \
    %D%/packages/patches/scotch-integer-declarations.patch      \
    %D%/packages/patches/scribus-poppler.patch                  \
 +  %D%/packages/patches/scribus-poppler-0.73.patch             \
    %D%/packages/patches/sdl-libx11-1.6.patch                   \
    %D%/packages/patches/seq24-rename-mutex.patch                       \
    %D%/packages/patches/sharutils-CVE-2018-1000097.patch               \
    %D%/packages/patches/t1lib-CVE-2011-1552+.patch             \
    %D%/packages/patches/tar-remove-wholesparse-check.patch     \
    %D%/packages/patches/tar-skip-unreliable-tests.patch                \
 +  %D%/packages/patches/tcc-boot-0.9.27.patch                  \
    %D%/packages/patches/tclxml-3.2-install.patch                       \
    %D%/packages/patches/tcsh-fix-autotest.patch                        \
    %D%/packages/patches/tcsh-fix-out-of-bounds-read.patch      \
    %D%/packages/patches/teensy-loader-cli-help.patch           \
    %D%/packages/patches/teeworlds-use-latest-wavpack.patch     \
 -  %D%/packages/patches/texinfo-perl-compat.patch              \
    %D%/packages/patches/texinfo-5-perl-compat.patch            \
    %D%/packages/patches/texlive-bin-luatex-poppler-compat.patch        \
    %D%/packages/patches/texlive-bin-pdftex-poppler-compat.patch        \
    %D%/packages/patches/upower-builddir.patch                  \
    %D%/packages/patches/upx-fix-CVE-2017-15056.patch           \
    %D%/packages/patches/valgrind-enable-arm.patch              \
-   %D%/packages/patches/valgrind-glibc-compat.patch            \
    %D%/packages/patches/vboot-utils-fix-format-load-address.patch      \
    %D%/packages/patches/vboot-utils-fix-tests-show-contents.patch      \
    %D%/packages/patches/vboot-utils-skip-test-workbuf.patch    \
@@@ -1354,11 -1351,18 +1353,11 @@@ MISC_DISTRO_FILES =                          
    %D%/packages/ld-wrapper.in
  
  bootstrapdir = $(guilemoduledir)/%D%/packages/bootstrap
 -bootstrap_x86_64_linuxdir = $(bootstrapdir)/x86_64-linux
  bootstrap_i686_linuxdir = $(bootstrapdir)/i686-linux
  bootstrap_armhf_linuxdir = $(bootstrapdir)/armhf-linux
  bootstrap_aarch64_linuxdir = $(bootstrapdir)/aarch64-linux
  bootstrap_mips64el_linuxdir = $(bootstrapdir)/mips64el-linux
  
 -dist_bootstrap_x86_64_linux_DATA =            \
 -  %D%/packages/bootstrap/x86_64-linux/bash    \
 -  %D%/packages/bootstrap/x86_64-linux/mkdir   \
 -  %D%/packages/bootstrap/x86_64-linux/tar     \
 -  %D%/packages/bootstrap/x86_64-linux/xz
 -
  dist_bootstrap_i686_linux_DATA =              \
    %D%/packages/bootstrap/i686-linux/bash      \
    %D%/packages/bootstrap/i686-linux/mkdir     \
@@@ -197,14 -197,14 +197,14 @@@ adding and extracting files to/from a t
  (define-public gzip
    (package
     (name "gzip")
 -   (version "1.9")
 +   (version "1.10")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/gzip/gzip-"
                                  version ".tar.xz"))
              (sha256
               (base32
 -              "16h8g4acy7fgfxcjacr3wijjsnixwsfd2jhz3zwdi2qrzi262l5f"))))
 +              "1h6p374d3j8d4cdfydzls021xa2yby8myc0h8d6m8bc7k6ncq9c4"))))
     (build-system gnu-build-system)
     (synopsis "General file (de)compression (using lzw)")
     (arguments
@@@ -420,23 -420,6 +420,23 @@@ compressed with pbzip2 can be decompres
               (base32
                "0ibi2zsfaz6l756spjwc5rayf4ckgc9hwmy8qinppcyk4svz64mm"))))
     (build-system gnu-build-system)
 +   (arguments
 +    `(#:phases
 +      (modify-phases %standard-phases
 +        (add-after 'install 'move-static-lib
 +          (lambda* (#:key outputs #:allow-other-keys)
 +            (let ((out    (assoc-ref outputs "out"))
 +                  (static (assoc-ref outputs "static")))
 +              (mkdir-p (string-append static "/lib"))
 +              (rename-file (string-append out "/lib/liblzma.a")
 +                           (string-append static "/lib/liblzma.a"))
 +              ;; Remove reference to the static library from the .la file
 +              ;; so Libtool does the right thing when both the shared and
 +              ;; static library is available.
 +              (substitute* (string-append out "/lib/liblzma.la")
 +                (("^old_library='liblzma.a'") "old_library=''"))
 +              #t))))))
 +   (outputs '("out" "static"))
     (synopsis "General-purpose data compression")
     (description
      "XZ Utils is free general-purpose data compression software with high
@@@ -703,13 -686,13 +703,13 @@@ sfArk file format to the uncompressed s
    (package
      (name "libmspack")
      (home-page "https://cabextract.org.uk/libmspack/")
-     (version "0.9.1")
+     (version "0.10.1")
      (source
       (origin
        (method url-fetch)
        (uri (string-append home-page name "-" version "alpha.tar.gz"))
        (sha256
-        (base32 "0h1f5w8rjnq7dcqpqm1mpx5m8q80691kid6f7npqlqwqqzckd8v2"))))
+        (base32 "13janaqsvm7aqc4agjgd4819pbgqv50j88bh5kci1z70wvg65j5s"))))
      (build-system gnu-build-system)
      (arguments
       `(#:configure-flags '("--disable-static")))
@@@ -966,13 -949,13 +966,13 @@@ smaller than those produced by @code{Xd
   (package
     (name "cabextract")
     (home-page "https://cabextract.org.uk/")
-    (version "1.9")
+    (version "1.9.1")
     (source (origin
                (method url-fetch)
-               (uri (string-append home-page name "-" version ".tar.gz"))
+               (uri (string-append home-page "cabextract-" version ".tar.gz"))
                (sha256
                 (base32
-                 "1hf4zhjxfdgq9x172r5zfdnafma9q0zf7372syn8hcn7hcypkg0v"))
+                 "19qwhl2r8ip95q4vxzxg2kp4p125hjmc9762sns1dwwf7ikm7hmg"))
                (modules '((guix build utils)))
                (snippet
                 '(begin
@@@ -433,7 -433,7 +433,7 @@@ applications should be."
  (define-public graphite2
    (package
     (name "graphite2")
 -   (version "1.3.12")
 +   (version "1.3.13")
     (source
       (origin
         (method url-fetch)
                             "download/" version "/" name "-" version ".tgz"))
         (sha256
          (base32
 -         "1l1940d8fz67jm6a0x8cjb5p2dv48cvz3wcskwa83hamd70k15fd"))))
 +         "01jzhwnj1c3d68dmw15jdxly0hwkmd8ja4kw755rbkykn1ly2qyx"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("python" ,python-2) ; because of "import imap" in tests
@@@ -534,7 -534,7 +534,7 @@@ smooth contours with constant curvatur
  (define-public libuninameslist
    (package
      (name "libuninameslist")
-     (version "20180701")
+     (version "20190305")
      (home-page "https://github.com/fontforge/libuninameslist")
      (source
       (origin
                             "/libuninameslist-dist-" version ".tar.gz"))
         (sha256
          (base32
-          "141wh2f5jsaw84mgw6vf2c9hd2wm957a2hpnicyqjbc7pk89gvca"))))
+          "1rwd2bgcyvign9agyjsr3v2fr9j1cg2wi6g0z2wwg1az32scknwq"))))
      (build-system gnu-build-system)
      (synopsis "Unicode names and annotation list")
      (description
diff --combined gnu/packages/games.scm
@@@ -11,7 -11,7 +11,7 @@@
  ;;; Copyright © 2015, 2016 Andreas Enge <andreas@enge.fr>
  ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
  ;;; Copyright © 2015, 2017, 2018 Christopher Lemmer Webber <cwebber@dustycloud.org>
- ;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
+ ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
  ;;; Copyright © 2015, 2016, 2017 Alex Kost <alezost@gmail.com>
  ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
  ;;; Copyright © 2016, 2017 Rodger Fox <thylakoid@openmailbox.org>
@@@ -1709,7 -1709,7 +1709,7 @@@ match, cannon keep, and grave-itation p
  (define minetest-data
    (package
      (name "minetest-data")
-     (version "0.4.17")
+     (version "5.0.0")
      (source (origin
                (method git-fetch)
                (uri (git-reference
                (file-name (git-file-name name version))
                (sha256
                 (base32
-                 "1g8iw2pya32ifljbdx6z6rpcinmzm81i9minhi2bi1d500ailn7s"))))
+                 "186i1pna2f3fwa2001y8mw5131h0sndhfdxzfqq2gnr1m83sjm0w"))))
      (build-system trivial-build-system)
      (native-inputs
       `(("source" ,source)))
  (define-public minetest
    (package
      (name "minetest")
-     (version "0.4.17.1")
+     (version "5.0.0")
      (source (origin
                (method git-fetch)
                (uri (git-reference
                (file-name (git-file-name name version))
                (sha256
                 (base32
-                 "19sfblgh9mchkgw32n7gdvm7a8a9jxsl9cdlgmxn9bk9m939a2sg"))
+                 "1b8n8nzlvmld1hl3zgs1xg4jbc1nsf1m2bn7fi794vdr06s6n911"))
                (modules '((guix build utils)))
                (snippet
                  '(begin
@@@ -2626,12 -2626,16 +2626,12 @@@ Transport Tycoon Deluxe."
                                  "/share/openrct2/title-sequences") "data/title")
                (copy-recursively (string-append objects
                                  "/share/openrct2/objects") "data/object"))))
 -          (add-before 'configure 'fixgcc7
 -             (lambda _
 -               (unsetenv "C_INCLUDE_PATH")
 -               (unsetenv "CPLUS_INCLUDE_PATH")
 -               #t))
 -          (add-after 'fixgcc7 'get-rid-of-errors
 +          (add-before 'configure 'get-rid-of-errors
              (lambda _
                ;; Don't treat warnings as errors.
                (substitute* "CMakeLists.txt"
 -                (("-Werror") "")))))))
 +                (("-Werror") ""))
 +              #t)))))
      (inputs `(("curl" ,curl)
                ("fontconfig" ,fontconfig)
                ("freetype" ,freetype)
                ("speexdsp" ,speexdsp)
                ("zlib" ,zlib)))
      (native-inputs
 -     `(("gcc" ,gcc-7)
 -       ("pkg-config" ,pkg-config)))
 +     `(("pkg-config" ,pkg-config)))
      (home-page "https://github.com/OpenRCT2/OpenRCT2")
      (synopsis "Free software re-implementation of RollerCoaster Tycoon 2")
      (description "OpenRCT2 is a free software re-implementation of
@@@ -3644,8 -3649,7 +3644,8 @@@ throwing people around in pseudo-random
           (add-after 'set-paths 'set-sdl-paths
             (lambda* (#:key inputs #:allow-other-keys)
               (setenv "CPATH"
 -                     (string-append (assoc-ref inputs "sdl-union")
 +                     (string-append (getenv "CPATH") ":"
 +                                    (assoc-ref inputs "sdl-union")
                                      "/include/SDL"))))
           (replace 'configure
             (lambda* (#:key inputs outputs #:allow-other-keys)
@@@ -4407,7 -4411,7 +4407,7 @@@ fish.  The whole game is accompanied b
  (define-public crawl
    (package
      (name "crawl")
-     (version "0.22.1")
+     (version "0.23.1")
      (source
       (origin
         (method url-fetch)
                              version "-nodeps.tar.xz")))
         (sha256
          (base32
-          "1qc90wwbxvjzqq66n8kfr0a2ny7sfvv2n84si67jiv2887d0ws6k"))
+          "0c3mx49kpz6i2xvv2dwsaj9s7mm4mif1h2qdkfyi80lv2j1ay51h"))
         (patches (search-patches "crawl-upgrade-saves.patch"))))
      (build-system gnu-build-system)
      (inputs
       `(("bison" ,bison)
         ("flex" ,flex)
         ("perl" ,perl)
+        ("python" ,python-wrapper)
+        ("python-pyyaml" ,python-pyyaml)
         ("pkg-config" ,pkg-config)))
      (arguments
       '(#:make-flags
                 "-Csource"))
         #:phases
         (modify-phases %standard-phases
+          (add-after 'unpack 'patch-flags
+            (lambda _
+              (substitute* "source/Makefile"
+                (("-mfpmath=sse -msse2") ""))
+              #t))
+          (add-after 'unpack 'find-SDL-image
+            (lambda _
+              (substitute* "source/windowmanager-sdl.cc"
+                (("SDL_image.h") "SDL2/SDL_image.h"))
+              #t))
           (delete 'configure)
-          (delete 'check)
-          ;; Test cases require the source to be rebuild with the -DDEBUG define.
-          ;; Do 'check before 'build to avoid a 3rd build on make install.
-          (add-before 'build 'check
+          (replace 'check
             (lambda* (#:key inputs outputs make-flags #:allow-other-keys)
               (setenv "HOME" (getcwd))
               ;; Fake a terminal for the test cases.
               (setenv "TERM" "xterm-256color")
-              (apply invoke "make" "debug" "test"
+              ;; Run the tests that don't require a debug build.
+              (apply invoke "make" "nondebugtest"
                      (format #f "-j~d" (parallel-job-count))
                      ;; Force command line build for test cases.
                      (append make-flags '("GAME=crawl" "TILES="))))))))
@@@ -6104,3 -6118,161 +6114,161 @@@ to download and install them in @file{$
      (home-page "https://www.stepmania.com")
      (license license:expat)))
  
+ (define-public btanks
+   (package
+     (name "btanks")
+     (version "0.9.8083")
+     (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://sourceforge/btanks/btanks-source/"
+                            "btanks-" version ".tar.bz2"))
+        (sha256
+         (base32
+          "0ha35kxc8xlbg74wsrbapfgxvcrwy6psjkqi7c6adxs55dmcxliz"))))
+     (build-system scons-build-system)
+     (arguments
+      `(#:tests? #f                      ; there are none
+        #:scons ,scons-python2
+        #:scons-flags (list (string-append "prefix=" (assoc-ref %outputs "out")))
+        #:phases
+        (modify-phases %standard-phases
+          (add-after 'unpack 'replace-removed-scons-syntax
+            (lambda _
+              (substitute* "SConstruct"
+                (("Options") "Variables")
+                (("opts.Add\\(BoolOption.*") "opts.Add('gcc_visibility', 'gcc visibility', 'true')")
+                (("opts.Add\\(EnumOption.*") "opts.Add('mode', 'build mode', 'release')"))
+              #t))
+          (add-after 'set-paths 'set-sdl-paths
+            (lambda* (#:key inputs #:allow-other-keys)
+              (setenv "CPATH"
+                      (string-append (assoc-ref inputs "sdl")
+                                     "/include/SDL"))
+              #t))
+          (add-after 'unpack 'fix-compilation-errors
+            (lambda _
+              (substitute* "mrt/base_file.h"
+                (("#include <string>" m)
+                 (string-append m "\n#include <sys/types.h>")))
+              (substitute* '("engine/sl08/sl08.h"
+                             "engine/sl08/sl08.py")
+                (("signal = NULL") "signal = 0")
+                (("object\\(NULL\\)") "object(0)")
+                (("func\\(NULL\\)") "func(0)")
+                ((" connect\\(signal_ref\\)")
+                 " this->connect(signal_ref)"))
+              (substitute* "math/range_list.h"
+                ((" lower_bound\\(value\\)")
+                 " this->lower_bound(value)")
+                (("    erase\\(i\\)")
+                 "     this->erase(i)"))
+              (substitute* "clunk/source.cpp"
+                (("using namespace clunk" m)
+                 (string-append "# define pow10f(x) exp10f(x)\n" m)))
+              #t))
+          (add-after 'unpack 'find-lua
+            (lambda _
+              (substitute* "engine/SConscript"
+                (("lua5.1") "lua-5.1")
+                (("bt_libs.append\\(lua\\)")
+                 "bt_libs.append(\"lua\")"))
+              #t)))))
+     (inputs
+      `(("expat" ,expat)
+        ("glu" ,glu)
+        ("libsmpeg" ,libsmpeg-with-sdl1)
+        ("libvorbis" ,libvorbis)
+        ("lua51" ,lua-5.1)
+        ("sdl" ,(sdl-union (list sdl
+                                 sdl-mixer
+                                 sdl-image
+                                 sdl-ttf)))
+        ("zlib" ,zlib)))
+     (native-inputs
+      `(("pkg-config" ,pkg-config)
+        ("zip" ,zip)))
+     (home-page "http://btanks.sourceforge.net")
+     (synopsis "Multiplayer tank battle game")
+     (description "Battle Tanks is a funny battle game, where you can choose
+ one of three vehicles and eliminate your enemy using the whole arsenal of
+ weapons.  It has original cartoon-like graphics and cool music, it’s fun and
+ dynamic, it has several network modes for deathmatch and cooperative.")
+     ;; Some parts (e.g. mrt/b64.cpp) are LGPLv2.1+, but the whole package is
+     ;; released under GPLv2 or later.  It comes with extra exceptions for the
+     ;; developers.
+     (license (list license:gpl2+ license:lgpl2.1+))))
+ (define-public slingshot
+   (package
+     (name "slingshot")
+     (version "0.9")
+     (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+              (url "https://github.com/ryanakca/slingshot.git")
+              (commit version)))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "19m8b6nsi786bc6gmkp185mwri3r5y249gjmqd5qsc23nnfhgrs1"))))
+     (build-system python-build-system)
+     (arguments
+      `(#:python ,python-2))
+     (inputs
+      `(("python-pygame" ,python2-pygame)))
+     (home-page "https://github.com/ryanakca/slingshot")
+     (synopsis "Simple 2D shooting strategy game set in space")
+     (description "Slingshot is a two-dimensional strategy game where two
+ players attempt to shoot one another through a section of space populated by
+ planets.  The main feature of the game is that the shots, once fired, are
+ affected by the gravity of the planets.")
+     (license license:gpl2+)))
+ (define-public 4dtris
+   (package
+     (name "4dtris")
+     (version "0.4.3")
+     (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "https://launchpad.net/4dtris/"
+                            (version-major+minor version)
+                            "/" version "/+download/4dtris_"
+                            version ".orig.tar.gz"))
+        (sha256
+         (base32
+          "1nfkhcm0l89jyw8yr65na97g4l385zhjf7whkyg47c3v5sdqq2g7"))))
+     (build-system gnu-build-system)
+     (arguments
+      `(#:phases
+        (modify-phases %standard-phases
+          (add-after 'unpack 'fix-install-directories
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let ((out (assoc-ref outputs "out")))
+                (substitute* "Makefile.in"
+                  (("bindir = /usr/games")
+                   (string-append "bindir = " out "/bin"))
+                  (("/usr/share/applications")
+                   (string-append out "/share/applications"))
+                  (("/usr/share/games/4dtris")
+                   (string-append out "/share/4dtris"))))
+              #t))
+          (add-after 'set-paths 'set-sdl-paths
+            (lambda* (#:key inputs #:allow-other-keys)
+              (setenv "CPATH"
+                      (string-append (assoc-ref inputs "sdl")
+                                     "/include/SDL"))
+              #t)))))
+     (inputs
+      `(("fontconfig" ,fontconfig)
+        ("freeglut" ,freeglut)
+        ("sdl" ,(sdl-union (list sdl sdl-ttf)))))
+     (home-page "https://launchpad.net/4dtris/")
+     (synopsis "4D Tetris")
+     (description "4D-TRIS is an alteration of the well-known Tetris game.  The
+ game field is extended to 4D space, which has to filled up by the gamer with
+ 4D hyper cubes.")
+     (license license:gpl3)))
diff --combined gnu/packages/glib.scm
@@@ -9,7 -9,6 +9,7 @@@
  ;;; Copyright © 2017 Petter <petter@mykolab.ch>
  ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
  ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
 +;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
  ;;;
  ;;; This file is part of GNU Guix.
  ;;;
@@@ -34,8 -33,6 +34,8 @@@
    #:use-module (gnu packages bison)
    #:use-module (gnu packages check)
    #:use-module (gnu packages compression)
 +  #:use-module (gnu packages docbook)
 +  #:use-module (gnu packages documentation)
    #:use-module (gnu packages enlightenment)
    #:use-module (gnu packages file)
    #:use-module (gnu packages flex)
                              "sysconfdir=/tmp/dummy"
                              "install"))))))
      (native-inputs
 -     `(("pkg-config" ,pkg-config)))
 +     `(("pkg-config" ,pkg-config)
 +       ;; Dependencies to generate the doc.
 +       ("docbook-xml" ,docbook-xml-4.4)
 +       ("docbook-xsl" ,docbook-xsl)
 +       ("doxygen" ,doxygen)
 +       ("xmlto" ,xmlto)
 +       ("libxml2" ,libxml2)             ;for XML_CATALOG_FILES
 +       ("libxslt" ,libxslt)
 +       ("yelp-tools" ,yelp-tools)))
      (inputs
       `(("expat" ,expat)
 -
         ;; Add a dependency on libx11 so that 'dbus-launch' has support for
         ;; '--autolaunch'.
         ("libx11" ,libx11)))
 -
 +    (outputs '("out" "doc"))            ;22 MiB of HTML doc
      (home-page "https://www.freedesktop.org/wiki/Software/dbus/")
      (synopsis "Message bus for inter-process communication (IPC)")
      (description
@@@ -519,7 -509,7 +519,7 @@@ has an ease of use unmatched by other C
  (define glibmm
    (package
      (name "glibmm")
-     (version "2.54.1")
+     (version "2.56.0")
      (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/glibmm/"
                                   "/glibmm-" version ".tar.xz"))
               (sha256
                (base32
-                "0jkapw18icz59cmlmsl00nwwz0wh291kb4hc9z9hxmq45drqrhkw"))))
+                "1abrkqhca5p8n6ly3vp1232rny03s7lrd8f8iz2m2m141nxgqx3f"))))
      (build-system gnu-build-system)
      (arguments
       `(;; XXX: Some tests uses C++14 features.  Remove this when the default
diff --combined gnu/packages/gnome.scm
@@@ -461,7 -461,7 +461,7 @@@ commonly used macros."
  (define-public gnome-desktop
    (package
      (name "gnome-desktop")
-     (version "3.24.2")
+     (version "3.28.2")
      (source
       (origin
        (method url-fetch)
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0pkq5l1llw8gkjhfq6y58iyj6wac8dh1mc3rzjzn6nd7lrkdx8cg"))))
+         "0c439hhpfd9axmv4af6fzhibksh69pnn2nnbghbbqqbwy6zqfl30"))))
      (build-system gnu-build-system)
      (arguments
       '(#:phases
       `(("gdk-pixbuf" ,gdk-pixbuf)
         ("glib" ,glib)
         ("iso-codes" ,iso-codes)
+        ("libseccomp" ,libseccomp)
         ("libx11" ,libx11)
         ("libxext" ,libxext)
         ("libxkbfile" ,libxkbfile)
@@@ -586,36 -587,43 +587,43 @@@ and keep up to date translations of doc
  (define-public gcr
    (package
      (name "gcr")
-     (version "3.20.0")
+     (version "3.28.0")
      (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version)  "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0ydk9dzxx6snxza7j5ps8x932hbr3x1b8hhcaqjq4w4admi2qmwh"))
-              (patches
-               (search-patches "gcr-disable-failing-tests.patch"
-                               "gcr-fix-collection-tests-to-work-with-gpg-21.patch"))))
+               (method url-fetch)
+               (uri (string-append "mirror://gnome/sources/" name "/"
+                                   (version-major+minor version)  "/"
+                                   name "-" version ".tar.xz"))
+               (sha256
+                (base32
+                 "02xgky22xgvhgd525khqh64l5i21ca839fj9jzaqdi3yvb8pbq8m"))))
      (build-system gnu-build-system)
      (arguments
-      '(#:phases (modify-phases %standard-phases
-                   (add-before
-                    'check 'pre-check
-                    (lambda* (#:key inputs #:allow-other-keys)
-                      (substitute* "build/tap-driver"
-                        (("/usr/bin/env python") (which "python"))))))))
+      '(#:phases
+        (modify-phases %standard-phases
+          ;; These fail because /var/lib/dbus/machine-id is not present in the
+          ;; build environment.
+          (add-after 'unpack 'disable-failing-tests
+            (lambda _
+              (substitute* "gcr/test-system-prompt.c"
+                (("g_test_add") "//")
+                (("return.*") "return 0;"))
+              #t))
+          (add-before 'check 'pre-check
+            (lambda _
+              ;; Some tests expect to write to $HOME.
+              (setenv "HOME" "/tmp")
+              #t)))))
      (inputs
       `(("dbus" ,dbus)
-        ("gnupg" ,gnupg) ;called as a child process during tests
+        ("gnupg" ,gnupg)                ;called as a child process during tests
         ("libgcrypt" ,libgcrypt)))
      (native-inputs
-      `(("python" ,python-2) ;for tests
+      `(("python" ,python-2)             ;for tests
         ("pkg-config" ,pkg-config)
         ("glib" ,glib "bin")
         ("gobject-introspection" ,gobject-introspection)
         ("intltool" ,intltool)
+        ("libxml2" ,libxml2)
         ("xsltproc" ,libxslt)))
      ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
      (propagated-inputs
@@@ -664,7 -672,7 +672,7 @@@ GNOME Desktop."
  (define-public gnome-keyring
    (package
      (name "gnome-keyring")
-     (version "3.20.1")
+     (version "3.28.2")
      (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "134ci3mn6jjap59z3lrvyiip7zf2nlw5xvanr44yajs57xr4x5lp"))))
+                "0sk4las4ji8wv9nx8mldzqccmpmkvvr9pdwv9imj26r10xyin5w1"))))
      (build-system gnu-build-system)
      (arguments
       `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
                         (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
         #:phases
         (modify-phases %standard-phases
-          (add-before
-           'check 'pre-check
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "build/tap-driver"
-               (("/usr/bin/env python") (which "python")))))
+          (add-after 'unpack 'fix-/bin/sh-reference
+            (lambda _
+              (substitute* "po/Makefile.in.in"
+                (("/bin/sh") (which "sh")))
+              #t))
           (add-before
            'configure 'fix-docbook
            (lambda* (#:key inputs #:allow-other-keys)
              (setenv "XML_CATALOG_FILES"
                      (string-append (assoc-ref inputs "docbook-xml")
                                     "/xml/dtd/docbook/catalog.xml"))
              ;; Rerun the whole thing to avoid version mismatch ("This is
              ;; Automake 1.15.1, but the definition used by this
              ;; AM_INIT_AUTOMAKE comes from Automake 1.15.").  Note: we don't
      (inputs
       `(("libgcrypt" ,libgcrypt)
         ("linux-pam" ,linux-pam)
+        ("openssh" ,openssh)
         ("dbus" ,dbus)
         ("gcr" ,gcr)))
      (native-inputs
@@@ -813,7 -821,7 +821,7 @@@ on the GNOME Desktop with a single simp
  (define-public gsettings-desktop-schemas
    (package
      (name "gsettings-desktop-schemas")
-     (version "3.24.1")
+     (version "3.28.0")
      (source
       (origin
        (method url-fetch)
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "19zfqy58missq5cck13ip8j824hb9whqg2c4cr6hgrlxkwqgm8vn"))))
+         "0rwidacwrxlc54x90h9g3wx2zlisc4vm49vmxi15azmpj1vwvd2c"))))
      (build-system gnu-build-system)
      (inputs
       `(("glib" ,glib)))
@@@ -911,7 -919,7 +919,7 @@@ GNOME and KDE desktops to the icon name
  (define-public adwaita-icon-theme
    (package (inherit gnome-icon-theme)
      (name "adwaita-icon-theme")
-     (version "3.26.1")
+     (version "3.28.0")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "17fpahgh5dyckgz7rwqvzgnhx53cx9kr2xw0szprc6bnqy977fi8"))))
+                 "0l114ildlb3lz3xymfxxi0wpr2x21rd3cg8slb8jyxynzwfqrbks"))))
      (native-inputs
       `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
  
@@@ -1192,7 -1200,7 +1200,7 @@@ API add-ons to make GTK+ widgets OpenGL
  (define-public glade3
    (package
      (name "glade")
-     (version "3.20.2")
+     (version "3.22.1")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "1vdbqqvf6nrkqml4awrq4pzfwsm5v39wdzg943nys6lmf1am9l87"))))
+                 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
      (build-system glib-or-gtk-build-system)
      (arguments
       `(#:tests? #f ; needs X, GL, and software rendering
@@@ -1313,7 -1321,10 +1321,10 @@@ dealing with different structured file 
                  "1h3qnqhr0l7pd2bxg69ki6ckl4srdwgr471dpp4jq9i4784hp0v6"))))
      (build-system gnu-build-system)
      (arguments
-      `(#:make-flags '("CC=gcc")
+      `(#:configure-flags
+        (list "--disable-static"
+              "--enable-vala") ; needed for e.g. gnome-mines
+        #:make-flags '("CC=gcc")
         #:phases
         (modify-phases %standard-phases
           ;; Don't patch anything in vendor/ to avoid having to recompute
         ;; This is the minimum supported Rust version in Librsvg 2.44.
         ("rust" ,rust-1.27)
         ("cargo" ,rust-1.27 "cargo")
+        ("vala" ,vala)
         ("glib" ,glib "bin")                               ; glib-mkenums, etc.
         ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
      (inputs
@@@ -2754,7 -2766,7 +2766,7 @@@ and other secrets.  It communicates wit
  (define-public five-or-more
    (package
      (name "five-or-more")
-     (version "3.26.0")
+     (version "3.28.0")
      (source
       (origin
         (method url-fetch)
                             name "-" version ".tar.xz"))
         (sha256
          (base32
-          "0wkp08xsqr9p9cgdfghi424diajs016b2h4bsfcr5y9xc3rgf93w"))))
+          "1fy4a7qdjqvabm0cl45d6xlx6hy4paxvm0b2paifff73bl250d5c"))))
      (build-system glib-or-gtk-build-system)
      (native-inputs
       `(("pkg-config" ,pkg-config)
  (define-public gnome-mines
    (package
      (name "gnome-mines")
-     (version "3.26.0")
+     (version "3.28.0")
      (source
       (origin
         (method url-fetch)
                             name "-" version ".tar.xz"))
         (sha256
          (base32
-          "1sfxdvns8nppdagnhpd9vd7n77sk5rdji3kdqnc78c2p1npiw11b"))))
-     (build-system glib-or-gtk-build-system)
+          "16w55hqaxipcv870n9gpn6qiywbqbyg7bjshaa02r75ias8dfxvf"))))
+     (build-system meson-build-system)
      (arguments
-      '(#:phases
+      `(#:phases
         (modify-phases %standard-phases
-          (add-before 'configure 'patch-/bin/true
-                      (lambda _
-                        (substitute* "configure"
-                          (("/bin/true") (which "true"))))))))
+          (delete 'bootstrap))))
      (native-inputs
-      `(("pkg-config" ,pkg-config)
+      `(("glib:bin" ,glib "bin")       ; for glib-compile-resources
+        ("pkg-config" ,pkg-config)
         ("desktop-file-utils" ,desktop-file-utils)
         ("intltool" ,intltool)
         ("itstool" ,itstool)
-        ("xmllint" ,libxml2)))
+        ("vala" ,vala)
+        ("yelp" ,yelp)
+        ("appstream-glib" ,appstream-glib)))
      (inputs
       `(("gtk+" ,gtk+)
         ("libgnome-games-support" ,libgnome-games-support)
@@@ -3020,7 -3032,7 +3032,7 @@@ permission from user."
  (define-public geocode-glib
    (package
      (name "geocode-glib")
-     (version "3.20.1")
+     (version "3.26.0")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/geocode-glib/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "18iphsx3bybw7lssbb7rxc1rrnsc8vxai521zkqc535zr8rci7v6"))))
-     (build-system gnu-build-system)
+                 "1vmydxs5xizcmaxpkfrq75xpj6pqrpdjizxyb30m00h54yqqch7a"))))
+     (build-system meson-build-system)
      (arguments
-      `(;; The tests want to write to $HOME/.cache/geocode-glib, which doesn't
-        ;; work for the builder.  Punt.
-        #:tests? #f))
+      `(#:phases
+        (modify-phases %standard-phases
+          ;; The tests require a bunch of locales.
+          (add-before 'check 'set-locales
+            (lambda* (#:key inputs #:allow-other-keys)
+              (setenv "GUIX_LOCPATH"
+                      (string-append (assoc-ref inputs "glibc-locales")
+                                     "/lib/locale"))
+              #t)))))
      (native-inputs
       `(("glib:bin" ,glib "bin") ; for glib-mkenums
+        ("glibc-locales" ,glibc-locales) ; for tests
+        ("gettext" ,gettext-minimal)
         ("gobject-introspection" ,gobject-introspection)
+        ("gtk-doc" ,gtk-doc)
         ("pkg-config" ,pkg-config)
         ("json-glib" ,json-glib)))
      (propagated-inputs
@@@ -3105,7 -3126,7 +3126,7 @@@ service via the system message bus."
  (define-public libgweather
    (package
      (name "libgweather")
-     (version "3.26.1")
+     (version "3.28.2")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "1f64ix7acj0j0qvxwxaazii2bhsjgh5ang1kw14fkg25ndq899zw"))))
-     (build-system gnu-build-system)
+                 "0xfy5ghwvnz2g9074dy6512m4z2pv66pmja14vhi9imgacbfh708"))))
+     (build-system meson-build-system)
      (arguments
-      `(#:configure-flags
-        `(,(string-append "--with-zoneinfo-dir="
+      `(#:tests? #f ; one of two tests requires network access
+        #:configure-flags
+        `(,(string-append "-Dzoneinfo_dir="
                           (assoc-ref %build-inputs "tzdata")
-                          "/share/zoneinfo"))
-        #:phases
-        (modify-phases %standard-phases
-          (add-before 'check 'pre-check
-            (lambda* (#:key inputs #:allow-other-keys)
-              (substitute* "data/check-timezones.sh"
-                (("/usr/share/zoneinfo/zone.tab")
-                 (string-append (assoc-ref inputs "tzdata")
-                                "/share/zoneinfo/zone.tab")))
-              #t))
-          (replace 'install
-            (lambda _
-              (zero?
-               (system* "make"
-                        ;; Install vala bindings into $out.
-                        (string-append "vapidir=" %output
-                                       "/share/vala/vapi")
-                        "install")))))))
+                          "/share/zoneinfo"))))
      (native-inputs
       `(("glib:bin" ,glib "bin") ; for glib-mkenums
         ("gobject-introspection" ,gobject-introspection)
       `(("gtk+" ,gtk+)
         ("gdk-pixbuf" ,gdk-pixbuf)
         ("libxml2" ,libxml2)
-        ("libsoup" ,libsoup)))
-     (inputs
-      `(("tzdata" ,tzdata)
+        ("libsoup" ,libsoup)
         ("geocode-glib" ,geocode-glib)))
+     (inputs
+      `(("tzdata" ,tzdata)))
      (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
      (synopsis "Location, time zone, and weather library for GNOME")
      (description
@@@ -3163,7 -3168,7 +3168,7 @@@ services for numerous locations."
  (define-public gnome-settings-daemon
    (package
      (name "gnome-settings-daemon")
-     (version "3.24.3")
+     (version "3.28.1")
      (source
       (origin
         (method url-fetch)
                             name "-" version ".tar.xz"))
         (sha256
          (base32
-          "14w5jhpq02mbcxvn41qcj3cjfqdr3sgzl96c6glwpdrjphw61i38"))))
-     (build-system glib-or-gtk-build-system)
+          "0z9dip9p0iav646cmxisii5sbkdr9hmaklc5fzvschpbjkhphksr"))))
+     (build-system meson-build-system)
      (arguments
-      `(;; Color management test can't reach the colord system service.
+      `(#:glib-or-gtk? #t
+        #:configure-flags
+        (list (string-append "-Dudev_dir="
+                             (assoc-ref %outputs "out")
+                             "/lib/udev/rules.d/")
+              ;; Otherwise, the RUNPATH will lack the final path component.
+              (string-append "-Dc_link_args=-Wl,-rpath="
+                             (assoc-ref %outputs "out")
+                             "/lib/gnome-settings-daemon-3.0"))
+        ;; Color management test can't reach the colord system service.
         #:tests? #f))
      (native-inputs
-      `(("pkg-config" ,pkg-config)
+      `(("glib:bin" ,glib "bin")     ; for glib-mkenums
+        ("pkg-config" ,pkg-config)
         ("intltool" ,intltool)
         ("xsltproc" ,libxslt)
         ("libxml2" ,libxml2)                       ;for XML_CATALOG_FILES
         ("docbook-xml" ,docbook-xml-4.2)
         ("docbook-xsl" ,docbook-xsl)))
      (inputs
-      `(("colord" ,colord)
+      `(("alsa-lib" ,alsa-lib)
+        ("colord" ,colord)
         ("libgudev" ,libgudev)
         ("upower" ,upower)
         ("polkit" ,polkit)
         ("libwacom" ,libwacom)
         ("librsvg" ,librsvg)
         ("xf86-input-wacom" ,xf86-input-wacom)
+        ("wayland" ,wayland)
         ("network-manager" ,network-manager)))
      (home-page "https://www.gnome.org")
      (synopsis "GNOME settings daemon")
@@@ -3218,7 -3235,7 +3235,7 @@@ settings, themes, mouse settings, and s
  (define-public totem-pl-parser
   (package
     (name "totem-pl-parser")
-    (version "3.10.8")
+    (version "3.26.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
                                  "totem-pl-parser-" version ".tar.xz"))
              (sha256
               (base32
-               "0ayxg0gfs5h5jhr811ja5hxlhryklzp6jlal2ach9wym2c3hmigz"))))
-    (build-system gnu-build-system)
+               "0k5pnka907invgds48d73c1xx1a366v5dcld3gr2l1dgmjwc9qka"))))
+    (build-system meson-build-system)
     (arguments
      ;; FIXME: Tests require gvfs.
      `(#:tests? #f))
     (propagated-inputs
      `(("glib" ,glib)
        ("gmime" ,gmime)
+       ("libarchive" ,libarchive)
+       ("libgcrypt" ,libgcrypt)
        ("libxml2" ,libxml2)))
     (inputs
-     `(("libarchive" ,libarchive)
-       ("libgcrypt" ,libgcrypt)
-       ("nettle" ,nettle)
+     `(("nettle" ,nettle)
        ("libsoup" ,libsoup)))
     (home-page "https://projects.gnome.org/totem")
     (synopsis "Library to parse and save media playlists for GNOME")
@@@ -3290,7 -3307,7 +3307,7 @@@ which are easy to play with the aid of 
  (define-public devhelp
    (package
      (name "devhelp")
-     (version "3.26.0")
+     (version "3.28.1")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "0f4fmkqzn95zmc2paljma33fkj74qj1m6n23qrc5hfwmgx7p3wkb"))))
+                 "08a8xizjqz68k30zd37r7g516azhan9bbrjsvv10hjd5dg3f476s"))))
      (build-system glib-or-gtk-build-system)
      (native-inputs
       `(("intltool" ,intltool)
+        ("itstool" ,itstool)
         ("pkg-config" ,pkg-config)))
      (inputs
       `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
@@@ -3572,7 -3590,7 +3590,7 @@@ queries upon that data."
  (define-public libgnome-games-support
    (package
      (name "libgnome-games-support")
-     (version "1.2.3")
+     (version "1.4.1")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "1vwad7kqy7yd6wqyr71nq0blh7m53r3lz6ya16dmh942kd0w48v1"))))
+                 "1j7lfcnc29lgn8ppn13wkn9w2y1n3lsapagwp91zh3bf0h2h4hv1"))))
      (build-system gnu-build-system)
      (arguments
       '(#:phases
@@@ -3951,7 -3969,7 +3969,7 @@@ supports playlists, song ratings, and a
  (define-public eog
   (package
     (name "eog")
-    (version "3.26.2")
+    (version "3.28.2")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/" name "/"
                                  name "-" version ".tar.xz"))
              (sha256
               (base32
-               "1b87i31mxzayd3knn9zg00y816d093qrbyx556w8a03xz96ksgmm"))))
-    (build-system glib-or-gtk-build-system)
+               "1gasrfqi7qrzdq1idh29r0n6ikkqjb6pbp7a8k5krfz5hkhyfin0"))))
+    (build-system meson-build-system)
     (arguments
-     `(#:phases
+     `(#:configure-flags
+       ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
+       (list (string-append "-Dc_link_args=-Wl,-rpath="
+                            (assoc-ref %outputs "out") "/lib/eog"))
+       #:phases
        (modify-phases %standard-phases
-         (add-after
-          'install 'wrap-eog
-          (lambda* (#:key outputs #:allow-other-keys)
-            (let ((out               (assoc-ref outputs "out"))
-                  (gi-typelib-path   (getenv "GI_TYPELIB_PATH")))
-              (wrap-program (string-append out "/bin/eog")
-                `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
-            #t)))))
+         (add-after 'install 'wrap-eog
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out               (assoc-ref outputs "out"))
+                   (gi-typelib-path   (getenv "GI_TYPELIB_PATH")))
+               (wrap-program (string-append out "/bin/eog")
+                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
+             #t)))))
     (propagated-inputs
      `(("dconf" ,dconf)))
     (native-inputs
      `(("intltool" ,intltool)
        ("itstool" ,itstool)
        ("glib" ,glib "bin")
+       ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
        ("gobject-introspection" ,gobject-introspection)
        ("pkg-config" ,pkg-config)
        ("xmllint" ,libxml2)))
@@@ -4047,15 -4069,19 +4069,19 @@@ side panel
  (define-public libgudev
    (package
      (name "libgudev")
-     (version "230")
+     (version "232")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    version "/" name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "063w6j35n0i0ssmv58kivc1mw4070z6fzb83hi4xfrhcxnn7zrx2"))))
+                 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
      (build-system gnu-build-system)
+     (arguments
+      '(#:configure-flags
+        ;; umockdev depends on libgudev.
+        (list "--disable-umockdev")))
      (native-inputs
       `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
         ("gobject-introspection" ,gobject-introspection)
@@@ -4074,7 -4100,7 +4100,7 @@@ part of udev-extras, then udev, then sy
  (define-public gvfs
    (package
      (name "gvfs")
-     (version "1.32.1")
+     (version "1.36.2")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "1pkahczniar1yyas7awcqpkb4ca8l7qa4msn6mr29m89mgnwkdnh"))))
+                 "1xq105596sk9yram5a143b369wpaiiwc9gz86n0j1kfr7nipkqn4"))))
      (build-system gnu-build-system)
      (arguments
-      '(#:tests? #f)) ; XXX: requiring `pidof'
+      '(#:tests? #f ; XXX: requiring `pidof'
+        #:phases
+        (modify-phases %standard-phases
+          (add-after 'unpack 'remove-broken-autogen-script
+            (lambda _ (delete-file "autogen.sh") #t)))))
      (native-inputs
       `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
-        ("intltool" ,intltool)
+        ("autoconf" ,autoconf)
+        ("automake" ,automake)
+        ("gettext" ,gettext-minimal)
+        ("gtk-doc" ,gtk-doc)
+        ("libtool" ,libtool)
         ("pkg-config" ,pkg-config)
         ("xsltproc" ,libxslt)))
      (inputs
         ("libgcrypt" ,libgcrypt)
         ("libgphoto2" ,libgphoto2)
         ("libgudev" ,libgudev)
+        ("libimobiledevice" ,libimobiledevice)
         ("libmtp" ,libmtp)
         ("libsecret" ,libsecret)
         ("libsmbclient" ,samba)
@@@ -4234,6 -4269,7 +4269,6 @@@ work and the interface is well tested."
                      ;; These libraries must be on LD_LIBRARY_PATH.
                      (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
                              "atk" "gtk+" "gsettings-desktop-schemas"
 -                            "gcc:lib" ; needed b/c webkitgtk is built with gcc-7
                              "gobject-introspection"))
                      (path (string-join
                             (map (lambda (lib)
                   `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
               #t)))))
      (native-inputs
 -     `(("gcc:lib" ,gcc-7 "lib") ; needed because webkitgtk is built with gcc-7
 -       ("intltool" ,intltool)
 +     `(("intltool" ,intltool)
         ("itstool" ,itstool)
         ("pkg-config" ,pkg-config)
         ("python" ,python)
         ("libsecret" ,libsecret)
         ("gtkspell3" ,gtkspell3)
         ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
 -       ("webkitgtk" ,webkitgtk-2.22)))
 +       ("webkitgtk" ,webkitgtk)))
      (home-page "https://wiki.gnome.org/Apps/Eolie")
      (synopsis "Web browser for GNOME")
      (description
@@@ -4305,6 -4342,7 +4340,6 @@@ a secret password store, an adblocker, 
       `(("dconf" ,dconf)))
      (native-inputs
       `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
 -       ("gcc" ,gcc-7)  ; needed because webkitgtk-2.22 is compiled with gcc-7
         ("glib:bin" ,glib "bin") ; for glib-mkenums
         ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
         ("intltool" ,intltool)
         ("libxslt" ,libxslt)
         ("nettle" ,nettle) ; for hogweed
         ("sqlite" ,sqlite)
 -       ("webkitgtk" ,webkitgtk-2.22)))
 +       ("webkitgtk" ,webkitgtk)))
      (home-page "https://wiki.gnome.org/Apps/Web")
      (synopsis "GNOME web browser")
      (description
@@@ -4394,7 -4432,7 +4429,7 @@@ of running programs and invoke methods 
  (define-public yelp-xsl
    (package
      (name "yelp-xsl")
-     (version "3.20.1")
+     (version "3.28.0")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "183vz4aw8fcmw8k8q7r4zrm1p76gwg2cca1fsdrkaiyabng88qfw"))))
+                 "14rznm1qpsnmkwksnkd5j7zplakl01kvrcw0fdmd5gdc65xz9kcc"))))
      (build-system gnu-build-system)
      (native-inputs
       `(("intltool" ,intltool)
@@@ -4418,7 -4456,7 +4453,7 @@@ to format Docbook and Mallard documents
  (define-public yelp
    (package
      (name "yelp")
-     (version "3.22.0")
+     (version "3.28.1")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "13kpi0qmnfx2xwizyhmf5i5xaw9ckcn1k7v0289p7als4dybf5l6"))))
+                 "033w5qnhm495pnvscnb3k2dagzgq4fsnzcrh0k2rgr10mw2mv2p8"))))
      (build-system glib-or-gtk-build-system)
      (native-inputs
       `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
@@@ -4452,7 -4490,7 +4487,7 @@@ freedesktop.org help system specificati
  (define-public yelp-tools
    (package
      (name "yelp-tools")
-     (version "3.18.0")
+     (version "3.28.0")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "0ck9f78c1xka8a823bd7w1k0gdn4k19zvaj7viy2d5r3h1gxdhf6"))))
+                 "1b61dmlb1sd50fgq6zgnkcpx2s1py33q0x9cx67fzpsr4gmgxnw2"))))
      (build-system gnu-build-system)
      (native-inputs
       `(("pkg-config" ,pkg-config)))
@@@ -4597,7 -4635,7 +4632,7 @@@ share them with others via social netwo
  (define-public file-roller
    (package
      (name "file-roller")
-     (version "3.26.2")
+     (version "3.28.0")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "19d8pc5z2xzhnicgaysxmwx3ghwzl4cw8kygd6nsw69g3j77nrry"))))
-     (build-system glib-or-gtk-build-system)
-     (arguments
-      '(#:phases
-        (modify-phases %standard-phases
-          (add-before 'install 'skip-gtk-update-icon-cache
-            (lambda _
-              ;; Don't create 'icon-theme.cache'
-              (substitute* (find-files "data" "^Makefile$")
-                (("gtk-update-icon-cache") (which "true")))
-              #t)))))
+                 "15pn2m80x45bzibig4zrqybnbr0n1f9wpqx7f2p6difldns3jwf1"))))
+     (build-system meson-build-system)
      (native-inputs
-      `(("intltool" ,intltool)
-        ("pkg-config" ,pkg-config)))
+      `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
+        ("intltool" ,intltool)
+        ("pkg-config" ,pkg-config)
+        ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
+        ("glib:bin" ,glib "bin")))
      ;; TODO: Add libnautilus.
      (inputs
       `(("gtk+" ,gtk+)
@@@ -4639,7 -4671,7 +4668,7 @@@ such as gzip tarballs."
  (define-public gnome-session
    (package
      (name "gnome-session")
-     (version "3.24.1")
+     (version "3.28.1")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "1vkfjsgks9czajivcg3y1krzlnilv2cnzzbdc7wrasrriqilji1v"))))
+                 "14nmbirgrp2nm16khbz109saqdlinlbrlhjnbjydpnrlimfgg4xq"))))
      (arguments
-      '(#:phases
+      '(#:glib-or-gtk? #t
+        #:phases
         (modify-phases %standard-phases
           (add-before 'configure 'pre-configure
             (lambda* (#:key outputs #:allow-other-keys)
               ;; Use elogind instead of systemd.
-              (substitute* "configure"
-                (("libsystemd-login >= 183 libsystemd-daemon libsystemd-journal")
-                 "libelogind")
-                (("systemd") "elogind"))
+              (substitute* "meson.build"
+                (("libsystemd-login") "libelogind")
+                (("and libsystemd_daemon_dep.found.*") ","))
               (substitute* "gnome-session/gsm-systemd.c"
                 (("#include <systemd/sd-login.h>")
                  "#include <elogind/sd-login.h>"))
-              ;; Remove uses of the systemd journal.
-              (substitute* "gnome-session/main.c"
-                (("#ifdef HAVE_SYSTEMD") "#if 0"))
-              (substitute* "gnome-session/gsm-manager.c"
-                (("#ifdef HAVE_SYSTEMD") "#if 0"))
+              ;; Remove uses of the systemd daemon.
               (substitute* "gnome-session/gsm-autostart-app.c"
                 (("#ifdef HAVE_SYSTEMD") "#if 0"))
               #t))
                 #t))))
  
         #:configure-flags
-        '("--enable-elogind")))
-     (build-system glib-or-gtk-build-system)
+        '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
+          "-Dman=false" ; FIXME: disabled because of docbook validation error
+          "-Dsystemd_journal=false")))
+     (build-system meson-build-system)
      (native-inputs
       `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
         ("pkg-config" ,pkg-config)
         ("intltool" ,intltool)
-        ("xsltproc" ,libxslt)))
+        ("xsltproc" ,libxslt)
+        ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
+        ("docbook-xsl" ,docbook-xsl)
+        ("docbook-xml" ,docbook-xml)
+        ("xmlto" ,xmlto)))
      (inputs
       `(("elogind" ,elogind)
         ("gnome-desktop" ,gnome-desktop)
@@@ -4716,7 -4750,7 +4747,7 @@@ configuration program to choose applica
  (define-public gjs
    (package
      (name "gjs")
-     (version "1.48.6")
+     (version "1.52.3")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "04nkig077r7xq55dxg9v46w8i7p8zkkdyja92yv81grq9fx6apz8"))))
+                 "1z4n15wdz6pbqd2hfzrqc8mmprhv50v4jk43p08v0xv07yldh8ff"))))
      (build-system gnu-build-system)
      (arguments
       '(#:phases
       ;; These are all in the Requires.private field of gjs-1.0.pc.
       `(("cairo" ,cairo)
         ("gobject-introspection" ,gobject-introspection)
-        ("mozjs" ,mozjs-38)))
+        ("mozjs" ,mozjs-52)))
      (inputs
       `(("gtk+" ,gtk+)
         ("readline" ,readline)))
@@@ -4810,7 -4844,7 +4841,7 @@@ javascript engine and the GObject intro
       `(("glib" ,glib)
         ("gspell" ,gspell)
         ("gtk+" ,gtk+)
-        ("gtksourceview" ,gtksourceview)
+        ("gtksourceview" ,gtksourceview-3)
         ("libpeas" ,libpeas)
         ("libxml2" ,libxml2)
         ("iso-codes" ,iso-codes)
@@@ -4831,7 -4865,7 +4862,7 @@@ powerful general purpose text editor."
  (define-public zenity
    (package
      (name "zenity")
-     (version "3.24.0")
+     (version "3.28.1")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "1xzpm63cib2xzr99phplhbcjzy7lahggk3gp60dvrrclxhka1w3g"))))
+                 "0swavrkc5ps3fwzy6h6l5mmim0wwy10xrq0qqkay5d0zf9a965yv"))))
      (build-system gnu-build-system)
      (native-inputs
       `(("gettext" ,gettext-minimal)
@@@ -4858,7 -4892,7 +4889,7 @@@ to display dialog boxes from the comman
  (define-public mutter
    (package
      (name "mutter")
-     (version "3.24.4")
+     (version "3.28.2")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "1slspy5krbqfvnma72lvdnxjf8ag2cvxssa8bvi7y3xxy7xv603k"))))
+                 "0ighs1zvlssgq16v1h3vg280za7y448snq65gc5m1zmqqawqkymg"))))
      ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
      ;; versions of cogl and clutter.  As a result, many of the inputs,
      ;; propagated-inputs, and configure flags used in cogl and clutter are
@@@ -4962,7 -4996,7 +4993,7 @@@ window manager."
  (define-public gnome-online-accounts
    (package
      (name "gnome-online-accounts")
-     (version "3.26.2")
+     (version "3.28.0")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "1l8p1ghknmkmjpnpl7jr53j66qbzpikickzbmrz0aczyhq6pdy29"))))
+                 "035lmm21imr7ddpzffqabv53g3ggjscmqvlzy3j1qkv00zrlxg47"))))
      (build-system glib-or-gtk-build-system)
      (native-inputs
       `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
@@@ -4999,7 -5033,7 +5030,7 @@@ Exchange, Last.fm, IMAP/SMTP, Jabber, S
  (define-public evolution-data-server
    (package
      (name "evolution-data-server")
-     (version "3.28.1")
+     (version "3.28.3")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "12b9lfgwd57rzn9394xrbvl9ym5aqldpz9v7c9a421dsv8dgq13b"))))
+                 "11sq795115vrcgxl9svscm6wg8isjj784c3d84qzb6z47zq92zj3"))))
      (build-system cmake-build-system)
      (arguments
       '(;; XXX FIXME: 11/85 tests are failing.
@@@ -5150,7 -5184,7 +5181,7 @@@ users."
  (define-public network-manager
    (package
      (name "network-manager")
-     (version "1.8.4")
+     (version "1.10.10")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/NetworkManager/"
                                    "NetworkManager-" version ".tar.xz"))
                (sha256
                 (base32
-                 "04lj081a5cdkhcnj1xs77chhy08d2h0648kmj1csxp46cfrjwpk2"))
+                 "1jn3g0f2x1irc88awqp8m3gnpdx1whqqqbdgkbgr4x55s702jki4"))
                (snippet
                '(begin
                   (use-modules (guix build utils))
                 (("src/devices/tests/test-lldp") " ")
                 (("src/tests/test-route-manager-linux") " "))
               #t))
+          (add-after 'unpack 'delete-failing-tests
+            (lambda _
+              ;; FIXME: These four tests fail for unknown reasons.
+              ;; ERROR:libnm-core/tests/test-general.c:5842:
+              ;;   _json_config_check_valid: assertion failed (res == expected): (1 == 0)
+              ;; ERROR:libnm-core/tests/test-keyfile.c:647:
+              ;;   test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
+              ;; ERROR:libnm-core/tests/test-setting.c:907:
+              ;;   _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
+              ;; NetworkManager:ERROR:src/platform/tests/test-nmp-object.c:397:
+              ;;   test_cache_link: assertion failed: (nmp_object_is_visible (obj_new))
+              (substitute* "Makefile.in"
+                (("libnm-core/tests/test-general") " ")
+                (("libnm-core/tests/test-keyfile") " ")
+                (("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " ")
+                (("src/platform/tests/test-nmp-object") " "))
+              #t))
           (add-before 'check 'pre-check
             (lambda _
               ;; For the missing /etc/machine-id.
               #t))
           (replace 'install
             (lambda _
-              (zero? (system* "make"
-                              "sysconfdir=/tmp"
-                              "rundir=/tmp"
-                              "statedir=/tmp"
-                              "nmstatedir=/tmp/nm"
-                              "install")))))))
+              (invoke "make"
+                      "sysconfdir=/tmp"
+                      "rundir=/tmp"
+                      "statedir=/tmp"
+                      "nmstatedir=/tmp/nm"
+                      "install")
+              #t)))))
      (propagated-inputs
       `(("glib" ,glib)))
      (native-inputs
@@@ -5275,7 -5327,7 +5324,7 @@@ services."
  (define-public network-manager-openvpn
    (package
      (name "network-manager-openvpn")
-     (version "1.8.0")
+     (version "1.8.4")
      (source (origin
                (method url-fetch)
                (uri (string-append
                      "/NetworkManager-openvpn-" version ".tar.xz"))
                (sha256
                 (base32
-                 "1973n89g66a3jfx8r45a811fga4kadh6r1w35cb25cz1mlii2vhn"))))
+                 "0gyrv46h9k17qym48qacq4zpxbap6hi17shn921824zm98m2bdvr"))))
      (build-system gnu-build-system)
      (arguments
       '(#:configure-flags '("--enable-absolute-paths")))
@@@ -5329,7 -5381,7 +5378,7 @@@ to virtual private networks (VPNs) via 
  (define-public network-manager-applet
    (package
      (name "network-manager-applet")
-     (version "1.8.4")
+     (version "1.8.14")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "0ag3pvjp58ykrzsjfbdxi0j5xd2i796jk7nns67zy03xwg9i0l0h"))))
+                 "1js0i2kwfklahsn77qgxzdscy33drrlym3mrj1qhlw0zf8ri56ya"))))
      (build-system glib-or-gtk-build-system)
      (arguments '(#:configure-flags '("--disable-migration")))
      (native-inputs
@@@ -5408,7 -5460,7 +5457,7 @@@ libxml2."
  (define-public gdm
    (package
      (name "gdm")
-     (version "3.26.2.1")
+     (version "3.28.2")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                (patches (search-patches "gdm-CVE-2018-14424.patch"))
                (sha256
                 (base32
-                 "0mxdal6hh345xk2xqmw5192jgpprkbcv1d4bwmnl4arcc00cpp8p"))))
+                 "0wdm1503x66n1crdlmzmincbd2hccpxsdgjsl5anx3yjpdzs0hb0"))))
      (build-system glib-or-gtk-build-system)
      (arguments
       '(#:configure-flags
@@@ -5588,7 -5640,7 +5637,7 @@@ usage and information about running pro
  (define-public gnome-bluetooth
    (package
      (name "gnome-bluetooth")
-     (version "3.20.1")
+     (version "3.28.0")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "1zlqcz6jz4vzzr8gd1678i9s4015kiwcpr5szrwz4kmryfsm147a"))))
-     (build-system glib-or-gtk-build-system)
+                 "0q7yzklrlayj99risj096mr5x35anx94wvr6nbf6pwbvvzv7453p"))))
+     (build-system meson-build-system)
      (native-inputs
       `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
+        ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
         ("gobject-introspection" ,gobject-introspection)
         ("intltool" ,intltool)
         ("pkg-config" ,pkg-config)
@@@ -5621,7 -5674,7 +5671,7 @@@ devices using the GNOME desktop."
  (define-public gnome-control-center
    (package
      (name "gnome-control-center")
-     (version "3.24.3")
+     (version "3.28.2")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "18ncjqjj93a39sla2zjr9i6pw59yh87p4jla899lmvi2qajd5923"))))
-     (build-system glib-or-gtk-build-system)
+                 "0d6pjdbsra16nav8201kaadja5yma92bhziki9601ilk2ry3v7pz"))))
+     (build-system meson-build-system)
      (arguments
-      '(#:phases
+      '(#:glib-or-gtk? #t
+        #:configure-flags
+        (list "-Dcheese=false")
+        #:phases
         (modify-phases %standard-phases
           (add-before 'configure 'patch-paths
             (lambda* (#:key inputs #:allow-other-keys)
                 #t))))))
      (native-inputs
       `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
+        ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
         ("intltool" ,intltool)
         ("pkg-config" ,pkg-config)
         ("xsltproc" ,libxslt)))
@@@ -5692,7 -5749,7 +5746,7 @@@ properties, screen resolution, and othe
  (define-public gnome-shell
    (package
      (name "gnome-shell")
-     (version "3.24.3")
+     (version "3.28.2")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "1f20x36ymkp1j667hb7s7byly2gqc4m0anldy3qwp38vm8437caq"))
+                 "1b9n89ij2g5nqaqp7a13jnqcd8qa2v9p55rbi71al3xvqk091ri7"))
                (patches (search-patches "gnome-shell-theme.patch"))
                (modules '((guix build utils)))
                (snippet
                 #~(begin
-                    ;; CSS files have to be regenerated from the .scss source
-                    ;; that 'gnome-shell-theme.patch' modifies.
-                    (for-each delete-file
-                              (find-files "data/theme"
-                                          "^gnome-shell.*\\.css$"))
                     ;; Copy images for use on the GDM log-in screen.
                     (copy-file #$(file-append %artwork-repository
                                               "/slim/0.x/background.png")
                             #$(file-append %artwork-repository
                                            "/logo/Guix-horizontal-white.svg"))
                     #t))))
-     (build-system glib-or-gtk-build-system)
+     (build-system meson-build-system)
      (arguments
-      '(#:phases
+      '(#:glib-or-gtk? #t
+        #:configure-flags
+        (list "-Dsystemd=false"
+              ;; Otherwise, the RUNPATH will lack the final path component.
+              (string-append "-Dc_link_args=-Wl,-rpath="
+                             (assoc-ref %outputs "out")
+                             "/lib/gnome-shell"))
+        #:phases
         (modify-phases %standard-phases
-          (add-before 'build 'rebuild-css
-            (lambda _
-              ;; Rebuild the CSS files from the .scss files that our patch
-              ;; modifies.
-              (invoke "make" "-C" "data"
-                      "theme/gnome-shell.css"
-                      "theme/gnome-shell-high-contrast.css")))
-          (replace 'install
+          (add-after 'unpack 'fix-keysdir
             (lambda* (#:key outputs #:allow-other-keys)
               (let* ((out     (assoc-ref outputs "out"))
                      (keysdir (string-append
                                out "/share/gnome-control-center/keybindings")))
-                (zero? (system* "make"
-                                (string-append "keysdir=" keysdir)
-                                "install")))))
-          (add-after
-           'install 'wrap-programs
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out              (assoc-ref outputs "out"))
-                   (gi-typelib-path  (getenv "GI_TYPELIB_PATH"))
-                   (python-path      (getenv "PYTHONPATH")))
-               (wrap-program (string-append out "/bin/gnome-shell")
-                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
-               (for-each
-                (lambda (prog)
-                  (wrap-program (string-append out "/bin/" prog)
-                    `("PYTHONPATH"      ":" prefix (,python-path))
-                    `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
-                '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
-               #t))))))
+                (substitute* "meson.build"
+                  (("keysdir =.*")
+                   (string-append "keysdir = '" keysdir "'\n")))
+                #t)))
+          (add-before 'check 'pre-check
+            (lambda* (#:key inputs #:allow-other-keys)
+              ;; Tests require a running X server.
+              (system "Xvfb :1 &")
+              (setenv "DISPLAY" ":1")
+              #t))
+          (add-after 'install 'wrap-programs
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (let ((out              (assoc-ref outputs "out"))
+                    (gi-typelib-path  (getenv "GI_TYPELIB_PATH"))
+                    (python-path      (getenv "PYTHONPATH")))
+                (wrap-program (string-append out "/bin/gnome-shell")
+                  `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
+                  ;; FIXME: gnome-shell loads these libraries with unqualified
+                  ;; names only, so they need to be on LD_LIBRARY_PATH.  The
+                  ;; alternative might be to patch gnome-shell.
+                  `("LD_LIBRARY_PATH" ":" prefix
+                    ,(map (lambda (pkg)
+                            (string-append (assoc-ref inputs pkg) "/lib"))
+                          '("gnome-bluetooth" "librsvg" "libgweather"))))
+                (for-each
+                 (lambda (prog)
+                   (wrap-program (string-append out "/bin/" prog)
+                     `("PYTHONPATH"      ":" prefix (,python-path))
+                     `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
+                 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
+                #t))))))
      (native-inputs
       `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
+        ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
         ("gobject-introspection" ,gobject-introspection)
         ("intltool" ,intltool)
         ("pkg-config" ,pkg-config)
         ("python" ,python)
+        ("ruby-sass" ,ruby-sass)
+        ("sassc" ,sassc)
         ("xsltproc" ,libxslt)
-        ("ruby-sass" ,ruby-sass)))
+        ;; For tests
+        ("xorg-server" ,xorg-server)))
      (inputs
       `(("accountsservice" ,accountsservice)
         ("caribou" ,caribou)
         ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
         ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
         ("librsvg" ,librsvg)
-        ("geoclue" ,geoclue)
-        ;; XXX: required by libgjs.la.
-        ("readline" ,readline)))
+        ("geoclue" ,geoclue)))
      (synopsis "Desktop shell for GNOME")
      (home-page "https://wiki.gnome.org/Projects/GnomeShell")
      (description
@@@ -5873,7 -5939,7 +5936,7 @@@ easy, safe, and automatic."
  (define-public tracker
    (package
      (name "tracker")
-     (version "1.12.3")
+     (version "2.0.4")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "1mpq418lzba7fad0w0m3bnxvz3khf461b5zya8zmq5n1g0w99ki3"))))
+                 "1mfc5lv820kr7ssi7hldn25gmshh65k19kh478qjsnb64sshsbyf"))))
      (build-system glib-or-gtk-build-system)
+     (arguments
+      `(#:phases
+        (modify-phases %standard-phases
+          (add-after 'unpack 'disable-broken-tests
+            (lambda _
+              ;; FIXME: Most of these fail with GLib-GIO-FATAL-ERROR: Settings
+              ;; schema 'org.freedesktop.Tracker.FTS' is not installed.
+              (substitute* "tests/libtracker-miner/Makefile.in"
+                (("tracker-file-notifier-test\\$\\(EXEEXT\\)") "")
+                (("tracker-miner-fs-test\\$\\(EXEEXT\\)") "")
+                (("tracker-monitor-test\\$\\(EXEEXT\\)") ""))
+              (substitute* "tests/libtracker-fts/Makefile.in"
+                (("tracker-fts-test\\$\\(EXEEXT\\)") ""))
+              (substitute* "tests/libtracker-data/Makefile.in"
+                (("tracker-ontology\\$\\(EXEEXT\\)") "")
+                (("tracker-ontology-change\\$\\(EXEEXT\\)") "")
+                (("tracker-backup\\$\\(EXEEXT\\)") "")
+                (("tracker-sparql-blank\\$\\(EXEEXT\\)") "")
+                (("tracker-sparql\\$\\(EXEEXT\\)") ""))
+              ;; These fail because the SPARQL backend could not be loaded.
+              ;; That's because /etc/machine-id is missing, but
+              ;; DBUS_FATAL_WARNINGS does not help here.
+              (substitute* "tests/libtracker-sparql/Makefile.in"
+                (("tracker-gb-737023-test\\$\\(EXEEXT\\)") "")
+                (("tracker-sparql-test\\$\\(EXEEXT\\)") ""))
+              (substitute* "tests/tracker-steroids/Makefile.in"
+                (("tracker-test\\$\\(EXEEXT\\)") ""))
+              #t))
+          ;; Two tests fail if LANG is not set.
+          (add-before 'check 'pre-check
+            (lambda _
+              (setenv "LANG" "en_US.UTF-8")
+              ;; For the missing /etc/machine-id.
+              (setenv "DBUS_FATAL_WARNINGS" "0")
+              #t)))))
      (native-inputs
       `(("gnome-common" ,gnome-common)
         ("gobject-introspection" ,gobject-introspection)
         ("gst-plugins-base" ,gst-plugins-base)
         ("sqlite" ,sqlite)
         ("nettle" ,nettle)  ; XXX why is this needed?
+        ("python" ,python)
         ("poppler" ,poppler)
         ("libgsf" ,libgsf)
         ("libexif" ,libexif)
         ("libseccomp" ,libseccomp)
         ("libsoup" ,libsoup)
         ("libuuid" ,util-linux)))
-     (arguments `(#:tests? #f))  ; XXX FIXME enable tests (some fail)
      (synopsis "Metadata database, indexer and search tool")
      (home-page "https://wiki.gnome.org/Projects/Tracker")
      (description
@@@ -5933,7 -6034,7 +6031,7 @@@ shared object databases, search tools a
  (define-public nautilus
    (package
      (name "nautilus")
-     (version "3.26.2")
+     (version "3.28.1")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "1d0l4vgcjqj4671hb6s2a56baqlasbxn3wl6vfrpdsk5qq299jbr"))))
+                 "19dhpa2ylrg8d5274lahy7xqr2p9z3jnq1h4qmsh95czkpy7is4w"))))
      (build-system meson-build-system)
      (arguments
       '(#:glib-or-gtk? #t
         ("pkg-config" ,pkg-config)))
      (inputs
       `(("dconf" ,dconf)
+        ("gexiv2" ,gexiv2)
         ("gvfs" ,gvfs)
         ("exempi" ,exempi)
         ("gnome-desktop" ,gnome-desktop)
@@@ -6047,7 -6149,7 +6146,7 @@@ can add your own files to the collectio
  (define-public gnome-screenshot
    (package
      (name "gnome-screenshot")
-     (version "3.22.0")
+     (version "3.26.0")
      (source
       (origin
         (method url-fetch)
                             name "-" version ".tar.xz"))
         (sha256
          (base32
-          "0c02n1hgv21m4082jx399b1yazsc0cr07ba8k0pv8v3w7i5z21ca"))))
-     (build-system glib-or-gtk-build-system)
+          "1fy8fjl29i3xhj8caik03d3za06x96xgkk8r4fwz88iqbmci3g0v"))))
+     (build-system meson-build-system)
      (native-inputs
       `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
+        ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
+        ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
         ("intltool" ,intltool)
+        ("appstream-glib" ,appstream-glib)
         ("pkg-config" ,pkg-config)))
      (inputs
       `(("gtk+" ,gtk+)
@@@ -6078,7 -6183,7 +6180,7 @@@ beautifying border effects."
  (define-public dconf-editor
    (package
      (name "dconf-editor")
-     (version "3.26.2")
+     (version "3.28.0")
      (source
       (origin
         (method url-fetch)
                             name "-" version ".tar.xz"))
         (sha256
          (base32
-          "1lcarg8igsqpq4iv5834mf9kz4cmfhfw11bwy3x7v7f497z57d18"))))
-     (build-system glib-or-gtk-build-system)
-     (arguments
-      '(#:phases
-        (modify-phases %standard-phases
-          (add-before 'install 'skip-gtk-update-icon-cache
-            (lambda _
-              ;; Don't create 'icon-theme.cache'.
-              (substitute* "editor/Makefile"
-                (("gtk-update-icon-cache") "true"))
-              #t)))))
+          "0nhcpwqrkmpxbhaf0cafvy6dlp6s7vhm5vknl4lgs3l24zc56ns5"))))
+     (build-system meson-build-system)
      (native-inputs
       `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
+        ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
         ("intltool" ,intltool)
-        ("pkg-config" ,pkg-config)))
+        ("pkg-config" ,pkg-config)
+        ("vala" ,vala)))
      (inputs
       `(("dconf" ,dconf)
         ("gtk+" ,gtk+)
@@@ -6321,7 -6419,7 +6416,7 @@@ Microsoft SkyDrive and Hotmail, using t
  (define-public gnome-clocks
    (package
      (name "gnome-clocks")
-     (version "3.26.1")
+     (version "3.28.0")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "1xqirnf7xkiv5vj3ng4slpyh50ihn625vhdgskfzx83a3pgxin1b"))))
+                 "1dd739vchb592mck1dia2hkywn4213cpramyqzgmlmwv8z80p3nl"))))
      (build-system meson-build-system)
      (arguments
       '(#:glib-or-gtk? #t))
@@@ -6359,7 -6457,7 +6454,7 @@@ desktop.  It supports world clock, sto
  (define-public gnome-calendar
    (package
      (name "gnome-calendar")
-     (version "3.26.3")
+     (version "3.28.2")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "1clnfvvsaqw9vpxrs6qrxzmgpaw9x2nkjik2x2vwvm07pdvhddxn"))))
+                 "0x6wxngf8fkwgbl6x7rzp0srrb43rm55klpb2vfjk2hahpbjvxyw"))))
      (build-system meson-build-system)
      (arguments
       '(#:glib-or-gtk? #t
      (inputs
       `(("evolution-data-server" ,evolution-data-server)
         ("gnome-online-accounts" ,gnome-online-accounts)
-        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
+        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+        ("libdazzle" ,libdazzle)
+        ("libgweather" ,libgweather)
+        ("geoclue" ,geoclue)))
      (home-page "https://wiki.gnome.org/Apps/Calendar")
      (synopsis "GNOME's calendar application")
      (description
@@@ -6393,16 -6494,15 +6491,15 @@@ desktop.  It supports multiple calendar
  (define-public gnome-todo
    (package
      (name "gnome-todo")
-     (version "3.26.2")
+     (version "3.28.1")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    (version-major+minor version) "/"
                                    name "-" version ".tar.xz"))
-               (patches (search-patches "gnome-todo-libical-compat.patch"))
                (sha256
                 (base32
-                 "106xx1w18pxjmj5k0k2qjzi6b3c3kaz7b5kyrpknykibnr401ff9"))))
+                 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))))
      (build-system meson-build-system)
      (arguments
       '(#:glib-or-gtk? #t
@@@ -6550,7 -6650,7 +6647,7 @@@ GNOME Shell appearance and extension, e
  (define-public gnome-shell-extensions
    (package
      (name "gnome-shell-extensions")
-     (version "3.24.3")
+     (version "3.28.1")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "0y8anpp9ymp0lxn15w63ra6zxxf8nvbl48xqkvqdjzida73fyz9w"))))
-     (build-system gnu-build-system)
+                 "0n4h8rdnq3knrvlg6inrl62a73h20dbhfgniwy18572jicrh5ip9"))))
+     (build-system meson-build-system)
      (arguments
-      '(#:configure-flags '("--enable-extensions=all")))
+      '(#:configure-flags '("-Dextension_set=all")))
      (native-inputs
       `(("intltool" ,intltool)
         ("pkg-config" ,pkg-config)))
@@@ -6705,16 -6805,16 +6802,16 @@@ the Moka icon theme."
  (define-public folks
    (package
      (name "folks")
-     (version "0.11.2")
+     (version "0.11.4")
      (source (origin
                (method url-fetch)
                (uri (string-append
-                     "mirror://gnome/sources/" name "/"
+                     "mirror://gnome/sources/folks/"
                      (version-major+minor version) "/"
-                     name "-" version ".tar.xz"))
+                     "folks-" version ".tar.xz"))
                (sha256
                 (base32
-                 "1f51albxgfqxbax57i3pcgv2fx7i419xaapzdvldas6gw100ma1m"))))
+                 "16hqh2gxlbx0b0hgq216hndr1m72vj54jvryzii9zqkk0g9kxc57"))))
      (build-system glib-or-gtk-build-system)
      (inputs
       `(("bdb" ,bdb)
@@@ -6773,7 -6873,7 +6870,7 @@@ GLib/GObject code."
  (define-public libgnomekbd
    (package
      (name "libgnomekbd")
-     (version "3.22.0.1")
+     (version "3.26.0")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "1plkkack6s8b21gcmmly0lapgcjz53dmw2vixnn4rw4jxjwbdzaf"))))
+                 "0xc8jrc44x2h24v28wv36k70k7bwxy6p2vsvxvvia1n3ay642fza"))))
      (build-system gnu-build-system)
      (native-inputs
       `(("pkg-config" ,pkg-config)
@@@ -6842,7 -6942,7 +6939,7 @@@ handling the startup notification side.
  (define-public gnome-calculator
    (package
      (name "gnome-calculator")
-     (version "3.26.0")
+     (version "3.28.2")
      (source
       (origin
         (method url-fetch)
                             name "-" version ".tar.xz"))
         (sha256
          (base32
-          "1iv3b3mvqxm17r5gv15dyq6gz08w0ljhzgbf22xnnfnpzhvmn8b2"))))
+          "0izsrqc9fm2lh25jr3nzi94p5hh2d3cklxqczbq16by85wr1xm5s"))))
      (build-system glib-or-gtk-build-system)
      (native-inputs
       `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
         ("itstool" ,itstool)
         ("pkg-config" ,pkg-config)))
      (inputs
-      `(("gtksourceview" ,gtksourceview)
+      `(("glib" ,glib)
+        ("gtksourceview" ,gtksourceview-3)
         ("libsoup" ,libsoup)
+        ("libxml2" ,libxml2)
         ("mpc" ,mpc)
         ("mpfr" ,mpfr)))
      (home-page "https://wiki.gnome.org/Apps/Calculator")
@@@ -6902,37 -7004,78 +7001,78 @@@ basically a text box in which notes ca
      (license license:gpl3+)))
  
  (define-public gucharmap
-   (package
-     (name "gucharmap")
-     (version "3.18.0")
-     (source
-      (origin
-        (method url-fetch)
-        (uri (string-append "mirror://gnome/sources/" name "/"
-                            (version-major+minor version) "/"
-                            name "-" version ".tar.xz"))
-        (sha256
-         (base32
-          "0c1q9w5vql0vvg6g0knxfnv4ap19fg5cdrwndi1cj9lsym92c78j"))))
-     (build-system glib-or-gtk-build-system)
-     (native-inputs
-      `(("desktop-file-utils" ,desktop-file-utils)
-        ("glib:bin" ,glib "bin") ; for glib-compile-resources.
-        ("gobject-introspection" ,gobject-introspection)
-        ("intltool" ,intltool)
-        ("itstool" ,itstool)
-        ("pkg-config" ,pkg-config)))
-     (inputs
-      `(("gtk+" ,gtk+)
-        ("xmllint" ,libxml2)))
-     (home-page "https://wiki.gnome.org/Apps/Gucharmap")
-     (synopsis "Unicode character picker and font browser")
-     (description
-      "This program allows you to browse through all the available Unicode
+   (let ((unicode-files
+          '(("Blocks.txt"
+             "19zf2kd198mcv1paa194c1zf36hay1irbxssi35yi2pd8ad69qas")
+            ("DerivedAge.txt"
+             "1h9p1g0wnh686l6cqar7cmky465vwc6vjzzn1s7v0i9zcjaqkr4h")
+            ("NamesList.txt"
+             "0gvpcyq852rnlqmx4y5i1by7bavvcw6rj40i54w48yc7xr3zmgd1")
+            ("Scripts.txt"
+             "0b9prz2hs6w61afqaplcxnv115f8yk4d5hn9dc5hks8nqpj28bnh")
+            ("UnicodeData.txt"
+             "1cfak1j753zcrbgixwgppyxhm4w8vda8vxhqymi7n5ljfi6kwhjj")
+            ("Unihan.zip"
+             "199kz6laypkvc0ykms6d7bkb571jmpds39sv2p7kd5jjm1ij08q1"))))
+     (package
+       (name "gucharmap")
+       (version "10.0.4")
+       (source
+        (origin
+          (method url-fetch)
+          (uri (string-append "mirror://gnome/sources/" name "/"
+                              (version-major+minor version) "/"
+                              name "-" version ".tar.xz"))
+          (sha256
+           (base32
+            "00gh3lll6wykd2qg1lrj05a4wvscsypmrx7rpb6jsbvb4scnh9mv"))))
+       (build-system glib-or-gtk-build-system)
+       (arguments
+        `(#:modules ((ice-9 match)
+                     (guix build glib-or-gtk-build-system)
+                     (guix build utils))
+          #:configure-flags
+          (list "--with-unicode-data=../unicode-data")
+          #:phases
+          (modify-phases %standard-phases
+            (add-after 'unpack 'prepare-unicode-data
+              (lambda* (#:key inputs #:allow-other-keys)
+                (mkdir-p "../unicode-data")
+                (with-directory-excursion "../unicode-data"
+                  (for-each (match-lambda
+                              ((file _)
+                               (install-file (assoc-ref inputs file) ".")))
+                            ',unicode-files))
+                #t)))))
+       (native-inputs
+        `(("desktop-file-utils" ,desktop-file-utils)
+          ("glib:bin" ,glib "bin")       ; for glib-compile-resources.
+          ("gobject-introspection" ,gobject-introspection)
+          ("intltool" ,intltool)
+          ("itstool" ,itstool)
+          ("pkg-config" ,pkg-config)
+          ,@(map (match-lambda
+                   ((file hash)
+                    `(,file
+                      ,(origin
+                         (method url-fetch)
+                         (uri (string-append
+                               "http://www.unicode.org/Public/10.0.0/ucd/"
+                               file))
+                         (sha256 (base32 hash))))))
+                 unicode-files)
+          ("unzip" ,unzip)))
+       (inputs
+        `(("gtk+" ,gtk+)
+          ("xmllint" ,libxml2)))
+       (home-page "https://wiki.gnome.org/Apps/Gucharmap")
+       (synopsis "Unicode character picker and font browser")
+       (description
+        "This program allows you to browse through all the available Unicode
  characters and categories for the installed fonts, and to examine their
  detailed properties.  It is an easy way to find the character you might
  only know by its Unicode name or code point.")
-     (license license:gpl3+)))
+       (license license:gpl3+))))
  
  (define-public bluefish
    (package
@@@ -6968,7 -7111,7 +7108,7 @@@ Bluefish supports many programming and 
  (define-public gnome-system-monitor
    (package
      (name "gnome-system-monitor")
-     (version "3.26.0")
+     (version "3.28.2")
      (source
       (origin
         (method url-fetch)
                             name "-" version ".tar.xz"))
         (sha256
          (base32
-          "1cz6s0cvagj422f9dc231nvg8jsfkva5s81skpq4q5jyrb1ahj7q"))))
+          "164in885dyfvna5yjzgdyrbrsskvh5wzxdmkjgb4mbh54lzqd1zb"))))
      (build-system glib-or-gtk-build-system)
      (native-inputs
       `(("glib:bin" ,glib "bin") ; for glib-mkenums.
         ("intltool" ,intltool)
         ("itstool" ,itstool)
         ("libgtop" ,libgtop)
+        ("polkit" ,polkit)
         ("pkg-config" ,pkg-config)))
      (inputs
       `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
         ("gtk+" ,gtk+)
         ("gtkmm" ,gtkmm)
         ("librsvg" ,librsvg)
-        ("libxml2" ,libxml2)))
+        ("libxml2" ,libxml2)
+        ("libwnck" ,libwnck)))
      (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
      (synopsis "Process viewer and system resource monitor for GNOME")
      (description
@@@ -7004,7 -7149,7 +7146,7 @@@ kill/reinice processes."
  (define-public python-pyatspi
    (package
      (name "python-pyatspi")
-     (version "2.24.0")
+     (version "2.26.0")
      (source (origin
                (method url-fetch)
                (uri (string-append
                      "/pyatspi-" version ".tar.xz"))
                (sha256
                 (base32
-                 "14m6y27ziqc9f6339gjz49mlsk6mrsyg4bkj055cdzc7sfjlgvz7"))))
+                 "0xdnix7gxzgf75xy9ris4dd6b05mqwicw190b98xqmypydyf95n6"))))
      (build-system gnu-build-system)
      (native-inputs
       `(("pkg-config" ,pkg-config)))
@@@ -7032,7 -7177,7 +7174,7 @@@ accessibility infrastructure."
  (define-public orca
    (package
      (name "orca")
-     (version "3.26.0")
+     (version "3.28.1")
      (source (origin
                (method url-fetch)
                (uri (string-append
                      name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "0xk5k9cbswymma60nrfj00dl97wypx59c107fb1hwi75gm0i07a7"))))
+                 "04l5ccn7wf175gyq3blfpx0yh70ny06n161297jwc9idf951852g"))))
      (build-system glib-or-gtk-build-system)
      (arguments
       '(#:phases
@@@ -7324,20 -7469,20 +7466,20 @@@ photo-booth-like software, such as Chee
         ("pkg-config" ,pkg-config)
         ("vala" ,vala)))
      (propagated-inputs
-      `(("gnome-video-effects" ,gnome-video-effects)))
-     (inputs
-      `(("clutter" ,clutter)
+      `(("gnome-video-effects" ,gnome-video-effects)
+        ("clutter" ,clutter)
         ("clutter-gst" ,clutter-gst)
         ("clutter-gtk" ,clutter-gtk)
+        ("libcanberra" ,libcanberra)
         ("gdk-pixbuf" ,gdk-pixbuf)
         ("glib" ,glib)
-        ("gnome-desktop" ,gnome-desktop)
+        ("gstreamer" ,gstreamer)))
+     (inputs
+      `(("gnome-desktop" ,gnome-desktop)
         ("gobject-introspection" ,gobject-introspection)
-        ("gstreamer" ,gstreamer)
         ("gst-plugins-base" ,gst-plugins-base)
         ("gst-plugins-bad" ,gst-plugins-bad)
         ("gtk+" ,gtk+)
-        ("libcanberra" ,libcanberra)
         ("libx11" ,libx11)
         ("libxtst" ,libxtst)))
      (home-page "https://wiki.gnome.org/Apps/Cheese")
diff --combined gnu/packages/gtk.scm
@@@ -182,7 -182,7 +182,7 @@@ affine transformation (scale, rotation
  (define-public harfbuzz
    (package
     (name "harfbuzz")
 -   (version "2.2.0")
 +   (version "2.3.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.freedesktop.org/software/"
                                   version ".tar.bz2"))
               (sha256
                (base32
 -               "047q63jr513azf3g1y7f5xn60b4jdjs9zsmrx04sfw5rasyzrk5p"))))
 +               "0s74ramsbfa183rxkidqgfd2vbhrwicnrqzqsq440dwibffnj1gj"))))
     (build-system gnu-build-system)
     (outputs '("out"
                "bin")) ; 160K, only hb-view depend on cairo
@@@ -399,7 -399,7 +399,7 @@@ printing and other features typical of 
  (define-public gtksourceview
   (package
     (name "gtksourceview")
-    (version "3.24.8")
+    (version "4.0.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1zinqid62zjcsq7vy1y4mq1qh3hzd3zj7p8np7g0bdqd37zvi6qy"))))
+                "1b2z9c0skxrgw2vh08hv6qxky8jbvamc4rgww82j0kpp533rz0hm"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@@ -444,6 -444,19 +444,19 @@@ GTK+ text widget GtkTextView.  It impro
  highlighting and other features typical of a source code editor.")
     (license license:lgpl2.1+)))
  
+ (define-public gtksourceview-3
+  (package (inherit gtksourceview)
+    (name "gtksourceview")
+    (version "3.24.7")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1rp8zspwyw3mmdgccsas3pa6v7s0hqjaaglg6n4kcls7ccx0vhm5"))))))
  (define-public gdk-pixbuf
    (package
     (name "gdk-pixbuf")
@@@ -547,7 -560,7 +560,7 @@@ in the GNOME project."
  (define-public at-spi2-core
    (package
     (name "at-spi2-core")
-    (version "2.26.2")
+    (version "2.28.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/" name "/"
                                  name "-" version ".tar.xz"))
              (sha256
               (base32
-               "0596ghkamkxgv08r4a1pdhm06qd5zzgcfqsv64038w9xbvghq3n8"))))
-    (build-system gnu-build-system)
+               "11qwdxxx4jm0zj04xydlwah41axiz276dckkiql3rr0wn5x4i8j2"))))
+    (build-system meson-build-system)
     (outputs '("out" "doc"))
     (arguments
      '(#:configure-flags
-       (list (string-append "--with-html-dir="
-                            (assoc-ref %outputs "doc")
-                            "/share/gtk-doc/html"))
+       (list "-Denable_docs=true")
        #:phases
        (modify-phases %standard-phases
-         (replace 'check
-                  ;; Run test-suite under a dbus session.
-                  (lambda _
-                    ;; Don't fail on missing  '/etc/machine-id'.
-                    (setenv "DBUS_FATAL_WARNINGS" "0")
-                    (invoke "dbus-launch" "make" "check"))))))
+         (add-after 'unpack 'set-documentation-path
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; Ensure that the cross-references point to the "doc" output.
+             (substitute* "doc/libatspi/meson.build"
+               (("docpath =.*")
+                (string-append "docpath = '" (assoc-ref outputs "doc") "/share/gtk-doc/html'\n")))
+             #t))
+         (add-before 'install 'prepare-doc-directory
+           (lambda* (#:key outputs #:allow-other-keys)
+             (mkdir-p (string-append (assoc-ref outputs "doc") "/share"))
+             #t))
+         (add-after 'install 'move-documentation
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (doc (assoc-ref outputs "doc")))
+               (copy-recursively
+                (string-append out "/share/gtk-doc")
+                (string-append doc "/share/gtk-doc"))
+               (delete-file-recursively
+                (string-append out "/share/gtk-doc")))
+             #t))
+         (add-after 'install 'check
+           (lambda _
+             (setenv "HOME" (getenv "TMPDIR")) ; xfconfd requires a writable HOME
+             ;; Run test-suite under a dbus session.
+             (setenv "XDG_DATA_DIRS"     ; for finding org.xfce.Xfconf.service
+                     (string-append %output "/share"))
+             ;; Don't fail on missing  '/etc/machine-id'.
+             (setenv "DBUS_FATAL_WARNINGS" "0") ;
+             (invoke "dbus-launch" "ninja" "test")))
+          (delete 'check))))
     (propagated-inputs
      ;; atspi-2.pc refers to all these.
      `(("dbus" ,dbus)
        ("libxtst" ,libxtst)))
     (native-inputs
      `(("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("glib" ,glib "bin")
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)))
     (synopsis "Assistive Technology Service Provider Interface, core components")
@@@ -1407,7 -1445,7 +1445,7 @@@ information."
  (define-public gtk-doc
    (package
      (name "gtk-doc")
-     (version "1.27")
+     (version "1.28")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://gnome/sources/" name "/"
                                    name "-" version ".tar.xz"))
                (sha256
                 (base32
-                 "0vwsdl61nvnmqswlz5j9m4hg7qirhazwcikcnqf9nx0c13vx6sz2"))))
+                 "05apmwibkmn1icx05l8aw241lhymcx01zvk5i499cb150bijj7li"))))
      (build-system gnu-build-system)
      (arguments
       `(#:parallel-tests? #f
diff --combined gnu/packages/linux.scm
@@@ -1,5 -1,5 +1,5 @@@
  ;;; GNU Guix --- Functional package management for GNU
- ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+ ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
  ;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
  ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
  ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Mark H Weaver <mhw@netris.org>
@@@ -24,7 -24,7 +24,7 @@@
  ;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com>
  ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
  ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
- ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
+ ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
  ;;; Copyright © 2017 nee <nee-git@hidamari.blue>
  ;;; Copyright © 2017 Dave Love <fx@gnu.org>
  ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
@@@ -98,6 -98,7 +98,7 @@@
    #:use-module (gnu packages readline)
    #:use-module (gnu packages rrdtool)
    #:use-module (gnu packages samba)
+   #:use-module (gnu packages serialization)
    #:use-module (gnu packages slang)
    #:use-module (gnu packages storage)
    #:use-module (gnu packages texinfo)
@@@ -308,6 -309,10 +309,6 @@@ for ARCH and optionally VARIANT, or #f 
         ("flex" ,flex)
         ("bison" ,bison)
  
 -       ;; Build with GCC-7 for full retpoline support.
 -       ;; FIXME: Remove this when our default compiler has retpoline support.
 -       ("gcc" ,gcc-7)
 -
         ;; These are needed to compile the GCC plugins.
         ("gmp" ,gmp)
         ("mpfr" ,mpfr)
               (substitute* (find-files "." "^Makefile(\\.include)?$")
                 (("/bin/pwd") "pwd"))
               #t))
 -         (add-before 'configure 'work-around-gcc-7-include-path-issue
 -           (lambda _
 -             (unsetenv "C_INCLUDE_PATH")
 -             (unsetenv "CPLUS_INCLUDE_PATH")
 -             #t))
           (replace 'configure
             (lambda* (#:key inputs native-inputs target #:allow-other-keys)
               ;; Avoid introducing timestamps
  It has been modified to remove all non-free binary blobs.")
      (license license:gpl2)))
  
- (define %linux-libre-version "4.20.13")
- (define %linux-libre-hash "00rqdsqyz0csdblcmifyhkgzvsmnqsh090i6h30146rsf3707xad")
+ (define %linux-libre-version "5.0")
+ (define %linux-libre-hash "18gs0kl5xvbmh725m7crg6iyqw3p8qq421aql7z0nlk035fh5xbx")
  
- (define %linux-libre-4.20-patches
+ (define %linux-libre-5.0-patches
    (list %boot-logo-patch
          %linux-libre-arm-export-__sync_icache_dcache-patch))
  
    (make-linux-libre %linux-libre-version
                      %linux-libre-hash
                      '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux")
-                     #:patches %linux-libre-4.20-patches
+                     #:patches %linux-libre-5.0-patches
                      #:configuration-file kernel-config))
  
- (define %linux-libre-4.19-version "4.19.26")
- (define %linux-libre-4.19-hash "0xp1hqcwimyvzzbci741vymc8mrgk3cycv8l020zas1dfw5wn48c")
+ (define %linux-libre-4.19-version "4.19.27")
+ (define %linux-libre-4.19-hash "055n4s4yrkcrwkdsxbf1q1zyxmpabf7kba8d0phpfadian3wr4s0")
  
  (define %linux-libre-4.19-patches
    (list %boot-logo-patch
                      #:patches %linux-libre-4.19-patches
                      #:configuration-file kernel-config))
  
- (define %linux-libre-4.14-version "4.14.104")
- (define %linux-libre-4.14-hash "0x7jzazl0yzdc9m1ycwcywjpj6w30mabks4qs9asdy5622282b4v")
+ (define %linux-libre-4.14-version "4.14.105")
+ (define %linux-libre-4.14-hash "06pp13d2g0j2v8jy8fh20b4ismzg9wn3i7bnx2hpyvslz256rrgg")
  
  (define-public linux-libre-4.14
    (make-linux-libre %linux-libre-4.14-version
                      #:configuration-file kernel-config))
  
  (define-public linux-libre-4.9
-   (make-linux-libre "4.9.161"
-                     "0r35qlc8yj9svryv0v91j134vr35d23sz5aj7f2h8c99iakbm6zw"
+   (make-linux-libre "4.9.162"
+                     "07swv6xvjsl5nv5y3sc2nfdnmqdz9gjy8hgrjvi0bljwzf1fbxmy"
                      '("x86_64-linux" "i686-linux")
                      #:configuration-file kernel-config))
  
    (make-linux-libre %linux-libre-version
                      %linux-libre-hash
                      '("armhf-linux")
-                     #:patches %linux-libre-4.20-patches
+                     #:patches %linux-libre-5.0-patches
                      #:defconfig "multi_v7_defconfig"
                      #:extra-version "arm-generic"))
  
    (make-linux-libre %linux-libre-version
                      %linux-libre-hash
                      '("armhf-linux")
-                     #:patches %linux-libre-4.20-patches
+                     #:patches %linux-libre-5.0-patches
                      #:defconfig "omap2plus_defconfig"
                      #:extra-version "arm-omap2plus"))
  
@@@ -1381,7 -1391,7 +1382,7 @@@ configuration (iptunnel, ipmaddr)."
  (define-public libcap
    (package
      (name "libcap")
 -    (version "2.25")
 +    (version "2.26")
      (source (origin
               (method url-fetch)
               (uri (string-append
                     "libcap2/libcap-" version ".tar.xz"))
               (sha256
                (base32
 -               "0qjiqc5pknaal57453nxcbz3mn1r4hkyywam41wfcglq3v2qlg39"))))
 +               "12s5b8fp61jcn4qld8a7fakcz1han4a6l3b8cyl3n6r7hk2bfc5n"))))
      (build-system gnu-build-system)
      (arguments '(#:phases
                   (modify-phases %standard-phases
@@@ -2477,14 -2487,14 +2478,14 @@@ It works with most newer systems."
  (define-public iucode-tool
    (package
      (name "iucode-tool")
-     (version "2.2")
+     (version "2.3.1")
      (source (origin
                (method url-fetch)
                (uri (string-append "https://gitlab.com/iucode-tool/releases"
                                    "/raw/latest/iucode-tool_" version ".tar.xz"))
                (sha256
                 (base32
-                 "0w99k1aq1xw148ffk1xykqf60rdbphb1jknw98jcmadq4pwxl44q"))))
+                 "159gvf6ljgg3g4vlhyy6pyr0wz11rcyhp985vc4az58d9px8xf0j"))))
      (build-system gnu-build-system)
      (home-page "https://gitlab.com/iucode-tool/iucode-tool/wikis/home")
      (synopsis "Manipulate Intel microcode bundles")
@@@ -2653,7 -2663,22 +2654,22 @@@ thanks to the use of namespaces."
                                    "/singularity-" version ".tar.gz"))
                (sha256
                 (base32
-                 "1whx0hqqi1326scgdxxxa1d94vn95mnq0drid6s8wdp84ni4d3gk"))))
+                 "1whx0hqqi1326scgdxxxa1d94vn95mnq0drid6s8wdp84ni4d3gk"))
+               (modules '((guix build utils)))
+               (snippet
+                '(begin
+                   ;; Do not create directories in /var.
+                   (substitute* "Makefile.in"
+                     (("\\$\\(MAKE\\) .*install-data-hook") ""))
+                   ;; The original source overrides PATH so that it points to
+                   ;; /bin, /usr/local/bin, etc., which obviously doesn't work
+                   ;; on Guix System.  Leave PATH unchanged so we refer to the
+                   ;; installed Coreutils, grep, etc.
+                   (substitute* "bin/singularity.in"
+                     (("^PATH=.*" all)
+                      (string-append "#" all "\n")))
+                   #t))))
      (build-system gnu-build-system)
      (arguments
       `(#:configure-flags
               "--localstatedir=/var")
         #:phases
         (modify-phases %standard-phases
-          ;; Do not create directories in /var.
-          (add-after 'unpack 'disable-install-hook
-            (lambda _
-              (substitute* "Makefile.in"
-                (("\\$\\(MAKE\\) .*install-data-hook") ""))
-              #t))
           (add-after 'unpack 'patch-reference-to-squashfs-tools
             (lambda _
               (substitute* "libexec/cli/build.exec"
@@@ -3242,6 -3261,32 +3252,32 @@@ is flexible, efficient and uses a modul
  write access to exFAT devices.")
      (license license:gpl2+)))
  
+ (define-public fuseiso
+   (package
+     (name "fuseiso")
+     (version "20070708")
+     (source (origin
+               (method url-fetch)
+               (uri (string-append "mirror://sourceforge/fuseiso/fuseiso/"
+                                   version "/fuseiso-" version ".tar.bz2"))
+               (sha256
+                (base32
+                 "127xql52dcdhmh7s5m9xc6q39jdlj3zhbjar1j821kb6gl3jw94b"))))
+     (build-system gnu-build-system)
+     (native-inputs
+      `(("pkg-config" ,pkg-config)))
+     (inputs
+      `(("fuse" ,fuse)
+        ("glib" ,glib)
+        ("zlib" ,zlib)))
+     (home-page "https://sourceforge.net/projects/fuseiso/")
+     (synopsis "Mount ISO file system images")
+     (description
+      "FuseISO is a FUSE module to mount ISO filesystem images (.iso, .nrg,
+ .bin, .mdf and .img files).  It supports plain ISO9660 Level 1 and 2, Rock
+ Ridge, Joliet, and zisofs.")
+     (license license:gpl2)))
  (define-public gpm
    (package
      (name "gpm")
@@@ -3290,7 -3335,7 +3326,7 @@@ and copy/paste text in the console and 
  (define-public btrfs-progs
    (package
      (name "btrfs-progs")
-     (version "4.17.1")
+     (version "4.20.2")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://kernel.org/linux/kernel/"
                                    "btrfs-progs-v" version ".tar.xz"))
                (sha256
                 (base32
-                 "0x6d53fbrcmzvhv461575fzsv3373427p4srz646w2wcagqk82xz"))))
+                 "0z0fm3j4ajzsf445381ra8r3zzciyyvfh8vvbjmbyarg2rz8n3w9"))))
      (build-system gnu-build-system)
      (outputs '("out"
                 "static"))      ; static versions of the binaries in "out"
@@@ -3393,7 -3438,7 +3429,7 @@@ from the btrfs-progs package.  It is me
                (method url-fetch)
                (uri (string-append
                      "https://git.kernel.org/cgit/linux/kernel/git/jaegeuk"
-                     "/f2fs-tools.git/snapshot/" name "-" version ".tar.gz"))
+                     "/f2fs-tools.git/snapshot/f2fs-tools-" version ".tar.gz"))
                (sha256
                 (base32
                  "1m6bn1ibq0p53m0n97il91xqgjgn2pzlz74lb5bfzassx7159m1k"))))
@@@ -3431,15 -3476,15 +3467,15 @@@ disks and SD cards.  This package provi
    (package
      (inherit f2fs-tools-1.7)
      (name "f2fs-tools")
-     (version "1.11.0")
+     (version "1.12.0")
      (source (origin
                (method url-fetch)
                (uri (string-append
                      "https://git.kernel.org/cgit/linux/kernel/git/jaegeuk"
-                     "/f2fs-tools.git/snapshot/" name "-" version ".tar.gz"))
+                     "/f2fs-tools.git/snapshot/f2fs-tools-" version ".tar.gz"))
                (sha256
                 (base32
-                 "1qvr3hcic1vzfmyl7c0gnjxfsw8zjaadm66y337h49chv9yaq5mr"))))
+                 "15pn2fm9knn7p1vzfzy6msnrdl14p6y1gn4m2ka6ba5bzx6lw4p2"))))
      (inputs
       `(("libuuid" ,util-linux)))))
  
@@@ -3481,49 -3526,51 +3517,51 @@@ feature, and a laptop with an accelerom
  (define-public thinkfan
    (package
      (name "thinkfan")
-     (version "0.9.3")
-     (source (origin
-               (method url-fetch)
-               (uri (string-append "mirror://sourceforge/thinkfan/"
-                                   "/thinkfan-" version ".tar.gz"))
-               (sha256
-                (base32
-                 "0nz4c48f0i0dljpk5y33c188dnnwg8gz82s4grfl8l64jr4n675n"))
-               (modules '((guix build utils)))
-               ;; Fix erroneous man page location in Makefile leading to
-               ;; a compilation failure.
-               (snippet '(begin
-                           (substitute* "CMakeLists.txt"
-                             (("thinkfan\\.1") "src/thinkfan.1"))
-                           #t))))
+     (version "1.0.2")
+     (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+              (url "https://github.com/vmatare/thinkfan.git")
+              (commit version)))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "107vw0962hrwva3wra9n3hxlbfzg82ldc10qssv3dspja88g8psr"))))
      (build-system cmake-build-system)
      (arguments
       `(#:modules ((guix build cmake-build-system)
                    (guix build utils)
                    (srfi srfi-26))
-        #:tests? #f                      ;no test target
+        #:tests? #f                      ; no test target
         #:configure-flags
         ;; Enable reading temperatures from hard disks via S.M.A.R.T.
+        ;; Upstream ‘defaults to OFF because libatasmart seems to be horribly
+        ;; inefficient’.
         `("-DUSE_ATASMART:BOOL=ON")
         #:phases
         (modify-phases %standard-phases
-          ;; Install scripts for various foreign init systems. Also fix
-          ;; hard-coded path for daemon.
-          (add-after 'install 'install-rc-scripts
+          (add-after 'unpack 'create-init-scripts
+            ;; CMakeLists.txt relies on build-time symptoms of OpenRC and
+            ;; systemd to patch and install their service files.  Fake their
+            ;; presence rather than duplicating the build system below.  Leave
+            ;; things like ‘/bin/kill’ because they're not worth a dependency.
+            ;; The sysvinit needs manual patching, but since upstream doesn't
+            ;; even provide the option to install it: don't.
             (lambda* (#:key outputs #:allow-other-keys)
-              (let ((out (assoc-ref outputs "out"))
-                    (files (find-files
-                            (string-append "../thinkfan-" ,version "/rcscripts")
-                            ".*")))
-                (substitute* files
-                  (("/usr/sbin/(\\$NAME|thinkfan)" _ name)
-                   (string-append out "/sbin/" name)))
-                (for-each (cute install-file <>
-                                (string-append out "/share/thinkfan"))
-                          files))
-              #t)))))
+              (let* ((out   (assoc-ref outputs "out"))
+                     (share (string-append out "/share/" ,name)))
+                (substitute* "CMakeLists.txt"
+                  (("pkg_check_modules\\((OPENRC|SYSTEMD) .*" _ package)
+                   (format "option(~a_FOUND \"Faked\" ON)\n" package))
+                  ;; That was easy!  Now we just need to fix the destinations.
+                  (("/etc" directory)
+                   (string-append out directory)))
+                #t))))))
+     (native-inputs
+      `(("pkg-config" ,pkg-config)))
      (inputs
-      `(("libatasmart" ,libatasmart)))
+      `(("libatasmart" ,libatasmart)
+        ("yaml-cpp" ,yaml-cpp)))
      (home-page "http://thinkfan.sourceforge.net/")
      (synopsis "Simple fan control program")
      (description
@@@ -4102,14 -4149,7 +4140,14 @@@ under OpenGL graphics workloads."
                            (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))
         #:phases
         (modify-phases %standard-phases
 -         (delete 'configure))))
 +         (delete 'configure)
 +         (add-before 'build 'kernel-headers-are-system-headers
 +           (lambda* (#:key inputs #:allow-other-keys)
 +             (let ((kernel-headers (assoc-ref inputs "kernel-headers")))
 +               ;; Make sure the kernel headers are treated as system headers
 +               ;; to suppress a conflict between "util.h" and <linux/fs.h>.
 +             (setenv "C_INCLUDE_PATH" (string-append kernel-headers "/include"))
 +             #t))))))
      (native-inputs
       `(("pkg-config" ,pkg-config)))
      (inputs
@@@ -4142,12 -4182,7 +4180,12 @@@ interface to the variable facility of U
                            ;; installed (known as OS_VENDOR in the code).
                            ;; GRUB overrides this, as such it's only used if
                            ;; nothing else is specified on the command line.
 -                          "EFIDIR=gnu")
 +                          "EFIDIR=gnu"
 +                          ;; Treat kernel headers as system headers to prevent
 +                          ;; warnings about conflicting types.
 +                          (string-append "C_INCLUDE_PATH="
 +                                         (assoc-ref %build-inputs "kernel-headers")
 +                                         "/include"))
         #:phases (modify-phases %standard-phases (delete 'configure))))
      (native-inputs
       `(("pkg-config" ,pkg-config)))
@@@ -4390,15 -4425,14 +4428,14 @@@ re-use code and to avoid re-inventing t
  (define-public libnftnl
    (package
      (name "libnftnl")
-     (version "1.1.1")
+     (version "1.1.2")
      (source
-       (origin
-         (method url-fetch)
-         (uri (string-append "mirror://netfilter.org/libnftnl/"
-                             "libnftnl-" version ".tar.bz2"))
-         (sha256
-          (base32
-           "1wmgjfcb35mscb2srzia5931srygywrs1aznxmg67v177x0nasjx"))))
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://netfilter.org/libnftnl/"
+                            "libnftnl-" version ".tar.bz2"))
+        (sha256
+         (base32 "0pffmsv41alsn5ac7mwnb9fh3qpwzqk13jrzn6c5i71wq6kbgix5"))))
      (build-system gnu-build-system)
      (native-inputs
       `(("pkg-config" ,pkg-config)))
@@@ -4415,7 -4449,7 +4452,7 @@@ used by nftables."
  (define-public nftables
    (package
      (name "nftables")
-     (version "0.8.1")
+     (version "0.9.0")
      (source
       (origin
         (method url-fetch)
                             "/files/nftables-" version ".tar.bz2"))
         (sha256
          (base32
-          "1i1gfy8l7qyhc5vlrpp63s0n5kybmc9pi4dywiq8rmkhrrnddsla"))))
+          "14bygs6vg2v448cw5r4pxqi8an29hw0m9vab8hpmgjmrzjsq30dd"))))
      (build-system gnu-build-system)
+     (arguments `(#:configure-flags
+                  '("--disable-man-doc"))) ; FIXME: Needs docbook2x.
      (inputs `(("bison" ,bison)
                ("flex" ,flex)
                ("gmp" ,gmp)
@@@ -5026,7 -5062,7 +5065,7 @@@ management tools in userspace."
  (define-public xfsprogs
    (package
      (name "xfsprogs")
-     (version "4.19.0")
+     (version "4.20.0")
      (source (origin
                (method url-fetch)
                (uri (string-append
                      "xfsprogs-" version ".tar.gz"))
                (sha256
                 (base32
-                 "0gs39yiyamjw516jbak3nj4dy4h2a2g48c1mmv4wbppsccvwmwh5"))))
+                 "0ss0r6jlxxinf9fhpc0fgf7b89n9mzirpa85xxjmi1ix9l6cls6x"))))
      (build-system gnu-build-system)
      (arguments
-      `(#:tests? #f)) ; Kernel/user integration tests are in package "xfstests"
+      `(#:tests? #f)) ; kernel/user integration tests are in package "xfstests"
      (native-inputs
       `(("gettext" ,gettext-minimal)
         ("util-linux" ,util-linux)))
@@@ -5052,17 -5088,34 +5091,34 @@@ file systems."
  (define-public genext2fs
    (package
      (name "genext2fs")
-     (version "1.4.1")
+     (version "1.4.1-4")
      (source (origin
                (method git-fetch)
                (uri (git-reference
                      (url "https://github.com/jeremie-koenig/genext2fs.git")
-                     (commit (string-append "genext2fs-" version))))
+                     ;; 1.4.1-3 had a VCS tag but 1.4.1-4 doesn't.
+                     (commit "9ee43894634998b0b2b309d636f25c64314c9421")))
                (file-name (git-file-name name version))
                (sha256
-                (base32
-                 "1r0n74pyypv63qfqqpvx75dwijcsvcrvqrlv8sldbhv0nwr1gk53"))))
+                (base32 "0ib5icn78ciz00zhc1bgdlrwaxvsdz7wnplwblng0jirwi9ml7sq"))))
      (build-system gnu-build-system)
+     (arguments
+      `(#:phases
+        (modify-phases %standard-phases
+          (add-after 'unpack 'apply-debian-patches
+            ;; Debian changes (the revision after ‘-’ in VERSION) are
+            ;; maintained as separate patches.  Apply those relevant to us.
+            (lambda _
+              (for-each
+               (lambda (file-name)
+                 (invoke "patch" "-p1" "-i"
+                         (string-append "debian/patches/" file-name)))
+               (list "blocksize+creator.diff" ; add -B/-o options
+                     "byteswap_fix.diff"))
+              #t)))))
+     (native-inputs
+      `(("autoconf" ,autoconf)
+        ("automake" ,automake)))
      (home-page "https://github.com/jeremie-koenig/genext2fs")
      (synopsis "Generate ext2 filesystem as a normal user")
      (description "This package provides a program to general an ext2
diff --combined gnu/packages/mpd.scm
@@@ -91,7 -91,7 +91,7 @@@ interfacing MPD in the C, C++ & Objecti
  (define-public mpd
    (package
      (name "mpd")
-     (version "0.21.4")
+     (version "0.21.5")
      (source (origin
                (method url-fetch)
                (uri
                                "/mpd-" version ".tar.xz"))
                (sha256
                 (base32
-                 "1ix52vfa8k8my4xyr8b0phg8605b2xchyzyva908m08vpzm14w94"))))
+                 "1y8fbch4xp96i4mz6czivnwvaf7g8pnfix5d0pbybnkv7bmz1a9f"))))
      (build-system meson-build-system)
      (arguments
 -     `(#:configure-flags '("-Ddocumentation=true") ; The default is 'false'...
 -       #:phases
 -       (modify-phases %standard-phases
 -         (add-before 'configure 'expand-C++-include-path
 -           ;; Make <gcc>/include/c++/ext/string_conversions.h find <stdlib.h>.
 -           (lambda* (#:key inputs #:allow-other-keys)
 -             (let* ((path "CPLUS_INCLUDE_PATH")
 -                    (gcc  (assoc-ref inputs "gcc"))
 -                    (c++  (string-append gcc "/include/c++")))
 -               (setenv path (string-append c++ ":" (getenv path)))
 -               #t))))))
 +     `(#:configure-flags '("-Ddocumentation=true"))) ;the default is 'false'...
      (inputs `(("ao" ,ao)
                ("alsa-lib" ,alsa-lib)
                ("avahi" ,avahi)
                ("pulseaudio" ,pulseaudio)
                ("sqlite" ,sqlite)
                ("zlib" ,zlib)))
 -    ;; MPD > 0.21 requires > GCC 6
 -    (native-inputs `(("gcc" ,gcc-8)
 -                     ("gcc-lib" ,gcc-8 "lib")
 -                     ("pkg-config" ,pkg-config)
 +    (native-inputs `(("pkg-config" ,pkg-config)
                       ("python-sphinx" ,python-sphinx)))
      ;; Missing optional inputs:
      ;;   libyajl
diff --combined gnu/packages/perl.scm
    ;; Yeah, Perl...  It is required early in the bootstrap process by Linux.
    (package
      (name "perl")
 -    (version "5.28.0")
 +    (version "5.28.1")
      (source (origin
               (method url-fetch)
               (uri (string-append "mirror://cpan/src/5.0/perl-"
                                   version ".tar.gz"))
               (sha256
                (base32
 -               "1a3f822lcl8dr8v0hk80yyhpzqlljg49z9flb48rs3nbsij9z4ky"))
 +               "0iy3as4hnbjfyws4in3j9d6zhhjxgl5m95i5n9jy2bnzcpz8bgry"))
               (patches (search-patches
                         "perl-no-sys-dirs.patch"
                         "perl-autosplit-default-time.patch"
@@@ -1647,9 -1647,8 +1647,8 @@@ It returns to the previous working dire
            (lambda* (#:key outputs #:allow-other-keys)
              (copy-recursively "."
                                (string-append (assoc-ref outputs "out")
-                                              "/plib/perl5/site_perl/"
-                                              ,(package-version perl)
-                                              "/czplib/"))
+                                              "/lib/perl5/site_perl/"
+                                              ,(package-version perl)))
              #t)))))
      (home-page "https://sourceforge.net/projects/czplib/")
      (synopsis "Library for genomic analysis")
@@@ -1751,6 -1750,27 +1750,27 @@@ their argument and produces a string a
  code that, when \"eval\"ed, produces a deep copy of the original arguments.")
      (license (package-license perl))))
  
+ (define-public perl-data-dumper
+   (package
+     (name "perl-data-dumper")
+     (version "2.173")
+     (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://cpan/authors/id/X/XS/XSAWYERX/"
+                            "Data-Dumper-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1yknbp86md6mjlhbs1lzz6mals3iyizndgiij58qx61hjfrhhxk9"))))
+     (build-system perl-build-system)
+     (home-page "https://metacpan.org/release/Data-Dumper")
+     (synopsis "Convert data structures to strings")
+     (description "Given a list of scalars or reference variables,
+ @code{Data::Dumper} writes out their contents in Perl syntax.  The references
+ can also be objects.  The content of each variable is output in a single Perl
+ statement.  It handles self-referential structures correctly.")
+     (license perl-license)))
  (define-public perl-data-dumper-concise
    (package
      (name "perl-data-dumper-concise")
@@@ -26,7 -26,7 +26,7 @@@
  ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
  ;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
  ;;; Copyright © 2016 David Craven <david@craven.ch>
 -;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com>
 +;;; Copyright © 2016, 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
  ;;; Copyright © 2016, 2017 Stefan Reichör <stefan@xsteve.at>
  ;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
  ;;; Copyright © 2016, 2017 Alex Vong <alexvong1995@gmail.com>
@@@ -614,14 -614,14 +614,14 @@@ encoded)."
  (define-public python-setuptools
    (package
      (name "python-setuptools")
 -    (version "40.0.0")
 +    (version "40.8.0")
      (source
       (origin
        (method url-fetch)
        (uri (pypi-uri "setuptools" version ".zip"))
        (sha256
         (base32
 -        "0pq116lr14gnc62v76nk0npkm6krb2mpp7p9ab369zgv4n7dnah1"))
 +        "0k9hifpgahnw2a26w3cr346iy733k6d3nwh3f7g9m13y6f8fqkkf"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@@ -872,14 -872,14 +872,14 @@@ from the Python interpreter, or as a sm
  (define-public python-six
    (package
      (name "python-six")
 -    (version "1.11.0")
 +    (version "1.12.0")
      (source
       (origin
        (method url-fetch)
        (uri (pypi-uri "six" version))
        (sha256
         (base32
 -        "1scqzwc51c875z23phj48gircqjgnn3af8zy2izjwmnlxrxsgs3h"))))
 +        "0wxs1q74v07ssjywbbm7x6h5v9qx209ld2yfsif4060sxi0h2sni"))))
      (build-system python-build-system)
      (arguments
       `(#:phases
@@@ -1355,7 -1355,7 +1355,7 @@@ existing ones."
  (define-public scons
    (package
      (name "scons")
-     (version "3.0.3")
+     (version "3.0.4")
      (source (origin
               (method git-fetch)
               (uri (git-reference
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1xizkjgrvydkjhpv7i5rx0mdkp3618sis7jsckjh57nxcynlk5dc"))))
+                "1xy8jrwz87y589ihcld4hv7wn122sjbz914xn8h50ww77wbhk8hn"))))
      (build-system python-build-system)
      (arguments
       `(#:use-setuptools? #f                ; still relies on distutils
               (substitute* "src/engine/SCons/compat/__init__.py"
                 (("sys.modules\\[new\\] = imp.load_module\\(old, \\*imp.find_module\\(old\\)\\)")
                  "sys.modules[new] = __import__(old)"))
+              (substitute* "src/engine/SCons/Platform/__init__.py"
+                (("mod = imp.load_module\\(full_name, file, path, desc\\)")
+                 "mod = __import__(full_name)"))
               (invoke "python" "bootstrap.py" "build/scons" "DEVELOPER=guix")
               (chdir "build/scons")
               #t)))))
@@@ -1526,14 -1529,14 +1529,14 @@@ server."
  (define-public python-py
    (package
      (name "python-py")
 -    (version "1.5.4")
 +    (version "1.8.0")
      (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "py" version))
         (sha256
          (base32
 -         "1xxvwfn82457djf55f5n2c94699rfqnk43br8fif2r2q8gvrmm9z"))))
 +         "0lsy1gajva083pzc7csj1cvbmminb7b4l6a0prdzyb3fd829nqyw"))))
      (build-system python-build-system)
      (arguments
       ;; FIXME: "ImportError: 'test' module incorrectly imported from
@@@ -1980,13 -1983,13 +1983,13 @@@ JavaScript-like message boxes.  Types o
    (package
      (name "python-pympler")
      (home-page "https://pythonhosted.org/Pympler/")
 -    (version "0.5")
 +    (version "0.6")
      (source (origin
                (method url-fetch)
                (uri (pypi-uri "Pympler" version))
                (sha256
                 (base32
 -                "03qwsbilqgvnbl3a1jmpgixbr2kq6m3fvdlzyr3wdp01bwlc85kx"))))
 +                "19qkpaw5icwhb4c0f6ijqfmhwhj34k2k6s4m4fsvhrxc9p5cwqn2"))))
      (build-system python-build-system)
      (arguments
       `(#:phases (modify-phases %standard-phases
@@@ -2631,14 -2634,14 +2634,14 @@@ Server (PLS)."
  (define-public python-language-server
    (package
      (name "python-language-server")
-     (version "0.23.2")
+     (version "0.24.0")
      (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "python-language-server" version))
         (sha256
          (base32
-          "1h83x5widj9p630ha9yv39cpp3djxppll3iww9nc8i3hdmyrbnnh"))))
+          "05zmv6jr7qbgnkz0lqh5pr7kr4lm12i8ljm2k5h5kz3q9m8d4mm0"))))
      (build-system python-build-system)
      (propagated-inputs
       `(("python-pluggy" ,python-pluggy)
@@@ -3779,14 -3782,14 +3782,14 @@@ as the original project seems to have b
  (define-public python-pycodestyle
    (package
      (name "python-pycodestyle")
 -    (version "2.4.0")
 +    (version "2.5.0")
      (source
 -      (origin
 -        (method url-fetch)
 -        (uri (pypi-uri "pycodestyle" version))
 -        (sha256
 -          (base32
 -            "0fhy4vnlgpjq4qd1wdnl6pvdw7rah0ypmn8c9mkhz8clsndskz6b"))))
 +     (origin
 +       (method url-fetch)
 +       (uri (pypi-uri "pycodestyle" version))
 +       (sha256
 +        (base32
 +         "0v4prb05n21bm8650v0a01k1nyqjdmkrsm3zycfxh2j5k9n962p4"))))
      (build-system python-build-system)
      (home-page "https://pycodestyle.readthedocs.io/")
      (synopsis "Python style guide checker")
@@@ -4448,13 -4451,13 +4451,13 @@@ child application and control it as if 
  (define-public python-setuptools-scm
    (package
      (name "python-setuptools-scm")
 -    (version "3.1.0")
 +    (version "3.2.0")
      (source (origin
                (method url-fetch)
                (uri (pypi-uri "setuptools_scm" version))
                (sha256
                 (base32
 -                "0h4bglwfz8b9prqljv8z3w9rgydfyxzaj05bm1y6zs5m6shz548i"))))
 +                "0n3knn3p1sqlx31k2lahn7z9bacvlv8nhlfidj77vz50bxqlgasj"))))
      (build-system python-build-system)
      (home-page "https://github.com/pypa/setuptools_scm/")
      (synopsis "Manage Python package versions in SCM metadata")
@@@ -5670,14 -5673,14 +5673,14 @@@ PEP 8."
  (define-public python-pyflakes
    (package
      (name "python-pyflakes")
 -    (version "2.0.0")
 +    (version "2.1.1")
      (source
        (origin
          (method url-fetch)
          (uri (pypi-uri "pyflakes" version))
          (sha256
            (base32
 -            "0jba28czyvimdc72llms3f17swp3i8jdcabf5w0j00adfbn64xls"))))
 +            "18pq95a1xj2dgdd0m85gyfsn40jajj4xc3lp8wfv7igqhrc86xnr"))))
      (build-system python-build-system)
      (home-page
        "https://github.com/pyflakes/pyflakes")
@@@ -5766,20 -5769,35 +5769,20 @@@ complexity of Python source code."
  (define-public python2-pyflakes-0.8.1
    (package-with-python2 python-pyflakes-0.8.1))
  
 -;; This package is used by hypothesis which has thousands of dependent packages.
 -;; FIXME: Consolidate this with "python-flake8" below in the next rebuild cycle.
 -(define-public python-flake8-3.5
 +(define-public python-flake8
    (package
      (name "python-flake8")
 -    (version "3.5.0")
 -    (source
 -      (origin
 -        (method url-fetch)
 -        (uri (pypi-uri "flake8" version))
 -        (sha256
 -          (base32
 -            "184b33grvvjmiwlv9kyd7yng9qv5ld24154j70z332xxg9gjclvj"))))
 +    (version "3.7.7")
 +    (source (origin
 +              (method url-fetch)
 +              (uri (pypi-uri "flake8" version))
 +              (sha256
 +               (base32
 +                "0qg6zggqigrd4k3gv88shd1a27d0cwgfql8vfiq2c7rl7w3rd6c5"))))
      (build-system python-build-system)
      (arguments
       `(#:phases
         (modify-phases %standard-phases
 -         ;; Two errors don't seem to have assigned codes.
 -         (add-after 'unpack 'delete-broken-test
 -           (lambda _ (delete-file "tests/unit/test_pyflakes_codes.py") #t))
 -         (add-after 'unpack 'fix-problem-with-pycodestyle
 -           (lambda _
 -             ;; See https://gitlab.com/pycqa/flake8/merge_requests/230
 -             ;; This should no longer be needed with the next release.
 -             (substitute* "setup.py"
 -               (("PEP8_PLUGIN\\('break_around_binary_operator'\\),")
 -                "PEP8_PLUGIN('break_after_binary_operator'),\
 -PEP8_PLUGIN('break_before_binary_operator'),"))
 -             #t))
           (delete 'check)
           (add-after 'install 'check
             (lambda* (#:key inputs outputs #:allow-other-keys)
               #t)))))
      (propagated-inputs
       `(("python-pycodestyle" ,python-pycodestyle)
 +       ("python-entrypoints" ,python-entrypoints)
         ("python-pyflakes" ,python-pyflakes)
         ("python-mccabe" ,python-mccabe)))
      (native-inputs
        "The modular source code checker: pep8, pyflakes and co")
      (description
        "Flake8 is a wrapper around PyFlakes, pep8 and python-mccabe.")
 -    (properties `((python2-variant . ,(delay python2-flake8-3.5))))
 +    (properties `((python2-variant . ,(delay python2-flake8))))
      (license license:expat)))
  
 -(define-public python2-flake8-3.5
 -  (let ((base (package-with-python2 (strip-python2-variant python-flake8-3.5))))
 +(define-public python2-flake8
 +  (let ((base (package-with-python2 (strip-python2-variant python-flake8))))
      (package (inherit base)
        (propagated-inputs
         `(("python2-configparser" ,python2-configparser)
           ("python2-enum34" ,python2-enum34)
 +         ("python2-typing" ,python2-typing)
            ,@(package-propagated-inputs base))))))
  
 -;; Version 3.5.0 has compatibility issues with Pyflakes 2.0, so we need
 -;; this newer version.  Keep it as a separate variable for now to avoid
 -;; rebuilding "python-hypothesis"; this should be removed in the next
 -;; rebuild cycle.
 -(define-public python-flake8
 -  (package
 -    (inherit python-flake8-3.5)
 -    (version "3.6.0")
 -    (source (origin
 -              (method url-fetch)
 -              (uri (pypi-uri "flake8" version))
 -              (sha256
 -               (base32
 -                "0w0nprx22rbvrrkbfx9v5jc5gskbm08g219l7r8wai8zfswgadba"))))
 -    (arguments
 -     (substitute-keyword-arguments (package-arguments python-flake8-3.5)
 -       ((#:phases phases)
 -        `(modify-phases ,phases
 -           (delete 'delete-broken-test)
 -           (delete 'fix-problem-with-pycodestyle)))))
 -    (properties `((python2-variant . ,(delay python2-flake8))))))
 -
 -(define-public python2-flake8
 -  (let ((base (package-with-python2 (strip-python2-variant python-flake8))))
 -    (package (inherit base)
 -             (propagated-inputs
 -              (package-propagated-inputs python2-flake8-3.5)))))
 -
  ;; python-hacking requires flake8 <2.6.0.
  (define-public python-flake8-2.5
    (package
@@@ -6039,13 -6083,13 +6042,13 @@@ add functionality and customization to 
  (define-public python-fonttools
    (package
      (name "python-fonttools")
 -    (version "3.28.0")
 +    (version "3.38.0")
      (source (origin
                (method url-fetch)
                (uri (pypi-uri "fonttools" version ".zip"))
                (sha256
                 (base32
 -                "0vsvjhidpb5kywpjgz1j3fywzkddxkb0afqai18qa3h6lqjyxwpb"))))
 +                "12ripk3s7skgxr1bs9r8n13r94ym3s8iir7ivfixls9fa4dabmlh"))))
      (build-system python-build-system)
      (native-inputs
       `(("unzip" ,unzip)
@@@ -7382,13 -7426,13 +7385,13 @@@ tables."
  (define-public python-atomicwrites
    (package
      (name "python-atomicwrites")
 -    (version "1.1.5")
 +    (version "1.3.0")
      (source (origin
               (method url-fetch)
               (uri (pypi-uri "atomicwrites" version))
               (sha256
                (base32
 -               "11bm90fwm2avvf4f3ib8g925w7jr4m11vcsinn1bi6ns4bm32214"))))
 +               "19ngcscdf3jsqmpcxn6zl5b6anmsajb6izp1smcd1n02midl9abm"))))
      (build-system python-build-system)
      (synopsis "Atomic file writes in Python")
      (description "Library for atomic file writes using platform dependent tools
@@@ -7721,14 -7765,11 +7724,14 @@@ otherwise matches 3.2’s API."
           (base32
            "0rdjmmsab550kxsssdq49jcniz77zlkpw4pvi9hvib3lsskjmh4y"))))
      (build-system python-build-system)
 -    (arguments `(#:python ,python-2
 -                 ;; FIXME: Python 2.7.14 moved the test.support library,
 -                 ;; but our package has not yet been adjusted.  Enable
 -                 ;; tests when the python2 package has been fixed.
 -                 #:tests? #f))
 +    (arguments
 +     `(#:python ,python-2
 +       #:phases
 +       (modify-phases %standard-phases
 +         (replace 'check
 +           (lambda _
 +             (invoke "python" "test_futures.py")
 +             #t)))))
      (home-page "https://github.com/agronholm/pythonfutures")
      (synopsis
       "Backport of the concurrent.futures package from Python 3.2")
@@@ -7820,14 -7861,14 +7823,14 @@@ library as well as on the command line.
  (define-public python-pluggy
    (package
     (name "python-pluggy")
 -   (version "0.7.1")
 +   (version "0.9.0")
     (source
      (origin
       (method url-fetch)
       (uri (pypi-uri "pluggy" version))
       (sha256
        (base32
 -       "1qbn70mksmr03hac6jgp6fiqc4l7859z8dchx2x950vhlij87swm"))))
 +       "13yg2q0wgcb4l8lgdvcnzqa8db5lrw3nwn50lxjy1z5jkp7gkv0r"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-setuptools-scm" ,python-setuptools-scm)))
@@@ -7994,7 -8035,7 +7997,7 @@@ python-xdo for newer bindings.)"
       `(("python-mock" ,python-mock)
         ("python-nose" ,python-nose)
         ("python-pytest" ,python-pytest)))
-     (home-page "http://www.makotemplates.org/")
+     (home-page "https://www.makotemplates.org/")
      (synopsis "Templating language for Python")
      (description "Mako is a templating language for Python that compiles
  templates into Python modules.")
@@@ -8510,13 -8551,13 +8513,13 @@@ anymore."
  (define-public python2-pathlib2
    (package
      (name "python2-pathlib2")
 -    (version "2.3.2")
 +    (version "2.3.3")
      (source (origin
                (method url-fetch)
                (uri (pypi-uri "pathlib2" version))
                (sha256
                 (base32
 -                "10yb0iv5x2hs631rcppkhbddx799d3h8pcwmkbh2a66ns3w71ccf"))))
 +                "0hpp92vqqgcd8h92msm9slv161b1q160igjwnkf2ag6cx0c96695"))))
      (build-system python-build-system)
      ;; We only need the the Python 2 variant, since for Python 3 our minimum
      ;; version is 3.4 which already includes this package as part of the
@@@ -11207,13 -11248,13 +11210,13 @@@ and bit flag values."
  (define-public python-attrs
    (package
      (name "python-attrs")
 -    (version "18.2.0")
 +    (version "19.1.0")
      (source (origin
                (method url-fetch)
                (uri (pypi-uri "attrs" version))
                (sha256
                 (base32
 -                "0s9ydh058wmmf5v391pym877x4ahxg45dw6a0w4c7s5wgpigdjqh"))))
 +                "16g33zr5f449lqc5wgvzpknxryfzrfsxcr6kpgxwn7l5fkv71f7h"))))
      (build-system python-build-system)
      (arguments
       `(#:modules ((guix build utils)
@@@ -11255,6 -11296,15 +11258,6 @@@ protocols."
    (package
      (inherit python-attrs)
      (name "python-attrs-bootstrap")
 -    ;; Keep this on a fixed version so python-attrs can be updated without
 -    ;; triggering a mass-rebuild.  FIXME: Update this in the next rebuild cycle.
 -    (version "17.4.0")
 -    (source (origin
 -              (method url-fetch)
 -              (uri (pypi-uri "attrs" version))
 -              (sha256
 -               (base32
 -                "1jafnn1kzd6qhxgprhx6y6ik1r5m2rilx25syzcmq03azp660y8w"))))
      (native-inputs `())
      (arguments `(#:tests? #f))))
  
@@@ -11554,14 -11604,17 +11557,14 @@@ of @code{functools.lru_cache} from pyth
  (define-public python-configparser
    (package
      (name "python-configparser")
 -    (version "3.5.0")
 +    (version "3.7.1")
      (source
       (origin
         (method url-fetch)
 -       (uri (string-append
 -             "https://bitbucket.org/ambv/configparser/get/"
 -             version ".tar.bz2"))
 -       (file-name (string-append name "-" version ".tar.gz"))
 +       (uri (pypi-uri "configparser" version))
         (sha256
          (base32
 -         "0waq40as14abwzbb321hfz4vr1fi363nscy32ga14qvfygrg96wa"))))
 +         "0cnz213il9lhgda6x70fw7mfqr8da43s3wm343lwzhqx94mgmmav"))))
      (build-system python-build-system)
      (home-page "https://github.com/jaraco/configparser/")
      (synopsis "Backport of configparser from python 3.5")
@@@ -11917,14 -11970,14 +11920,14 @@@ several utilities, as well as an API fo
  (define-public python-packaging
    (package
      (name "python-packaging")
 -    (version "18.0")
 +    (version "19.0")
      (source
        (origin
          (method url-fetch)
          (uri (pypi-uri "packaging" version))
          (sha256
           (base32
 -          "01wq9c53ix5rz6qg2c98gy8n4ff768rmanifm8m5jpjiaizj51h8"))))
 +          "1brjhygq9dz6x1kdljivkjfldi3qf5rbkqgck1bpgv9qpv8ab60c"))))
      (build-system python-build-system)
      (arguments
       `(#:phases (modify-phases %standard-phases
@@@ -13803,40 -13856,41 +13806,40 @@@ file system events on Linux."
  (define-public python-more-itertools
    (package
      (name "python-more-itertools")
 -    (version "4.3.0")
 +    (version "6.0.0")
      (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "more-itertools" version))
         (sha256
          (base32
 -         "17h3na0rdh8xq30w4b9pizgkdxmm51896bxw600x84jflg9vaxn4"))))
 +         "1lfrx2ndnilla3a5lhpjc1wjgkplkxrhp5nyn6ys2l93jkil802r"))))
      (build-system python-build-system)
 -    (arguments
 -     `(,@(if (any (cute string-prefix? <> (or (%current-system)
 -                                              (%current-target-system)))
 -                  '("armhf" "i686"))
 -        '(#:phases
 -          (modify-phases %standard-phases
 -          ;; This is required for 32-bit hardware.
 -          ;; TODO: Try to remove this when upgrading.
 -          (add-after 'unpack 'patch-test
 -            (lambda _
 -              (substitute* "more_itertools/tests/test_more.py"
 -                (("10 \\*\\* 10") "9 ** 9"))
 -              #t))))
 -        '())))
 -    (propagated-inputs
 -     `(("python-six" ,python-six-bootstrap)))
      (home-page "https://github.com/erikrose/more-itertools")
      (synopsis "More routines for operating on iterables, beyond itertools")
      (description "Python's built-in @code{itertools} module implements a
  number of iterator building blocks inspired by constructs from APL, Haskell,
  and SML.  @code{more-itertools} includes additional building blocks for
  working with iterables.")
 +    (properties `((python2-variant . ,(delay python2-more-itertools))))
      (license license:expat)))
  
 +;; The 5.x series are the last versions supporting Python 2.7.
  (define-public python2-more-itertools
 -  (package-with-python2 python-more-itertools))
 +  (package
 +    (inherit python-more-itertools)
 +    (name "python2-more-itertools")
 +    (version "5.0.0")
 +    (source (origin
 +              (method url-fetch)
 +              (uri (pypi-uri "more-itertools" version))
 +              (sha256
 +               (base32
 +                "1r12cm6mcdwdzz7d47a6g4l437xsvapdlgyhqay3i2nrlv03da9q"))))
 +    (arguments
 +     `(#:python ,python2-minimal))
 +    (propagated-inputs
 +     `(("python2-six" ,python2-six-bootstrap)))))
  
  (define-public python-latexcodec
    (package
@@@ -14661,14 -14715,14 +14664,14 @@@ append on old values.  Partd excels at 
  (define-public python-dask
    (package
      (name "python-dask")
-     (version "1.1.3")
+     (version "1.1.4")
      (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "dask" version))
         (sha256
          (base32
-          "03ykmq46q2hh7mn68vcxkgylybjaj3r0kfspaiymdmqmjzpjivr5"))))
+          "1hrnfz4pzawikz9b622vjz2500n7hs25nz9msy1k8l4g7l2kr6ky"))))
      (build-system python-build-system)
      ;; A single test out of 5000+ fails.  This test is marked as xfail when
      ;; pytest-xdist is used.
diff --combined gnu/packages/rust.scm
@@@ -409,7 -409,10 +409,7 @@@ test = { path = \"../libtest\" 
      ;; modules (see <https://bugs.gnu.org/31392>).
      (native-search-paths
       (list (search-path-specification
 -            (variable "C_INCLUDE_PATH")
 -            (files '("include")))
 -           (search-path-specification
 -            (variable "CPLUS_INCLUDE_PATH")
 +            (variable "CPATH")
              (files '("include")))
             (search-path-specification
              (variable "LIBRARY_PATH")
@@@ -783,7 -786,7 +783,7 @@@ jemalloc = \"" jemalloc "/lib/libjemall
               ;; The thinlto test should pass with llvm 6.
               (delete 'disable-thinlto-test))))))))
  
- (define-public rust
+ (define-public rust-1.29
    (let ((base-rust
           (rust-bootstrapped-package rust-1.28 "1.29.2"
                                      "1jb787080z754caa2w3w1amsygs4qlzj9rs1vy64firfmabfg22h"
                                        "rust-reproducible-builds.patch"))))
      (package
        (inherit base-rust))))
+ (define-public rust-1.30
+   (let ((base-rust
+          (rust-bootstrapped-package rust-1.29 "1.30.1"
+                                     "0aavdc1lqv0cjzbqwl5n59yd0bqdlhn0zas61ljf38yrvc18k8rn"
+                                     #:patches
+                                     '("rust-1.25-accept-more-detailed-gdb-lines.patch"
+                                       "rust-1.30-gdb-llvm.patch"
+                                       "rust-reproducible-builds.patch"))))
+     (package
+       (inherit base-rust)
+       (inputs
+        ;; Use LLVM 7.0
+        (alist-replace "llvm" (list llvm)
+                       (package-inputs base-rust)))
+       (arguments
+        (substitute-keyword-arguments (package-arguments base-rust)
+          ((#:phases phases)
+           `(modify-phases ,phases
+              (add-after 'patch-cargo-tests 'patch-cargo-env-shebang
+                (lambda* (#:key inputs #:allow-other-keys)
+                  (let ((coreutils (assoc-ref inputs "coreutils")))
+                    (substitute* "src/tools/cargo/tests/testsuite/fix.rs"
+                      ;; Cargo has a test which explicitly sets a
+                      ;; RUSTC_WRAPPER environment variable which points
+                      ;; to /usr/bin/env. Since it's not a shebang, it
+                      ;; needs to be manually patched
+                      (("\"/usr/bin/env\"")
+                       (string-append "\"" coreutils "/bin/env\"")))
+                    #t)))
+              (add-after 'patch-cargo-env-shebang 'ignore-cargo-package-tests
+                (lambda* _
+                  (substitute* "src/tools/cargo/tests/testsuite/package.rs"
+                    ;; These tests largely check that cargo outputs warning/error
+                    ;; messages as expected. It seems that cargo outputs an
+                    ;; absolute path to something in the store instead of the
+                    ;; expected relative path (e.g. `[..]`) so we'll ignore
+                    ;; these for now
+                    (("fn include") "#[ignore]\nfn include")
+                    (("fn exclude") "#[ignore]\nfn exclude"))
+                    #t))
+              ;; Appears that this test isn't currently running and has been
+              ;; moved elsewhere, so the patch doesn't apply.
+              (delete 'disable-amd64-avx-test))))))))
+ (define-public rust
+   (let ((base-rust
+          (rust-bootstrapped-package rust-1.30 "1.31.1"
+                                     "0sk84ff0cklybcp0jbbxcw7lk7mrm6kb6km5nzd6m64dy0igrlli"
+                                     #:patches
+                                     '("rust-1.25-accept-more-detailed-gdb-lines.patch"
+                                       "rust-1.30-gdb-llvm.patch"
+                                       "rust-reproducible-builds.patch"))))
+     (package
+       (inherit base-rust)
+       (arguments
+        (substitute-keyword-arguments (package-arguments base-rust)
+          ((#:phases phases)
+           `(modify-phases ,phases
+              (add-after 'patch-tests 'patch-command-exec-tests
+                (lambda* (#:key inputs #:allow-other-keys)
+                  (let ((coreutils (assoc-ref inputs "coreutils")))
+                    (substitute* "src/test/run-pass/command-exec.rs"
+                      ;; This test suite includes some tests that the stdlib's
+                      ;; `Command` execution properly handles situations where
+                      ;; the environment or PATH variable are empty, but this
+                      ;; fails since we don't have `echo` available in the usual
+                      ;; Linux directories.
+                      ;; NB: the leading space is so we don't fail a tidy check
+                      ;; for trailing whitespace, and the newlines are to ensure
+                      ;; we don't exceed the 100 chars tidy check as well
+                      ((" Command::new\\(\"echo\"\\)")
+                       (string-append "\nCommand::new(\"" coreutils "/bin/echo\")\n")))
+                    #t)))
+              (add-after 'patch-tests 'patch-process-docs-rev-cmd
+                (lambda* _
+                  ;; Disable some doc tests which depend on the "rev" command
+                  ;; https://github.com/rust-lang/rust/pull/58746
+                  (substitute* "src/libstd/process.rs"
+                    (("```rust") "```rust,no_run"))
+                  #t)))))))))
diff --combined gnu/packages/tex.scm
              (copy-file "texk/web2c/pdftexdir/pdftosrc-newpoppler.cc"
                         "texk/web2c/pdftexdir/pdftosrc.cc")
              #t))
 +        (add-after 'use-code-for-new-poppler 'use-code-for-even-newer-poppler
 +          (lambda _
 +            ;; Adjust for deprecated types in Poppler 0.73.
 +            (substitute* (append
 +                          (find-files "texk/web2c/luatexdir/" "\\.(cc|w)$")
 +                          '("texk/web2c/pdftexdir/pdftosrc.cc"))
 +              (("Guint") "unsigned int")
 +              (("Guchar") "unsigned char"))
 +            #t))
          (add-after 'unpack 'disable-failing-test
            (lambda _
              ;; FIXME: This test fails on 32-bit architectures since Glibc 2.28:
@@@ -6469,3 -6460,77 +6469,77 @@@ effects, varying slide transitions and 
      ;; Code is dual licensed under GPLv2+ or LPPL1.3c+; documentation is
      ;; dual-licensed under either FDLv1.3+ or LPPL1.3c+.
      (license (list license:lppl1.3c+ license:gpl2+ license:fdl1.3+))))
+ (define-public texlive-latex-xmpincl
+   (package
+     (name "texlive-latex-xmpincl")
+     (version (number->string %texlive-revision))
+     (source
+      (origin
+        (method svn-fetch)
+        (uri (texlive-ref "latex" "xmpincl"))
+        (sha256
+         (base32
+          "0lq3dfb4fsw955gjwllnk7cg00ciq5mva64mlpbva6g2jz117734"))))
+     (build-system texlive-build-system)
+     (arguments '(#:tex-directory "latex/xmpincl"))
+     (home-page "http://www.ctan.org/pkg/xmpincl")
+     (synopsis "Include eXtensible Metadata Platform data in pdfLaTeX")
+     (description
+      "The XMP (eXtensible Metadata platform) is a framework to add metadata to
+ digital material to enhance the workflow in publication.  The essence is that
+ the metadata is stored in an XML file, and this XML stream is then embedded in
+ the file to which it applies.")
+     (license license:gpl3+)))
+ (define-public texlive-latex-pdfx
+   (package
+     (name "texlive-latex-pdfx")
+     (version (number->string %texlive-revision))
+     (source
+      (origin
+        (method svn-fetch)
+        (uri (texlive-ref "latex" "pdfx"))
+        (sha256
+         (base32
+          "0ikxg8yzq78hy5b9x13d4nah46d0yvmwlqmdri06pygbx116dcac"))))
+     (build-system texlive-build-system)
+     (arguments
+      '(#:tex-directory "latex/pdfx"
+        #:phases
+        (modify-phases %standard-phases
+          (add-after 'unpack 'fix-encoding
+            (lambda _
+              (substitute* "pdfx.dtx"
+                (("    .+umaczy") "umaczy"))
+              #t))
+          (add-before 'install 'install-tex-files
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (let ((target (string-append (assoc-ref outputs "out")
+                                           "/share/texmf-dist/tex/latex/pdfx")))
+                (mkdir-p target)
+                (copy-recursively (assoc-ref inputs "texlive-tex-pdfx") target)
+                ;; Install the generated version in the "install" phase.
+                (delete-file (string-append target "/pdfx.sty"))
+                #t))))))
+     (propagated-inputs
+      `(("texlive-generic-pdftex" ,texlive-generic-pdftex)))
+     (native-inputs
+      `(("texlive-tex-pdfx"
+         ,(origin
+            (method svn-fetch)
+            (uri (svn-reference
+                  (url (string-append "svn://www.tug.org/texlive/tags/"
+                                      %texlive-tag "/Master/texmf-dist/"
+                                      "/tex/latex/pdfx"))
+                  (revision %texlive-revision)))
+            (file-name (string-append "texlive-tex-latex-pdfx-" version "-checkout"))
+            (sha256
+             (base32
+              "14j1zsvqc59ims3sk34v6km8db6cimks28y5fcxcr5mi2ykvj4vf"))))))
+     (home-page "https://www.ctan.org/pkg/pdfx")
+     (synopsis "PDF/X and PDF/A support for pdfTeX, LuaTeX and XeTeX")
+     (description
+      "This package helps LaTeX users to create PDF/X, PFD/A and other
+ standards-compliant PDF documents with pdfTeX, LuaTeX and XeTeX.")
+     (license license:lppl1.2+)))
@@@ -5,7 -5,7 +5,7 @@@
  ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
  ;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
  ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
 -;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
 +;;; Copyright © 2014, 2016, 2019 Eric Bavier <bavier@member.fsf.org>
  ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
  ;;; Copyright © 2015, 2018 Kyle Meyer <kyle@kyleam.com>
  ;;; Copyright © 2015, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
@@@ -1297,7 -1297,7 +1297,7 @@@ following features
  (define-public subversion
    (package
      (name "subversion")
-     (version "1.10.2")
+     (version "1.10.4")
      (source (origin
               (method url-fetch)
               (uri
                                  "subversion-" version ".tar.bz2")))
               (sha256
                (base32
-                "127dysfc31q4dhbbxaznh9kqixy9jd44kgwji2gdwj6rb2lf6dav"))))
+                "18c1vdq32nil76w678lxmp73jsbqha3dmzgmfrj76nc0xjmywql2"))))
      (build-system gnu-build-system)
      (arguments
       '(#:phases
@@@ -1386,15 -1386,6 +1386,15 @@@ projects, from individuals to large-sca
               (patches (search-patches "rcs-5.9.4-noreturn.patch"))))
      (build-system gnu-build-system)
      (native-inputs `(("ed" ,ed)))
 +    (arguments
 +     `(#:phases (modify-phases %standard-phases
 +                  (add-before 'check 'disable-t810
 +                    ;; See https://savannah.gnu.org/bugs/index.php?52288
 +                    ;; Back-porting the fix is non-trivial, so disable for now.
 +                    (lambda _
 +                      (substitute* "tests/Makefile"
 +                        ((" t810 \\\\\n") ""))
 +                     #t)))))
      (home-page "https://www.gnu.org/software/rcs/")
      (synopsis "Per-file local revision control system")
      (description
@@@ -1904,7 -1895,7 +1904,7 @@@ repository\" with git-annex."
      (inputs
       `(("openssl" ,openssl)
         ("zlib" ,zlib)
 -       ("sqlite" ,sqlite-3.26.0)))
 +       ("sqlite" ,sqlite)))
      (arguments
       `(#:configure-flags (list "--with-openssl=auto"
                                 "--disable-internal-sqlite")
diff --combined gnu/packages/video.scm
@@@ -5,7 -5,7 +5,7 @@@
  ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
  ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
  ;;; Copyright © 2015 Andy Patterson <ajpatter@uwaterloo.ca>
- ;;; Copyright © 2015, 2018 Ricardo Wurmus <rekado@elephly.net>
+ ;;; Copyright © 2015, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
  ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Alex Vong <alexvong1995@gmail.com>
  ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
  ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
@@@ -33,6 -33,7 +33,7 @@@
  ;;; Copyright © 2018 Gábor Boskovit <boskovits@gmail.com>
  ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
  ;;; Copyright © 2019 Timo Eisenmann <eisenmann@fn.de>
+ ;;; Copyright © 2019 Arne Babenhauserheide <arne_bab@web.de>
  ;;;
  ;;; This file is part of GNU Guix.
  ;;;
@@@ -240,6 -241,43 +241,43 @@@ A/52 standard is used in a variety of a
  television and DVD.  It is also known as AC-3.")
      (license license:gpl2+)))
  
+ (define-public libaom
+   ;; The 1.0.0-errata1 release installs a broken pkg-config .pc file.  This
+   ;; is fixed in libaom commit 0ddc150, but we use an even later commit.
+   (let ((commit "22b150bf040608028a56d8bf39e72f771383d836")
+         (revision "0"))
+     (package
+       (name "libaom")
+       (version (git-version "1.0.0-errata1" revision commit))
+       (source (origin
+                 (method git-fetch)
+                 (uri (git-reference
+                       (url "https://aomedia.googlesource.com/aom/")
+                       (commit commit)))
+                 (file-name (git-file-name name version))
+                 (sha256
+                  (base32
+                   "1pdd5h3n42607n6qmggz4yv8izhjr2kl6knb3kh7gh4v0vy47h1r"))))
+       (build-system cmake-build-system)
+       (native-inputs
+        `(("perl" ,perl)
+          ("pkg-config" ,pkg-config)
+          ("python" ,python))) ; to detect the version
+       (arguments
+        `(#:tests? #f  ;no check target
+          #:configure-flags
+            ;; build dynamic library
+          (list "-DBUILD_SHARED_LIBS=YES"
+                "-DENABLE_PIC=TRUE"
+                "-DAOM_TARGET_CPU=generic"
+                (string-append "-DCMAKE_INSTALL_PREFIX="
+                                 (assoc-ref %outputs "out")))))
+       (home-page "https://aomedia.googlesource.com/aom/")
+       (synopsis "AV1 video codec")
+       (description "Libaom is the reference implementation of AV1.  It includes
+ a shared library and encoder and decoder command-line executables.")
+       (license license:bsd-2))))
  (define-public libmpeg2
    (package
      (name "libmpeg2")
@@@ -707,6 -745,7 +745,7 @@@ standards (MPEG-2, MPEG-4 ASP/H.263, MP
         ("opus" ,opus)
         ("ladspa" ,ladspa)
         ("lame" ,lame)
+        ("libaom" ,libaom)
         ("libass" ,libass)
         ("libbluray" ,libbluray)
         ("libcaca" ,libcaca)
           "--enable-fontconfig"
           "--enable-gnutls"
           "--enable-ladspa"
+          "--enable-libaom"
           "--enable-libass"
           "--enable-libbluray"
           "--enable-libcaca"
@@@ -875,7 -915,13 +915,13 @@@ audio/video codec library."
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0b59qk5wpc5ksiha76jbhb859g5gxa4w0k6afh3kgvgajiivs73l"))))))
+                "0b59qk5wpc5ksiha76jbhb859g5gxa4w0k6afh3kgvgajiivs73l"))))
+     (arguments
+      (substitute-keyword-arguments (package-arguments ffmpeg)
+        ((#:configure-flags flags)
+         `(delete "--enable-libaom" ,flags))))
+     (inputs (alist-delete "libaom"
+                           (package-inputs ffmpeg)))))
  
  (define-public ffmpeg-for-stepmania
    (hidden-package
@@@ -1366,7 -1412,7 +1412,7 @@@ access to mpv's powerful playback capab
  (define-public youtube-dl
    (package
      (name "youtube-dl")
-     (version "2019.02.18")
+     (version "2019.03.01")
      (source (origin
                (method url-fetch)
                (uri (string-append "https://github.com/rg3/youtube-dl/releases/"
                                    version ".tar.gz"))
                (sha256
                 (base32
-                 "1sr0f6ixpaqyp3cf29zswx84y3nfabwnk3sljcgvgnmjp73zzfv1"))))
+                 "0bxk6adyppdv50jnp5cika8wc6wfgd6d8zbg1njgmcs1pxskllmf"))))
      (build-system python-build-system)
      (arguments
       ;; The problem here is that the directory for the man page and completion
@@@ -1485,7 -1531,7 +1531,7 @@@ other site that youtube-dl supports."
  (define-public you-get
    (package
      (name "you-get")
-     (version "0.4.1210")
+     (version "0.4.1256")
      (source (origin
                (method git-fetch)
                (uri (git-reference
                (file-name (git-file-name name version))
                (sha256
                 (base32
-                 "1plw518hzpzzcr38phlnsbpq7aqnps8iwrgr68f6d41rppl1qb25"))))
+                 "1hzr7ha1jvbc0v2bwl7s08ymwdmvb0f2jz4xp1fi6agq5y3ca1iv"))))
      (build-system python-build-system)
      (inputs
       `(("ffmpeg" ,ffmpeg)))             ; for multi-part and >=1080p videos
@@@ -1524,7 -1570,7 +1570,7 @@@ audio, images) from the Web.  It can us
  (define-public youtube-viewer
    (package
      (name "youtube-viewer")
-     (version "3.5.2")
+     (version "3.5.4")
      (source (origin
                (method git-fetch)
                (uri (git-reference
                (file-name (git-file-name name version))
                (sha256
                 (base32
-                 "0sx0f7jgc41a4anflw02zqk5yivydn02nn78kxkn3fik6xdmv3yd"))))
+                 "1j782m9rximybamd0qsc43hi7hgk333x9gy3ypzb61s0sifs0i6m"))))
      (build-system perl-build-system)
      (native-inputs
       `(("perl-module-build" ,perl-module-build)))
@@@ -2191,15 -2237,16 +2237,16 @@@ and JACK."
  (define-public libvdpau
    (package
      (name "libvdpau")
-     (version "1.1.1")
+     (version "1.2")
      (source
        (origin
          (method url-fetch)
-         (uri (string-append "https://secure.freedesktop.org/~aplattner/vdpau/"
-                             name "-" version ".tar.bz2"))
+         (uri (string-append "https://gitlab.freedesktop.org/vdpau/libvdpau"
+                             "/uploads/14b620084c027d546fa0b3f083b800c6/"
+                             "libvdpau-" version ".tar.bz2"))
          (sha256
           (base32
-           "0dnpb0yh7v6rvckx82kxg045rd9rbsw25wjv7ad5n8h94s9h2yl5"))))
+           "01ps6g6p6q7j2mjm9vn44pmzq3g75mm7mdgmnhb1qkjjdwc9njba"))))
      (build-system gnu-build-system)
      (native-inputs
       `(("pkg-config" ,pkg-config)))
@@@ -2352,7 -2399,7 +2399,7 @@@ Other features include a live preview a
  (define-public libsmpeg
    (package
      (name "libsmpeg")
-     (version "0.4.5")
+     (version "0.4.5-401")
      (source (origin
                (method svn-fetch)
                (uri (svn-reference
@@@ -2387,6 -2434,23 +2434,23 @@@ and MPEG system streams."
                     license:lgpl2.1+
                     license:gpl2))))
  
+ ;; for btanks
+ (define-public libsmpeg-with-sdl1
+   (package (inherit libsmpeg)
+     (name "libsmpeg")
+     (version "0.4.5-399")
+     (source (origin
+               (method svn-fetch)
+               (uri (svn-reference
+                     (url "svn://svn.icculus.org/smpeg/trunk/")
+                     (revision 399))) ; tagged release 0.4.5
+               (file-name (string-append name "-" version "-checkout"))
+               (sha256
+                (base32
+                 "0jfi085rf3fa5xsn0vd3nqf32my8ph9c6a9445y7a8lrlz4dms64"))))
+     (inputs
+      `(("sdl" ,sdl)))))
  (define-public libbdplus
    (package
      (name "libbdplus")
@@@ -2468,14 -2532,14 +2532,14 @@@ supported players in addition to this p
  (define-public handbrake
    (package
      (name "handbrake")
 -    (version "1.1.2")
 +    (version "1.2.0")
      (source (origin
                (method url-fetch)
                (uri (string-append "https://download.handbrake.fr/releases/"
                                    version "/HandBrake-" version "-source.tar.bz2"))
                (sha256
                 (base32
 -                "0bny0hwlr55g2c69rsamv0xvwmfh1s4a582b9vq20xv5ly84m6ms"))
 +                "03clkknaq3mz84p85cvr21gsy9b8vv2g4vvyfz44hz8la253jfqi"))
                (modules '((guix build utils)))
                (snippet
                 ;; Remove "contrib" and source not necessary for
                      ;; which would lead to fetching and building of these
                      ;; libraries.  Use our own instead.
                      (("MODULES \\+= contrib") "# MODULES += contrib"))
 -                  #t))))
 +                  #t))
 +              (patches (search-patches "handbrake-opt-in-nvenc.patch"))))
      (build-system  glib-or-gtk-build-system)
      (native-inputs
       `(("automake" ,automake)           ;gui subpackage must be bootstrapped
         ("autoconf" ,autoconf)
 +       ("cmake" ,cmake) ;TODO: could probably strip check from make/configure.py
         ("curl" ,curl)                   ;not actually used, but tested for
         ("intltool" ,intltool)
         ("libtool" ,libtool)
         ("libvpx" ,libvpx)
         ("libxml2" ,libxml2)
         ("libx264" ,libx264)
 +       ("speex" ,speex)
         ("x265" ,x265)
         ("zlib" ,zlib)))
      (arguments
       `(#:tests? #f             ;tests require Ruby and claim to be unsupported
         #:configure-flags
 -       (list (string-append "CPPFLAGS=-I"
 +       (list "--disable-gtk-update-checks"
 +             (string-append "CPPFLAGS=-I"
                              (assoc-ref %build-inputs "libxml2")
                              "/include/libxml2")
               "LDFLAGS=-lx265")
@@@ -3323,15 -3383,20 +3387,20 @@@ transitions, and effects and then expor
  (define-public dav1d
    (package
      (name "dav1d")
-     (version "0.1.0")
+     (version "0.2.0")
      (source
        (origin
          (method url-fetch)
-         (uri (string-append "https://downloads.videolan.org/pub/videolan/"
-                             "dav1d/" version "/dav1d-" version ".tar.xz"))
+         (uri (list ;; The canonical download site
+                    (string-append "https://downloads.videolan.org/pub/videolan/"
+                                   "dav1d/" version "/dav1d-" version ".tar.xz")
+                    ;; Auto-generated tarballs from the Git repo?
+                    (string-append "https://code.videolan.org/videolan/dav1d/-/"
+                                   "archive/" version "/dav1d-" version ".tar.bz2")))
          (sha256
           (base32
-           "0dw0liday8cbyrirhm6bgzhxg4cdy66nspfkdlq338gdsfqcvrsc"))))
+           "0q0dbbl91syjnkygz268gh4b7mdcgl6hldj300a4cbqidsadpl5p"))))
      (build-system meson-build-system)
      (native-inputs `(("nasm" ,nasm)))
      (home-page "https://code.videolan.org/videolan/dav1d")
diff --combined gnu/packages/xdisorg.scm
@@@ -23,7 -23,7 +23,7 @@@
  ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
  ;;; Copyright © 2018 Thomas Sigurdsen <tonton@riseup.net>
  ;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
- ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
+ ;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
  ;;; Copyright © 2018 Nam Nguyen <namn@berkeley.edu>
  ;;;
  ;;; This file is part of GNU Guix.
@@@ -69,6 -69,7 +69,7 @@@
    #:use-module (gnu packages glib)
    #:use-module (gnu packages gnome)
    #:use-module (gnu packages icu4c)
+   #:use-module (gnu packages man)
    #:use-module (gnu packages maths)
    #:use-module (gnu packages m4)
    #:use-module (gnu packages ncurses)
@@@ -132,6 -133,60 +133,60 @@@ are saved as executable shell scripts w
  program.")
      (license license:gpl3+)))
  
+ (define-public autorandr
+   ;; Use latest commit since 1.7 lacks many new features such as the
+   ;; autorandr_launcher.
+   (let ((commit "b484c0ea9c9a4838278bbd661a7cc384333c1df8"))
+     (package
+       (name "autorandr")
+       (version (git-version "1.7" "1" commit))
+       (home-page "https://github.com/phillipberndt/autorandr")
+       (source
+        (origin
+          (method git-fetch)
+          (uri (git-reference
+                (url home-page)
+                (commit commit)))
+          (file-name (git-file-name name version))
+          (sha256
+           (base32
+            "0da17kzsisjv3s993j5idkk1n2d2cvjdn7pngs2b0ic1r2h5z02h"))))
+       (build-system python-build-system)
+       (native-inputs
+        `(("man-db" ,man-db)))
+       (inputs
+        `(("xrandr" ,xrandr)
+          ("libxcb" ,libxcb)))
+       (arguments
+        `(#:phases
+          (modify-phases %standard-phases
+            (add-before 'build 'configure
+              (lambda* (#:key inputs #:allow-other-keys)
+                (substitute* "autorandr.py"
+                  (("popen\\(\"xrandr") (string-append "popen(\""
+                                                       (assoc-ref inputs "xrandr")
+                                                       "/bin/xrandr"))
+                  (("\\[\"xrandr") (string-append "[\""
+                                                  (assoc-ref inputs "xrandr")
+                                                  "/bin/xrandr")))
+                #t))
+            (add-after 'install 'install-contrib
+              (lambda* (#:key outputs #:allow-other-keys)
+                (invoke "make"
+                        (string-append "DESTDIR=" (assoc-ref outputs "out"))
+                        "PREFIX="
+                        "BASH_COMPLETIONS_DIR=etc/bash_completiond.d"
+                        "install_manpage"
+                        "install_bash_completion"
+                        "install_launcher"))))))
+       (synopsis "Auto-detect connected displays and load appropiate setup")
+       (description "Autorandr wraps around xrandr to help with X11
+ multi-screen configuration management.  It allows the user to create profiles
+ for various multi-screen setups.  Autorandr automatically detects the profiles
+ that can be activated based on the connected hardware.  Hook scripts can be
+ used to further tweak the behaviour of the different profiles.")
+       (license license:gpl3+))))
  (define-public xclip
    (package
      (name "xclip")
@@@ -298,7 -353,7 +353,7 @@@ following the mouse."
  (define-public pixman
    (package
      (name "pixman")
 -    (version "0.36.0")
 +    (version "0.38.0")
      (source (origin
                (method url-fetch)
                (uri (string-append
                      version ".tar.gz"))
                (sha256
                 (base32
 -                "1blzrx50ssdv0pn56hcv2v0zw0vrjwj1sx22pkgjls1p9n6rr88w"))
 +                "1a0ci5ni7wngh59m0m00wzvhrc39aqj54yj88msw5msn07pjnnd7"))
                (patches (search-patches "pixman-CVE-2016-5296.patch"))))
      (build-system gnu-build-system)
      (inputs
diff --combined gnu/packages/xorg.scm
@@@ -1212,7 -1212,7 +1212,7 @@@ hit when running single-threaded."
  (define-public libsm
    (package
      (name "libsm")
 -    (version "1.2.2")
 +    (version "1.2.3")
      (source
        (origin
          (method url-fetch)
                 ".tar.bz2"))
          (sha256
            (base32
 -            "1gc7wavgs435g9qkp9jw4lhmaiq6ip9llv49f054ad6ryp4sib0b"))))
 +            "1fwwfq9v3sqmpzpscymswxn76xhxnysa24pfim1mcpxhvjcl89id"))))
      (build-system gnu-build-system)
      (propagated-inputs
        `(("libice" ,libice))) ; SMlib.h includes ICElib.h
@@@ -2399,18 -2399,6 +2399,18 @@@ XC-APPGROUP, XTEST."
          (base32
           "0xca343ff12wh6nsq76r0nbsfrm8dypjrzm4fqz9vv9v8i8kfrp1"))))
      (build-system gnu-build-system)
 +    (arguments
 +     `(#:phases (modify-phases %standard-phases
 +                  (add-before 'configure 'pedantry
 +                    (lambda _
 +                      ;; XXX: libevdev includes kernel headers, which causes this
 +                      ;; compile test to fail with:
 +                      ;; ...-headers-4.14.67/include/asm-generic/posix_types.h:88:14:
 +                      ;;error: ISO C90 does not support ‘long long’ [-Werror=long-long]
 +                      (substitute* "test/Makefile.in"
 +                        (("-pedantic -Werror -std=c89")
 +                         "-pedantic -Werror -std=c99"))
 +                      #t)))))
      (native-inputs `(("python" ,python)))
      (home-page "https://www.freedesktop.org/wiki/Software/libevdev/")
      (synopsis "Wrapper library for evdev devices")
@@@ -4037,7 -4025,7 +4037,7 @@@ Font Description (XLFD) full name for 
  (define-public xfd
    (package
      (name "xfd")
-     (version "1.1.2")
+     (version "1.1.3")
      (source (origin
                (method url-fetch)
                (uri (string-append
                      version ".tar.bz2"))
                (sha256
                 (base32
-                 "0n97iqqap9wyxjan2n520vh4rrf5bc0apsw2k9py94dqzci258y1"))))
+                 "0n6r1v8sm0z0ycqch035xpm46nv5v4mav3kxh36883l3ln5r6bqr"))))
      (build-system gnu-build-system)
      (arguments
         `(#:configure-flags
@@@ -4165,7 -4153,7 +4165,7 @@@ it for output on various types of print
  (define-public xprop
    (package
      (name "xprop")
-     (version "1.2.3")
+     (version "1.2.4")
      (source
        (origin
          (method url-fetch)
                 ".tar.bz2"))
          (sha256
            (base32
-             "06sjgahjiz85v0k0pmv5x05chc591xynl5ah1bqzz1bdr0lgnanj"))))
+             "0lzp7kyhpwd5hm83j2zm6j3w3z1z5i4ykgg2nwr01ij6dq4znxwc"))))
      (build-system gnu-build-system)
      (inputs
        `(("xorgproto" ,xorgproto)
@@@ -4840,7 -4828,7 +4840,7 @@@ common definitions and porting layer."
  (define-public libxau
    (package
      (name "libxau")
 -    (version "1.0.8")
 +    (version "1.0.9")
      (source
        (origin
          (method url-fetch)
                 ".tar.bz2"))
          (sha256
            (base32
 -            "1wm4pv12f36cwzhldpp7vy3lhm3xdcnp4f184xkxsp7b18r7gm7x"))))
 +            "1v3krc6x0zliaa66qq1bf9j60x5nqfy68v8axaiglxpnvgqcpy6c"))))
      (build-system gnu-build-system)
      (propagated-inputs
        `(("xorgproto" ,xorgproto)))
@@@ -5256,7 -5244,7 +5256,7 @@@ draggable titlebars and borders."
  (define-public libx11
    (package
      (name "libx11")
 -    (version "1.6.6")
 +    (version "1.6.7")
      (source
        (origin
          (method url-fetch)
                 ".tar.bz2"))
          (sha256
            (base32
 -            "0ks1mxlda7nxfmffihi15ljsn50q8dknl33i2xag8xzc80fiizk5"))))
 +            "0j0k5bjz4kd7rx6z09n5ggxbzbi84wf78xx25ikx6jmsxwq9w3li"))))
      (build-system gnu-build-system)
      (outputs '("out"
                 "doc"))                            ;8 MiB of man pages + XML
@@@ -5675,14 -5663,14 +5675,14 @@@ The XCB util-wm module provides the fol
  (define-public xinit
    (package
      (name "xinit")
-     (version "1.4.0")
+     (version "1.4.1")
      (source (origin
                (method url-fetch)
                (uri (string-append "mirror://xorg/individual/app/xinit-"
                                    version ".tar.bz2"))
                (sha256
                 (base32
-                 "1vw2wlg74ig52naw0cha3pgzcwwk25l834j42cg8m5zmybp3a213"))))
+                 "1fdbakx59vyh474skjydj1bbglpby3y03nl7mxn0z9v8gdhqz6yy"))))
      (build-system gnu-build-system)
      (inputs
       `(("xorgproto" ,xorgproto)
diff --combined guix/scripts/pack.scm
@@@ -32,6 -32,7 +32,7 @@@
    #:use-module (guix modules)
    #:use-module (guix packages)
    #:use-module (guix profiles)
+   #:use-module (guix describe)
    #:use-module (guix derivations)
    #:use-module (guix search-paths)
    #:use-module (guix build-system gnu)
@@@ -448,9 -449,9 +449,9 @@@ the image.
    "Return the C compiler that uses the bootstrap toolchain.  This is used only
  by '--bootstrap', for testing purposes."
    (define bootstrap-toolchain
 -    (list (first (assoc-ref %bootstrap-inputs "gcc"))
 -          (first (assoc-ref %bootstrap-inputs "binutils"))
 -          (first (assoc-ref %bootstrap-inputs "libc"))))
 +    (list (first (assoc-ref (%bootstrap-inputs) "gcc"))
 +          (first (assoc-ref (%bootstrap-inputs) "binutils"))
 +          (first (assoc-ref (%bootstrap-inputs) "libc"))))
  
    (c-compiler bootstrap-toolchain
                #:guile %bootstrap-guile))
@@@ -678,6 -679,9 +679,9 @@@ please email '~a'~%"
                       (x
                        (leave (G_ "~a: invalid symlink specification~%")
                               arg)))))
+          (option '("save-provenance") #f #f
+                  (lambda (opt name arg result)
+                    (alist-cons 'save-provenance? #t result)))
           (option '("localstatedir") #f #f
                   (lambda (opt name arg result)
                     (alist-cons 'localstatedir? #t result)))
@@@ -725,6 -729,8 +729,8 @@@ Create a bundle of PACKAGE.\n")
    -S, --symlink=SPEC     create symlinks to the profile according to SPEC"))
    (display (G_ "
    -m, --manifest=FILE    create a pack with the manifest from FILE"))
+   (display (G_ "
+       --save-provenance  save provenance information"))
    (display (G_ "
        --localstatedir    include /var/guix in the resulting pack"))
    (display (G_ "
                                    (list (transform store package) "out")))
                                 (filter-map maybe-package-argument opts)))
             (manifest-file (assoc-ref opts 'manifest)))
+       (define properties
+         (if (assoc-ref opts 'save-provenance?)
+             (lambda (package)
+               (match (package-provenance package)
+                 (#f
+                  (warning (G_ "could not determine provenance of package ~a~%")
+                           (package-full-name package))
+                  '())
+                 (sexp
+                  `((provenance . ,sexp)))))
+             (const '())))
        (cond
         ((and manifest-file (not (null? packages)))
          (leave (G_ "both a manifest and a package list were given~%")))
         (manifest-file
          (let ((user-module (make-user-module '((guix profiles) (gnu)))))
            (load* manifest-file user-module)))
-        (else (packages->manifest packages)))))
+        (else
+         (manifest
+          (map (match-lambda
+                 ((package output)
+                  (package->manifest-entry package output
+                                           #:properties
+                                           (properties package))))
+               packages))))))
  
    (with-error-handling
      (with-store store