summary refs log tree commit diff
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2015-07-19 18:12:34 -0400
committerMark H Weaver <mhw@netris.org>2015-07-19 18:12:34 -0400
commit1b4e48d498a96d478baa1aae7d9c7ecdbd817d6f (patch)
tree4b650999e49a6f4d3dd116fab3f9ee8222247e07
parentaa27987f71cb8afa698ede551e20b1248f160113 (diff)
parent50c7a1e297bff0935674b4f30e854a8889becfdd (diff)
downloadguix-1b4e48d498a96d478baa1aae7d9c7ecdbd817d6f.tar.gz
Merge branch 'master' into core-updates
-rw-r--r--.gitignore1
-rw-r--r--AUTHORS44
-rw-r--r--Makefile.am10
-rw-r--r--daemon.am17
-rw-r--r--doc.am17
-rw-r--r--doc/guix.texi31
-rw-r--r--etc/guix-daemon.service.in15
-rw-r--r--gnu-system.am2
-rw-r--r--gnu/packages/admin.scm4
-rw-r--r--gnu/packages/algebra.scm2
-rw-r--r--gnu/packages/audio.scm2
-rw-r--r--gnu/packages/backup.scm12
-rw-r--r--gnu/packages/base.scm2
-rw-r--r--gnu/packages/bioinformatics.scm79
-rw-r--r--gnu/packages/bittorrent.scm2
-rw-r--r--gnu/packages/code.scm2
-rw-r--r--gnu/packages/compression.scm4
-rw-r--r--gnu/packages/curl.scm10
-rw-r--r--gnu/packages/databases.scm10
-rw-r--r--gnu/packages/ebook.scm4
-rw-r--r--gnu/packages/emacs.scm99
-rw-r--r--gnu/packages/enchant.scm2
-rw-r--r--gnu/packages/firmware.scm2
-rw-r--r--gnu/packages/flashing-tools.scm11
-rw-r--r--gnu/packages/fonts.scm3
-rw-r--r--gnu/packages/freedesktop.scm32
-rw-r--r--gnu/packages/games.scm17
-rw-r--r--gnu/packages/gcc.scm52
-rw-r--r--gnu/packages/gd.scm2
-rw-r--r--gnu/packages/gl.scm39
-rw-r--r--gnu/packages/gnome.scm96
-rw-r--r--gnu/packages/gsasl.scm2
-rw-r--r--gnu/packages/gstreamer.scm9
-rw-r--r--gnu/packages/gtk.scm2
-rw-r--r--gnu/packages/guile.scm4
-rw-r--r--gnu/packages/haskell.scm8
-rw-r--r--gnu/packages/image.scm8
-rw-r--r--gnu/packages/language.scm4
-rw-r--r--gnu/packages/lesstif.scm2
-rw-r--r--gnu/packages/libreoffice.scm2
-rw-r--r--gnu/packages/linux.scm126
-rw-r--r--gnu/packages/llvm.scm12
-rw-r--r--gnu/packages/lxde.scm49
-rw-r--r--gnu/packages/maths.scm12
-rw-r--r--gnu/packages/mcrypt.scm2
-rw-r--r--gnu/packages/mit-krb5.scm5
-rw-r--r--gnu/packages/mp3.scm14
-rw-r--r--gnu/packages/ncdu.scm2
-rw-r--r--gnu/packages/networking.scm2
-rw-r--r--gnu/packages/ntp.scm4
-rw-r--r--gnu/packages/ocaml.scm4
-rw-r--r--gnu/packages/openbox.scm2
-rw-r--r--gnu/packages/patches/crda-optional-gcrypt.patch20
-rw-r--r--gnu/packages/pdf.scm6
-rw-r--r--gnu/packages/perl.scm76
-rw-r--r--gnu/packages/pretty-print.scm2
-rw-r--r--gnu/packages/pulseaudio.scm13
-rw-r--r--gnu/packages/python.scm15
-rw-r--r--gnu/packages/rdesktop.scm2
-rw-r--r--gnu/packages/rdf.scm2
-rw-r--r--gnu/packages/ruby.scm4
-rw-r--r--gnu/packages/slang.scm6
-rw-r--r--gnu/packages/slim.scm2
-rw-r--r--gnu/packages/telephony.scm24
-rw-r--r--gnu/packages/tls.scm2
-rw-r--r--gnu/packages/tmux.scm2
-rw-r--r--gnu/packages/tre.scm4
-rw-r--r--gnu/packages/unrtf.scm2
-rw-r--r--gnu/packages/version-control.scm10
-rw-r--r--gnu/packages/video.scm4
-rw-r--r--gnu/packages/vpn.scm2
-rw-r--r--gnu/packages/web.scm26
-rw-r--r--gnu/packages/wget.scm2
-rw-r--r--gnu/packages/wordnet.scm6
-rw-r--r--gnu/packages/xdisorg.scm2
-rw-r--r--gnu/packages/xfce.scm4
-rw-r--r--gnu/packages/xiph.scm10
-rw-r--r--gnu/packages/xml.scm4
-rw-r--r--gnu/packages/xorg.scm1116
-rw-r--r--gnu/services/base.scm12
-rw-r--r--gnu/system.scm30
-rw-r--r--gnu/system/file-systems.scm47
-rw-r--r--gnu/system/install.scm6
-rw-r--r--gnu/system/shadow.scm2
-rw-r--r--gnu/system/vm.scm3
-rw-r--r--guix/build-system/ruby.scm2
-rw-r--r--guix/build/download.scm3
-rw-r--r--guix/build/ruby-build-system.scm12
-rw-r--r--guix/build/syscalls.scm32
-rw-r--r--guix/licenses.scm6
-rw-r--r--guix/scripts/package.scm16
-rw-r--r--guix/scripts/publish.scm2
-rw-r--r--guix/scripts/size.scm21
-rw-r--r--guix/scripts/system.scm11
-rw-r--r--guix/ui.scm17
-rw-r--r--po/packages/POTFILES.in4
-rw-r--r--tests/file-systems.scm10
-rw-r--r--tests/publish.scm2
98 files changed, 1738 insertions, 768 deletions
diff --git a/.gitignore b/.gitignore
index c1061d73e5..c7a6cddaa0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -125,3 +125,4 @@ GTAGS
 /doc/os-config-bare-bones.texi
 /doc/os-config-desktop.texi
 /doc/*.1
+/etc/guix-daemon.service
diff --git a/AUTHORS b/AUTHORS
index 24dbcd1aa3..1e30a74a64 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -5,45 +5,5 @@ build daemon whose code comes from Nix (see the manual for details.)
 Nix was initially written by Eelco Dolstra; other people have been
 contributing to it.  See `nix/AUTHORS' for details.
 
-The fine people listed below have contributed code to GNU Guix (in
-alphabetical order):
-
-           Arne Babenhauserheide <arne.babenhauserheide@kit.edu>
-           Eric Bavier <bavier@member.fsf.org>
-  Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
-       Federico Beffa <beffa@fbengineering.ch>
-          Marek Benc <merkur32@gmail.com>
-      Amirouche Boubekki <amirouche@hypermove.net>
-            Sou Bunnbu (宋文武) <iyzsong@gmail.com>
-          Tomáš Čech <sleep_walker@gnu.org>
-        Ludovic Courtès <ludo@gnu.org>
-           John Darrington <jmd@gnu.org>
-            Ian Denhardt <ian@zenhack.net>
-        Andreas Enge <andreas@enge.fr>
-         Alírio Eyng <alirioeyng@gmail.com>
-   Alexander I. Grafov <grafov@gmail.com>
-         Joshua Grant <tadni@riseup.net>
-         Raimon Grau <raimonster@gmail.com>
-          David Hashe <david.hashe@dhashe.com>
-         Nikita Karetnikov <nikita@karetnikov.org>
-           Alex Kost <alezost@gmail.com>
-          Kevin Lemonnier <lemonnierk@ulrar.net>
-         Julien Lepiller <julien@lepiller.eu>
-        Mathieu Lirzin <mthl@openmailbox.org>
-        Aljosha Papsch <misc@rpapsch.de>
-           Deck Pickard <deck.r.pickard@gmail.com>
-        Manolis Ragkousis <manolis837@gmail.com>
- Pierre-Antoine Rault <par@rigelk.eu>
-          Cyril Roelandt <tipecaml@gmail.com>
-           Alex Sassmannshausen <alex.sassmannshausen@gmail.com>
-         Cyrill Schenkel <cyrill.schenkel@gmail.com>
-          Jason Self <j@jxself.org>
-    Sree Harsha Totakura <sreeharsha@totakura.in>
-          David Thompson <davet@gnu.org>
-          Claes Wallin (韋嘉誠) <claes.wallin@greatsinodevelopment.com>
-   Paul van der Walt <paul@denknerd.org>
-         Mark H Weaver <mhw@netris.org>
- Christopher A. Webber <cwebber@dustycloud.org>
-           Andy Wingo <wingo@pobox.com>
-            Ben Woodcroft <b.woodcroft@uq.edu.au>
-        Ricardo Wurmus <rekado@elephly.net>
+The list of GNU Guix contributors is now generated from the output of
+'git log' and written to this file, as can be seen in release tarballs.
diff --git a/Makefile.am b/Makefile.am
index 5cf9314014..ada4cbea0b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -279,6 +279,7 @@ EXTRA_DIST =						\
   build-aux/check-final-inputs-self-contained.scm	\
   build-aux/download.scm				\
   build-aux/make-binary-tarball.scm			\
+  build-aux/generate-authors.scm			\
   srfi/srfi-37.scm.in					\
   srfi/srfi-64.scm					\
   srfi/srfi-64.upstream.scm				\
@@ -389,9 +390,12 @@ gen-ChangeLog:
 	fi
 
 gen-AUTHORS:
-	$(top_builddir)/pre-inst-env "$(GUILE)"			\
-	  "$(top_srcdir)/build-aux/generate-authors.scm"	\
-	  "$(top_srcdir)" "$(distdir)/AUTHORS"
+	if test -d .git; then					\
+	  rm -f "$(distdir)/AUTHORS";				\
+	  $(top_builddir)/pre-inst-env "$(GUILE)"		\
+	    "$(top_srcdir)/build-aux/generate-authors.scm"	\
+	    "$(top_srcdir)" "$(distdir)/AUTHORS";		\
+	fi
 
 # Make sure we're not shipping a file that embeds a local /gnu/store file name.
 assert-no-store-file-names:
diff --git a/daemon.am b/daemon.am
index eecfea1c7e..f2cb0a499e 100644
--- a/daemon.am
+++ b/daemon.am
@@ -21,7 +21,7 @@
 #
 
 BUILT_SOURCES += nix/libstore/schema.sql.hh
-CLEANFILES += $(BUILT_SOURCES)
+CLEANFILES += $(BUILT_SOURCES) etc/guix-daemon.service
 
 noinst_LIBRARIES = libformat.a libutil.a libstore.a
 
@@ -93,7 +93,6 @@ libstore_headers =				\
   nix/libstore/references.hh			\
   nix/libstore/pathlocks.hh			\
   nix/libstore/globals.hh			\
-  nix/libstore/schema.sql.hh			\
   nix/libstore/worker-protocol.hh		\
   nix/libstore/remote-store.hh			\
   nix/libstore/derivations.hh			\
@@ -181,10 +180,22 @@ endif BUILD_DAEMON_OFFLOAD
 nodist_libexec_SCRIPTS =			\
   nix/scripts/guix-authenticate
 
+# The '.service' file for systemd.
+systemdservicedir = $(libdir)/systemd/system
+nodist_systemdservice_DATA = etc/guix-daemon.service
+
+etc/guix-daemon.service: etc/guix-daemon.service.in	\
+			 $(top_builddir)/config.status
+	$(MKDIR_P) "`dirname "$@"`"
+	$(SED) -e 's|@''bindir''@|$(bindir)|' <				\
+	       "$(srcdir)/etc/guix-daemon.service.in" > "$@.tmp"
+	mv "$@.tmp" "$@"
+
 EXTRA_DIST +=					\
   nix/libstore/schema.sql			\
   nix/AUTHORS					\
-  nix/COPYING
+  nix/COPYING					\
+  etc/guix-daemon.service.in
 
 AM_TESTS_ENVIRONMENT +=				\
   top_builddir="$(abs_top_builddir)"
diff --git a/doc.am b/doc.am
index 8a65b8d90d..02b80ec7b5 100644
--- a/doc.am
+++ b/doc.am
@@ -25,6 +25,7 @@ EXTRA_DIST +=					\
   doc/images/bootstrap-graph.dot		\
   doc/images/bootstrap-graph.eps		\
   doc/images/bootstrap-graph.pdf		\
+  doc/images/coreutils-size-map.eps		\
   doc/environment-gdb.scm
 
 OS_CONFIG_EXAMPLES_TEXI =			\
@@ -63,27 +64,35 @@ DOT_OPTIONS =					\
 	$(DOT) -Teps $(DOT_OPTIONS) < "$<" > "$@.tmp"
 	mv "$@.tmp" "$@"
 
+.png.eps:
+	convert "$<" "$@-tmp.eps"
+	mv "$@-tmp.eps" "$@"
+
 # We cannot add new dependencies to `doc/guix.pdf' & co. (info "(automake)
 # Extending").  Using the `-local' rules is imperfect, because they may be
 # triggered after the main rule.  Oh, well.
 pdf-local: $(top_srcdir)/doc/images/bootstrap-graph.pdf
 info-local: $(top_srcdir)/doc/images/bootstrap-graph.png
-ps-local: $(top_srcdir)/doc/images/bootstrap-graph.eps
+ps-local: $(top_srcdir)/doc/images/bootstrap-graph.eps		\
+	  $(top_srcdir)/doc/images/coreutils-size-map.eps
+dvi-local: ps-local
 
 
 # Manual pages.
 
-doc/guix.1: scripts/guix
+doc/guix.1: $(SUBCOMMANDS:%=guix/scripts/%.scm)
 	-LANGUAGE= $(top_builddir)/pre-inst-env	\
 	  $(HELP2MAN) --output="$@" guix
 
-doc/guix-daemon.1: guix-daemon
+# Note: Do not depend on 'guix-daemon' since that would trigger a rebuild even
+# for people building from a tarball.
+doc/guix-daemon.1: nix/nix-daemon/guix-daemon.cc
 	-LANGUAGE= $(top_builddir)/pre-inst-env	\
 	  $(HELP2MAN) --output="$@" guix-daemon
 
 define subcommand-manual-target
 
-doc/guix-$(1).1: scripts/guix guix/scripts/$(1).go
+doc/guix-$(1).1: guix/scripts/$(1).scm
 	-LANGUAGE= $(top_builddir)/pre-inst-env		\
 	  $(HELP2MAN) --output="$$@" "guix $(1)"
 
diff --git a/doc/guix.texi b/doc/guix.texi
index dfe3cf38fa..30927be01f 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -320,12 +320,20 @@ Make @code{root}'s profile available under @file{~/.guix-profile}:
 @end example
 
 @item
+Create the group and user accounts for build users as explained below
+(@pxref{Build Environment Setup}).
+
+@item
 Run the daemon:
 
 @example
 # ~root/.guix-profile/bin/guix-daemon --build-users-group=guixbuild
 @end example
 
+On hosts using the systemd init system, drop
+@file{~root/.guix-profile/lib/systemd/system/guix-daemon.service} in
+@file{/etc/systemd/system}.
+
 @item
 Make the @command{guix} command available to other users on the machine,
 for instance with:
@@ -508,8 +516,12 @@ Bash syntax and the @code{shadow} commands):
 @noindent
 The number of build users determines how many build jobs may run in
 parallel, as specified by the @option{--max-jobs} option
-(@pxref{Invoking guix-daemon, @option{--max-jobs}}).
-The @code{guix-daemon} program may then be run as @code{root} with:
+(@pxref{Invoking guix-daemon, @option{--max-jobs}}).  The
+@code{guix-daemon} program may then be run as @code{root} with the
+following command@footnote{If your machine uses the systemd init system,
+dropping the @file{@var{prefix}/lib/systemd/system/guix-daemon.service}
+file in @file{/etc/systemd/system} will ensure that
+@command{guix-daemon} is automatically started.}:
 
 @example
 # guix-daemon --build-users-group=guixbuild
@@ -2446,7 +2458,8 @@ implements the RubyGems build procedure used by Ruby packages, which
 involves running @code{gem build} followed by @code{gem install}.
 
 Which Ruby package is used can be specified with the @code{#:ruby}
-parameter.
+parameter.  A list of additional flags to be passed to the @command{gem}
+command can be specified with the @code{#:gem-flags} parameter.
 @end defvr
 
 @defvr {Scheme Variable} waf-build-system
@@ -4813,6 +4826,10 @@ The package object of the operating system kernel to use@footnote{Currently
 only the Linux-libre kernel is supported.  In the future, it will be
 possible to use the GNU@tie{}Hurd.}.
 
+@item @code{kernel-arguments} (default: @code{'()})
+List of strings or gexps representing additional arguments to pass on
+the kernel's command-line---e.g., @code{("console=ttyS0")}.
+
 @item @code{bootloader}
 The system bootloader configuration object.  @xref{GRUB Configuration}.
 
@@ -5011,6 +5028,14 @@ errors before being mounted.
 @item @code{create-mount-point?} (default: @code{#f})
 When true, the mount point is created if it does not exist yet.
 
+@item @code{dependencies} (default: @code{'()})
+This is a list of @code{<file-system>} objects representing file systems
+that must be mounted before (and unmounted after) this one.
+
+As an example, consider a hierarchy of mounts: @file{/sys/fs/cgroup} is
+a dependency of @file{/sys/fs/cgroup/cpu} and
+@file{/sys/fs/cgroup/memory}.
+
 @end table
 @end deftp
 
diff --git a/etc/guix-daemon.service.in b/etc/guix-daemon.service.in
new file mode 100644
index 0000000000..28ef000920
--- /dev/null
+++ b/etc/guix-daemon.service.in
@@ -0,0 +1,15 @@
+# This is a "service unit file" for the systemd init system to launch
+# 'guix-daemon'.  Drop it in /etc/systemd/system or similar to have
+# 'guix-daemon' automatically started.
+
+[Unit]
+Description=Build daemon for GNU Guix
+
+[Service]
+ExecStart=@bindir@/guix-daemon --build-users-group=guixbuild
+RemainAfterExit=yes
+StandardOutput=syslog
+StandardError=syslog
+
+[Install]
+WantedBy=multi-user.target
diff --git a/gnu-system.am b/gnu-system.am
index 4c2d5cc90c..f67e0776c8 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -193,6 +193,7 @@ GNU_SYSTEM_MODULES =				\
   gnu/packages/lsh.scm				\
   gnu/packages/lsof.scm				\
   gnu/packages/lua.scm				\
+  gnu/packages/lxde.scm				\
   gnu/packages/lxqt.scm				\
   gnu/packages/lynx.scm				\
   gnu/packages/m4.scm				\
@@ -410,6 +411,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/cpio-fix-symlink-bad-length-test.patch	\
   gnu/packages/patches/cpio-gets-undeclared.patch		\
   gnu/packages/patches/cpufrequtils-fix-aclocal.patch		\
+  gnu/packages/patches/crda-optional-gcrypt.patch		\
   gnu/packages/patches/crossmap-allow-system-pysam.patch	\
   gnu/packages/patches/cssc-gets-undeclared.patch               \
   gnu/packages/patches/cssc-missing-include.patch               \
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 99eb95b800..e1bb74c8cd 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -317,7 +317,7 @@ allow automatic login and starting any app.")
     (description
      "This package provides the /etc/services, /etc/protocols, and /etc/rpc
 files, which contain information about the IANA-assigned port, protocol, and
-ONC RPC numbers")
+ONC RPC numbers.")
     (home-page "http://packages.debian.org/sid/netbase")
     (license license:gpl2)))
 
@@ -957,7 +957,7 @@ system is under heavy load.")
                                            (assoc-ref %build-inputs "popt")))
        #:tests? #f))                    ;no 'check' target
     (home-page "http://detox.sourceforge.net")
-    (synopsis "Clean up filenames")
+    (synopsis "Clean up file names")
     (description
      "Detox is a program that renames files to make them easier to work with
 under Unix and related operating systems.  Spaces and various other unsafe
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index e47c405661..95fa57f568 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -56,7 +56,7 @@ arbitrary precision real (mpfr) or complex (mpc) numbers, without control
 on the rounding.  For the time being, only the few functions needed to
 implement the floating point approach to complex multiplication are
 implemented.  On the other hand, these comprise asymptotically fast
-multiplication routines such as Toom–Cook and the FFT. ")
+multiplication routines such as Toom–Cook and the FFT.")
    (license lgpl2.1+)
    (home-page "http://mpfrcx.multiprecision.org/")))
 
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index ff6fb466e3..539dddc220 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -447,7 +447,7 @@ ALSA PCM devices.")
     (description
      "FluidSynth is a real-time software synthesizer based on the SoundFont 2
 specifications.  FluidSynth reads and handles MIDI events from the MIDI input
-device.  It is the software analogue of a MIDI synthesizer. FluidSynth can
+device.  It is the software analogue of a MIDI synthesizer.  FluidSynth can
 also play midifiles using a Soundfont.")
     (license license:gpl2+)))
 
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 516712b94c..79f9548105 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -45,7 +45,7 @@
 (define-public duplicity
   (package
     (name "duplicity")
-    (version "0.6.24")
+    (version "0.6.26")
     (source
      (origin
       (method url-fetch)
@@ -55,7 +55,7 @@
                           version ".tar.gz"))
       (sha256
        (base32
-        "0l14nrhbgkyjgvh339bbhnm6hrdwrjadphq1jmpi0mcgcdbdfh8x"))
+        "0jh79syhr8n3l81jxlwsmwm1pklb4d923m2lgqbswyavh1fqmvwb"))
       (patches (list (search-patch "duplicity-piped-password.patch")
                      (search-patch "duplicity-test_selection-tmp.patch")))))
     (build-system python-build-system)
@@ -237,14 +237,14 @@ random access nor for in-place modification.")
                     (setenv "HOME" (getcwd))
                     (substitute* "testsuite/rdup/rdup.rdup-up-t-with-file.exp"
                       (("/bin/cat") (which "cat"))))
-                  
+
                   %standard-phases))))
     (home-page "http://archive.miek.nl/projects/rdup/index.html")
     (synopsis "Provide a list of files to backup")
     (description
      "Rdup is a utility inspired by rsync and the plan9 way of doing backups.
 Rdup itself does not backup anything, it only print a list of absolute
-filenames to standard output.  Auxiliary scripts are needed that act on this
+file names to standard output.  Auxiliary scripts are needed that act on this
 list and implement the backup strategy.")
     (license license:gpl3+)))
 
@@ -314,5 +314,5 @@ modification times, extended attributes, acls, and resource forks.  Also,
 rdiff-backup can operate in a bandwidth efficient manner over a pipe, like
 rsync.  Thus you can use rdiff-backup and ssh to securely back a hard drive up
 to a remote location, and only the differences will be transmitted.  Finally,
-rdiff-backup is easy to use and settings have sensical defaults.")
+rdiff-backup is easy to use and settings have sensible defaults.")
     (license license:gpl2+)))
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 9a433ae5e4..f35f619201 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -193,7 +193,7 @@ differences.")
    (description
     "GNU Diffutils is a package containing tools for finding the
 differences between files.  The \"diff\" command is used to show how two files
-differ, while \"cmp\" shows the offsets and line numbers where they differ. 
+differ, while \"cmp\" shows the offsets and line numbers where they differ.
 \"diff3\" allows you to compare three files.  Finally, \"sdiff\" offers an
 interactive means to merge two files.")
    (license gpl3+)
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index a28832dfa8..78cd3ce321 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -1394,6 +1394,85 @@ resolution of binding sites through combining the information of both
 sequencing tag position and orientation.")
     (license license:bsd-3)))
 
+
+(define-public metabat
+  (package
+    (name "metabat")
+    (version "0.26.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://bitbucket.org/berkeleylab/metabat/get/"
+                    version ".tar.bz2"))
+              (file-name (string-append name "-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "0vgrhbaxg4dkxyax2kbigak7w0arhqvw0szwp6gd9wmyilc44kfa"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-includes
+                    (lambda _
+                      (substitute* "SConstruct"
+                        (("/include/bam/bam.h")
+                         "/include/samtools/bam.h"))
+                      (substitute* "src/BamUtils.h"
+                        (("^#include \"bam/bam\\.h\"")
+                         "#include \"samtools/bam.h\"")
+                        (("^#include \"bam/sam\\.h\"")
+                         "#include \"samtools/sam.h\""))
+                      (substitute* "src/KseqReader.h"
+                        (("^#include \"bam/kseq\\.h\"")
+                         "#include \"samtools/kseq.h\""))
+                      #t))
+         (add-after 'unpack 'fix-scons
+                    (lambda _
+                      (substitute* "SConstruct" ; Do not distribute README
+                        (("^env\\.Install\\(idir_prefix, 'README\\.md'\\)")
+                         ""))
+                      #t))
+         (delete 'configure)
+         (replace 'build
+                  (lambda* (#:key inputs outputs #:allow-other-keys)
+                    (mkdir (assoc-ref outputs "out"))
+                    (zero? (system* "scons"
+                                    (string-append
+                                     "PREFIX="
+                                     (assoc-ref outputs "out"))
+                                    (string-append
+                                     "HTSLIB_DIR="
+                                     (assoc-ref inputs "htslib"))
+                                    (string-append
+                                     "SAMTOOLS_DIR="
+                                     (assoc-ref inputs "samtools"))
+                                    (string-append
+                                     "BOOST_ROOT="
+                                     (assoc-ref inputs "boost"))
+                                    "install"))))
+         ;; check and install carried out during build phase
+         (delete 'check)
+         (delete 'install))))
+    (inputs
+     `(("zlib" ,zlib)
+       ("perl" ,perl)
+       ("samtools" ,samtools)
+       ("htslib" ,htslib)
+       ("boost" ,boost)))
+    (native-inputs
+     `(("scons" ,scons)))
+    (home-page "https://bitbucket.org/berkeleylab/metabat")
+    (synopsis
+     "Reconstruction of single genomes from complex microbial communities")
+    (description
+     "Grouping large genomic fragments assembled from shotgun metagenomic
+sequences to deconvolute complex microbial communities, or metagenome binning,
+enables the study of individual organisms and their interactions.  MetaBAT is
+an automated metagenome binning software, which integrates empirical
+probabilistic distances of genome abundance and tetranucleotide frequency.")
+   (license (license:non-copyleft "file://license.txt"
+                                  "See license.txt in the distribution."))))
+
 (define-public miso
   (package
     (name "miso")
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index f63ed59b8a..47256a4dc7 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -83,7 +83,7 @@
     (description
      "Transmission is a BitTorrent client that comes with graphical,
 textual, and Web user interfaces.  Transmission also has a daemon for
-unattended operationg.  It supports local peer discovery, full encryption,
+unattended operations.  It supports local peer discovery, full encryption,
 DHT, µTP, PEX and Magnet Links.")
 
     ;; COPYING reads:
diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index 38f14380c4..e346f7e0c5 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -60,7 +60,7 @@
     (description
      "GNU cflow analyzes C source files and produces a graph charting the
 control flow of the program.  It can output the graph in several styles and
-in either the POSIX format or in an extended GNU format. cflow also includes
+in either the POSIX format or in an extended GNU format.  cflow also includes
 a major mode for Emacs for examining the flowcharts that it produces.")
     (license license:gpl3+)))
 
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 84bc92929f..287ae25997 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -264,7 +264,7 @@ than gzip and 15 % smaller output than bzip2.")
     (arguments '(#:configure-flags '("--enable-shared")))
     (home-page "http://www.oberhumer.com/opensource/lzo")
     (synopsis
-     "Data compresion library suitable for real-time data de-/compression")
+     "Data compression library suitable for real-time data de-/compression")
     (description
      "LZO is a data compression library which is suitable for data
 de-/compression in real-time.  This means it favours speed over
@@ -348,7 +348,7 @@ archiving.  Lzip is a clean implementation of the LZMA algorithm.")
     (description
      "GNU sharutils is a package for creating and manipulating shell
 archives that can be readily emailed.  A shell archive is a file that can be
-processed by a Bourne-type shell to unpack the original collection of files. 
+processed by a Bourne-type shell to unpack the original collection of files.
 This package is mostly for compatibility and historical interest.")
     (license license:gpl3+)))
 
diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm
index f5cb503f8d..201bdf8443 100644
--- a/gnu/packages/curl.scm
+++ b/gnu/packages/curl.scm
@@ -102,10 +102,10 @@
     "curl is a command line tool for transferring data with URL syntax,
 supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP,
 LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP.
-curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading,
-HTTP form based upload, proxies, cookies, user+password authentication
-(Basic, Digest, NTLM, Negotiate, kerberos...), file transfer resume,
-proxy tunneling, and so on")
+curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP
+form based upload, proxies, cookies, file transfer resume, user+password
+authentication (Basic, Digest, NTLM, Negotiate, kerberos...), proxy
+tunneling, and so on.")
    (license (license:non-copyleft "file://COPYING"
-                       "See COPYING in the distribution."))
+                                  "See COPYING in the distribution."))
    (home-page "http://curl.haxx.se/")))
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 7b1b654088..1b830ab071 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -175,7 +175,7 @@ Language.")
 (define-public mariadb
   (package
     (name "mariadb")
-    (version "10.0.18")
+    (version "10.0.20")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://downloads.mariadb.org/f/"
@@ -183,7 +183,7 @@ Language.")
                                   name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1xcs391cm0vnl9bvx1470v8z4d77zqv16n6iaqi12jm0ma8fwvv8"))))
+                "0ywb730l68mxvmpik1x2ndbdaaks6dmc17pxspspm5wlqxinjkrs"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags
@@ -633,7 +633,7 @@ While based on the concepts used by DBIx::Abstract, the concepts used have
 been modified to make the SQL easier to generate from Perl data structures.
 The underlying idea is for this module to do what you mean, based on the data
 structures you provide it, so that you don't have to modify your code every
-time your data changes")
+time your data changes.")
     (license (package-license perl))))
 
 (define-public perl-sql-splitstatement
@@ -688,7 +688,7 @@ valid SQL query.")
    (version "2.3.2")
    (source (origin
             (method url-fetch)
-            (uri 
+            (uri
              (string-append
               "ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-" version ".tar.gz"))
             (sha256
@@ -698,7 +698,7 @@ valid SQL query.")
    (description "Unixodbc is a library providing an API with which to access
 data sources.  Data sources include SQL Servers and any software with an ODBC
 Driver.")
-   (license lgpl2.1+) 
+   (license lgpl2.1+)
    ;; COPYING contains copy of lgpl2.1 - but copyright notices just say "LGPL"
    (home-page "http://www.unixodbc.org")))
 
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index 0003468396..37b2a0dba3 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -60,7 +60,7 @@
 (define-public calibre
   (package
     (name "calibre")
-    (version "2.30.0")
+    (version "2.29.0")
     (source
       (origin
         (method url-fetch)
@@ -69,7 +69,7 @@
                             version ".tar.xz"))
         (sha256
           (base32
-           "1k2rpn06nfzqjy5k6fh8pwfj8vbhpn7rgkpkkpz5n2fqg3z8ph1j"))
+           "1n3cfnjnghhhsgzcbcvbr0gh191lhl6az09q1s68jhlcc2lski6l"))
         ;; Remove non-free or doubtful code, see
         ;; https://lists.gnu.org/archive/html/guix-devel/2015-02/msg00478.html
         (modules '((guix build utils)))
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 84e167d1fe..d393e69c49 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
+;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -52,6 +53,7 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages acl)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages pdf)
   #:use-module (gnu packages linux)               ;alsa
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages mp3)
@@ -811,17 +813,98 @@ or XEmacs.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://stable.melpa.org/packages/mmm-mode-"
-             version
-             ".tar"))
+             "https://github.com/purcell/mmm-mode/archive/"
+             version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1llkzb6d978ym3zv3yfzwj0w5zzmmj3ksrm5swrx1papxcnqnkb9"))))
-    (build-system emacs-build-system)
+         "10kwslnflbjqm62wkrq420crqzdqalzfflp9pqk1i12zm6dm4mfv"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'autogen
+           (lambda _
+             (zero? (system* "sh" "autogen.sh")))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("emacs" ,emacs-no-x)
+       ("texinfo" ,texinfo)))
     (home-page "https://github.com/purcell/mmm-mode")
-    (synopsis
-     "Allow multiple major modes in an Emacs buffer")
+    (synopsis "Allow multiple major modes in an Emacs buffer")
     (description
-    "MMM Mode is a minor mode that allows multiple major modes to coexist in a
+     "MMM Mode is a minor mode that allows multiple major modes to coexist in a
 single buffer.")
     (license license:gpl3+)))
+
+(define-public emacs-pdf-tools
+  (package
+    (name "emacs-pdf-tools")
+    (version "0.60")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/politza/pdf-tools/archive/v"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1y8k5n2jbyaxby0j6f4m9xbm0ddpmbkrfj6rp6ll5sb97lcg3vrx"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; there are no tests
+       #:modules ((guix build gnu-build-system)
+                  (guix build utils)
+                  (guix build emacs-utils))
+       #:imported-modules (,@%gnu-build-system-modules
+                           (guix build emacs-utils))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'enter-dir (lambda _ (chdir "server") #t))
+         (add-before
+          'configure 'autogen
+          (lambda _
+            (zero? (system* "bash" "autogen.sh"))))
+         (add-before
+          'build 'patch-variables
+          (lambda* (#:key outputs #:allow-other-keys)
+            (with-directory-excursion "../lisp"
+              ;; Set path to epdfinfo program.
+              (emacs-substitute-variables "pdf-info.el"
+                ("pdf-info-epdfinfo-program"
+                 (string-append (assoc-ref outputs "out")
+                                "/bin/epdfinfo")))
+              ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
+              ;; upgrading" that pdf-tools tries to perform.
+              (emacs-substitute-variables "pdf-tools.el"
+                ("pdf-tools-handle-upgrades" '())))))
+         (add-after
+          'install 'install-lisp
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let ((target (string-append (assoc-ref outputs "out")
+                                         "/share/emacs/site-lisp/")))
+              (mkdir-p target)
+              (for-each
+               (lambda (file)
+                 (copy-file file (string-append target (basename file))))
+               (find-files "../lisp" "^(pdf|tab).*\\.elc?"))
+              (emacs-byte-compile-directory target)
+              (emacs-generate-autoloads "pdf-tools" target)))))))
+    (native-inputs `(("autoconf" ,autoconf)
+                     ("automake" ,automake)
+                     ("pkg-config" ,pkg-config)
+                     ("emacs" ,emacs-no-x)))
+    (inputs `(("poppler" ,poppler)
+              ("cairo" ,cairo)
+              ("glib" ,glib)
+              ("libpng" ,libpng)
+              ("zlib" ,zlib)))
+    (synopsis "Emacs support library for PDF files")
+    (description
+     "PDF Tools is, among other things, a replacement of DocView for PDF
+files.  The key difference is that pages are not pre-rendered by
+e.g. ghostscript and stored in the file-system, but rather created on-demand
+and stored in memory.")
+    (home-page "https://github.com/politza/pdf-tools")
+    (license license:gpl3+)))
diff --git a/gnu/packages/enchant.scm b/gnu/packages/enchant.scm
index c9e49d9551..8b2796d0e2 100644
--- a/gnu/packages/enchant.scm
+++ b/gnu/packages/enchant.scm
@@ -56,6 +56,6 @@ the dlopen() system call.
 Enchant steps in to provide uniformity and conformity on top of these libraries,
 and implement certain features that may be lacking in any individual provider
 library.  Everything should \"just work\" for any and every definition of \"just
-working.\"")
+working\".")
     (home-page "http://www.abisource.com/projects/enchant")
     (license lgpl2.1+)))
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index 156f3342d3..bbd8368473 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -78,6 +78,6 @@
     (synopsis "Firmware for the Atheros AR7010 and AR9271 USB 802.11n NICs")
     (description
      "This is the firmware for the Qualcomm Atheros AR7010 and AR9271 USB
-802.11n NICs (aka. Wi-Fi USB dongles.)  It is used by the ath9k driver of
+802.11n NICs (aka Wi-Fi USB dongles).  It is used by the ath9k driver of
 Linux-libre.")
     (license (non-copyleft "http://directory.fsf.org/wiki/License:ClearBSD"))))
diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm
index 648430ad5a..194ed380bb 100644
--- a/gnu/packages/flashing-tools.scm
+++ b/gnu/packages/flashing-tools.scm
@@ -108,7 +108,7 @@ technique (ISP).")
 (define-public dfu-programmer
   (package
     (name "dfu-programmer")
-    (version "0.7.0")
+    (version "0.7.2")
     (source
      (origin
       (method url-fetch)
@@ -116,14 +116,17 @@ technique (ISP).")
                           version ".tar.gz"))
       (sha256
        (base32
-        "17lglglk5xrqd2n0impg5bkq4j96qc51cw3kzcghzmzmn6fvg3gf"))
+        "15gr99y1z9vbvhrkd25zqhnzhg6zjmaam3vfjzf2mazd39mx7d0x"))
       (patches (list (search-patch "dfu-programmer-fix-libusb.patch")))))
     (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
     (inputs
      `(("libusb" ,libusb)))
     (home-page "http://dfu-programmer.github.io/")
     (synopsis "Device firmware update programmer for Atmel chips")
     (description
-     "Dfu-programmer is a multi-platform command-line programmer for Atmel
-(8051, AVR, XMEGA & AVR32) chips with a USB bootloader supporting ISP")
+     "Dfu-programmer is a multi-platform command-line programmer for
+Atmel (8051, AVR, XMEGA & AVR32) chips with a USB bootloader supporting
+ISP.")
     (license gpl2+)))
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 40b17220b9..f72c542fda 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -356,8 +356,7 @@ seven weights: ExtraLight, Light, Normal, Regular, Medium, Bold, and Heavy.
 And in several OpenType/CFF-based deployment configurations to accommodate
 various system requirements or limitations.  As the name suggests, Pan-CJK
 fonts are intended to support the characters necessary to render or display
-text in Simplified Chinese, Traditional Chinese, Japanese, and Korean.
-")
+text in Simplified Chinese, Traditional Chinese, Japanese, and Korean.")
     (license license:asl2.0)))
 
 (define-public font-wqy-zenhei
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 5cdb4568c5..580096e6a5 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2015 Andy Wingo <wingo@pobox.com>
 ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -39,6 +40,8 @@
   #:use-module (gnu packages glib)                ;intltool
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
+  #:use-module (gnu packages boost)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages doxygen)
   #:use-module (gnu packages libffi))
 
@@ -227,7 +230,7 @@ of a the system to know what users are logged in, and where.")
     (synopsis "Implementations of freedesktop.org standards in Python")
     (description
      "PyXDG is a collection of implementations of freedesktop.org standards in
-Python")
+Python.")
     (license license:lgpl2.0)))
 
 (define-public python2-pyxdg
@@ -265,3 +268,30 @@ display server running on Linux kernel modesetting and evdev input devices, an X
 application, or a wayland client itself.  The clients can be traditional
 applications, X servers (rootless or fullscreen) or other display servers.")
     (license license:x11)))
+
+(define-public exempi
+  (package
+    (name "exempi")
+    (version "2.2.2")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "http://libopenraw.freedesktop.org/download/"
+                   name "-" version ".tar.bz2"))
+             (sha256
+              (base32
+               "01vcd1mfn2s0iiq2cjyzgvnxx6kcq9cwra1iipijhs0vwvjx0yhf"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags (list (string-append "--with-boost="
+                               (assoc-ref %build-inputs "boost")))))
+    (native-inputs
+     `(("boost" ,boost))) ; tests
+    (inputs
+     `(("expat" ,expat)
+       ("zlib" ,zlib)))
+    (home-page "https://wiki.freedesktop.org/libopenraw/Exempi")
+    (synopsis "XMP metadata handling library")
+    (description "Exempi is an implementation of the Extensible Metadata
+Platform (XMP), which enables embedding metadata in PDF and image formats.")
+    (license license:bsd-3)))
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 8f495f7b32..4b88af1238 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -781,7 +781,7 @@ reference interpreter, using Glk API.")
     (synopsis "Z-machine interpreter")
     (description
      "Fizmo is a console-based Z-machine interpreter.  It is used to play
-interactive ficiton, also known as textadventures, which were implemented
+interactive fiction, also known as text adventures, which were implemented
 either by Infocom or created using the Inform compiler.")
     (license license:bsd-3)))
 
@@ -853,13 +853,14 @@ multi-system game/emulator system.")
     (build-system gnu-build-system)
     (inputs `(("readline" ,readline)))
     (synopsis "Play the game of Go")
-    (description "GNU Go is a program that plays the game of Go, in which
-players place stones on a grid to form territory or capture other stones.
-While it can be played directly from the terminal, rendered in ASCII
-characters, it is also possible to play GNU Go with 3rd party graphical
-interfaces or even in Emacs.  It supports the standard game storage format
-(SGF, Smart Game Format) and inter-process communication format (GMP, Go
-Modem Protocol).")
+    (description
+     "GNU Go is a program that plays the game of Go, in which players
+place stones on a grid to form territory or capture other stones.  While
+it can be played directly from the terminal, rendered in ASCII characters,
+it is also possible to play GNU Go with 3rd party graphical interfaces or
+even in Emacs.  It supports the standard game storage format (SGF, Smart
+Game Format) and inter-process communication format (GMP, Go Modem
+Protocol).")
     (home-page "http://www.gnu.org/software/gnugo/")
     (license license:gpl3+)))
 
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 6aa0942674..d0a92786ff 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -21,7 +21,7 @@
 
 (define-module (gnu packages gcc)
   #:use-module ((guix licenses)
-                #:select (gpl3+ gpl2+ lgpl2.1+ lgpl2.0+))
+                #:select (gpl3+ gpl2+ lgpl2.1+ lgpl2.0+ fdl1.3+))
   #:use-module (gnu packages)
   #:use-module (gnu packages bootstrap)
   #:use-module (gnu packages compression)
@@ -676,3 +676,53 @@ CLooG is designed to avoid control overhead and to produce a very
 effective code.")
     (license gpl2+)))
 
+(define-public gnu-c-manual
+  (package
+    (name "gnu-c-manual")
+    (version "0.2.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnu/gnu-c-manual/gnu-c-manual-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0cf4503shr7hxkbrjfi9dky6q2lqk95bgbgbjmvj2s2x312kakd9"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("texinfo" ,texinfo)))
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (delete 'configure)
+                  (delete 'check)
+                  (replace 'build
+                           (lambda _
+                             (zero? (system* "make"
+                                             "gnu-c-manual.info"
+                                             "gnu-c-manual.html"))))
+                  (replace 'install
+                           (lambda* (#:key outputs #:allow-other-keys)
+                             (let* ((out (assoc-ref outputs "out"))
+                                    (info (string-append out "/share/info"))
+                                    (html (string-append
+                                           out "/share/doc/gnu-c-manual")))
+                               (mkdir-p info)
+                               (mkdir-p html)
+
+                               (for-each (lambda (file)
+                                           (copy-file file
+                                                      (string-append info "/"
+                                                                     file)))
+                                         (find-files "." "\\.info(-[0-9])?$"))
+                               (for-each (lambda (file)
+                                           (copy-file file
+                                                      (string-append html "/"
+                                                                     file)))
+                                         (find-files "." "\\.html$"))
+                               #t))))))
+    (synopsis "Reference manual for the C programming language")
+    (description
+     "This is a reference manual for the C programming language, as
+implemented by the GNU C Compiler (gcc).  As a reference, it is not intended
+to be a tutorial of the language.  Rather, it outlines all of the constructs
+of the language.  Library functions are not included.")
+    (home-page "http://www.gnu.org/software/gnu-c-manual")
+    (license fdl1.3+)))
diff --git a/gnu/packages/gd.scm b/gnu/packages/gd.scm
index 725a8e7e9e..55caac9b29 100644
--- a/gnu/packages/gd.scm
+++ b/gnu/packages/gd.scm
@@ -138,7 +138,7 @@ you can create PNG images on the fly or modify existing files.")
      `(("perl-gd" ,perl-gd)
        ("perl-image-magick" ,perl-image-magick)))
     (home-page "http://search.cpan.org/dist/GD-SecurityImage")
-    (synopsis "Security image generator.")
+    (synopsis "Security image generator")
     (description "This module provides a basic interface to create
 security (captcha) images.  The final output is the actual graphic data, the
 mime type of the graphic, and the created random string.  The module also has
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 9bb1134d39..e8003f88a3 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -130,7 +130,7 @@ the X-Consortium license.")
     (description
      "FTGL is a font rendering library for OpenGL applications.  Supported
 rendering modes are: Bitmaps, Anti-aliased pixmaps, Texture maps, Outlines,
-Polygon meshes, and Extruded polygon meshes")
+Polygon meshes, and Extruded polygon meshes.")
     (license l:x11)))
 
 (define-public s2tc
@@ -409,22 +409,27 @@ extension functionality is exposed in a single header file.")
               ("glu" ,glu)
               ("freeglut" ,freeglut)))
     (arguments
-     '(#:phases (alist-cons-before
-                 'build 'patch-dynamic-link
-                 (lambda* (#:key inputs outputs #:allow-other-keys)
-                   (define (dynamic-link-substitute file lib input)
-                     (substitute* file
-                       (("dynamic-link \"lib([a-zA-Z]+)\"" _ lib)
-                        (string-append "dynamic-link \""
-                                       (assoc-ref inputs input)
-                                       "/lib/lib" lib "\""))))
-                   ;; Replace dynamic-link calls for libGL, libGLU, and
-                   ;; libglut with absolute paths to the store.
-                   (dynamic-link-substitute "glx/runtime.scm" "GL" "mesa")
-                   (dynamic-link-substitute "glu/runtime.scm" "GLU" "glu")
-                   (dynamic-link-substitute "glut/runtime.scm" "glut"
-                                            "freeglut"))
-                 %standard-phases)))
+     '(#:phases (modify-phases %standard-phases
+                 (add-after 'configure 'patch-makefile
+                   (lambda _
+                     ;; Install compiled Guile files in the expected place.
+                     (substitute* '("Makefile")
+                       (("^godir = .*$")
+                        "godir = $(moddir)\n"))))
+                 (add-before 'build 'patch-dynamic-link
+                   (lambda* (#:key inputs outputs #:allow-other-keys)
+                     (define (dynamic-link-substitute file lib input)
+                       (substitute* file
+                         (("dynamic-link \"lib([a-zA-Z]+)\"" _ lib)
+                          (string-append "dynamic-link \""
+                                         (assoc-ref inputs input)
+                                         "/lib/lib" lib "\""))))
+                     ;; Replace dynamic-link calls for libGL, libGLU, and
+                     ;; libglut with absolute paths to the store.
+                     (dynamic-link-substitute "glx/runtime.scm" "GL" "mesa")
+                     (dynamic-link-substitute "glu/runtime.scm" "GLU" "glu")
+                     (dynamic-link-substitute "glut/runtime.scm" "glut"
+                                              "freeglut"))))))
     (home-page "http://gnu.org/s/guile-opengl")
     (synopsis "Guile binding for the OpenGL graphics API")
     (description
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 723cff0d0e..410a0f9083 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
+;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
 ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
@@ -61,6 +62,7 @@
   #:use-module (gnu packages lua)
   #:use-module (gnu packages image)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages photo)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
@@ -132,6 +134,28 @@ Desktop.  It is designed to be as simple as possible and has some unique
 features to enable users to create their discs easily and quickly.")
     (license license:gpl2+)))
 
+(define-public gnome-common
+  (package
+    (name "gnome-common")
+    (version "3.14.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://gnome/sources/" name "/"
+                           (version-major+minor version)  "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0b1676g4q44ah73c5gwl1kg88pc93pnq1pa9kwl43d0vg0pj802c"))))
+    (build-system gnu-build-system)
+    (home-page "https://www.gnome.org/")
+    (synopsis "Bootstrap GNOME modules built from Git")
+    (description "gnome-common contains various files needed to bootstrap
+GNOME modules built from Git.  It contains a common \"autogen.sh\" script that
+can be used to configure a source directory checked out from Git and some
+commonly used macros.")
+    (license license:gpl2+)))
+
 (define-public gnome-desktop
   (package
     (name "gnome-desktop")
@@ -666,7 +690,7 @@ some form of information without getting in the user's way.")
 every application the chance to assume its own extensibility.  It also has a
 set of features including, but not limited to: multiple extension points; on
 demand (lazy) programming language support for C, Python and JS; simplicity of
-the API")
+the API.")
     (license license:lgpl2.0+)))
 
 (define-public gtkglext
@@ -1211,7 +1235,8 @@ creating interactive structured graphics.")
     (home-page "https://developer.gnome.org/libgnomeui/")
     (synopsis "Additional widgets for applications")
     (description "The libgnomeui library provides additional widgets for
-applications.  Many of the widgets from libgnomeui have already been ported to GTK+.")
+applications.  Many of the widgets from libgnomeui have already been
+ported to GTK+.")
     (license license:lgpl2.0+)))
 
 (define-public libglade
@@ -1754,11 +1779,12 @@ configuration storage systems.")
      `(("glib" ,glib)))                         ;according to json-glib-1.0.pc
     (home-page "https://wiki.gnome.org/Projects/JsonGlib")
     (synopsis "Compiler for the GObject type system")
-    (description "JSON-GLib is a C library based on GLib providing
-serialization and deserialization support for the JavaScript Object Notation
-(JSON) format described by RFC 4627.  It provides parser and generator
-GObject classes and various wrappers for the complex data types employed by
-JSON, such as arrays and objects.")
+    (description
+     "JSON-GLib is a C library based on GLib providing serialization and
+deserialization support for the JavaScript Object Notation (JSON) format
+described by RFC 4627.  It provides parser and generator GObject classes and
+various wrappers for the complex data types employed by JSON, such as arrays
+and objects.")
     (license license:lgpl2.1+)))
 
 (define-public libxklavier
@@ -1796,8 +1822,8 @@ JSON, such as arrays and objects.")
     (synopsis "High-level API for X Keyboard Extension")
     (description
      "LibXklavier is a library providing high-level API for X Keyboard
-Extension known as XKB.  This library is indended to support XFree86 and other
-commercial X servers. It is useful for creating XKB-related software (layout
+Extension known as XKB.  This library is intended to support XFree86 and other
+commercial X servers.  It is useful for creating XKB-related software (layout
 indicators etc).")
     (license license:lgpl2.0+)))
 
@@ -2212,7 +2238,7 @@ output devices.")
 information.  The primary goal of the Geoclue project is to make creating
 location-aware applications as simple as possible, while the secondary goal is
 to ensure that no application can access location information without explicit
-permission from user. ")
+permission from user.")
     (license license:gpl2+)))
 
 (define-public geocode-glib
@@ -3001,3 +3027,53 @@ which can read a large number of file formats.")
    (description "Rhythmbox is a music playing application for GNOME.  It
 supports playlists, song ratings, and any codecs installed through gstreamer.")
    (license license:gpl2+)))
+
+(define-public eog
+ (package
+   (name "eog")
+   (version "3.16.2")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append "mirror://gnome/sources/" name "/"
+                                (version-major+minor version) "/"
+                                name "-" version ".tar.xz"))
+            (sha256
+             (base32
+              "0frw1b5jix9pffznav5s7ajjx91a8rv5lf4sjvjv3fw65mbnhbw0"))))
+   (build-system glib-or-gtk-build-system)
+   (arguments
+    `(#: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)))))
+   (propagated-inputs
+    `(("dconf" ,dconf)))
+   (native-inputs
+    `(("intltool" ,intltool)
+      ("itstool", itstool)
+      ("glib" ,glib "bin")
+      ("gobject-introspection" ,gobject-introspection)
+      ("pkg-config" ,pkg-config)))
+   (inputs
+    `(("gnome-desktop" ,gnome-desktop)
+      ("shared-mime-info" ,shared-mime-info)
+      ("adwaita-icon-theme" ,adwaita-icon-theme)
+      ("exempi" ,exempi)
+      ("lcms" ,lcms)
+      ("libexif" ,libexif)
+      ("libpeas" ,libpeas)
+      ("libjpeg" ,libjpeg)
+      ("librsvg" ,librsvg)
+      ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+      ("gtk+" ,gtk+)))
+   (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
+   (synopsis "GNOME image viewer")
+   (description "Eye of GNOME is the GNOME image viewer.  It
+supports image conversion, rotation, and slideshows.")
+   (license license:gpl2+)))
diff --git a/gnu/packages/gsasl.scm b/gnu/packages/gsasl.scm
index 3caeb1a200..ce39aed655 100644
--- a/gnu/packages/gsasl.scm
+++ b/gnu/packages/gsasl.scm
@@ -41,7 +41,7 @@
    (build-system gnu-build-system)
    (synopsis "Library that implements NTLM authentication")
    (description
-    "Libntlm is a library that implements NTLM authentication")
+    "Libntlm is a library that implements NTLM authentication.")
    (license license:lgpl2.1+)
    (home-page "http://www.nongnu.org/libntlm/")))
 
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index d7296e586b..717388ba00 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -118,8 +118,8 @@ arrays of data.")
     (description
      "GStreamer is a library for constructing graphs of media-handling
 components.  The applications it supports range from simple Ogg/Vorbis
-playback, audio/video streaming to complex audio (mixing) and video
- (non-linear editing) processing.
+playback, audio/video streaming to complex audio mixing and video
+non-linear editing.
 
 Applications can take advantage of advances in codec and filter technology
 transparently.  Developers can add new codecs and filters by writing a
@@ -190,7 +190,7 @@ for the GStreamer multimedia library.")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append 
+      (uri (string-append
             "http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-"
             version ".tar.xz"))
       (sha256
@@ -275,8 +275,7 @@ developers consider to have good quality code and correct functionality.")
        ("pkg-config" ,pkg-config)
        ("python-wrapper" ,python-wrapper)))
     (home-page "http://gstreamer.freedesktop.org/")
-    (synopsis
-     "GStreamer plugins from the \"ugly\" set.")
+    (synopsis "GStreamer plugins from the \"ugly\" set")
     (description "GStreamer Ugly Plug-ins.  This set contains those plug-ins
 which the developers consider to have good quality code but that might pose
 distribution problems in some jurisdictions, e.g. due to patent threats.")
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index f518992498..d812af08f6 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -131,7 +131,7 @@ The cairo API provides operations similar to the drawing operators of
 PostScript and PDF.  Operations in cairo including stroking and filling cubic
 Bézier splines, transforming and compositing translucent images, and
 antialiased text rendering.  All drawing operations can be transformed by any
-affine transformation (scale, rotation, shear, etc.)")
+affine transformation (scale, rotation, shear, etc.).")
    (license license:lgpl2.1) ; or Mozilla Public License 1.1
    (home-page "http://cairographics.org/")))
 
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index d8c1a8ca35..e85c84aa5a 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -457,14 +457,14 @@ http:://json.org specification.  These are the main features:
     (inputs
      `(("guile" ,guile-2.0)))
     (home-page "https://github.com/ijp/minikanren")
-    (synopsis "miniKanren declarative logic system, packaged for Guile")
+    (synopsis "MiniKanren declarative logic system, packaged for Guile")
     (description
      "MiniKanren is a relational programming extension to the Scheme
 programming Language, written as a smaller version of Kanren suitable for
 pedagogical purposes.  It is featured in the book, The Reasoned Schemer,
 written by Dan Friedman, William Byrd, and Oleg Kiselyov.
 
-This is Ian Price's r6rs packaged version of miniKranen, which deviates
+This is Ian Price's r6rs packaged version of miniKanren, which deviates
 slightly from miniKanren mainline.
 
 See http://minikanren.org/ for more on miniKanren generally.")
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 298caf108c..33eb1b5f1c 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -717,7 +717,7 @@ and high speed.")
         (base32
          "0xa3j0gwr6k5vizxybnzk5fgb3pppgspi6mysnp2gwjp2dbrxkzr"))))
     (build-system haskell-build-system)
-    (inputs 
+    (inputs
      `(("ghc-quickcheck" ,ghc-quickcheck)))
     (home-page "http://hackage.haskell.org/package/split")
     (synopsis
@@ -774,7 +774,7 @@ is also parametric in the input stream type.")
         (base32
          "01hc71k1z9m0g0dv4zsvq5d2dvbgyc5p01hryw5c53792yi2fm25"))))
     (build-system haskell-build-system)
-    (inputs 
+    (inputs
      `(("ghc-quickcheck" ,ghc-quickcheck)))
     ;; these inputs are necessary to use this library
     (propagated-inputs
@@ -842,8 +842,8 @@ mutable and immutable), with a powerful loop optimisation framework.")
      `(("ghc-parsec" ,ghc-parsec)))
     (home-page
      "https://github.com/haskell/network-uri")
-    (synopsis "Labrary for URI manipulation")
-    (description "This package provides an URI manipulation inteface.  In
+    (synopsis "Library for URI manipulation")
+    (description "This package provides an URI manipulation interface.  In
 'network-2.6' the 'Network.URI' module was split off from the 'network'
 package into this package.")
     (license bsd-3)))
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 30f380038b..84f03967a7 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -264,10 +264,10 @@ arithmetic ops.")
     (build-system gnu-build-system)
     (synopsis "Decoder of the JBIG2 image compression format")
     (description
-      "JBIG2 is designed for lossy or lossless encoding of 'bilevel'
-(1-bit monochrome) images at moderately high resolution, and in
-particular scanned paper documents.  In this domain it is very
-efficient, offering compression ratios on the order of 100:1.
+      "JBIG2 is designed for lossy or lossless encoding of 'bilevel' (1-bit
+monochrome) images at moderately high resolution, and in particular scanned
+paper documents.  In this domain it is very efficient, offering compression
+ratios on the order of 100:1.
 
 This is a decoder only implementation, and currently is in the alpha
 stage, meaning it doesn't completely work yet.  However, it is
diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm
index f2f1fbc162..b0fa7aa179 100644
--- a/gnu/packages/language.scm
+++ b/gnu/packages/language.scm
@@ -372,7 +372,7 @@ stemmer at http://snowball.sourceforge.net.")
        ("perl-text-unidecode" ,perl-text-unidecode)
        ("perl-namespace-clean" ,perl-namespace-clean)))
     (home-page "http://search.cpan.org/dist/String-ToIdentifier-EN")
-    (synopsis "Convert strings to english program identifiers")
+    (synopsis "Convert strings to English program identifiers")
     (description "This module provides a utility method, \"to_identifier\" for
 converting an arbitrary string into a readable representation using the ASCII
 subset of \"\\w\" for use as an identifier in a computer program.  The intent
@@ -395,6 +395,6 @@ string can be easily inferred by a human just by reading the identifier.")
     (build-system perl-build-system)
     (home-page "http://search.cpan.org/dist/Text-German")
     (synopsis "German grundform reduction")
-    (description "This module is a rather incomplete implementaion of work
+    (description "This module is a rather incomplete implementation of work
 done by Gudrun Putze-Meier.")
     (license (package-license perl))))
diff --git a/gnu/packages/lesstif.scm b/gnu/packages/lesstif.scm
index d2ad120531..6326cd3a22 100644
--- a/gnu/packages/lesstif.scm
+++ b/gnu/packages/lesstif.scm
@@ -45,5 +45,5 @@
         ("libxt" ,libxt)))
     (home-page "http://lesstif.sourceforge.net/")
     (synopsis "Clone of the Motif toolkit for the X window system")
-    (description "Clone of the Motif toolkit for the X window system")
+    (description "Clone of the Motif toolkit for the X window system.")
     (license license:gpl2+))) ; some files are lgpl2.1+ or x11
diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index e105209ade..da7e275e55 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -657,7 +657,7 @@ patterns, which are pre-processed by a perl script.")
     (synopsis "Thesaurus")
     (description "MyThes is a simple thesaurus that uses a structured text
 data file and an index file with binary search to look up words and phrases
-and to return information on pronunciations, meaningss and synonyms.")
+and to return information on pronunciations, meanings and synonyms.")
     (license (non-copyleft "file://COPYING"
                            "See COPYING in the distribution."))))
 
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 03f933c2df..17ba1e439b 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -313,7 +313,18 @@ It has been modified to remove all non-free binary blobs.")
     (license gpl2)
     (home-page "http://www.gnu.org/software/linux-libre/"))))
 
+(define-public linux-libre-4.0
+  (package
+    (inherit linux-libre)
+    (version "4.0.8")
+    (source (origin
+              (method url-fetch)
+              (uri (linux-libre-urls version))
+              (sha256
+               (base32
+                "1xg5ysbdpna78yaz760c1z08sczagqyy74svr3p2mv8iczqyxdca"))))))
 
+
 ;;;
 ;;; Pluggable authentication modules (PAM).
 ;;;
@@ -356,7 +367,7 @@ It has been modified to remove all non-free binary blobs.")
      "A *Free* project to implement OSF's RFC 86.0.
 Pluggable authentication modules are small shared object files that can
 be used through the PAM API to perform tasks, like authenticating a user
-at login.  Local and dynamic reconfiguration are its key features")
+at login.  Local and dynamic reconfiguration are its key features.")
     (license bsd-3)))
 
 
@@ -1713,6 +1724,113 @@ interface.")
     (home-page "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html")
     (license gpl2+)))
 
+(define-public crda
+  (package
+    (name "crda")
+    (version "3.18")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kernel.org/software/network/crda/"
+                                  "crda-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1gydiqgb08d9gbx4l6gv98zg3pljc984m50hmn3ysxcbkxkvkz23"))
+              (patches (list (search-patch "crda-optional-gcrypt.patch")))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (delete 'configure)
+                  (add-before
+                   'build 'no-werror-no-ldconfig
+                   (lambda _
+                     (substitute* "Makefile"
+                       (("-Werror")  "")
+                       (("ldconfig") "true"))
+                     #t))
+                  (add-before
+                   'build 'set-regulator-db-file-name
+                   (lambda* (#:key inputs #:allow-other-keys)
+                     ;; Tell CRDA where to find our database.
+                     (let ((regdb (assoc-ref inputs "wireless-regdb")))
+                       (substitute* "crda.c"
+                         (("\"/lib/crda/regulatory.bin\"")
+                          (string-append "\"" regdb
+                                         "/lib/crda/regulatory.bin\"")))
+                       #t))))
+       #:test-target "verify"
+       #:make-flags (let ((out   (assoc-ref %outputs "out"))
+                          (regdb (assoc-ref %build-inputs "wireless-regdb")))
+                      (list "CC=gcc" "V=1"
+
+                            ;; Disable signature-checking on 'regulatory.bin'.
+                            ;; The reason is that this simplifies maintenance
+                            ;; on our side (no need to manage a distro key
+                            ;; pair), and we can guarantee integrity of
+                            ;; 'regulatory.bin' by other means anyway, such as
+                            ;; 'guix gc --verify'.  See
+                            ;; <https://wireless.wiki.kernel.org/en/developers/regulatory/wireless-regdb>
+                            ;; for a discssion.
+                            "USE_OPENSSL=0"
+
+                            (string-append "PREFIX=" out)
+                            (string-append "SBINDIR=" out "/sbin/")
+                            (string-append "UDEV_RULE_DIR="
+                                           out "/lib/udev/rules.d")
+                            (string-append "LDFLAGS=-Wl,-rpath="
+                                           out "/lib -L.")
+                            (string-append "REG_BIN=" regdb
+                                           "/lib/crda/regulatory.bin")))))
+    (native-inputs `(("pkg-config" ,pkg-config)
+                     ("python" ,python-2)
+                     ("wireless-regdb" ,wireless-regdb)))
+    (inputs `(("libnl" ,libnl)))
+    (home-page
+     "https://wireless.wiki.kernel.org/en/developers/Regulatory/CRDA")
+    (synopsis "Central regulatory domain agent (CRDA) for WiFi")
+    (description
+     "The Central Regulatory Domain Agent (CRDA) acts as the udev helper for
+communication between the kernel Linux and user space for regulatory
+compliance.")
+    (license copyleft-next)))
+
+(define-public wireless-regdb
+  (package
+    (name "wireless-regdb")
+    (version "2015.04.06")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://kernel.org/software/network/wireless-regdb/"
+                    "wireless-regdb-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0czi83k311fp27z42hxjm8vi88fsbc23mhavv96lkb4pmari0jjc"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (delete 'configure))
+       #:tests? #f                                ;no tests
+       #:make-flags (let ((out (assoc-ref %outputs "out")))
+                      (list (string-append "PREFIX=" out)
+                            (string-append "LSB_ID=GuixSD")
+                            (string-append "DISTRO_PUBKEY=/dev/null")
+                            (string-append "DISTRO_PRIVKEY=/dev/null")
+                            (string-append "REGDB_PUBKEY=/dev/null")
+
+                            ;; Leave that empty so that db2bin.py doesn't try
+                            ;; to sign 'regulatory.bin'.  This allows us to
+                            ;; avoid managing a key pair for the whole distro.
+                            (string-append "REGDB_PRIVKEY=")))))
+    (native-inputs `(("python" ,python-2)))
+    (home-page
+     "https://wireless.wiki.kernel.org/en/developers/regulatory/wireless-regdb")
+    (synopsis "Wireless regulatory database")
+    (description
+     "This package contains the wireless regulatory database Central
+Regulatory Database Agent (CRDA) daemon.  The database contains information on
+country-specific regulations for the wireless spectrum.")
+    (license isc)))
+
 (define-public lm-sensors
   (package
     (name "lm-sensors")
@@ -1949,10 +2067,10 @@ thanks to the use of namespaces.")
        #:phases (alist-delete 'configure %standard-phases)
        #:tests? #f))  ; no test suite
     (home-page "http://sourceforge.net/projects/hdparm/")
-    (synopsis "tune hard disk parameters for high performance")
+    (synopsis "Tune hard disk parameters for high performance")
     (description
      "Get/set device parameters for Linux SATA/IDE drives.  It's primary use
-is for enabling irq-unmasking and IDE multiplemode.")
+is for enabling irq-unmasking and IDE multiple-mode.")
     (license (non-copyleft "file://LICENSE.TXT"))))
 
 (define-public acpid
@@ -2048,7 +2166,7 @@ also contains the libsysfs library.")
     (home-page "https://www.kernel.org/pub/linux/utils/kernel/cpufreq/")
     (synopsis "Utilities to get and set CPU frequency on Linux")
     (description
-     "The cpufrequtils suite contains utilities to retreive CPU frequency
+     "The cpufrequtils suite contains utilities to retrieve CPU frequency
 information, and set the CPU frequency if supported, using the cpufreq
 capabilities of the Linux kernel.")
     (license gpl2)))
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 897eab3024..9e06a64092 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -70,12 +70,12 @@
     (home-page "http://www.llvm.org")
     (synopsis "Optimizing compiler infrastructure")
     (description
-     "LLVM is a compiler infrastructure designed for compile-time, link-time, runtime,
-and idle-time optimization of programs from arbitrary programming languages.
-It currently supports compilation of C and C++ programs, using front-ends
-derived from GCC 4.0.1.  A new front-end for the C family of languages is in
-development.  The compiler infrastructure includes mirror sets of programming
-tools as well as libraries with equivalent functionality.")
+     "LLVM is a compiler infrastructure designed for compile-time, link-time,
+runtime, and idle-time optimization of programs from arbitrary programming
+languages.  It currently supports compilation of C and C++ programs, using
+front-ends derived from GCC 4.0.1.  A new front-end for the C family of
+languages is in development.  The compiler infrastructure includes mirror sets
+of programming tools as well as libraries with equivalent functionality.")
     (license ncsa)))
 
 (define (clang-from-llvm llvm hash)
diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm
new file mode 100644
index 0000000000..6d7580c1b2
--- /dev/null
+++ b/gnu/packages/lxde.scm
@@ -0,0 +1,49 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages lxde)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages))
+
+(define-public lxappearance
+  (package
+    (name "lxappearance")
+    (version "0.6.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/project/lxde/"
+                                  "LXAppearance/" name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1phnv1b2jdj2vlibjyc9z01izcf3k5zxj8glsaf0i3vh77zqmqq9"))))
+    (build-system gnu-build-system)
+    (inputs `(("gtk+" ,gtk+-2)))
+    (native-inputs `(("intltool"   ,intltool)
+                     ("pkg-config" ,pkg-config)))
+    (synopsis "LXDE GTK+ theme switcher")
+    (description "LXAppearance is a desktop-independent GTK+ theme switcher
+able to change themes, icons, and fonts used by GTK+ applications.")
+    (home-page "http://lxde.org")
+    (license license:gpl2+)))
+
+;;; lxde.scm ends here
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 7eb2f5aeae..d3654817ae 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -90,10 +90,10 @@
    (synopsis "Conversion between thousands of scales")
    (description
     "GNU Units converts numeric quantities between units of measure.  It
-can handle scale changes through adaptive usage of standard scale prefixes
-(micro-, kilo-, etc.).  It can also handle nonlinear conversions such as
-Fahrenheit to Celsius.  Its interpreter is powerful enough to be used
-effectively as a scientific calculator.")
+can handle scale changes through adaptive usage of standard scale
+prefixes (micro-, kilo-, etc.).  It can also handle nonlinear
+conversions such as Fahrenheit to Celsius.  Its interpreter is powerful
+enough to be used effectively as a scientific calculator.")
    (license license:gpl3+)
    (home-page "http://www.gnu.org/software/units/")))
 
@@ -1381,7 +1381,7 @@ to BMP, JPEG or PNG image formats.")
     (description "Maxima is a system for the manipulation of symbolic and
 numerical expressions.  It yields high precision numeric results by using
 exact fractions, arbitrary precision integers, and variable precision floating
-point numbers")
+point numbers.")
     ;; Some files are lgpl2.1+. Some are gpl2+.  Some explicitly state gpl1+.
     ;; Others simply say "GNU General Public License" without stating a
     ;; version (which implicitly means gpl1+).
@@ -1528,7 +1528,7 @@ constant parts of it.")
      "OpenLibm is an effort to have a high quality, portable, standalone C
 mathematical library (libm).  It can be used standalone in applications and
 programming language implementations.  The project was born out of a need to
-have a good libm for the Julia programming langage that worked consistently
+have a good libm for the Julia programming language that worked consistently
 across compilers and operating systems, and in 32-bit and 64-bit
 environments.")
     ;; See LICENSE.md for details.
diff --git a/gnu/packages/mcrypt.scm b/gnu/packages/mcrypt.scm
index ad67302fcc..71cbfd1ff9 100644
--- a/gnu/packages/mcrypt.scm
+++ b/gnu/packages/mcrypt.scm
@@ -107,5 +107,5 @@ Algorithms currently supplied are:
 CRC-32, CRC-32B, ALDER-32, MD-2, MD-4, MD-5, RIPEMD-128, RIPEMD-160,
 RIPEMD-256, RIPEMD-320, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, HAVAL-128,
 HAVAL-160, HAVAL-192, HAVAL-256, TIGER, TIGER-128, TIGER-160, GOST, WHIRLPOOL,
-SNEFRU-128, SNEFRU-256")
+SNEFRU-128, SNEFRU-256.")
     (license gpl2+)))
diff --git a/gnu/packages/mit-krb5.scm b/gnu/packages/mit-krb5.scm
index 716d95bcd2..b79d4d34bc 100644
--- a/gnu/packages/mit-krb5.scm
+++ b/gnu/packages/mit-krb5.scm
@@ -81,7 +81,8 @@
     (description
      "Massachusetts Institute of Technology implementation of Kerberos.
 Kerberos is a network authentication protocol designed to provide strong
-authentication for client/server applications by using secret-key cryptography.")
+authentication for client/server applications by using secret-key
+cryptography.")
     (license (non-copyleft "file://NOTICE"
-                        "See NOTICE in the distribution."))
+                           "See NOTICE in the distribution."))
     (home-page "http://web.mit.edu/kerberos/")))
diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm
index c7efbae8c1..163e075f18 100644
--- a/gnu/packages/mp3.scm
+++ b/gnu/packages/mp3.scm
@@ -90,7 +90,7 @@ This package contains the library.")
    (synopsis "Library for reading ID3 tags")
    (description
     "Libid3tag is a library for reading ID3 tags, both ID3v1 and the various
-versions of ID3v2")
+versions of ID3v2.")
    (license license:gpl2+)
    (home-page "http://www.underbit.com/products/mad/")))
 
@@ -212,7 +212,7 @@ Speex, WavPack TrueAudio, WAV, AIFF, MP4 and ASF files.")
     (synopsis "MP3 technical info viewer and ID3 1.x tag editor")
     (description
      "MP3Info is a little utility used to read and modify the ID3 tags of MP3
-files.  MP3Info can also display various techincal aspects of an MP3 file
+files.  MP3Info can also display various technical aspects of an MP3 file
 including playing time, bit-rate, sampling frequency and other attributes in a
 pre-defined or user-specifiable output format.")
     (license license:gpl2+)))
@@ -234,7 +234,7 @@ pre-defined or user-specifiable output format.")
              ("libmad" ,libmad)
              ("libogg" ,libogg)
              ("libltdl" ,libltdl)
-             ("libvorbid" ,libvorbis)
+             ("libvorbis" ,libvorbis)
              ("pcre" ,pcre)))
    (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -242,7 +242,7 @@ pre-defined or user-specifiable output format.")
    (description
     "Mp3splt is a utility to split mp3 and ogg vorbis files selecting a begin
 and an end time position, without decoding.  For splitting an album, one may
-select split points and filenames manually or obtain them automatically from
+select split points and file names manually or obtain them automatically from
 CDDB (internet or a local file) or from .cue files.  The tool also supports
 automatic silence split, that can be used also to adjust cddb/cue splitpoints.
 
@@ -264,11 +264,11 @@ This package contains the library.")
               "106dnka56prlc9nsfh300f8841am2lmkwlzgl9lkr25mgnc35wwh"))))
    (build-system gnu-build-system)
    (inputs `(("libmp3splt" ,libmp3splt)))
-   (synopsis "Utiliy for splitting mp3 and ogg vorbis files")
+   (synopsis "Utility for splitting mp3 and ogg vorbis files")
    (description
     "Mp3splt is a utility to split mp3 and ogg vorbis files selecting a begin
 and an end time position, without decoding.  For splitting an album, one may
-select split points and filenames manually or obtain them automatically from
+select split points and file names manually or obtain them automatically from
 CDDB (internet or a local file) or from .cue files.  The tool also supports
 automatic silence split, that can be used also to adjust cddb/cue splitpoints.
 
@@ -444,5 +444,5 @@ format.")
     (synopsis "Audio player for Musepack-formatted files")
     (description
      "Mpc123 is a command-line player for files in the Musepack audio
-compression format (.mpc files.)")
+compression format (.mpc files).")
     (license license:gpl2+)))
diff --git a/gnu/packages/ncdu.scm b/gnu/packages/ncdu.scm
index 7052567530..6c3d6178c3 100644
--- a/gnu/packages/ncdu.scm
+++ b/gnu/packages/ncdu.scm
@@ -40,7 +40,7 @@
    (build-system gnu-build-system)
    (synopsis "Ncurses based disk usage analyzer")
    (description "A disk usage analyzer with an ncurses interface, aimed to be
-run on a remote server where you don't have an entire gaphical setup, but have
+run on a remote server where you don't have an entire graphical setup, but have
 to do with a simple SSH connection. ncdu aims to be fast, simple and easy to
 use, and should be able to run in any minimal POSIX-like environment with
 ncurses installed.")
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 7bd81e6a5e..717e6242be 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -80,7 +80,7 @@ socat can be used, for instance, as TCP port forwarder, as a shell interface
 to UNIX sockets, IPv6 relay, for redirecting TCP oriented programs to a serial
 line, to logically connect serial lines on different computers, or to
 establish a relatively secure environment (su and chroot) for running client
-or server shell scripts with network connections. ")
+or server shell scripts with network connections.")
     (license license:gpl2)))
 
 (define-public zeromq
diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm
index e2b43e91d7..a53d98efdd 100644
--- a/gnu/packages/ntp.scm
+++ b/gnu/packages/ntp.scm
@@ -38,7 +38,7 @@
    (version "4.2.8p3")
    (source (origin
 	    (method url-fetch)
-	    (uri (string-append 
+	    (uri (string-append
                   "http://archive.ntp.org/ntp4/ntp-"
                   (version-major+minor version)
                   "/ntp-" version ".tar.gz"))
@@ -78,7 +78,7 @@
                        (("test-decodenetnum\\$\\(EXEEXT\\) ") ""))
                      #t)))))
    (build-system gnu-build-system)
-   (synopsis "Real time clock synchonization system")
+   (synopsis "Real time clock synchronization system")
    (description "NTP is a system designed to synchronize the clocks of
 computers over a network.")
    (license (l:x11-style
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index d283acdc1e..6907b1a652 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -380,8 +380,8 @@ It is developed using Objective Caml and Camlp5.")
                       (zero? (apply system* "make" "install-doc"
                                     make-flags)))))))
     (home-page "http://proofgeneral.inf.ed.ac.uk/")
-    (description "Generic front-end for proof assistants based on Emacs")
-    (synopsis
+    (synopsis "Generic front-end for proof assistants based on Emacs")
+    (description
      "Proof General is a major mode to turn Emacs into an interactive proof
 assistant to write formal mathematical proofs using a variety of theorem
 provers.")
diff --git a/gnu/packages/openbox.scm b/gnu/packages/openbox.scm
index 07cc8f82ba..9dd756d9f3 100644
--- a/gnu/packages/openbox.scm
+++ b/gnu/packages/openbox.scm
@@ -55,7 +55,7 @@
     (synopsis "Box style window manager")
     (description
      "Openbox is a highly configurable, next generation window manager with
-extensive standars support.  The *box visual style is well known for its
+extensive standards support.  The *box visual style is well known for its
 minimalistic appearance.  Openbox uses the *box visual style, while providing
 a greater number of options for theme developers than previous *box
 implementations.")
diff --git a/gnu/packages/patches/crda-optional-gcrypt.patch b/gnu/packages/patches/crda-optional-gcrypt.patch
new file mode 100644
index 0000000000..770ab1a97e
--- /dev/null
+++ b/gnu/packages/patches/crda-optional-gcrypt.patch
@@ -0,0 +1,20 @@
+This patch allows us to make the libgcrypt dependency optional (which it
+is, if you look at the code), which in turns allows us to build CRDA
+without the signature-checking capability on 'regulatory.bin'.
+
+--- crda/Makefile	2015-07-17 11:33:33.546712893 +0200
++++ crda/Makefile	2015-07-17 11:34:05.210994373 +0200
+@@ -45,12 +45,14 @@ LDLIBS += `pkg-config --libs openssl`
+ $(LIBREG): keys-ssl.c
+ 
+ else
++ifeq ($(USE_GCRYPT),1)
+ CFLAGS += -DUSE_GCRYPT
+ LDLIBS += -lgcrypt
+ 
+ $(LIBREG): keys-gcrypt.c
+ 
+ endif
++endif
+ MKDIR ?= mkdir -p
+ INSTALL ?= install
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 541281332d..bbd1f66bf3 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -148,7 +148,7 @@
         %standard-phases)))
    (synopsis "Viewer for PDF files based on the Motif toolkit")
    (description
-    "Xpdf is a viewer for Portable Document Format (PDF) files")
+    "Xpdf is a viewer for Portable Document Format (PDF) files.")
    (license license:gpl3) ; or gpl2, but not gpl2+
    (home-page "http://www.foolabs.com/xpdf/")))
 
@@ -424,8 +424,8 @@ but also provides support for other operations such as searching and
 listing the table of contents and hyperlinks.
 
 The library ships with a rudimentary X11 viewer, and a set of command
-line tools for batch rendering (pdfdraw), examining the file structure
-(pdfshow), and rewriting files (pdfclean).")
+line tools for batch rendering (pdfdraw), rewriting files (pdfclean),
+and examining the file structure (pdfshow).")
     (license license:agpl3+)))
 
 (define-public qpdf
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index d1a0218158..7a8f832355 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -189,11 +189,11 @@ configuration files and parsing command line arguments.")
   (package
     (name "perl-archive-zip")
     (version "1.30")
-    (source 
+    (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "mirror://cpan/authors/id/A/AD/ADAMK/Archive-Zip-" 
+             "mirror://cpan/authors/id/A/AD/ADAMK/Archive-Zip-"
              version ".tar.gz"))
        (sha256
         (base32
@@ -615,7 +615,7 @@ the Class::C3 method resolution order.")
     (description "Class::Data::Inheritable is for creating accessor/mutators
 to class data.  That is, if you want to store something about your class as a
 whole (instead of about a single object).  This data is then inherited by your
-subclasses and can be overriden.")
+subclasses and can be overridden.")
     (license (package-license perl))))
 
 (define-public perl-class-date
@@ -725,7 +725,7 @@ names, not Class::Name.  For that, this module provides \"load_class
     (home-page "http://search.cpan.org/dist/Class-Load-XS")
     (synopsis "XS implementation of parts of Class::Load")
     (description "This module provides an XS implementation for portions of
-Class::Load")
+Class::Load.")
     (license artistic2.0)))
 
 (define-public perl-class-methodmaker
@@ -766,11 +766,11 @@ write accessor methods for your objects that perform standard tasks.")
        ("perl-test-requires" ,perl-test-requires)))
     (home-page "http://search.cpan.org/dist/Class-Method-Modifiers")
     (synopsis "Moose-like method modifiers")
-    (description "Class::Method::Modifiers provides three modifiers: before,
-around, and after.  before and after are run just before and after the method
-they modify, but can not really affect that original method.  around is run in
-place of the original method, with a hook to easily call that original
-method.")
+    (description "Class::Method::Modifiers provides three modifiers: 'before',
+'around', and 'after'.  'before' and 'after' are run just before and after the
+method they modify, but can not really affect that original method.  'around'
+is run in place of the original method, with a hook to easily call that
+original method.")
     (license (package-license perl))))
 
 (define-public perl-class-singleton
@@ -789,7 +789,7 @@ method.")
     (home-page "http://search.cpan.org/dist/Class-Singleton")
     (synopsis "Implementation of a singleton class for Perl")
     (description "This module implements a Singleton class from which other
-classes can be derived. By itself, the Class::Singleton module does very
+classes can be derived.  By itself, the Class::Singleton module does very
 little other than manage the instantiation of a single object.")
     (license (package-license perl))))
 
@@ -1045,7 +1045,7 @@ versa.")
 to generate random passwords, constructed from words, letters, or characters.
 This code is a Perl implementation of the Automated Password Generator
 standard, like the program described in \"A Random Word Generator For
-Pronounceable Passwords\". This code is a re-engineering of the program
+Pronounceable Passwords\".  This code is a re-engineering of the program
 contained in Appendix A of FIPS Publication 181, \"Standard for Automated
 Password Generator\".")
     (license (package-license perl))))
@@ -1210,7 +1210,7 @@ necessary later on.")
     (home-page "http://search.cpan.org/dist/Data-Tumbler")
     (synopsis "Dynamic generation of nested combinations of variants")
     (description "Data::Tumbler - Dynamic generation of nested combinations of
-variants")
+variants.")
     (license (package-license perl))))
 
 (define-public perl-data-visitor
@@ -1409,7 +1409,7 @@ or \"every day\".  You can also create more complicated recurrences, such as
        ("perl-datetime-format-strptime" ,perl-datetime-format-strptime)
        ("perl-params-validate" ,perl-params-validate)))
     (home-page "http://search.cpan.org/dist/DateTime-Format-Builder")
-    (synopsis "Create DateTime parser classes and objects.")
+    (synopsis "Create DateTime parser classes and objects")
     (description "DateTime::Format::Builder creates DateTime parsers.  Many
 string formats of dates and times are simple and just require a basic regular
 expression to extract the relevant information.  Builder provides a simple way
@@ -1876,8 +1876,8 @@ modules separately and deal with them after the module is done installing.")
     (build-system perl-build-system)
     (home-page "http://search.cpan.org/dist/Error")
     (synopsis "OO-ish Error/Exception handling for Perl")
-    (description "The Error package provides two interfaces. Firstly Error
-provides a procedural interface to exception handling. Secondly Error is a
+    (description "The Error package provides two interfaces.  Firstly Error
+provides a procedural interface to exception handling.  Secondly Error is a
 base class for errors/exceptions that can either be thrown, for subsequent
 catch, or can simply be recorded.")
     (license (package-license perl))))
@@ -2155,7 +2155,7 @@ in various parts of the CPAN ecosystem.")
     (home-page "http://search.cpan.org/dist/File-HomeDir")
     (synopsis "Find your home and other directories on any platform")
     (description "File::HomeDir is a module for locating the directories that
-are \"owned\" by a user (typicaly your user) and to solve the various issues
+are \"owned\" by a user (typically your user) and to solve the various issues
 that arise trying to find them consistently across a wide variety of
 platforms.")
     (license (package-license perl))))
@@ -2207,7 +2207,7 @@ matching a regular expression.")
     (description "File::Remove::remove removes files and directories.  It acts
 like /bin/rm, for the most part.  Although \"unlink\" can be given a list of
 files, it will not remove directories; this module remedies that.  It also
-accepts wildcards, * and ?, as arguments for filenames.")
+accepts wildcards, * and ?, as arguments for file names.")
     (license (package-license perl))))
 
 (define-public perl-file-sharedir
@@ -2274,7 +2274,7 @@ allows you to locate these files after installation.")
     (synopsis "Reading/Writing/Modifying of complete files")
     (description "File::Slurp provides subroutines to read or write entire
 files with a simple call.  It also has a subroutine for reading the list of
-filenames in a directory.")
+file names in a directory.")
     (license (package-license perl))))
 
 (define-public perl-file-temp
@@ -2471,7 +2471,7 @@ inc directory within a distribution and are used by Makefile.PL or Build.PL.")
     (synopsis "Utilities for interactive I/O")
     (description "This module provides three utility subroutines that make it
 easier to develop interactive applications: is_interactive(), interactive(),
-and busy()")
+and busy().")
     (license (package-license perl))))
 
 (define-public perl-io-string
@@ -2556,10 +2556,10 @@ pseudo ttys.")
                      ;; it, so disable it.
                      (delete-file "t/win32_compile.t"))))))
     (home-page "http://search.cpan.org/dist/IPC-Run")
-    (synopsis "system() and background procs w/ piping, redirs, ptys")
+    (synopsis "Run system() and background procs w/ piping, redirs, ptys")
     (description "IPC::Run allows you run and interact with child processes
-using files, pipes, and pseudo-ttys. Both system()-style and scripted usages
-are supported and may be mixed. Likewise, functional and OO API styles are
+using files, pipes, and pseudo-ttys.  Both system()-style and scripted usages
+are supported and may be mixed.  Likewise, functional and OO API styles are
 both supported and may be mixed.")
     (license (package-license perl))))
 
@@ -2575,7 +2575,7 @@ both supported and may be mixed.")
                (base32
                 "0r9m8q78bg7yycpixd7738jm40yz71p2q7inm766kzsw3g6c709x"))))
     (build-system perl-build-system)
-    (synopsis "Run a subprocess with input/ouput redirection")
+    (synopsis "Run a subprocess with input/output redirection")
     (description
      "The IPC::Run3 module allows you to run a subprocess and redirect stdin,
 stdout, and/or stderr to files and perl data structures.  It aims to satisfy
@@ -3399,8 +3399,8 @@ accessor, while set methods are prefixed with \"_set_\".")
     (home-page "http://search.cpan.org/dist/MooseX-StrictConstructor")
     (synopsis "Strict object constructors for Moose")
     (description "Simply loading this module makes your constructors
-\"strict\". If your constructor is called with an attribute init argument that
-your class does not declare, then it calls Moose->throw_error(). ")
+\"strict\".  If your constructor is called with an attribute init argument
+that your class does not declare, then it calls Moose->throw_error().")
     (license artistic2.0)))
 
 (define-public perl-moosex-traits-pluggable
@@ -3428,7 +3428,7 @@ your class does not declare, then it calls Moose->throw_error(). ")
      "http://search.cpan.org/dist/MooseX-Traits-Pluggable")
     (synopsis "Trait loading and resolution for Moose")
     (description "Adds support on top of MooseX::Traits for class precedence
-search for traits and some extra attributes")
+search for traits and some extra attributes.")
     (license (package-license perl))))
 
 (define-public perl-moosex-types
@@ -4152,7 +4152,7 @@ of Perl objects without duplicates for scalars and references.")
     (home-page "http://search.cpan.org/dist/Set-Scalar")
     (synopsis "Set operations for Perl")
     (description "The first priority of Set::Scalar is to be a convenient
-interface to sets (as in: unordered colletions of Perl scalars.)  While not
+interface to sets (as in: unordered collections of Perl scalars).  While not
 designed to be slow or big, neither has it been designed to be fast or
 compact.")
     (license (package-license perl))))
@@ -4257,7 +4257,7 @@ CamelCase and back again.")
     (home-page "http://search.cpan.org/dist/String-RewritePrefix")
     (synopsis "Rewrite strings based on a set of known prefixes")
     (description "This module allows you to rewrite strings based on a set of
-known pprefixes.")
+known prefixes.")
     (license (package-license perl))))
 
 (define-public perl-sub-exporter
@@ -4589,7 +4589,7 @@ stuff has been done, and maybe an estimate at how long remains.")
     (synopsis "Progress meter if run interactively")
     (description "Term::ProgressBar is a wonderful module for showing progress
 bars on the terminal.  This module acts very much like that module when it is
-run interactively. However, when it is not run interactively (for example, as
+run interactively.  However, when it is not run interactively (for example, as
 a cron job) then it does not show the progress bar.")
     (license (package-license perl))))
 
@@ -4713,7 +4713,7 @@ called as methods, which usually isn't want you want.")
     (description
      "Test::Deep compares two structures by going through each level, ensuring
 that the values match, that arrays and hashes have the same elements and that
-references are blessed into the correct class. It also handles circular data
+references are blessed into the correct class.  It also handles circular data
 structures without getting caught in an infinite loop.")
     (home-page (string-append "http://search.cpan.org/~rjbs/"
                               "Test-Deep-" version))
@@ -4738,7 +4738,7 @@ structures without getting caught in an infinite loop.")
     (home-page "http://search.cpan.org/dist/Test-Differences")
     (synopsis "Test strings and data structures and show differences")
     (description "This module exports three test functions and four diff-style
-functions")
+functions.")
     ;; See LICENSE section of Test/Differences.pm, which reads "... GNU public
     ;; license, any version, ..."
     (license gpl3+)))
@@ -4858,7 +4858,7 @@ automatically aggregated and output to STDOUT.")
     (home-page "http://search.cpan.org/dist/Test-LeakTrace")
     (synopsis "Traces memory leaks in Perl")
     (description "Test::LeakTrace provides several functions that trace memory
-leaks. This module scans arenas, the memory allocation system, so it can
+leaks.  This module scans arenas, the memory allocation system, so it can
 detect any leaked SVs in given blocks.")
     (license (package-license perl))))
 
@@ -4975,7 +4975,7 @@ bit more fine-grained control over test suites.")
     (description
      "This modules causes any warnings during testing to be captured and
 stored.  It automatically adds an extra test that will run when your script
-ends to check that there were no warnings.  If there were any warings, the
+ends to check that there were no warnings.  If there were any warnings, the
 test will fail and output diagnostics of where, when and what the warning was,
 including a stack trace of what was going on when it occurred.")
     (home-page (string-append "http://search.cpan.org/~adamk/"
@@ -5510,9 +5510,9 @@ as exceptions to standard program flow.")
   (home-page "http://search.cpan.org/dist/Tie-IxHash")
   (synopsis "Ordered associative arrays for Perl")
   (description "This Perl module implements Perl hashes that preserve the
-order in which the hash elements were added. The order is not affected when
-values corresponding to existing keys in the IxHash are changed. The elements
-can also be set to any arbitrary supplied order. The familiar perl array
+order in which the hash elements were added.  The order is not affected when
+values corresponding to existing keys in the IxHash are changed.  The elements
+can also be set to any arbitrary supplied order.  The familiar perl array
 operations can also be performed on the IxHash.")
   (license (package-license perl))))
 
@@ -5601,7 +5601,7 @@ duration strings like \"2 minutes\" and \"3 seconds\" to seconds.")
     (description "This module provides functions that are the inverse of
 built-in perl functions localtime() and gmtime().  They accept a date as a
 six-element array, and return the corresponding time(2) value in seconds since
-the system epoch")
+the system epoch.")
     (license (package-license perl))))
 
 (define-public perl-timedate
@@ -5770,7 +5770,7 @@ UNIVERSAL::can() as a function, which it is not.")
     (home-page "http://search.cpan.org/dist/UNIVERSAL-isa")
     (synopsis "UNIVERSAL::isa() reimplementation")
     (description "This module attempts to recover from people calling
-UNIVERSAL::isa as a function")
+UNIVERSAL::isa as a function.")
     (license (package-license perl))))
 
 (define-public perl-variable-magic
diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm
index 81b6537f15..7c0f50d467 100644
--- a/gnu/packages/pretty-print.scm
+++ b/gnu/packages/pretty-print.scm
@@ -136,7 +136,7 @@ indentation counting, function and file indices and more.")
     (synopsis "Generating PostScript, including pretty-printing")
     (description
      "GNU Enscript is a program to convert ASCII text files to PostScript,
-HTML or RTF formats, to be stored in files or sent immediately to a printer. 
+HTML or RTF formats, to be stored in files or sent immediately to a printer.
 It also includes the capability to perform syntax highlighting for several
 different programming languages.")
     (license gpl3+)))
diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm
index c7c5611eb5..6eb16de34b 100644
--- a/gnu/packages/pulseaudio.scm
+++ b/gnu/packages/pulseaudio.scm
@@ -106,7 +106,7 @@ SRC provides a small set of converters to allow quality to be traded off
 against computation cost.  The current best converter provides a
 signal-to-noise ratio of 145dB with -3dB passband extending from DC to 96% of
 the theoretical best bandwidth for a given pair of input and output sample
-rates. ")
+rates.")
     (license l:gpl2+)))
 
 (define pulseaudio
@@ -173,11 +173,12 @@ rates. ")
     (home-page "http://www.pulseaudio.org/")
     (synopsis "Sound server")
     (description
-     "PulseAudio is a sound server.  It is basically a proxy for your sound applications.
-It allows you to do advanced operations on your sound data as it passes
-between your application and your hardware.  Things like transferring the
-audio to a different machine, changing the sample format or channel count and
-mixing several sounds into one are easily achieved using a sound server. ")
+     "PulseAudio is a sound server.  It is basically a proxy for your sound
+applications.  It allows you to do advanced operations on your sound data as
+it passes between your application and your hardware.  Things like
+transferring the audio to a different machine, changing the sample format or
+channel count and mixing several sounds into one are easily achieved using a
+sound server.")
 
     ;; PulseAudio is LGPLv2+, but some of the optional dependencies (GNU dbm,
     ;; FFTW, etc.) are GPL'd, so the result is effectively GPLv2+.  See
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 9ceb5b2f5e..0c4b649ec2 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -644,7 +644,7 @@ datetime module, available in Python 2.3+.")
     (synopsis
      "Parse human-readable date/time text")
     (description
-     "Parse human-readable date/time text")
+     "Parse human-readable date/time text.")
     (license asl2.0)))
 
 (define-public python-pandas
@@ -824,7 +824,7 @@ Database API 2.0T.")
      "Mechanize implements stateful programmatic web browsing in Python,
 after Andy Lester’s Perl module WWW::Mechanize.")
     (license (non-copyleft "file://COPYING"
-                        "See COPYING in the distribution."))))
+                           "See COPYING in the distribution."))))
 
 
 (define-public python-simplejson
@@ -844,8 +844,9 @@ after Andy Lester’s Perl module WWW::Mechanize.")
     (synopsis
      "Json library for Python")
     (description
-     "JSON (JavaScript Object Notation) is a subset of JavaScript syntax
- (ECMA-262 3rd edition) used as a lightweight data interchange format.
+     "JSON (JavaScript Object Notation) is a subset of JavaScript
+syntax (ECMA-262 3rd edition) used as a lightweight data interchange
+format.
 
 Simplejson exposes an API familiar to users of the standard library marshal
 and pickle modules.  It is the externally maintained version of the json
@@ -1540,7 +1541,7 @@ executed.")
      "Python test discovery for unittest")
     (description
      "Discover provides test discovery for unittest, a feature that has been
-backported from Python 2.7 for Python 2.4+")
+backported from Python 2.7 for Python 2.4+.")
     (license bsd-3)))
 
 (define-public python2-discover
@@ -2163,7 +2164,7 @@ mining and data analysis.")
     (home-page "http://scikit-image.org/")
     (synopsis "Image processing in Python")
     (description
-     "scikit-image is a collection of algorithms for image processing.")
+     "Scikit-image is a collection of algorithms for image processing.")
     (license bsd-3)))
 
 (define-public python2-scikit-image
@@ -2334,7 +2335,7 @@ include_dirs = ~a/include
     (home-page "http://www.numpy.org/")
     (synopsis "Fundamental package for scientific computing with Python")
     (description "NumPy is the fundamental package for scientific computing
-with Python. It contains among other things: a powerful N-dimensional array
+with Python.  It contains among other things: a powerful N-dimensional array
 object, sophisticated (broadcasting) functions, tools for integrating C/C++
 and Fortran code, useful linear algebra, Fourier transform, and random number
 capabilities.")
diff --git a/gnu/packages/rdesktop.scm b/gnu/packages/rdesktop.scm
index 4ce3373cce..39a45c5878 100644
--- a/gnu/packages/rdesktop.scm
+++ b/gnu/packages/rdesktop.scm
@@ -54,6 +54,6 @@
     (synopsis "Client for Windows Terminal Services")
     (description
      "rdesktop is a client for Microsoft's Windows Remote Desktop Services,
-capable of natively speaking Remote Desktop Protocol (RDP.)  It allows users
+capable of natively speaking Remote Desktop Protocol (RDP).  It allows users
 to remotely control a user's Windows desktop.")
     (license license:gpl3+)))
diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm
index ce6b215715..13ffa2a8fe 100644
--- a/gnu/packages/rdf.scm
+++ b/gnu/packages/rdf.scm
@@ -162,7 +162,7 @@ Java Lucene text search engine API to C++.")
      "LRDF is a library to make it easy to manipulate RDF files describing
 LADSPA plugins.  It can also be used for general RDF manipulation.  It can
 read RDF/XLM and N3 files and export N3 files, and it also has a light
-taxonomic inference capablility.")
+taxonomic inference capability.")
     (license gpl2)))
 
 (define-public rasqal
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index bb7d865f21..a48136560f 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -195,7 +195,7 @@ announcement.")
                       ;; dependencies are not available right now.
                       (delete-file "tasks/cucumber.rake"))))))
     (synopsis "Building and packaging helper for Ruby native extensions")
-    (description "Rake-compiler proivides a framework for building and
+    (description "Rake-compiler provides a framework for building and
 packaging native C and Java extensions in Ruby.")
     (home-page "https://github.com/rake-compiler/rake-compiler")
     (license license:expat)))
@@ -316,7 +316,7 @@ standard diff-like tool.")
     (propagated-inputs
      `(("ruby-rspec-support" ,ruby-rspec-support)
        ("ruby-diff-lcs" ,ruby-diff-lcs-for-rspec)))
-    (synopsis "RSpec expecations library")
+    (synopsis "RSpec expectations library")
     (description "Rspec-expectations provides a simple API to express expected
 outcomes of a code example.")
     (home-page "https://github.com/rspec/rspec-expectations")
diff --git a/gnu/packages/slang.scm b/gnu/packages/slang.scm
index 577d7aff45..16054f2776 100644
--- a/gnu/packages/slang.scm
+++ b/gnu/packages/slang.scm
@@ -61,11 +61,11 @@
     (synopsis "Library for interactive applications and extensibility")
     (description
      "S-Lang is a multi-platform programmer's library designed to allow a
-developer to create robust multi-platform software. It provides facilities
+developer to create robust multi-platform software.  It provides facilities
 required by interactive applications such as display/screen management,
-keyboard input, keymaps, and so on. The most exciting feature of the library
+keyboard input, keymaps, and so on.  The most exciting feature of the library
 is the slang interpreter that may be easily embedded into a program to make it
-extensible. While the emphasis has always been on the embedded nature of the
+extensible.  While the emphasis has always been on the embedded nature of the
 interpreter, it may also be used in a stand-alone fashion through the use of
 slsh, which is part of the S-Lang distribution.")
     (license license:gpl2+)))
diff --git a/gnu/packages/slim.scm b/gnu/packages/slim.scm
index c163f4ff2b..8e25a5a669 100644
--- a/gnu/packages/slim.scm
+++ b/gnu/packages/slim.scm
@@ -91,5 +91,5 @@ Features included: PNG and XFT support for alpha transparency and antialiased
 fonts, External themes support, Configurable runtime options: X server --
 login / shutdown / reboot commands, Single (GDM-like) or double (XDM-like)
 input control, Can load predefined user at startup, Configurable welcome /
-shutdown messages, Random theme selection")
+shutdown messages, Random theme selection.")
     (license l:gpl2)))
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 8f3d5974d4..858d7ef7a5 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -124,7 +124,7 @@ to initiate and control SIP sessions.")
    (version "4.1.0")
    (source (origin
             (method url-fetch)
-            (uri (string-append 
+            (uri (string-append
                   "http://download.savannah.gnu.org/releases/exosip/libeXosip2-"
                   version ".tar.gz"))
             (sha256 (base32
@@ -133,11 +133,11 @@ to initiate and control SIP sessions.")
    (inputs `(("osip" ,osip)))
    (synopsis "Sip abstraction library")
    (description "EXosip is a library that hides the complexity of using the
-SIP protocol for mutlimedia session establishement.  This protocol is mainly to
+SIP protocol for multimedia session establishment.  This protocol is mainly to
 be used by VoIP telephony applications (endpoints or conference server) but
-might be also usefull for any application that wish to establish sessions like
+might be also useful for any application that wish to establish sessions like
 multiplayer games.")
-   (license gpl2+) 
+   (license gpl2+)
    ;; (plus OpenSSL linking exception)
    ;; http://git.savannah.gnu.org/cgit/exosip.git/plain/LICENSE.OpenSSL
     (home-page "http://savannah.nongnu.org/projects/exosip")))
@@ -153,23 +153,23 @@ multiplayer games.")
             (sha256 (base32
                      "0117c5iid1vrwl7sl3pys2jlinpmx2vfp8wcdwk93m7cc6k9793b"))))
    (build-system gnu-build-system)
-   ;; The configure.ac uses pkg-config but in a kludgy way which breaks when 
+   ;; The configure.ac uses pkg-config but in a kludgy way which breaks when
    ;; cross-compiling.  Among other issues there the program name "pkg-config"
    ;; is hard coded instead of respecting the PKG_CONFIG environment variable.
-   ;; Fortunately we can avoid the use of pkg-config and set the dependency 
-   ;; flags ourselves. 
-   (arguments `(#:configure-flags 
+   ;; Fortunately we can avoid the use of pkg-config and set the dependency
+   ;; flags ourselves.
+   (arguments `(#:configure-flags
                 `("--without-pkg-config"
-                  ,(string-append "UCOMMON_CFLAGS=-I" 
+                  ,(string-append "UCOMMON_CFLAGS=-I"
                                   (assoc-ref %build-inputs "ucommon") "/include")
                   "UCOMMON_LIBS=-lusecure -lucommon -lrt -ldl -lpthread"
-                  ,(string-append "LIBOSIP2_CFLAGS=-I" 
+                  ,(string-append "LIBOSIP2_CFLAGS=-I"
                                   (assoc-ref %build-inputs "osip") "/include")
                   "LIBOSIP2_LIBS=-losipparser2 -losip2"
-                  ,(string-append "--sysconfdir=" (assoc-ref %outputs "out") 
+                  ,(string-append "--sysconfdir=" (assoc-ref %outputs "out")
                                   "/etc")
                   "EXOSIP2_LIBS=-leXosip2"
-                  ,(string-append "EXOSIP2_CFLAGS=-I" 
+                  ,(string-append "EXOSIP2_CFLAGS=-I"
                                   (assoc-ref %build-inputs "exosip")
                                   "/include"))))
    (inputs `(("ucommon" ,ucommon)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 090f64afaf..3212d8040e 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -232,7 +232,7 @@ required structures.")
            (files '("etc/ssl/certs/ca-certificates.crt")))))
    (synopsis "SSL/TLS implementation")
    (description
-    "OpenSSL is an implementation of SSL/TLS")
+    "OpenSSL is an implementation of SSL/TLS.")
    (license license:openssl)
    (home-page "http://www.openssl.org/")))
 
diff --git a/gnu/packages/tmux.scm b/gnu/packages/tmux.scm
index 9cb35bb4b2..a5c0bb206e 100644
--- a/gnu/packages/tmux.scm
+++ b/gnu/packages/tmux.scm
@@ -46,6 +46,6 @@
     (description
      "tmux is a terminal multiplexer: it enables a number of terminals (or
 windows), each running a separate program, to be created, accessed, and
-controlled from a single screen. tmux may be detached from a screen and
+controlled from a single screen.  tmux may be detached from a screen and
 continue running in the background, then later reattached.")
     (license isc)))
diff --git a/gnu/packages/tre.scm b/gnu/packages/tre.scm
index 1a1aa02ec9..721a350cf0 100644
--- a/gnu/packages/tre.scm
+++ b/gnu/packages/tre.scm
@@ -31,7 +31,7 @@
     (source
       (origin
         (method url-fetch)
-        (uri       
+        (uri
           (string-append "http://laurikari.net/tre/" name "-" version
                          ".tar.bz2"))
         (sha256
@@ -52,6 +52,6 @@
     (synopsis "Approximate regex matching library and agrep utility")
     (description "Superset of the POSIX regex API, enabling approximate
 matching.  Also ships a version of the agrep utility which behaves similar to
-grep but features ineaxct matching.")
+grep but features inexact matching.")
     (home-page "http://laurikari.net/tre")
     (license bsd-2)))
diff --git a/gnu/packages/unrtf.scm b/gnu/packages/unrtf.scm
index 6c578ce3c0..162dec7525 100644
--- a/gnu/packages/unrtf.scm
+++ b/gnu/packages/unrtf.scm
@@ -64,7 +64,7 @@
     (home-page "http://www.gnu.org/software/unrtf")
     (synopsis "Convert Rich Text Format documents to other formats")
     (description
-     "GNU UnRTF converts text documents from RTF to HTML, LaTeX, or troff. 
+     "GNU UnRTF converts text documents from RTF to HTML, LaTeX, or troff.
 It supports changes in font characteristics, underlines and strikethroughs,
 superscripts and subscripts, and more.")
     (license gpl2+)))
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index d89ce09dab..c3f501b4a4 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -791,7 +791,7 @@ code control system SCCS.  This allows old code still under that system to be
 accessed and migrated on modern systems.")
     (license gpl3+)))
 
-;; This package can unfortunately work only in -TEST mode, since Aegis 
+;; This package can unfortunately work only in -TEST mode, since Aegis
 ;; requires that it is installed setuid root.
 (define-public aegis
   (package
@@ -799,7 +799,7 @@ accessed and migrated on modern systems.")
     (version "4.24")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://sourceforge/aegis/aegis-" 
+              (uri (string-append "mirror://sourceforge/aegis/aegis-"
                                   version ".tar.gz"))
               (sha256
                (base32
@@ -822,17 +822,17 @@ accessed and migrated on modern systems.")
        ("groff" ,groff)
        ("perl" ,perl)
        ;; Various tests require the following:
-       ("cvs" ,cvs) 
+       ("cvs" ,cvs)
        ("flex" ,flex)
        ("cook" ,cook)
        ("subversion" ,subversion)
        ("rcs" ,rcs)
        ("ed" ,ed)))
     (arguments
-     `(#:configure-flags (list "--with-no-aegis-configured" 
+     `(#:configure-flags (list "--with-no-aegis-configured"
                                "--sharedstatedir=/var/com/aegis")
        #:parallel-build? #f ; There are some nasty racy rules in the Makefile.
-       #:phases 
+       #:phases
         (alist-cons-before
          'configure 'pre-conf
          (lambda _
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 9a0e959d54..6b6d9ec9af 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1275,7 +1275,7 @@ and custom quantization matrices.")
 (define-public livestreamer
   (package
     (name "livestreamer")
-    (version "1.12.1")
+    (version "1.12.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1284,7 +1284,7 @@ and custom quantization matrices.")
               (file-name (string-append "livestreamer-" version ".tar.gz"))
               (sha256
                (base32
-                "1dhgk8v8q1h3km4g5jc0cmjsxdaa2d456fvdb2wk7hmxmmwbqm9j"))))
+                "1fp3d3z2grb1ls97smjkraazpxnvajda2d1g1378s6gzmda2jvjd"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f)) ; tests rely on external web servers
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index e4f05288e5..d8662145b9 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -153,5 +153,5 @@ and probably others.")
 for creating secure point-to-point or site-to-site connections in routed or
 bridged configurations and remote access facilities.  It uses a custom
 security protocol that utilizes SSL/TLS for key exchange.  It is capable of
-traversing network address translators (NATs) and firewalls. ")
+traversing network address translators (NATs) and firewalls.")
     (license license:gpl2)))
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 830d9db7dd..28bd2c7c68 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -365,7 +365,7 @@ files, checks if a given domain is a public suffix, provides immediate cookie
 domain verification, finds the longest public part of a given domain, finds
 the shortest private part of a given domain, works with international
 domains (UTF-8 and IDNA2008 Punycode), is thread-safe, and handles IDNA2008
-UTS#46")
+UTS#46.")
     (license l:x11)))
 
 (define-public tidy
@@ -433,7 +433,7 @@ used to validate and fix HTML data.")
     ;; All of the below are used to generate the documentation
     ;; (Should they be propagated inputs of asciidoc ??)
     (native-inputs `(("asciidoc" ,asciidoc)
-                     ("libxml2" ,libxml2) 
+                     ("libxml2" ,libxml2)
                      ("docbook-xml" ,docbook-xml)
                      ("docbook-xsl" ,docbook-xsl)
                      ("libxslt" ,libxslt)))
@@ -979,7 +979,7 @@ for you.  It will work even with Catalyst debug logging turned off.")
     (home-page "http://search.cpan.org/dist/Catalyst-Plugin-Authentication")
     (synopsis "Infrastructure plugin for the Catalyst authentication framework")
     (description "The authentication plugin provides generic user support for
-Catalyst apps. It is the basis for both authentication (checking the user is
+Catalyst apps.  It is the basis for both authentication (checking the user is
 who they claim to be), and authorization (allowing the user to do what the
 system authorises them to do).")
     (license (package-license perl))))
@@ -1148,7 +1148,7 @@ cookie mechanism.")
        ("perl-path-class" ,perl-path-class)))
     (home-page
      "http://search.cpan.org/dist/Catalyst-Plugin-Session-Store-FastMmap")
-    (synopsis "FastMmap session storage backend.")
+    (synopsis "FastMmap session storage backend")
     (description "Catalyst::Plugin::Session::Store::FastMmap is a fast session
 storage plugin for Catalyst that uses an mmap'ed file to act as a shared
 memory interprocess cache.  It is based on Cache::FastMmap.")
@@ -1327,7 +1327,7 @@ replaced with the contents of the X-Request-Base header.")
     (synopsis "Download data in many formats")
     (description "The purpose of this module is to provide a method for
 downloading data into many supportable formats.  For example, downloading a
-table based report in a variety of formats (CSV, HTML, etc.). ")
+table based report in a variety of formats (CSV, HTML, etc.).")
     (license (package-license perl))))
 
 (define-public perl-catalyst-view-json
@@ -1567,13 +1567,13 @@ for files and urls.")
     (synopsis "Perl locale encoding determination")
     (description
      "The POSIX locale system is used to specify both the language
-conventions requested by the user and the preferred character set to consume
-and output.  The Encode::Locale module looks up the charset and encoding
-(called a CODESET in the locale jargon) and arranges for the Encode module
-to know this encoding under the name \"locale\".  It means bytes obtained
-from the environment can be converted to Unicode strings by calling
-Encode::encode(locale => $bytes) and converted back again with
-Encode::decode(locale => $string).")
+conventions requested by the user and the preferred character set to
+consume and output.  The Encode::Locale module looks up the charset and
+encoding (called a CODESET in the locale jargon) and arranges for the
+Encode module to know this encoding under the name \"locale\".  It means
+bytes obtained from the environment can be converted to Unicode strings
+by calling Encode::encode(locale => $bytes) and converted back again
+with Encode::decode(locale => $string).")
     (home-page "http://search.cpan.org/~gaas/Encode-Locale/")))
 
 (define-public perl-file-listing
@@ -2298,7 +2298,7 @@ or to multiple server ports.")
      `(("perl-io-socket-ssl" ,perl-io-socket-ssl)))
     (home-page "http://search.cpan.org/dist/Net-SMTP-SSL")
     (synopsis "SSL support for Net::SMTP")
-    (description "SSL support for Net::SMTP")
+    (description "SSL support for Net::SMTP.")
     (license (package-license perl))))
 
 (define-public perl-plack
diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm
index d1413a7e71..f4ccb66d91 100644
--- a/gnu/packages/wget.scm
+++ b/gnu/packages/wget.scm
@@ -56,7 +56,7 @@
     (synopsis "Non-interactive command-line utility for downloading files")
     (description
      "GNU Wget is a non-interactive tool for fetching files using the HTTP,
-HTTPS and FTP protocols.  It can resume interrupted downloads, use filename
+HTTPS and FTP protocols.  It can resume interrupted downloads, use file name
 wild cards, supports proxies and cookies, and it can convert absolute links
 in downloaded documents to relative links.")
     (license gpl3+))) ; some files are under GPLv2+
diff --git a/gnu/packages/wordnet.scm b/gnu/packages/wordnet.scm
index 58831c4259..1823a624ed 100644
--- a/gnu/packages/wordnet.scm
+++ b/gnu/packages/wordnet.scm
@@ -79,9 +79,9 @@
     (synopsis "Lexical database for the English language")
     (description
      "WordNet® is a large lexical database of English.  Nouns, verbs,
-adjectives and adverbs are grouped into sets of cognitive synonyms
-(synsets), each expressing a distinct concept.  Synsets are interlinked by
-means of conceptual-semantic and lexical relations.  The resulting network of
+adjectives and adverbs are grouped into sets of cognitive synonyms (synsets),
+each expressing a distinct concept.  Synsets are interlinked by means of
+conceptual-semantic and lexical relations.  The resulting network of
 meaningfully related words and concepts can be navigated with the browser.
 WordNet is also freely and publicly available for download.  WordNet's
 structure makes it a useful tool for computational linguistics and natural
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 2f6738f1eb..9fd9f4a321 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -279,7 +279,7 @@ System style license, and has no special dependencies.")
      "Wmctrl allows to interact with an X window manager that is compatible
 with the EWMH/NetWM specification.  It can query the window manager for
 information, and request for certain window management actions (resize and
-move windows, switch between desktops, etc.)")
+move windows, switch between desktops, etc.).")
     (license license:gpl2+)))
 
 (define-public scrot
diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm
index 818941892f..5c8b3a6ad9 100644
--- a/gnu/packages/xfce.scm
+++ b/gnu/packages/xfce.scm
@@ -157,7 +157,7 @@ storage system.")
     (synopsis "Widgets library for Xfce")
     (description
      "Libxfce4ui is the replacement of the old libxfcegui4 library.  It is used
-to share commonly used Xfce widgets amoung the Xfce applications.")
+to share commonly used Xfce widgets among the Xfce applications.")
     (license lgpl2.0+)))
 
 (define-public exo
@@ -497,7 +497,7 @@ fast.")
      "Thunar-volman is an extension for the Thunar File Manager, which enables
 automatic management of removable drives and media.  For example, if
 thunar-volman is installed and configured properly, and you plug in your
-digitcal camera, it will automatically spawn your preferred photo application
+digital camera, it will automatically spawn your preferred photo application
 and import the new pictures from your camera.")
     (license gpl2+)))
 
diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm
index a1a3f3fbb3..c4db640d0f 100644
--- a/gnu/packages/xiph.scm
+++ b/gnu/packages/xiph.scm
@@ -318,12 +318,12 @@ incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec.")
                     "ftp://ftp.mozilla.org/pub/mozilla.org/opus/opus-tools-"
                     version ".tar.gz"))
               (sha256
-               (base32 
+               (base32
                 "0fk4nknvl111k89j5yckmyrh6b2wvgyhrqfncp7rig3zikbkv1xi"))))
     (build-system gnu-build-system)
     (arguments
      ;; The package developers misuse pkg-config such that it doesn't work
-     ;; when cross compiling.  Therefore we avoid it completly and set the 
+     ;; when cross compiling.  Therefore we avoid it completly and set the
      ;; necessary flags ourselves.
      `(#:configure-flags (list (string-append "CFLAGS=-I"
                                               (assoc-ref %build-inputs "libogg")
@@ -333,11 +333,11 @@ incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec.")
     (inputs `(("libogg" ,libogg)
               ("opus" ,opus)
               ("flac" ,flac)))
-    (synopsis "Command line utilities to encode, inspect, and decode .opus
-files")
+    (synopsis
+     "Command line utilities to encode, inspect, and decode .opus files")
     (description "Opus is a royalty-free, highly versatile audio codec.
 Opus-tools provide command line utilities for creating, inspecting and
-decoding .opus files")
+decoding .opus files.")
     (license license:bsd-3)
     (home-page "http://www.opus-codec.org")))
 
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 0fc51c5501..66d6d63a3f 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -84,8 +84,8 @@ things the parser might find in the XML document (like start tags).")
                                 (file-type 'regular))))
     (search-paths native-search-paths)
     (description
-     "Libxml2 is the XML C parser and toolkit developed for the Gnome project
-(but it is usable outside of the Gnome platform).")
+     "Libxml2 is the XML C parser and toolkit developed for the Gnome
+project (but it is usable outside of the Gnome platform).")
     (license license:x11)))
 
 (define-public python-libxml2
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index dc04bee20a..a9ecc1ee72 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -146,8 +146,11 @@ autotools system.")
     (native-inputs
        `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Convert X font from BDF to PCF")
+    (description
+     "BDFtoPCF is a font compiler for the X server and font server.  It
+converts X font from Bitmap Distribution Format to Portable Compiled Format
+which can be read by any architecture.")
     (license license:x11)))
 
 
@@ -168,8 +171,10 @@ autotools system.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg BigReqsProto protocol headers")
+    (description
+     "Big Requests Extension defines a protocol to enable the use of
+requests that exceed 262140 bytes in length.")
     (license license:x11)))
 
 
@@ -193,8 +198,10 @@ autotools system.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg CompositeProto protocol headers")
+    (description
+     "Composite Extension contains header files and documentation for
+the damage protocol.")
     (license license:x11)))
 
 
@@ -215,8 +222,10 @@ autotools system.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg DamageProto protocol headers")
+    (description
+     "Damage Extension contains header files and documentation for
+the damage protocol.")
     (license license:x11)))
 
 
@@ -237,8 +246,11 @@ autotools system.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg DMXProto protocol headers")
+    (description
+     "DMX (Distributed Multihead X) Extension defines a protocol for clients
+to access a front-end proxy X server that controls multiple back-end X
+servers making up a large display.")
     (license license:x11)))
 
 
@@ -258,11 +270,13 @@ autotools system.")
             "015az1vfdqmil1yay5nlsmpf6cf7vcbpslxjb72cfkzlvrv59dgr"))))
     (build-system gnu-build-system)
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg DRI2Proto protocol headers")
+    (description
+     "Direct Rendering Infrastructure 2 Extension defines a protocol to
+securely allow user applications to access the video hardware without
+requiring data to be passed through the X server.")
     (license license:x11)))
 
-
 (define-public dri3proto
   (package
     (name "dri3proto")
@@ -279,8 +293,12 @@ autotools system.")
             "0x609xvnl8jky5m8jdklw4nymx3irkv32w99dfd8nl800bblkgh1"))))
     (build-system gnu-build-system)
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg DRI3Proto protocol headers")
+    (description
+     "Direct Rendering Infrastructure 3 Extension provides mechanisms to
+translate between direct rendered buffers and X pixmaps.  When combined with
+the Present extension, a complete direct rendering solution for OpenGL is
+provided.")
     (license (license:x11-style "file://dri3proto.h"
                                 "See 'dri3proto.h' in the distribution."))))
 
@@ -305,8 +323,8 @@ autotools system.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg font encoding files")
+    (description "Xorg font encoding files.")
     (license license:public-domain)))
 
 
@@ -337,8 +355,8 @@ autotools system.")
         ;; font-util-?.?.?/share/fonts/X11
         (string-append "--with-fontrootdir=" %output "/share/fonts/X11"))))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg adobe-100dpi fonts")
+    (description "Xorg adobe-100dpi fonts.")
     (license license:x11)))
 
 
@@ -367,8 +385,8 @@ autotools system.")
       `(#:configure-flags (list
         (string-append "--with-fontrootdir=" %output "/share/fonts/X11"))))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg adobe-75dpi fonts")
+    (description "Xorg adobe-75dpi fonts.")
     (license license:x11)))
 
 
@@ -395,8 +413,10 @@ autotools system.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg font aliases")
+    (description
+     "This package provides some common aliases for Xorg fonts.
+For example: '6x10', '9x15bold', etc.")
     (license license:x11)))
 
 
@@ -421,8 +441,8 @@ autotools system.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg arabic-misc font")
+    (description "Xorg arabic-misc font.")
     (license license:x11)))
 
 
@@ -458,8 +478,8 @@ autotools system.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg cronyx-cyrillic font")
+    (description "Xorg cronyx-cyrillic font.")
     (license license:x11)))
 
 
@@ -491,8 +511,8 @@ autotools system.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg dec-misc font")
+    (description "Xorg dec-misc font.")
     (license license:x11)))
 
 
@@ -520,8 +540,8 @@ autotools system.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg isas-misc font")
+    (description "Xorg isas-misc font.")
     (license license:x11)))
 
 
@@ -550,8 +570,8 @@ autotools system.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg micro-misc font")
+    (description "Xorg micro-misc font.")
     (license license:public-domain)))
 
 
@@ -576,8 +596,8 @@ autotools system.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg misc-cyrillic fonts")
+    (description "Xorg misc-cyrillic fonts.")
     (license license:x11)))
 
 
@@ -601,8 +621,8 @@ autotools system.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg misc-ethiopic fonts")
+    (description "Xorg misc-ethiopic fonts.")
     (license license:x11)))
 
 
@@ -635,8 +655,8 @@ autotools system.")
       `(#:configure-flags (list
         (string-append "--with-fontrootdir=" %output "/share/fonts/X11"))))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg misc-misc fonts")
+    (description "Xorg misc-misc fixed fonts.")
     (license license:public-domain)))
 
 
@@ -661,8 +681,8 @@ autotools system.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg mutt-misc fonts")
+    (description "Xorg mutt-misc fonts.")
     (license license:x11)))
 
 
@@ -691,8 +711,8 @@ autotools system.")
       `(#:configure-flags (list
         (string-append "--with-fontrootdir=" %output "/share/fonts/X11"))))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg schumacher-misc fonts")
+    (description "Xorg schumacher-misc fonts.")
     (license license:x11)))
 
 
@@ -717,8 +737,8 @@ autotools system.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg screen-cyrillic fonts")
+    (description "Xorg screen-cyrillic fonts.")
     (license license:x11)))
 
 
@@ -743,8 +763,8 @@ autotools system.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg sony-misc fonts")
+    (description "Xorg sony-misc fonts.")
     (license license:x11)))
 
 
@@ -769,8 +789,8 @@ autotools system.")
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg sun-misc fonts")
+    (description "Xorg sun-misc fonts.")
     (license license:x11)))
 
 
@@ -791,8 +811,9 @@ autotools system.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg font utilities")
+    (description
+     "Xorg font package creation/installation utilities.")
     (license license:x11)))
 
 
@@ -817,8 +838,8 @@ autotools system.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg winitzki-cyrillic font")
+    (description "Xorg winitzki-cyrillic font.")
     (license license:public-domain)))
 
 
@@ -842,8 +863,8 @@ autotools system.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg xfree86-type1 font")
+    (description "Xorg xfree86-type1 font.")
     (license license:x11)))
 
 
@@ -864,8 +885,10 @@ autotools system.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg FontsProto protocol headers")
+    (description
+     "Fonts Extension contains header files and documentation for
+the fonts protocol.")
     (license license:x11)))
 
 
@@ -886,8 +909,10 @@ autotools system.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg GLProto protocol headers")
+    (description
+     "OpenGL Extension defines a protocol for the client to send 3D
+rendering commands to the X server.")
     (license license:x11)))
 
 
@@ -911,8 +936,12 @@ autotools system.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "ICE authority file utility")
+    (description
+     "ICEAuth program is used to edit and display the authorization
+information used in connecting with ICE (Inter-Client Exchange).  It
+operates very much like the xauth program for X11 connection
+authentication records.")
     (license license:x11)))
 
 
@@ -933,8 +962,10 @@ autotools system.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg InputProto protocol headers")
+    (description
+     "Input Extension defines a protocol to provide additional input
+devices management such as graphic tablets.")
     (license license:x11)))
 
 
@@ -955,8 +986,10 @@ autotools system.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg KBProto protocol headers")
+    (description
+     "X Keyboard (XKB) Extension defines a protocol to provide a number
+of new capabilities and controls for text keyboards.")
     (license license:x11)))
 
 
@@ -987,8 +1020,9 @@ autotools system.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg DMX library")
+    (description
+     "DMX (Distributed Multihead X) extension library.")
     (license license:x11)))
 
 
@@ -1008,7 +1042,7 @@ autotools system.")
     (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs `(("xproto" ,xproto)))
     (home-page "http://xorg.freedesktop.org")
-    (synopsis "X shared memory fences")
+    (synopsis "Xorg shared memory fences library")
     (description
      "This library provides an interface to shared-memory fences for
 synchronization between the X server and direct-rendering clients.")
@@ -1038,8 +1072,8 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg font encoding library")
+    (description "Xorg font encoding library.")
     (license license:x11)))
 
 
@@ -1065,8 +1099,11 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg Font Service client library")
+    (description
+     "Font Service client library is used by clients of X Font
+Servers (xfs), such as xfsinfo, fslsfonts, and the X servers
+themselves.")
     (license license:x11)))
 
 
@@ -1090,8 +1127,8 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
        `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg PCI access library")
+    (description "Xorg Generic PCI access library.")
     (license license:x11)))
 
 
@@ -1112,8 +1149,13 @@ synchronization between the X server and direct-rendering clients.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Library with pthread stubs")
+    (description
+     "This library provides weak aliases for pthread functions not
+provided in libc or otherwise available by default.  Libraries like
+libxcb rely on pthread stubs to use pthreads optionally, becoming
+thread-safe when linked to libpthread, while avoiding any performance
+hit when running single-threaded.")
     (license license:x11)))
 
 
@@ -1140,8 +1182,8 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg Session Management library")
+    (description "Xorg Session Management library.")
     (license license:x11)))
 
 
@@ -1168,8 +1210,12 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg WindowsWM library")
+    (description
+     "Cygwin/X rootless window management extension.
+WindowsWM is a simple library designed to interface with the Windows-WM
+extension.  This extension allows X window managers to better interact
+with the Cygwin XWin server when running X11 in a rootless mode.")
     (license license:x11)))
 
 
@@ -1197,8 +1243,9 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg Composite library")
+    (description
+     "Client library for the Composite extension to the X11 protocol.")
     (license license:x11)))
 
 
@@ -1222,8 +1269,8 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
        `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg Display Manager Control Protocol library")
+    (description "Xorg Display Manager Control Protocol library.")
     (license license:x11)))
 
 
@@ -1253,8 +1300,11 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg FreeType library")
+    (description
+     "Xorg FreeType library connects X applications with the FreeType font
+rasterization library.  Xft uses fontconfig to locate fonts so it has no
+configuration files.")
     (license license:x11)))
 
 
@@ -1278,8 +1328,8 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg XKB file handling library")
+    (description "Xorg XKB file handling library.")
     (license license:x11)))
 
 
@@ -1305,8 +1355,13 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg Xmu library")
+    (description
+     "Xmu library contains miscellaneous utilities and is not part of the
+Xlib standard.  It is intended to support clients in the Xorg distribution;
+vendors may choose not to distribute this library if they wish.  Therefore,
+applications developers who depend on this library should be prepared to
+treat it as part of their software base when porting.")
     (license license:x11)))
 
 
@@ -1333,8 +1388,8 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg XPM library")
+    (description "XPM (X Pixmap) image file format library.")
     (license license:x11)))
 
 
@@ -1361,8 +1416,8 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg Resource extension library")
+    (description "X Resource extension library.")
     (license license:x11)))
 
 
@@ -1389,8 +1444,8 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg Screen Saver library")
+    (description "X11 Screen Saver extension client library.")
     (license license:x11)))
 
 
@@ -1417,8 +1472,8 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg XFree86-DGA library")
+    (description "Client library for the XFree86-DGA extension.")
     (license license:x11)))
 
 
@@ -1445,8 +1500,12 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
        `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Convert terminal I/O from legacy encodings to UTF-8")
+    (description
+     "Luit is a filter that can be run between an arbitrary application and
+a UTF-8 terminal emulator such as xterm.  It will convert application
+output from the locale's encoding into UTF-8, and convert terminal
+input from UTF-8 into the locale's encoding.")
     (license license:x11)))
 
 
@@ -1469,8 +1528,9 @@ synchronization between the X server and direct-rendering clients.")
       `(("xproto" ,xproto)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg makedepend utility")
+    (description
+     "Makedepend is an utility for creating dependencies in makefiles.")
     (license license:x11)))
 
 
@@ -1497,8 +1557,10 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
        `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Create an index of scalable font files for X server")
+    (description
+     "MkFontScale creates the 'fonts.scale' and 'fonts.dir' index files used
+by the legacy X11 font system.")
     (license license:x11)))
 
 
@@ -1518,8 +1580,12 @@ synchronization between the X server and direct-rendering clients.")
             "1kir51aqg9cwazs14ivcldcn3mzadqgykc9cg87rm40zf947sb41"))))
     (build-system gnu-build-system)
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg PresentProto protocol headers")
+    (description
+     "Present Extension provides a way for applications to update their
+window contents from a pixmap in a well defined fashion, synchronizing
+with the display refresh and potentially using a more efficient
+mechanism than copying the contents of the source pixmap.")
     (license (license:x11-style "file://presentproto.h"
                                 "See 'presentproto.h' in the distribution."))))
 
@@ -1540,8 +1606,10 @@ synchronization between the X server and direct-rendering clients.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg PrintProto protocol headers")
+    (description
+     "Print Extension defines a protocol for a portable,
+network-transparent printing system.")
     (license license:x11)))
 
 
@@ -1562,8 +1630,11 @@ synchronization between the X server and direct-rendering clients.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg RandRProto protocol headers")
+    (description
+     "Resize and Rotate Extension defines a protocol for clients to
+dynamically change X screens, so as to resize, rotate and reflect the root
+window of a screen.")
     (license license:x11)))
 
 
@@ -1584,8 +1655,10 @@ synchronization between the X server and direct-rendering clients.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg RecordProto protocol headers")
+    (description
+     "Record Extension defines a protocol for the recording and playback
+of user actions in the X Window System.")
     (license license:x11)))
 
 
@@ -1606,8 +1679,10 @@ synchronization between the X server and direct-rendering clients.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg RenderProto protocol headers")
+    (description
+     "Rendering Extension defines a protcol for a digital image composition
+as the foundation of a new rendering model within the X Window System.")
     (license license:x11)))
 
 
@@ -1628,8 +1703,10 @@ synchronization between the X server and direct-rendering clients.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg ResourceProto protocol headers")
+    (description
+     "Resource Extension defines a protocol that allows a client to
+query the X server about its usage of various resources.")
     (license license:x11)))
 
 
@@ -1650,8 +1727,10 @@ synchronization between the X server and direct-rendering clients.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg ScrnSaverProto protocol headers")
+    (description
+     "Screen Saver Extension defines a protocol to control screensaver
+features and to query screensaver info on specific windows.")
     (license license:x11)))
 
 
@@ -1675,8 +1754,11 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
        `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Register X sessions in system utmp/utmpx databases")
+    (description
+     "SessReg is a simple program for managing utmp/wtmp entries for X
+sessions.  It was originally written for use with xdm, but may also be
+used with other display managers such as gdm or kdm.")
     (license license:x11)))
 
 
@@ -1707,8 +1789,11 @@ synchronization between the X server and direct-rendering clients.")
                             (assoc-ref %build-inputs "xkeyboard-config")
                             "/share/X11/xkb"))))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Set the keyboard using the X Keyboard Extension")
+    (description
+     "Setxkbmap is an X11 client to change the keymaps in the X server
+for a specified keyboard to use the layout determined by the options
+listed on the command line.")
     (license license:x11)))
 
 
@@ -1733,8 +1818,10 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Session Manager Proxy")
+    (description
+     "SMProxy allows X applications that do not support X11R6 session
+management to participate in an X11R6 session.")
     (license license:x11)))
 
 
@@ -1771,8 +1858,11 @@ synchronization between the X server and direct-rendering clients.")
                         (rmdir "share/util-macros"))))
                   %standard-phases))))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg autoconf macros")
+    (description
+     "This package provides a set of autoconf macros used by the
+configure.ac scripts in other Xorg modular packages, and is needed to
+generate new versions of their configure scripts with autoconf.")
     (license license:x11)))
 
 
@@ -1793,8 +1883,10 @@ synchronization between the X server and direct-rendering clients.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg VideoProto protocol headers")
+    (description
+     "Video Extension provides a protocol for a video output mechanism,
+mainly to rescale video playback in the video controller hardware.")
     (license license:x11)))
 
 
@@ -1815,8 +1907,12 @@ synchronization between the X server and direct-rendering clients.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg WindowsWMProto protocol headers")
+    (description
+     "WindowsWM Extension defines a protocol, used for coordination between
+an X11 server and the Microsoft Windows native window manager.  WindowsWM
+is only intended to be used on Cygwin when running a rootless XWin
+server.")
     (license license:x11)))
 
 
@@ -1843,8 +1939,9 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "X server performance benchmarker")
+    (description
+     "X11Perf is a simple performance benchmarker for the Xorg X server.")
     (license license:x11)))
 
 
@@ -1875,8 +1972,10 @@ synchronization between the X server and direct-rendering clients.")
     (arguments `(#:tests? #f))
 
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "X authority file utility")
+    (description
+     "XAuth program is used to edit and display the authorization
+information used in connecting to the X server.")
     (license license:x11)))
 
 
@@ -1901,8 +2000,12 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Control display backlight")
+    (description
+     "Xbacklight is used to adjust the backlight brightness where
+supported.  It uses the RandR extension to find all outputs on the X
+server supporting backlight brightness control and changes them all in
+the same way.")
     (license license:x11)))
 
 
@@ -1923,8 +2026,10 @@ synchronization between the X server and direct-rendering clients.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "X bitmaps")
+    (description
+     "xbitmaps provides basic bitmaps (little pictures) used by some
+legacy X clients.")
     (license license:x11)))
 
 
@@ -1946,8 +2051,17 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
       `(("pkg-config" ,pkg-config) ("python" ,python-wrapper)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "XML-XCB protocol descriptions")
+    (description
+     "XCB-Proto provides the XML-XCB protocol descriptions that libxcb
+uses to generate the majority of its code and API.  XCB-Proto is
+separated from libxcb to allow reuse by other projects, such as
+additional language bindings, protocol dissectors, or documentation
+generators.
+
+XCB-Proto also contains language-independent Python libraries that are
+used to parse an XML description and create objects used by Python code
+generators in individual language bindings.")
     (license license:x11)))
 
 
@@ -1968,8 +2082,10 @@ synchronization between the X server and direct-rendering clients.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg XCMiscProto protocol headers")
+    (description
+     "XC-MISC Extension defines a protocol that provides Xlib two ways
+to query the server for available resource IDs.")
     (license license:x11)))
 
 
@@ -1993,8 +2109,12 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Device Color Characterization utility")
+    (description
+     "XCMSDB is used to load, query, or remove Device Color
+Characterization data stored in properties on the root window of the
+screen as specified in section 7, Device Color Characterization, of the
+X11 Inter-Client Communication Conventions Manual (ICCCM).")
     (license license:x11)))
 
 
@@ -2024,8 +2144,10 @@ synchronization between the X server and direct-rendering clients.")
                             (assoc-ref %outputs "out")
                             "/share/icons"))))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Default Xorg cursors")
+    (description
+     "This package provides a default set of cursor themes for the Xorg
+X server: 'handhelds', 'redglass' and 'whiteglass'.")
     (license license:x11)))
 
 
@@ -2050,8 +2172,9 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Create an X cursor file from PNG images")
+    (description
+     "XCursorGen prepares X11 cursor sets for use with libXcursor.")
     (license license:x11)))
 
 
@@ -2084,8 +2207,13 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg display information utility")
+    (description
+     "Xdpyinfo is used to display information about an X server: the
+capabilities of a server, the predefined values for various parameters
+used in communicating between clients and the server, and the different
+types of screens, visuals, and X11 protocol extensions that are
+available.")
     (license license:x11)))
 
 
@@ -2110,8 +2238,10 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Query DRI configuration information")
+    (description
+     "XDRIInfo is used to query configuration information of X11
+DRI (Direct Rendering Infrastructure) drivers.")
     (license license:x11)))
 
 
@@ -2138,8 +2268,15 @@ synchronization between the X server and direct-rendering clients.")
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Print contents of X events")
+    (description
+     "XEv creates a window and then asks the X server to send it X11
+events whenever anything happens to the window (such as it being moved,
+resized, typed in, clicked in, etc.).  You can also attach it to an
+existing window.  It is useful for seeing what causes events to occur
+and to display the information that they contain; it is essentially a
+debugging and development tool, and should not be needed in normal
+usage.")
     (license license:x11)))
 
 
@@ -2160,8 +2297,12 @@ synchronization between the X server and direct-rendering clients.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg XExtProto protocol headers")
+    (description
+     "XExtProto provides the following extensions: DOUBLE-BUFFER, DPMS,
+Extended-Visual-Information, Generic Event Extension, LBX, MIT-SHM,
+MIT-SUNDRY-NONSTANDARD, Multi-Buffering, SECURITY, SHAPE, SYNC, TOG-CUP,
+XC-APPGROUP, XTEST.")
     (license license:x11)))
 
 
@@ -2217,8 +2358,11 @@ devices, thus making direct access unnecessary.")
                             (assoc-ref %outputs "out")
                             "/include/xorg"))))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Generic input driver for X server")
+    (description
+     "xf86-input-evdev is a generic input driver for the Xorg X server.
+This driver supports all input devices that the kernel knows about,
+including most mice, keyboards, tablets and touchscreens.")
     (license license:x11)))
 
 (define-public xf86-input-libinput
@@ -2244,11 +2388,11 @@ devices, thus making direct access unnecessary.")
      `(("libinput" ,libinput)
        ("xorg-server" ,xorg-server)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg input driver")
+    (synopsis "Input driver for X server based on libinput")
     (description
-     "This is an Xorg input driver based on libinput.  It therefore supports
-all input devices that libinput can handle, including most mice, keyboards,
-tablets and touchscreens.")
+     "xf86-input-libinput is an input driver for the Xorg X server based
+on libinput.  It is a thin wrapper around libinput, so while it does
+provide all features that libinput supports it does little beyond.")
     (license license:x11)))
 
 (define-public xf86-input-joystick
@@ -2274,8 +2418,10 @@ tablets and touchscreens.")
                             (assoc-ref %outputs "out")
                             "/include/xorg"))))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Joystick input driver for X server")
+    (description
+     "xf86-input-joystick is a joystick input driver for the Xorg X server.
+It is used to cotrol the pointer with a joystick device.")
     (license license:x11)))
 
 
@@ -2297,8 +2443,9 @@ tablets and touchscreens.")
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Keyboard input driver for X server")
+    (description
+     "xf86-input-keyboard is a keyboard input driver for the Xorg X server.")
     (license license:x11)))
 
 
@@ -2325,8 +2472,12 @@ tablets and touchscreens.")
                             (assoc-ref %outputs "out")
                             "/include/xorg"))))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Mouse input driver for X server")
+    (description
+     "xf86-input-mouse is a mouse input driver for the Xorg X server.
+This driver supports four classes of mice: serial, bus and PS/2 mice,
+and additional mouse types supported by specific operating systems, such
+as USB mice.")
     (license license:x11)))
 
 
@@ -2360,9 +2511,9 @@ tablets and touchscreens.")
                             (assoc-ref %outputs "out")
                             "/share/X11/xorg.conf.d"))))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Synaptics touchpad driver for X.Org")
+    (synopsis "Touchpad input driver for X server")
     (description
-     "This package provides a touchpad driver for the X.Org window system.")
+     "xf86-input-synaptics is a touchpad driver for the Xorg X server.")
     (license license:x11)))
 
 
@@ -2384,8 +2535,9 @@ tablets and touchscreens.")
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Void (null) input driver for X server")
+    (description
+     "xf86-input-void is a null input driver for the Xorg X server.")
     (license license:x11)))
 
 
@@ -2408,8 +2560,9 @@ tablets and touchscreens.")
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Ark Logic video driver for X server")
+    (description
+     "xf86-video-ark is an Ark Logic video driver for the Xorg X server.")
     (license license:x11)))
 
 ;; This driver depends on XAA which has been removed from xorg-server.
@@ -2433,8 +2586,10 @@ tablets and touchscreens.")
 ;;     (inputs `(("xorg-server" ,xorg-server)))
 ;;     (native-inputs `(("pkg-config" ,pkg-config)))
 ;;     (home-page "http://www.x.org/wiki/")
-;;     (synopsis "Xorg implementation of the X Window System")
-;;     (description "X.org provides an implementation of the X Window System")
+;;     (synopsis "ASpeed Technologies video driver for X server")
+;;     (description
+;;      "xf86-video-ast is an ASpeed Technologies video driver for the Xorg
+;; X server.")
 ;;     (license license:x11)))
 
 
@@ -2459,8 +2614,10 @@ tablets and touchscreens.")
     (native-inputs `(("pkg-config" ,pkg-config)))
     (arguments `(#:configure-flags `("--disable-glamor"))) ; TODO: Enable glamor
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "ATI Radeon video driver for X server")
+    (description
+     "xf86-video-ati is an ATI Radeon video driver for the Xorg
+X server.")
     (license license:x11)))
 
 
@@ -2482,8 +2639,10 @@ tablets and touchscreens.")
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Cirrus Logic video driver for X server")
+    (description
+     "xf86-video-cirrus is a Cirrus Logic video driver for the Xorg
+X server.")
     (license license:x11)))
 
 
@@ -2509,8 +2668,10 @@ tablets and touchscreens.")
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Framebuffer device video driver for X server")
+    (description
+     "xf86-video-fbdev is a video driver for the Xorg X server for
+framebuffer device.")
     (license license:x11)))
 
 
@@ -2537,8 +2698,12 @@ tablets and touchscreens.")
      (filter (lambda (system) (string-prefix? "i686-" system))
              %supported-systems))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "AMD Geode GX/LX video driver for X server")
+    (description
+     "xf86-video-geode is an Xorg X server video driver for the AMD
+Geode GX and LX processors.  The GX component supports both XAA and EXA
+for graphics acceleration.  The LX component supports EXA, including
+compositing.  Both support Xv overlay and dynamic rotation with XRandR.")
     (license license:x11)))
 
 
@@ -2563,8 +2728,9 @@ tablets and touchscreens.")
 ;;     (inputs `(("pkg-config" ,pkg-config)
 ;;               ("xorg-server" ,xorg-server)))
 ;;     (home-page "http://www.x.org/wiki/")
-;;     (synopsis "Xorg implementation of the X Window System")
-;;     (description "X.org provides an implementation of the X Window System")
+;;     (synopsis "Glide video driver for X server")
+;;     (description
+;;      "xf86-video-glide is a Glide video driver for the Xorg X server.")
 ;;     (license license:x11)))
 
 
@@ -2589,8 +2755,10 @@ tablets and touchscreens.")
               ("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "GLINT/Permedia video driver for X server")
+    (description
+     "xf86-video-glint is a GLINT/Permedia video driver for the Xorg
+X server.")
     (license license:x11)))
 
 
@@ -2614,8 +2782,10 @@ tablets and touchscreens.")
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "I128 video driver for X server")
+    (description
+     "xf86-video-i128 is an I128 (Imagine 128) video driver for the Xorg
+X server.")
     (license license:x11)))
 
 
@@ -2648,8 +2818,10 @@ tablets and touchscreens.")
                                   (string-prefix? "x86_64-" system)))
              %supported-systems))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Intel video driver for X server")
+    (description
+     "xf86-video-intel is a 2D graphics driver for the Xorg X server.
+It supports a variety of Intel graphics chipsets.")
     (license license:x11)))
 
 
@@ -2675,8 +2847,13 @@ tablets and touchscreens.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Mach64 video driver for X server")
+    (description
+     "xf86-video-mach64 is a video driver for the Xorg X server.
+This driver is intended for all ATI video adapters based on the Mach64
+series or older chipsets, providing maximum video function within
+hardware limitations.  The driver is also intended to optionally provide
+the same level of support for generic VGA or 8514/A adapters.")
     (license license:x11)))
 
 
@@ -2701,8 +2878,9 @@ tablets and touchscreens.")
               ("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Matrox video driver for X server")
+    (description
+     "xf86-video-mga is a Matrox video driver for the Xorg X server.")
     (license license:x11)))
 
 (define-public xf86-video-modesetting
@@ -2725,7 +2903,7 @@ tablets and touchscreens.")
               ("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "\"Modesetting\" graphics driver for the Xorg server")
+    (synopsis "\"Modesetting\" video driver for X server")
     (description
      "This is a generic \"modesetting\" video driver, that relies on the Linux
 kernel mode setting (KMS).")
@@ -2750,13 +2928,14 @@ kernel mode setting (KMS).")
               ("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "NeoMagic video driver for X server")
+    (description
+     "xf86-video-neomagic is a NeoMagic video driver for the Xorg X server.")
     (license license:x11)))
 
 
 ;; This driver depends on XAA which has been removed from xorg-server.
-;;
+
 ;; (define-public xf86-video-newport
 ;;   (package
 ;;     (name "xf86-video-newport")
@@ -2775,8 +2954,10 @@ kernel mode setting (KMS).")
 ;;     (inputs `(("xorg-server" ,xorg-server)))
 ;;     (native-inputs `(("pkg-config" ,pkg-config)))
 ;;     (home-page "http://www.x.org/wiki/")
-;;     (synopsis "Xorg implementation of the X Window System")
-;;     (description "X.org provides an implementation of the X Window System")
+;;     (synopsis "Newport video driver for X server")
+;;     (description
+;;      "xf86-video-newport is an Xorg X server video driver for the SGI
+;; newport cards.")
 ;;     (license license:x11)))
 
 
@@ -2799,7 +2980,7 @@ kernel mode setting (KMS).")
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "NVIDIA video driver for the Xorg X server")
+    (synopsis "NVIDIA video driver for X server")
     (description
      "This package contains Xorg support for the NVIDIA GeForce 8 series of
 graphics processors.
@@ -2834,7 +3015,7 @@ supported, and the RENDER extension is not accelerated by this driver.")
                      ("automake" ,automake)
                      ("libtool" ,libtool)))
     (home-page "http://nouveau.freedesktop.org")
-    (synopsis "NVIDIA video driver for the Xorg X server")
+    (synopsis "NVIDIA video driver for X server")
     (description
      "This package provides modern, high-quality Xorg drivers for NVIDIA
 graphics cards.")
@@ -2866,8 +3047,11 @@ graphics cards.")
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Openchrome video driver for X server")
+    (description
+     "xf86-video-openchrome is a video driver for the Xorg X server.
+This driver is intended for VIA chipsets featuring the VIA UniChrome,
+UniChrome Pro and Chrome9 integrated graphics processors.")
     (license license:x11)))
 
 
@@ -2892,8 +3076,10 @@ graphics cards.")
               ("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "ATI Rage 128 video driver for X server")
+    (description
+     "xf86-video-r128 is a video driver for the Xorg X server.
+This driver is intended for ATI Rage 128 based cards.")
     (license license:x11)))
 
 
@@ -2917,8 +3103,9 @@ graphics cards.")
               ("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Savage video driver for X server")
+    (description
+     "xf86-video-savage is an S3 Savage video driver for the Xorg X server.")
     (license license:x11)))
 
 
@@ -2943,8 +3130,10 @@ graphics cards.")
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Silicon Motion video driver for X server")
+    (description
+     "xf86-video-siliconmotion is a Silicon Motion video driver for the
+Xorg X server.")
     (license license:x11)))
 
 
@@ -2972,8 +3161,10 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Sis video driver for X server")
+    (description
+     "xf86-video-SiS is a SiS video driver for the Xorg X server.
+This driver supports SiS chipsets of 300/315/330/340 series.")
     (license license:bsd-3)))
 
 
@@ -2995,8 +3186,9 @@ graphics cards.")
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "GX/TurboGX video driver for X server")
+    (description
+     "xf86-video-suncg6 is a GX/TurboGX video driver for the Xorg X server.")
     (license license:x11)))
 
 
@@ -3018,8 +3210,9 @@ graphics cards.")
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "SUNFFB video driver for X server")
+    (description
+     "xf86-video-sunffb is a SUNFFB video driver for the Xorg X server.")
     (license license:x11)))
 
 
@@ -3045,8 +3238,9 @@ graphics cards.")
               ("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "3Dfx video driver for X server")
+    (description
+     "xf86-video-tdfx is a 3Dfx video driver for the Xorg X server.")
     (license license:x11)))
 
 
@@ -3070,8 +3264,10 @@ graphics cards.")
               ("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "TGA video driver for X server")
+    (description
+     "xf86-video-tga is a TGA (DEC 21030) video driver for the Xorg
+X server.")
     (license license:x11)))
 
 
@@ -3096,8 +3292,9 @@ graphics cards.")
               ("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Trident video driver for X server")
+    (description
+     "xf86-video-trident is a Trident video driver for the Xorg X server.")
     (license license:x11)))
 
 
@@ -3123,8 +3320,10 @@ graphics cards.")
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "VESA video driver for X server")
+    (description
+     "xf86-video-vesa is a generic VESA video driver for the Xorg
+X server.")
     (license license:x11)))
 
 
@@ -3151,8 +3350,9 @@ graphics cards.")
     (native-inputs
        `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "VMware SVGA video driver for X server")
+    (description
+     "xf86-video-vmware is a VMware SVGA video driver for the Xorg X server.")
     (license license:x11)))
 
 
@@ -3175,8 +3375,9 @@ graphics cards.")
               ("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Voodoo/Voodoo2 video driver for X server")
+    (description
+     "xf86-video-voodoo is a Voodoo video driver for the Xorg X server.")
     (license license:x11)))
 
 
@@ -3200,8 +3401,10 @@ graphics cards.")
             "0j0n7sj5xfjpmmgx6n5x556rw21hdd18fwmavp95wps7qki214ms"))))
     (build-system gnu-build-system)
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg XF86BigFontProto protocol headers")
+    (description
+     "XFree86 Bigfont Extension contains header files and documentation
+for the XF86BigFontProto protocol.")
     (license license:x11)))
 
 
@@ -3221,8 +3424,10 @@ graphics cards.")
             "0l4hx48207mx0hp09026r6gy9nl3asbq0c75hri19wp1118zcpmc"))))
     (build-system gnu-build-system)
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg XF86DGAProto protocol headers")
+    (description
+     "XFree86 Direct Graphic Access Extension defines a protocol for
+direct linear framebuffer access.")
     (license license:x11)))
 
 
@@ -3242,8 +3447,11 @@ graphics cards.")
             "07v69m0g2dfzb653jni4x656jlr7l84c1k39j8qc8vfb45r8sjww"))))
     (build-system gnu-build-system)
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg XF86DRIProto protocol headers")
+    (description
+     "XFree86 Direct Rendering Infrastructure Extension defines a
+protocol to allow user applications to access the video hardware without
+requiring data to be passed through the X server.")
     (license license:x11)))
 
 
@@ -3263,8 +3471,10 @@ graphics cards.")
             "0w47d7gfa8zizh2bshdr2rffvbr4jqjv019mdgyh6cmplyd4kna5"))))
     (build-system gnu-build-system)
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg XF86VidModeProto protocol headers")
+    (description
+     "XFree86 Video Mode Extension defines a protocol for dynamically
+configuring modelines and gamma.")
     (license license:x11)))
 
 
@@ -3289,8 +3499,10 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Alter a monitor's gamma correction")
+    (description
+     "XGamma is used to query and alter the gamma correction of a
+monitor via the X video mode extension.")
     (license license:x11)))
 
 
@@ -3316,8 +3528,10 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg server access control utility")
+    (description
+     "XHost is used to manage the list of host names or user names
+allowed to make connections to the X server.")
     (license license:x11)))
 
 
@@ -3338,8 +3552,16 @@ graphics cards.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg XineramaProto protocol headers")
+    (description
+     "Xinerama Extension allows clients to query information about multiple
+physical screens controlled by a single X server that appear as a single
+screen to core X11 protocol operations.
+
+This extension provides a common network protocol for querying information
+which may be provided by different underlying screen combination
+technologies in the X server, such as the original Xinerama multiplexer, or
+alternative implementations like XRandR or TwinView.")
     (license license:x11)))
 
 
@@ -3369,8 +3591,9 @@ graphics cards.")
     (native-inputs
        `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Configure input devices for X server")
+    (description
+     "XInput is used to configure and test XInput devices.")
     (license license:x11)))
 
 
@@ -3396,8 +3619,19 @@ graphics cards.")
     (native-inputs
         `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Compile XKB keyboard description")
+    (description
+     "xkbcomp keymap compiler converts a description of an XKB keymap
+into one of several output formats.  The most common use for xkbcomp is
+to create a compiled keymap file (.xkm extension) which can be read
+directly by XKB- capable X servers or utilities.
+
+X Keyboard (XKB) Extension essentially replaces the core protocol
+definition of keyboard.  The extension makes possible to clearly and
+explicitly specify most aspects of keyboard behaviour on per-key basis
+and to more closely track the logical and physical state of the
+keyboard.  It also includes a number of keyboard controls designed to
+make keyboards more accessible to people with physical impairments.")
     (license license:x11)))
 
 (define-public xkbcomp ; using xkeyboard-config as input
@@ -3434,8 +3668,10 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "XKB event daemon demo")
+    (description
+     "XKB event daemon listens for the specified XKB events and executes
+requested commands if they occur.")
     (license license:x11)))
 
 
@@ -3462,8 +3698,16 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "XKB utilities")
+    (description
+     "XKBUtils is a collection of small utilities for X Keyboard (XKB)
+extension to the X11 protocol.  It includes:
+
+- xkbbell: generate XKB bell events;
+
+- xkbvleds: display the state of LEDs on an XKB keyboard in a window;
+
+- xkbwatch: reports changes in the XKB keyboard state.")
     (license license:x11)))
 
 
@@ -3490,8 +3734,12 @@ graphics cards.")
       `(("intltool" ,intltool)
         ("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg XKB configuration files")
+    (description
+     "xkeyboard-config provides a database for X Keyboard (XKB) Extension.
+There are five components that define a complete keyboard mapping:
+symbols, geometry, keycodes, compat, and types; these five components
+can be combined together using the 'rules' component of this database.")
     (license license:x11)))
 
 
@@ -3516,8 +3764,11 @@ graphics cards.")
     (native-inputs
        `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Kill a client by its X resource")
+    (description
+     "XKill is used to force the X server to close connections to
+clients.  This program is very dangerous, but is useful for aborting
+programs that have displayed undesired windows on a user's screen.")
     (license license:x11)))
 
 
@@ -3541,8 +3792,9 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "List interned X server atoms")
+    (description
+     "XLsAtoms is used to list the interned atoms defined on X server.")
     (license license:x11)))
 
 
@@ -3566,8 +3818,10 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "List client applications running on a display")
+    (description
+     "XLsClients is used to list information about the client programs
+running on X server.")
     (license license:x11)))
 
 
@@ -3593,8 +3847,13 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Modify keymaps and button mappings on X server")
+    (description
+     "Xmodmap is used to display and edit the keyboard modifier map and
+keymap table that are used by client programs running on X server to
+convert event keycodes into keysyms.  It is usually run from the user's
+session startup script to configure the keyboard according to personal
+tastes.")
     (license license:x11)))
 
 
@@ -3619,8 +3878,14 @@ graphics cards.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg SGML documentation tools")
+    (description
+    "This package provides a common set of SGML entities and XML/CSS style
+sheets used in building/formatting the documentation provided in other
+Xorg packages.  It's typically only needed by people building from
+source who want to produce formatted documentation from their builds, or
+those who have installed the HTML version of the documentation, which
+refers to the included common xorg.css stylesheet.")
     (license license:x11)))
 
 
@@ -3646,8 +3911,10 @@ graphics cards.")
     (native-inputs
         `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Print an X window dump from xwd")
+    (description
+     "XPr takes as input a window dump file produced by xwd and formats
+it for output on various types of printers.")
     (license license:x11)))
 
 
@@ -3672,8 +3939,10 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Display X server properties")
+    (description
+     "xprop is used to display and/or set window and font properties of
+an X server.")
     (license license:x11)))
 
 
@@ -3700,8 +3969,10 @@ graphics cards.")
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Command line interface to X RandR extension")
+    (description
+     "xrandr - primitive command line interface to X11 Resize, Rotate,
+and Reflect (RandR) extension.")
     (license license:x11)))
 
 
@@ -3726,8 +3997,13 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "X server resource database utility")
+    (description
+     "XRDB is used to get or set the contents of the RESOURCE_MANAGER
+property on the root window of screen 0, or the SCREEN_RESOURCES
+property on the root window of any or all screens, or everything
+combined.  You would normally run this program from your X startup
+file.")
     (license license:x11)))
 
 
@@ -3751,8 +4027,11 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Refresh all or part of an X screen")
+    (description
+     "Xrefresh is a simple X program that causes all or part of your
+screen to be repainted.  This is useful when system messages have messed
+up your screen.")
     (license license:x11)))
 
 
@@ -3779,8 +4058,9 @@ graphics cards.")
     (native-inputs
        `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "User preference utility for X server")
+    (description
+     "XSet is used to set various user preference options of the display.")
     (license license:x11)))
 
 
@@ -3806,8 +4086,10 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Root window parameter setting utility for X server")
+    (description
+     "XSetRoot allows you to tailor the appearance of the root window on
+a display running X server.")
     (license license:x11)))
 
 
@@ -3828,8 +4110,12 @@ graphics cards.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg Network Transport layer library")
+    (description
+     "Xtrans is a library of code that is shared among various X packages to
+handle network protocol transport in a modular fashion, allowing a single
+place to add new transport types.  It is used by the X server, libX11,
+libICE, the X font server, and related components.")
     (license license:x11)))
 
 
@@ -3855,8 +4141,11 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Print out X-Video extension adaptor information")
+    (description
+     "XVInfo is used to print out the capabilities of any video adaptors
+associated with the display that are accessible through the X-Video
+extension.")
     (license license:x11)))
 
 
@@ -3882,8 +4171,14 @@ graphics cards.")
     (native-inputs
        `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Dump current contents of X window or screen to file")
+    (description
+     "Xwd is used to store window images in a specially formatted dump
+file.  This file can then be read by various other X utilities for
+redisplay, printing, editing, formatting, archiving, image processing,
+etc.  The target window is selected by clicking the pointer in the
+desired window.  The keyboard bell is rung once at the beginning of the
+dump and twice whenthe dump is completed.")
     (license license:x11)))
 
 
@@ -3908,8 +4203,10 @@ graphics cards.")
     (native-inputs
        `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Window information utility for X server")
+    (description
+     "XWinInfo is used to print out information about windows on an X server.
+Various information is displayed depending on which options are selected.")
     (license license:x11)))
 
 
@@ -3934,8 +4231,10 @@ graphics cards.")
     (native-inputs
        `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Display an X window dump from xwd")
+    (description
+     "Xwud is used to display in a window an image saved in a specially
+formatted dump file, such as produced by xwd.")
     (license license:x11)))
 
 
@@ -3962,8 +4261,11 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg FixesProto protocol headers")
+    (description
+     "Fixes Extension makes changes to many areas of the protocol to resolve
+issues raised by application interaction with core protocol mechanisms that
+cannot be adequately worked around on the client side of the wire.")
     (license license:x11)))
 
 
@@ -3982,7 +4284,7 @@ graphics cards.")
           (base32
             "1bamagq7g6s0d23l8rb3nppj8ifqj05f7z9bhbs4fdg8az3ffgvw"))))
     (build-system gnu-build-system)
-    (propagated-inputs  
+    (propagated-inputs
       ;; These are all in the Requires or Requires.private field of xdamage.pc
       `(("damageproto" ,damageproto)
         ("libxfixes" ,libxfixes)
@@ -3991,8 +4293,8 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg Damage Extension library")
+    (description "Xorg library for the XDamage extension.")
     (license license:x11)))
 
 
@@ -4019,8 +4321,9 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg Common extensions library")
+    (description
+     "Library for common extensions to the X11 protocol.")
     (license license:x11)))
 
 
@@ -4047,8 +4350,8 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg Xinerama protocol library")
+    (description "API for Xinerama extension to X11 protocol.")
     (license license:x11)))
 
 
@@ -4075,8 +4378,8 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg Print Client library")
+    (description "Xorg Print Client library.")
     (license license:x11)))
 
 
@@ -4103,8 +4406,8 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg Render Extension library")
+    (description "Library for the Render Extension to the X11 protocol.")
     (license license:x11)))
 
 
@@ -4132,8 +4435,18 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg library for Xtest and Record extensions")
+    (description
+     "libXtst provides the Xlib-based client API for the XTEST & RECORD
+extensions.
+
+The XTEST extension is a minimal set of client and server extensions
+required to completely test the X11 server with no user intervention.  This
+extension is not intended to support general journaling and playback of user
+actions.
+
+The RECORD extension supports the recording and reporting of all core X
+protocol and arbitrary X extension protocol.")
     (license license:x11)))
 
 
@@ -4161,8 +4474,8 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg XVideo Extension library")
+    (description "Library for the X Video Extension to the X11 protocol.")
     (license license:x11)))
 
 
@@ -4186,8 +4499,11 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Create an index of X font files in a directory")
+    (description
+     "MkFontDir creates the 'fonts.dir' files needed by the legacy X
+server core font system.  The current implementation is a simple wrapper
+script around the mkfontscale program.")
     (license license:x11)))
 
 
@@ -4211,8 +4527,14 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg X11Proto protocol headers")
+    (description
+     "XProto provides the headers and specification documents defining
+the X Window System Core Protocol, Version 11.
+
+It also includes a number of headers that aren't purely protocol related,
+but are depended upon by many other X Window System packages to provide
+common definitions and porting layer.")
     (license license:x11)))
 
 
@@ -4241,8 +4563,8 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg Inter-Client Exchange library")
+    (description "Xorg Inter-Client Exchange library.")
     (license license:x11)))
 
 
@@ -4266,8 +4588,10 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg Authorization library")
+    (description
+     "libXau provides an authorization library for individual access to
+an X Window System display.")
     (license license:x11)))
 
 (define-public libxfixes
@@ -4293,8 +4617,8 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg Fixes Extension library")
+    (description "Library for the XFixes Extension to the X11 protocol.")
     (license license:x11)))
 
 
@@ -4324,8 +4648,14 @@ graphics cards.")
     (native-inputs
        `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg Font handling library")
+    (description
+     "libXfont provides the core of the legacy X11 font system, handling the
+index files (fonts.dir, fonts.alias, fonts.scale), the various font file
+formats, and rasterizing them.  It is used by the X servers, the X Font
+Server (xfs), and some font utilities (bdftopcf for instance), but should
+not be used by normal X11 clients.  X11 clients access fonts via either the
+new API's in libXft, or the legacy API's in libX11.")
     (license license:x11)))
 
 
@@ -4354,8 +4684,8 @@ graphics cards.")
     (native-inputs
        `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg Input Extension library")
+    (description "Library for the XInput Extension to the X11 protocol.")
     (license license:x11)))
 
 
@@ -4384,8 +4714,9 @@ graphics cards.")
     (native-inputs
        `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg Resize and Rotate Extension library")
+    (description
+     "Library for the Resize and Rotate Extension to the X11 protocol.")
     (license license:x11)))
 
 
@@ -4413,8 +4744,8 @@ graphics cards.")
     (native-inputs
        `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg XvMC library")
+    (description "Xorg XvMC library.")
     (license license:x11)))
 
 
@@ -4441,8 +4772,10 @@ graphics cards.")
     (native-inputs
        `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg XF86 Video Mode Extension library")
+    (description
+     "Library for the XFree86 Video Mode Extension Extension to the X11
+protocol.")
     (license license:x11)))
 
 
@@ -4474,8 +4807,21 @@ graphics cards.")
     (arguments
      `(#:configure-flags '("--enable-xkb")))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "The X C Binding (XCB) library")
+    (description
+     "libxcb provides an interface to the X Window System protocol,
+which replaces the current Xlib interface.  It has several advantages
+over Xlib, including:
+
+- size: small, simple library, and lower memory footprint;
+
+- latency hiding: batch several requests and wait for the replies later;
+
+- direct protocol access: interface and protocol correspond exactly;
+
+- proven thread support: transparently access XCB from multiple threads;
+
+- easy extension implementation: interfaces auto-generated from XML-XCB.")
     (license license:x11)))
 
 
@@ -4573,7 +4919,16 @@ graphics cards.")
                  %standard-phases)))
     (home-page "http://www.x.org/wiki/")
     (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (description
+     "This package provides the Xorg X server itself.
+The X server accepts requests from client programs to create windows, which
+are (normally rectangular) 'virtual screens' that the client program can
+draw into.
+
+Windows are then composed on the actual screen by the X server (or by a
+separate composite manager) as directed by the window manager, which usually
+communicates with the user via graphical controls such as buttons and
+draggable titlebars and borders.")
     (license license:x11)))
 
 
@@ -4605,8 +4960,8 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg Core X11 protocol client library")
+    (description "Xorg Core X11 protocol client library.")
     (license license:x11)))
 
 
@@ -4635,8 +4990,8 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg Cursor management library")
+    (description "Xorg Cursor management library.")
     (license license:x11)))
 
 
@@ -4664,8 +5019,8 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg XToolkit Intrinsics library")
+    (description "Xorg XToolkit Intrinsics library.")
     (license license:x11)))
 
 
@@ -4694,8 +5049,10 @@ graphics cards.")
     (native-inputs
       `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg Xaw library")
+    (description
+     "Xaw is the X Athena Widget Set based on the X Toolkit
+Intrinsics (Xt) Library.")
     (license license:x11)))
 
 
@@ -4717,17 +5074,21 @@ graphics cards.")
      `(("pkg-config" ,pkg-config)))
     (home-page "http://cgit.freedesktop.org/xcb/util/")
     (synopsis "Core XCB utility functions")
-    (description "The XCB util module provides a number of libraries which
-    sit on top of libxcb, the core X protocol library, and some of the
-    extension libraries.  These experimental libraries provide convenience
-functions and interfaces which make the raw X protocol more usable.  Some of
-the libraries also provide client-side code which is not strictly part of
+    (description
+     "The XCB util module provides a number of libraries which sit on
+top of libxcb, the core X protocol library, and some of the extension
+libraries.  These experimental libraries provide convenience functions
+and interfaces which make the raw X protocol more usable.  Some of the
+libraries also provide client-side code which is not strictly part of
 the X protocol but which has traditionally been provided by Xlib.
 
 The XCB util module provides the following libraries:
-aux: Convenient access to connection setup and some core requests.
-atom: Standard core X atom constants and atom caching.
-event: Some utilities that have little to do with events any more.")
+
+- aux: Convenient access to connection setup and some core requests.
+
+- atom: Standard core X atom constants and atom caching.
+
+- event: Some utilities that have little to do with events any more.")
     (license license:x11)))
 
 
@@ -4751,15 +5112,17 @@ event: Some utilities that have little to do with events any more.")
      `(("pkg-config" ,pkg-config)))
     (home-page "http://cgit.freedesktop.org/xcb/util-image/")
     (synopsis "XCB port of Xlib's XImage and XShmImage")
-    (description "The XCB util module provides a number of libraries which
-    sit on top of libxcb, the core X protocol library, and some of the
-    extension libraries.  These experimental libraries provide convenience
-functions and interfaces which make the raw X protocol more usable.  Some of
-the libraries also provide client-side code which is not strictly part of
+    (description
+     "The XCB util module provides a number of libraries which sit on
+top of libxcb, the core X protocol library, and some of the extension
+libraries.  These experimental libraries provide convenience functions
+and interfaces which make the raw X protocol more usable.  Some of the
+libraries also provide client-side code which is not strictly part of
 the X protocol but which has traditionally been provided by Xlib.
 
 The XCB util-image module provides the following library:
-image: Port of Xlib's XImage and XShmImage functions.")
+
+- image: Port of Xlib's XImage and XShmImage functions.")
     (license license:x11)))
 
 
@@ -4781,15 +5144,17 @@ image: Port of Xlib's XImage and XShmImage functions.")
      `(("pkg-config" ,pkg-config)))
     (home-page "http://cgit.freedesktop.org/xcb/util-keysyms/")
     (synopsis "Standard X constants and conversion to/from keycodes")
-    (description "The XCB util module provides a number of libraries which
-    sit on top of libxcb, the core X protocol library, and some of the
-    extension libraries.  These experimental libraries provide convenience
-functions and interfaces which make the raw X protocol more usable.  Some of
-the libraries also provide client-side code which is not strictly part of
+    (description
+     "The XCB util module provides a number of libraries which sit on
+top of libxcb, the core X protocol library, and some of the extension
+libraries.  These experimental libraries provide convenience functions
+and interfaces which make the raw X protocol more usable.  Some of the
+libraries also provide client-side code which is not strictly part of
 the X protocol but which has traditionally been provided by Xlib.
 
 The XCB util-keysyms module provides the following library:
-keysyms: Standard X key constants and conversion to/from keycodes.")
+
+- keysyms: Standard X key constants and conversion to/from keycodes.")
     (license license:x11)))
 
 
@@ -4810,16 +5175,18 @@ keysyms: Standard X key constants and conversion to/from keycodes.")
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (home-page "http://cgit.freedesktop.org/xcb/util-renderutil/")
-    (synopsis "SConvenience functions for the Render extension")
-    (description "The XCB util module provides a number of libraries which
-    sit on top of libxcb, the core X protocol library, and some of the
-    extension libraries.  These experimental libraries provide convenience
-functions and interfaces which make the raw X protocol more usable.  Some of
-the libraries also provide client-side code which is not strictly part of
+    (synopsis "Convenience functions for the Render extension")
+    (description
+     "The XCB util module provides a number of libraries which sit on
+top of libxcb, the core X protocol library, and some of the extension
+libraries.  These experimental libraries provide convenience functions
+and interfaces which make the raw X protocol more usable.  Some of the
+libraries also provide client-side code which is not strictly part of
 the X protocol but which has traditionally been provided by Xlib.
 
 The XCB util-renderutil module provides the following library:
-renderutil: Convenience functions for the Render extension.")
+
+- renderutil: Convenience functions for the Render extension.")
     (license license:x11)))
 
 
@@ -4842,16 +5209,19 @@ renderutil: Convenience functions for the Render extension.")
        ("pkg-config" ,pkg-config)))
     (home-page "http://cgit.freedesktop.org/xcb/util-wm/")
     (synopsis "Client and window-manager helpers for ICCCM and EWMH")
-    (description "The XCB util modules provides a number of libraries which
-    sit on top of libxcb, the core X protocol library, and some of the
-    extension libraries.  These experimental libraries provide convenience
-functions and interfaces which make the raw X protocol more usable.  Some of
-the libraries also provide client-side code which is not strictly part of
+    (description
+     "The XCB util modules provides a number of libraries which sit on
+top of libxcb, the core X protocol library, and some of the extension
+libraries.  These experimental libraries provide convenience functions
+and interfaces which make the raw X protocol more usable.  Some of the
+libraries also provide client-side code which is not strictly part of
 the X protocol but which has traditionally been provided by Xlib.
 
 The XCB util-wm module provides the following libraries:
-ewmh: Both client and window-manager helpers for EWMH.
-icccm: Both client and window-manager helpers for ICCCM.")
+
+- ewmh: Both client and window-manager helpers for EWMH.
+
+- icccm: Both client and window-manager helpers for ICCCM.")
     (license license:x11)))
 
 (define-public xinit
@@ -4908,8 +5278,10 @@ user-friendly mechanism to start the X server.")
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (home-page "http://www.x.org/wiki/")
-    (synopsis "Xorg implementation of the X Window System")
-    (description "X.org provides an implementation of the X Window System")
+    (synopsis "Xorg Xaw3d library")
+    (description
+     "Xaw is the X 3D Athena Widget Set based on the X Toolkit
+Intrinsics (Xt) Library.")
     (license license:x11)))
 
 (define-public xterm
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index d5744204d9..888e446dc0 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -25,7 +25,7 @@
   #:use-module (gnu system linux)                 ; 'pam-service', etc.
   #:use-module (gnu packages admin)
   #:use-module ((gnu packages linux)
-                #:select (eudev kbd e2fsprogs lvm2 fuse alsa-utils))
+                #:select (eudev kbd e2fsprogs lvm2 fuse alsa-utils crda))
   #:use-module ((gnu packages base)
                 #:select (canonical-package glibc))
   #:use-module (gnu packages package-management)
@@ -739,11 +739,11 @@ item of @var{packages}."
                         (call-with-output-file
                             (string-append rules.d "/90-kvm.rules")
                           (lambda (port)
-                            ;; FIXME: As a workaround for
-                            ;; <http://bugs.gnu.org/18994>, make /dev/kvm 666
-                            ;; instead of 660.
+                            ;; Build users are part of the "kvm" group, so we
+                            ;; can fearlessly make /dev/kvm 660 (see
+                            ;; <http://bugs.gnu.org/18994>, for background.)
                             (display "\
-KERNEL==\"kvm\", GROUP=\"kvm\", MODE=\"0666\"\n" port))))
+KERNEL==\"kvm\", GROUP=\"kvm\", MODE=\"0660\"\n" port))))
                     #:modules '((guix build utils))))
 
 (define* (udev-service #:key (udev eudev) (rules '()))
@@ -884,6 +884,6 @@ This is the GNU operating system, welcome!\n\n")))
           ;; The LVM2 rules are needed as soon as LVM2 or the device-mapper is
           ;; used, so enable them by default.  The FUSE and ALSA rules are
           ;; less critical, but handy.
-          (udev-service #:rules (list lvm2 fuse alsa-utils)))))
+          (udev-service #:rules (list lvm2 fuse alsa-utils crda)))))
 
 ;;; base.scm ends here
diff --git a/gnu/system.scm b/gnu/system.scm
index efad14596a..cf9ee123c7 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -68,6 +68,7 @@
             operating-system-host-name
             operating-system-hosts-file
             operating-system-kernel
+            operating-system-kernel-arguments
             operating-system-initrd
             operating-system-users
             operating-system-groups
@@ -103,6 +104,8 @@
   operating-system?
   (kernel operating-system-kernel                 ; package
           (default linux-libre))
+  (kernel-arguments operating-system-kernel-arguments
+                    (default '()))                ; list of gexps/strings
   (bootloader operating-system-bootloader)        ; <grub-configuration>
 
   (initrd operating-system-initrd                 ; (list fs) -> M derivation
@@ -225,10 +228,16 @@ as 'needed-for-boot'."
             (operating-system-mapped-devices os)))
 
   (define (requirements fs)
-    (map (lambda (md)
-           (symbol-append 'device-mapping-
-                          (string->symbol (mapped-device-target md))))
-         (device-mappings fs)))
+    ;; XXX: Fiddling with dmd service names is not nice.
+    (append (map (lambda (fs)
+                   (symbol-append 'file-system-
+                                  (string->symbol
+                                   (file-system-mount-point fs))))
+                 (file-system-dependencies fs))
+            (map (lambda (md)
+                   (symbol-append 'device-mapping-
+                                  (string->symbol (mapped-device-target md))))
+                 (device-mappings fs))))
 
   (sequence %store-monad
             (map (lambda (fs)
@@ -866,11 +875,12 @@ listed in OS.  The C library expects to find it under
                            (label (kernel->grub-label kernel))
                            (linux kernel)
                            (linux-arguments
-                            (list (string-append "--root="
-                                                 (file-system-device root-fs))
-                                  #~(string-append "--system=" #$system)
-                                  #~(string-append "--load=" #$system
-                                                   "/boot")))
+                            (cons* (string-append "--root="
+                                                  (file-system-device root-fs))
+                                   #~(string-append "--system=" #$system)
+                                   #~(string-append "--load=" #$system
+                                                    "/boot")
+                                   (operating-system-kernel-arguments os)))
                            (initrd #~(string-append #$system "/initrd"))))))
     (grub-configuration-file (operating-system-bootloader os) entries
                              #:old-entries old-entries)))
@@ -887,6 +897,8 @@ this file is the reconstruction of GRUB menu entries for old configurations."
                                    (label #$label)
                                    (root-device #$(file-system-device root))
                                    (kernel #$(operating-system-kernel os))
+                                   (kernel-arguments
+                                    #$(operating-system-kernel-arguments os))
                                    (initrd #$initrd)))))
 
 (define (operating-system-derivation os)
diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm
index ece8fb41e6..003eb443d1 100644
--- a/gnu/system/file-systems.scm
+++ b/gnu/system/file-systems.scm
@@ -37,6 +37,7 @@
             file-system-options
             file-system-check?
             file-system-create-mount-point?
+            file-system-dependencies
 
             file-system->spec
             string->uuid
@@ -97,7 +98,10 @@
   (check?           file-system-check?            ; Boolean
                     (default #t))
   (create-mount-point? file-system-create-mount-point? ; Boolean
-                       (default #f)))
+                       (default #f))
+  (dependencies     file-system-dependencies      ; list of strings (mount
+                                                  ; points depended on)
+                    (default '())))
 
 (define-inlinable (file-system-needed-for-boot? fs)
   "Return true if FS has the 'needed-for-boot?' flag set, or if it's the root
@@ -153,8 +157,10 @@ UUID representation."
       ((_ str)
        (string? (syntax->datum #'str))
        ;; A literal string: do the conversion at expansion time.
-       (with-syntax ((bv (string->uuid (syntax->datum #'str))))
-         #''bv))
+       (let ((bv (string->uuid (syntax->datum #'str))))
+         (unless bv
+           (syntax-violation 'uuid "invalid UUID" s))
+         (datum->syntax #'str bv)))
       ((_ str)
        #'(string->uuid str)))))
 
@@ -231,21 +237,26 @@ UUID representation."
     (flags '(read-only bind-mount))))
 
 (define %control-groups
-  (cons (file-system
-          (device "cgroup")
-          (mount-point "/sys/fs/cgroup")
-          (type "tmpfs")
-          (check? #f))
-        (map (lambda (subsystem)
-               (file-system
-                 (device "cgroup")
-                 (mount-point (string-append "/sys/fs/cgroup/" subsystem))
-                 (type "cgroup")
-                 (check? #f)
-                 (options subsystem)
-                 (create-mount-point? #t)))
-             '("cpuset" "cpu" "cpuacct" "memory" "devices" "freezer"
-               "blkio" "perf_event" "hugetlb"))))
+  (let ((parent (file-system
+                  (device "cgroup")
+                  (mount-point "/sys/fs/cgroup")
+                  (type "tmpfs")
+                  (check? #f))))
+    (cons parent
+          (map (lambda (subsystem)
+                 (file-system
+                   (device "cgroup")
+                   (mount-point (string-append "/sys/fs/cgroup/" subsystem))
+                   (type "cgroup")
+                   (check? #f)
+                   (options subsystem)
+                   (create-mount-point? #t)
+
+                   ;; This must be mounted after, and unmounted before the
+                   ;; parent directory.
+                   (dependencies (list parent))))
+               '("cpuset" "cpu" "cpuacct" "memory" "devices" "freezer"
+                 "blkio" "perf_event" "hugetlb")))))
 
 (define %base-file-systems
   ;; List of basic file systems to be mounted.  Note that /proc and /sys are
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index 359d1265e5..e7e5d4ae9d 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -75,6 +75,7 @@ under /root/.guix-profile where GUIX is installed."
           (with-directory-excursion %root
             (zero? (system* "tar" "--xz" "--format=gnu"
                             "--owner=root:0" "--group=root:0"
+                            "--mtime=@0"          ;for files in /var/guix
                             "--check-links"
                             "-cvf" #$output
                             ;; Avoid adding / and /var to the tarball,
@@ -273,8 +274,9 @@ You have been warned.  Thanks for being so brave.
           (guix-service #:authorize-hydra-key? #t)
 
           ;; Start udev so that useful device nodes are available.
-          ;; Use device-mapper rules for cryptsetup & co.
-          (udev-service #:rules (list lvm2))
+          ;; Use device-mapper rules for cryptsetup & co; enable the CRDA for
+          ;; regulations-compliant WiFi access.
+          (udev-service #:rules (list lvm2 crda))
 
           ;; Add the 'cow-store' service, which users have to start manually
           ;; since it takes the installation directory as an argument.
diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm
index ae6229229b..f033109614 100644
--- a/gnu/system/shadow.scm
+++ b/gnu/system/shadow.scm
@@ -156,7 +156,7 @@ fi
 # Adjust the prompt depending on whether we're in 'guix environment'.
 if [ -n \"$GUIX_ENVIRONMENT\" ]
 then
-    export PS1='\\u@\\h \\w\\ [env]$ '
+    export PS1='\\u@\\h \\w [env]\\$ '
 else
     export PS1='\\u@\\h \\w\\$ '
 fi
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 2520493e2e..b293009127 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -493,7 +493,8 @@ exec " #$qemu "/bin/" #$(qemu-command (%current-system))
        #~(" -kernel " #$(operating-system-kernel os) "/bzImage \
             -initrd " #$os-drv "/initrd \
             -append \"" #$(if graphic? "" "console=ttyS0 ")
-            "--system=" #$os-drv " --load=" #$os-drv "/boot --root=/dev/vda1\" "))
+            "--system=" #$os-drv " --load=" #$os-drv "/boot --root=/dev/vda1 "
+            (string-join (list #+@(operating-system-kernel-arguments os))) "\" "))
 #$(common-qemu-options image
                        (map file-system-mapping-source
                             (cons %store-mapping mappings)))
diff --git a/guix/build-system/ruby.scm b/guix/build-system/ruby.scm
index e4fda30cf3..135eda665b 100644
--- a/guix/build-system/ruby.scm
+++ b/guix/build-system/ruby.scm
@@ -71,6 +71,7 @@
 
 (define* (ruby-build store name inputs
                      #:key
+                     (gem-flags ''())
                      (test-target "test")
                      (tests? #t)
                      (phases '(@ (guix build ruby-build-system)
@@ -95,6 +96,7 @@
                                (source
                                 source))
                    #:system ,system
+                   #:gem-flags ,gem-flags
                    #:test-target ,test-target
                    #:tests? ,tests?
                    #:phases ,phases
diff --git a/guix/build/download.scm b/guix/build/download.scm
index 65d18eb839..ae59b0109c 100644
--- a/guix/build/download.scm
+++ b/guix/build/download.scm
@@ -231,7 +231,8 @@ host name without trailing dot."
                                (resolve-interface '(web client))
                                'current-http-proxy))
                          (parameterize ((current-http-proxy #f))
-                           (when (getenv "https_proxy")
+                           (when (and=> (getenv "https_proxy")
+                                        (negate string-null?))
                              (format (current-error-port)
                                      "warning: 'https_proxy' is ignored~%"))
                            (thunk))
diff --git a/guix/build/ruby-build-system.scm b/guix/build/ruby-build-system.scm
index fce39b8dfd..307ac919dd 100644
--- a/guix/build/ruby-build-system.scm
+++ b/guix/build/ruby-build-system.scm
@@ -63,7 +63,8 @@ directory."
       (zero? (system* "rake" test-target))
       #t))
 
-(define* (install #:key source inputs outputs #:allow-other-keys)
+(define* (install #:key source inputs outputs (gem-flags '())
+                  #:allow-other-keys)
   (let* ((ruby-version
           (match:substring (string-match "ruby-(.*)\\.[0-9]$"
                                          (assoc-ref inputs "ruby"))
@@ -72,10 +73,11 @@ directory."
          (gem-home (string-append out "/lib/ruby/gems/" ruby-version ".0")))
     (setenv "GEM_HOME" gem-home)
     (mkdir-p gem-home)
-    (zero? (system* "gem" "install" "--local"
-                    (first-matching-file "\\.gem$")
-                    ;; Executables should go into /bin, not /lib/ruby/gems.
-                    "--bindir" (string-append out "/bin")))))
+    (zero? (apply system* "gem" "install" "--local"
+                  (first-matching-file "\\.gem$")
+                  ;; Executables should go into /bin, not /lib/ruby/gems.
+                  "--bindir" (string-append out "/bin")
+                  gem-flags))))
 
 (define %standard-phases
   (modify-phases gnu:%standard-phases
diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm
index dcca5fc339..b7c0f7e745 100644
--- a/guix/build/syscalls.scm
+++ b/guix/build/syscalls.scm
@@ -398,22 +398,23 @@ system to PUT-OLD."
 
 (define-syntax read-types
   (syntax-rules ()
-    ((_ bv offset ())
-     '())
-    ((_ bv offset (type0 types ...))
-     (cons (read-type bv offset type0)
-           (read-types bv (+ offset (type-size type0)) (types ...))))))
+    ((_ return bv offset () (values ...))
+     (return values ...))
+    ((_ return bv offset (type0 types ...) (values ...))
+     (read-types return
+                 bv (+ offset (type-size type0)) (types ...)
+                 (values ... (read-type bv offset type0))))))
 
 (define-syntax define-c-struct
   (syntax-rules ()
-    "Define READ as an optimized serializer and WRITE! as a deserializer for
-the C structure with the given TYPES."
-    ((_ name read write! (fields types) ...)
+    "Define READ as a deserializer and WRITE! as a serializer for the C
+structure with the given TYPES.  READ uses WRAP-FIELDS to return its value."
+    ((_ name wrap-fields read write! (fields types) ...)
      (begin
        (define (write! bv offset fields ...)
          (write-types bv offset (types ...) (fields ...)))
        (define (read bv offset)
-         (read-types bv offset (types ...)))))))
+         (read-types wrap-fields bv offset (types ...) ()))))))
 
 
 ;;;
@@ -463,6 +464,8 @@ the C structure with the given TYPES."
       32))
 
 (define-c-struct sockaddr-in                      ;<linux/in.h>
+  (lambda (family port address)
+    (make-socket-address family address port))
   read-sockaddr-in
   write-sockaddr-in!
   (family    unsigned-short)
@@ -470,6 +473,8 @@ the C structure with the given TYPES."
   (address   (int32 ~ big)))
 
 (define-c-struct sockaddr-in6                     ;<linux/in6.h>
+  (lambda (family port flowinfo address scopeid)
+    (make-socket-address family address port flowinfo scopeid))
   read-sockaddr-in6
   write-sockaddr-in6!
   (family    unsigned-short)
@@ -501,14 +506,9 @@ bytevector BV at INDEX."
   "Read a socket address from bytevector BV at INDEX."
   (let ((family (bytevector-u16-native-ref bv index)))
     (cond ((= family AF_INET)
-           (match (read-sockaddr-in bv index)
-             ((family port address)
-              (make-socket-address family address port))))
+           (read-sockaddr-in bv index))
           ((= family AF_INET6)
-           (match (read-sockaddr-in6 bv index)
-             ((family port flowinfo address scopeid)
-              (make-socket-address family address port
-                                   flowinfo scopeid))))
+           (read-sockaddr-in6 bv index))
           (else
            "unsupported socket address family" family))))
 
diff --git a/guix/licenses.scm b/guix/licenses.scm
index a036c8e903..5539f3e3e8 100644
--- a/guix/licenses.scm
+++ b/guix/licenses.scm
@@ -32,6 +32,7 @@
             cddl1.0
             cecill-c
             artistic2.0 clarified-artistic
+            copyleft-next
             cpl1.0
             epl1.0
             expat
@@ -154,6 +155,11 @@ at URI, which may be a file:// URI pointing the package's tree."
            "http://gianluca.dellavedova.org/2011/01/03/clarified-artistic-license/"
            "https://www.gnu.org/licenses/license-list.html#ArtisticLicense2"))
 
+(define copyleft-next
+  (license "copyleft-next"
+           "https://raw.github.com/richardfontana/copyleft-next/master/Releases/copyleft-next-0.3.0"
+           "GPL-compatible copyleft license"))
+
 (define cpl1.0
   (license "CPL 1.0"
            "http://directory.fsf.org/wiki/License:CPLv1.0"
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index 56a6e2db64..b545ea2672 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -307,22 +307,6 @@ RX."
        ((<)  #t)
        (else #f)))))
 
-(define-syntax-rule (leave-on-EPIPE exp ...)
-  "Run EXP... in a context when EPIPE errors are caught and lead to 'exit'
-with successful exit code.  This is useful when writing to the standard output
-may lead to EPIPE, because the standard output is piped through 'head' or
-similar."
-  (catch 'system-error
-    (lambda ()
-      exp ...)
-    (lambda args
-      ;; We really have to exit this brutally, otherwise Guile eventually
-      ;; attempts to flush all the ports, leading to an uncaught EPIPE down
-      ;; the path.
-      (if (= EPIPE (system-error-errno args))
-          (primitive-_exit 0)
-          (apply throw args)))))
-
 (define (upgradeable? name current-version current-path)
   "Return #t if there's a version of package NAME newer than CURRENT-VERSION,
 or if the newest available version is equal to CURRENT-VERSION but would have
diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm
index 7bad2619b9..e0226f35ee 100644
--- a/guix/scripts/publish.scm
+++ b/guix/scripts/publish.scm
@@ -143,7 +143,7 @@ Publish ~a over HTTP.\n") %store-directory)
   "Generate a narinfo key/value string for STORE-PATH using the details in
 PATH-INFO.  The narinfo is signed with KEY."
   (let* ((url        (string-append "nar/" (basename store-path)))
-         (hash       (bytevector->base32-string
+         (hash       (bytevector->nix-base32-string
                       (path-info-hash path-info)))
          (size       (path-info-nar-size path-info))
          (references (string-join
diff --git a/guix/scripts/size.scm b/guix/scripts/size.scm
index 13341fdfe2..1339742946 100644
--- a/guix/scripts/size.scm
+++ b/guix/scripts/size.scm
@@ -280,15 +280,16 @@ Report the size of PACKAGE and its dependencies.\n"))
         (()
          (leave (_ "missing store item argument\n")))
         ((file)
-         (with-store store
-           (run-with-store store
-             (mlet* %store-monad ((item    (ensure-store-item file))
-                                  (profile (store-profile item)))
-               (if map-file
-                   (begin
-                     (profile->page-map profile map-file)
-                     (return #t))
-                   (display-profile* profile)))
-             #:system system)))
+         (leave-on-EPIPE
+          (with-store store
+            (run-with-store store
+              (mlet* %store-monad ((item    (ensure-store-item file))
+                                   (profile (store-profile item)))
+                (if map-file
+                    (begin
+                      (profile->page-map profile map-file)
+                      (return #t))
+                    (display-profile* profile)))
+              #:system system))))
         ((files ...)
          (leave (_ "too many arguments\n")))))))
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index 6084ab8a37..45f598219d 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -249,16 +249,19 @@ it atomically, and then run OS's activation script."
            (('boot-parameters ('version 0)
                               ('label label) ('root-device root)
                               ('kernel linux)
-                              _ ...)
+                              rest ...)
             (menu-entry
              (label (string-append label " (#"
                                    (number->string number) ", "
                                    (seconds->string time) ")"))
              (linux linux)
              (linux-arguments
-              (list (string-append "--root=" root)
-                    #~(string-append "--system=" #$system)
-                    #~(string-append "--load=" #$system "/boot")))
+              (cons* (string-append "--root=" root)
+                     #~(string-append "--system=" #$system)
+                     #~(string-append "--load=" #$system "/boot")
+                     (match (assq 'kernel-arguments rest)
+                       ((_ args) args)
+                       (#f       '()))))          ;old format
              (initrd #~(string-append #$system "/initrd"))))
            (_                                     ;unsupported format
             (warning (_ "unrecognized boot parameters for '~a'~%")
diff --git a/guix/ui.scm b/guix/ui.scm
index 11af646a6e..28d4b97118 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -62,6 +62,7 @@
             show-manifest-transaction
             call-with-error-handling
             with-error-handling
+            leave-on-EPIPE
             read/eval
             read/eval-package-expression
             location->string
@@ -430,6 +431,22 @@ interpreted."
         (leave (_ "~a: ~a~%") proc
                (apply format #f format-string format-args))))))
 
+(define-syntax-rule (leave-on-EPIPE exp ...)
+  "Run EXP... in a context when EPIPE errors are caught and lead to 'exit'
+with successful exit code.  This is useful when writing to the standard output
+may lead to EPIPE, because the standard output is piped through 'head' or
+similar."
+  (catch 'system-error
+    (lambda ()
+      exp ...)
+    (lambda args
+      ;; We really have to exit this brutally, otherwise Guile eventually
+      ;; attempts to flush all the ports, leading to an uncaught EPIPE down
+      ;; the path.
+      (if (= EPIPE (system-error-errno args))
+          (primitive-_exit 0)
+          (apply throw args)))))
+
 (define %guix-user-module
   ;; Module in which user expressions are evaluated.
   ;; Compute lazily to avoid circularity with (guix gexp).
diff --git a/po/packages/POTFILES.in b/po/packages/POTFILES.in
index b1da6d2023..d77cb3b6fd 100644
--- a/po/packages/POTFILES.in
+++ b/po/packages/POTFILES.in
@@ -3,6 +3,7 @@
 # all of them should be listed here.)  Strings of the tools are in 'po/guix'.
 gnu/packages/abiword.scm
 gnu/packages/aspell.scm
+gnu/packages/audio.scm
 gnu/packages/backup.scm
 gnu/packages/base.scm
 gnu/packages/bittorrent.scm
@@ -16,6 +17,8 @@ gnu/packages/games.scm
 gnu/packages/gcc.scm
 gnu/packages/geeqie.scm
 gnu/packages/gettext.scm
+gnu/packages/gimp.scm
+gnu/packages/gnome.scm
 gnu/packages/gnuzilla.scm
 gnu/packages/gtk.scm
 gnu/packages/guile.scm
@@ -26,6 +29,7 @@ gnu/packages/jemalloc.scm
 gnu/packages/key-mon.scm
 gnu/packages/less.scm
 gnu/packages/lesstif.scm
+gnu/packages/libreoffice.scm
 gnu/packages/linux.scm
 gnu/packages/lout.scm
 gnu/packages/messaging.scm
diff --git a/tests/file-systems.scm b/tests/file-systems.scm
index d445b4971f..c36509b2b0 100644
--- a/tests/file-systems.scm
+++ b/tests/file-systems.scm
@@ -40,6 +40,16 @@
     (bytevector=? (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb")
                   (string->uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb"))))
 
+(test-assert "uuid, syntax error"
+  (catch 'syntax-error
+    (lambda ()
+      (eval '(uuid "foobar") (current-module))
+      #f)
+    (lambda (key proc message location form . args)
+      (and (eq? proc 'uuid)
+           (string-contains message "invalid UUID")
+           (equal? form '(uuid "foobar"))))))
+
 (test-end)
 
 
diff --git a/tests/publish.scm b/tests/publish.scm
index 60f57a8ddb..4d72fdc468 100644
--- a/tests/publish.scm
+++ b/tests/publish.scm
@@ -81,7 +81,7 @@ NarSize: ~d
 References: ~a~%"
                   %item
                   (basename %item)
-                  (bytevector->base32-string
+                  (bytevector->nix-base32-string
                    (path-info-hash info))
                   (path-info-nar-size info)
                   (basename (first (path-info-references info)))))