summary refs log tree commit diff
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2015-04-17 09:54:11 -0400
committerMark H Weaver <mhw@netris.org>2015-04-17 09:54:11 -0400
commit933204e5b1473a54367aef1f90de22424e9074ab (patch)
treed0ccfee2b903c5fac827bc4a52ec7de17bdc1e7b
parent9128e323c0a23243c3f70b1716c68ad0b241f30d (diff)
parent5e25ebe2fa70297d094fe891b81c4970e45a906a (diff)
downloadguix-933204e5b1473a54367aef1f90de22424e9074ab.tar.gz
Merge branch 'master' into core-updates
Conflicts:
	gnu-system.am
	gnu/packages/gstreamer.scm
-rw-r--r--Makefile.am8
-rw-r--r--THANKS1
-rw-r--r--build-aux/hydra/gnu-system.scm26
-rw-r--r--build-aux/make-binary-tarball.scm50
-rw-r--r--configure.ac2
-rw-r--r--doc/guix.texi90
-rw-r--r--gnu-system.am2
-rw-r--r--gnu/build/install.scm43
-rw-r--r--gnu/packages/bioinformatics.scm35
-rw-r--r--gnu/packages/ebook.scm4
-rw-r--r--gnu/packages/emacs.scm3
-rw-r--r--gnu/packages/gstreamer.scm8
-rw-r--r--gnu/packages/hurd.scm14
-rw-r--r--gnu/packages/java.scm8
-rw-r--r--gnu/packages/linux-libre-i686.conf200
-rw-r--r--gnu/packages/linux-libre-x86_64.conf204
-rw-r--r--gnu/packages/linux.scm49
-rw-r--r--gnu/packages/mail.scm4
-rw-r--r--gnu/packages/patches/emacs-exec-path.patch18
-rw-r--r--gnu/packages/patches/linux-libre-vblank-fix.patch175
-rw-r--r--gnu/packages/ruby.scm4
-rw-r--r--gnu/packages/tbb.scm7
-rw-r--r--gnu/packages/telephony.scm24
-rw-r--r--gnu/packages/textutils.scm31
-rw-r--r--gnu/services/avahi.scm3
-rw-r--r--gnu/services/dbus.scm3
-rw-r--r--gnu/services/networking.scm4
-rw-r--r--gnu/system.scm45
-rw-r--r--gnu/system/install.scm39
-rw-r--r--guix/profiles.scm72
-rw-r--r--guix/scripts/package.scm26
-rw-r--r--tests/packages.scm4
-rw-r--r--tests/profiles.scm8
33 files changed, 836 insertions, 378 deletions
diff --git a/Makefile.am b/Makefile.am
index c1fa5332be..aa412bda2b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -258,6 +258,7 @@ EXTRA_DIST =						\
   build-aux/check-final-inputs-self-contained.scm	\
   build-aux/download.scm				\
   build-aux/list-packages.scm				\
+  build-aux/make-binary-tarball.scm			\
   srfi/srfi-37.scm.in					\
   srfi/srfi-64.scm					\
   srfi/srfi-64.upstream.scm				\
@@ -343,6 +344,13 @@ dist_emacsui_DATA = emacs/guix-main.scm
 nodist_emacsui_DATA = emacs/guix-helper.scm
 include emacs.am
 
+# The self-contained tarball.
+guix-binary.%.tar.xz:
+	-GUIX_PACKAGE_PATH= \
+	$(top_builddir)/pre-inst-env "$(GUILE)"			\
+	  "$(top_srcdir)/build-aux/make-binary-tarball.scm" "$*" "$@"
+
+
 dist-hook: sync-descriptions gen-ChangeLog assert-no-store-file-names
 distcheck-hook: assert-binaries-available assert-final-inputs-self-contained
 
diff --git a/THANKS b/THANKS
index a7944c0f99..ff9714ebec 100644
--- a/THANKS
+++ b/THANKS
@@ -29,6 +29,7 @@ infrastructure help:
 	   Yutaka Niibe <gniibe@fsij.org>
            Andrei Osipov <andrspv@gmail.com>
              Adam Pribyl <pribyl@lowlevel.cz>
+            Pjotr Prins <pjotr.public12@thebird.nl>
                   rekado <rekado@elephly.net>
       Bruno Félix Rezende Ribeiro <oitofelix@gnu.org>
 	   Cyrill Schenkel <cyrill.schenkel@gmail.com>
diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm
index cb2e209b21..01e2859f1a 100644
--- a/build-aux/hydra/gnu-system.scm
+++ b/build-aux/hydra/gnu-system.scm
@@ -54,6 +54,7 @@
              (gnu packages multiprecision)
              (gnu packages make-bootstrap)
              (gnu packages commencement)
+             (gnu packages package-management)
              (gnu system)
              (gnu system vm)
              (gnu system install)
@@ -161,6 +162,30 @@ system.")
                                           (* 850 MiB))))))
       '()))
 
+(define (tarball-jobs store system)
+  "Return Hydra jobs to build the self-contained Guix binary tarball."
+  (define (->alist drv)
+    `((derivation . ,(derivation-file-name drv))
+      (description . "Stand-alone binary Guix tarball")
+      (long-description . "This is a tarball containing binaries of Guix and
+all its dependencies, and ready to be installed on non-GuixSD distributions.")
+      (license . ,gpl3+)
+      (home-page . ,%guix-home-page-url)
+      (maintainers . ("bug-guix@gnu.org"))))
+
+  (define (->job name drv)
+    (let ((name (symbol-append name (string->symbol ".")
+                               (string->symbol system))))
+      `(,name . ,(cut ->alist drv))))
+
+  ;; XXX: Add a job for the stable Guix?
+  (list (->job 'binary-tarball
+               (run-with-store store
+                 (mbegin %store-monad
+                   (set-guile-for-build (default-guile))
+                   (self-contained-tarball))
+                 #:system system))))
+
 (define job-name
   ;; Return the name of a package's job.
   (compose string->symbol package-full-name))
@@ -234,6 +259,7 @@ valid."
                                           (cons job result)
                                           result)))
                                   (append (qemu-jobs store system)
+                                          (tarball-jobs store system)
                                           (cross-jobs system))))
                   ((core)
                    ;; Build core packages only.
diff --git a/build-aux/make-binary-tarball.scm b/build-aux/make-binary-tarball.scm
new file mode 100644
index 0000000000..0b5dbaf1de
--- /dev/null
+++ b/build-aux/make-binary-tarball.scm
@@ -0,0 +1,50 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+
+;;;
+;;; Build a self-contained tarball containing binaries for Guix and its
+;;; dependencies.
+;;;
+
+(use-modules (guix)
+             (guix ui)
+             (gnu system install)
+             (ice-9 match))
+
+(define show-what-to-build*
+  (store-lift show-what-to-build))
+
+(define copy-file*
+  (lift2 copy-file %store-monad))
+
+(define rename-file*
+  (lift2 rename-file %store-monad))
+
+(match (command-line)
+  ((_ system file)
+   (with-store store
+     (run-with-store store
+       (mlet %store-monad ((tarball (self-contained-tarball)))
+         (mbegin %store-monad
+           (show-what-to-build* (list tarball))
+           (built-derivations (list tarball))
+           (copy-file* (derivation->output-path tarball)
+                       (string-append file ".part"))
+           (rename-file* (string-append file ".part") file)))
+       #:system system))))
diff --git a/configure.ac b/configure.ac
index 2227c71c1b..5a9cea6fe2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7,7 +7,7 @@ AC_INIT([GNU Guix], [0.8.2], [bug-guix@gnu.org], [guix],
 AC_CONFIG_AUX_DIR([build-aux])
 
 AM_INIT_AUTOMAKE([1.12 gnu silent-rules subdir-objects \
- color-tests parallel-tests -Woverride])
+ color-tests parallel-tests -Woverride -Wno-portability])
 
 # Enable silent rules by default.
 AM_SILENT_RULES([yes])
diff --git a/doc/guix.texi b/doc/guix.texi
index 6b6604a426..ad572365a8 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -236,20 +236,90 @@ manager, which can be done on top of a running GNU/Linux system.  If,
 instead, you want to install the complete GNU operating system,
 @pxref{System Installation}.
 
-The build procedure for Guix is the same as for other GNU software, and
-is not covered here.  Please see the files @file{README} and
-@file{INSTALL} in the Guix source tree for additional details.
-
 @menu
+* Binary Installation::         Getting Guix running in no time!
 * Requirements::                Software needed to build and run Guix.
 * Running the Test Suite::      Testing Guix.
 * Setting Up the Daemon::       Preparing the build daemon's environment.
 * Invoking guix-daemon::        Running the build daemon.
 @end menu
 
+@node Binary Installation
+@section Binary Installation
+
+This section describes how to install Guix on an arbitrary system from a
+self-contained tarball providing binaries for Guix and for all its
+dependencies.  This is often quicker than installing from source, which
+is described in the next sections.  The only requirement is to have
+GNU@tie{}tar and Xz.
+
+Installing goes along these lines:
+
+@enumerate
+@item
+Download the binary tarball from
+@code{ftp://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{system}.tar.xz}@footnote{As
+usual, make sure to download the associated @file{.sig} file and to
+verify the authenticity of the tarball against it!}, where @var{system}
+is @code{x86_64-linux} for an @code{x86_64} machine already running the
+kernel Linux, and so on.
+
+@item
+As @code{root}, run:
+
+@example
+# cd /
+# tar xf guix-binary-@value{VERSION}.@var{system}.tar.xz
+@end example
+
+This creates @file{/gnu/store} (@pxref{The Store}), @file{/var/guix},
+and @file{/root/.guix-profile}.  @file{/root/.guix-profile} is a
+ready-to-use profile for @code{root} where Guix is installed.
+
+@item
+Setup the daemon as explained below (@pxref{Setting Up the Daemon}), and
+run it:
+
+@example
+# /root/.guix-profile/bin/guix-daemon --build-users-group=guix-builder
+@end example
+
+@item
+Make the @command{guix} command available to other users on the machine,
+for instance with:
+
+@example
+# mkdir -p /usr/local/bin
+# cd /usr/local/bin
+# ln -s /root/.guix-profile/bin/guix
+@end example
+@end enumerate
+
+And that's it!
+
+There are two things to note.  First, don't unpack the tarball on a
+working Guix system since that would overwrite its own essential files.
+Second, the @code{guix} package must remain available in @code{root}'s
+profile, or it would become subject to garbage collection---in which
+case you would find yourself badly handicapped by the lack of the
+@command{guix} command.
+
+The tarball in question can be (re)produced simply by running the
+following command in the Guix source tree:
+
+@example
+make guix-binary.@var{system}.tar.xz
+@end example
+
+
 @node Requirements
 @section Requirements
 
+This section lists requirements when building Guix from source.  The
+build procedure for Guix is the same as for other GNU software, and is
+not covered here.  Please see the files @file{README} and @file{INSTALL}
+in the Guix source tree for additional details.
+
 GNU Guix depends on the following packages:
 
 @itemize
@@ -947,13 +1017,23 @@ and/or output name in addition to the package name.  For instance,
 @itemx -u [@var{regexp} @dots{}]
 Upgrade all the installed packages.  If one or more @var{regexp}s are
 specified, upgrade only installed packages whose name matches a
-@var{regexp}.
+@var{regexp}.  Also see the @code{--do-not-upgrade} option below.
 
 Note that this upgrades package to the latest version of packages found
 in the distribution currently installed.  To update your distribution,
 you should regularly run @command{guix pull} (@pxref{Invoking guix
 pull}).
 
+@item --do-not-upgrade[=@var{regexp} @dots{}]
+When used together with the @code{--upgrade} option, do @emph{not}
+upgrade any packages whose name matches a @var{regexp}.  For example, to
+upgrade all packages in the current profile except those containing the
+substring ``emacs'':
+
+@example
+$ guix package --upgrade . --do-not-upgrade emacs
+@end example
+
 @item --roll-back
 Roll back to the previous @dfn{generation} of the profile---i.e., undo
 the last transaction.
diff --git a/gnu-system.am b/gnu-system.am
index 0e23175415..a3ad603ab5 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -410,6 +410,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/duplicity-piped-password.patch		\
   gnu/packages/patches/duplicity-test_selection-tmp.patch	\
   gnu/packages/patches/elfutils-tests-ptrace.patch		\
+  gnu/packages/patches/emacs-exec-path.patch			\
   gnu/packages/patches/eudev-rules-directory.patch		\
   gnu/packages/patches/findutils-absolute-paths.patch		\
   gnu/packages/patches/flashrom-use-libftdi1.patch		\
@@ -466,7 +467,6 @@ dist_patch_DATA =						\
   gnu/packages/patches/libvpx-fix-ssse3-quantize.patch		\
   gnu/packages/patches/libvpx-vp9-out-of-bounds-access.patch	\
   gnu/packages/patches/linux-libre-libreboot-fix.patch		\
-  gnu/packages/patches/linux-libre-vblank-fix.patch		\
   gnu/packages/patches/lirc-localstatedir.patch			\
   gnu/packages/patches/lm-sensors-hwmon-attrs.patch		\
   gnu/packages/patches/lua51-liblua-so.patch                    \
diff --git a/gnu/build/install.scm b/gnu/build/install.scm
index 51895d58ec..f019fcb417 100644
--- a/gnu/build/install.scm
+++ b/gnu/build/install.scm
@@ -18,12 +18,14 @@
 
 (define-module (gnu build install)
   #:use-module (guix build utils)
+  #:use-module (guix build store-copy)
   #:use-module (srfi srfi-26)
   #:use-module (ice-9 match)
   #:export (install-grub
             populate-root-file-system
             reset-timestamps
-            register-closure))
+            register-closure
+            populate-single-profile-directory))
 
 ;;; Commentary:
 ;;;
@@ -157,4 +159,43 @@ by 'guix-register'.  As a side effect, this resets timestamps on store files."
     (unless (zero? status)
       (error "failed to register store items" closure))))
 
+(define* (populate-single-profile-directory directory
+                                            #:key profile closure)
+  "Populate DIRECTORY with a store containing PROFILE, whose closure is given
+in the file called CLOSURE (as generated by #:references-graphs.)  DIRECTORY
+is initialized to contain a single profile under /root pointing to PROFILE.
+This is used to create the self-contained Guix tarball."
+  (define (scope file)
+    (string-append directory "/" file))
+
+  (define %root-profile
+    "/var/guix/profiles/per-user/root")
+
+  (define (mkdir-p* dir)
+    (mkdir-p (scope dir)))
+
+  (define (symlink* old new)
+    (symlink old (scope new)))
+
+  ;; Populate the store.
+  (populate-store (list closure) directory)
+  (register-closure (canonicalize-path directory) closure)
+
+  ;; XXX: 'guix-register' registers profiles as GC roots but the symlink
+  ;; target uses $TMPDIR.  Fix that.
+  (delete-file (scope "/var/guix/gcroots/profiles"))
+  (symlink* "/var/guix/profiles"
+            "/var/guix/gcroots/profiles")
+
+  ;; Make root's profile, which makes it a GC root.
+  (mkdir-p* %root-profile)
+  (symlink* profile
+            (string-append %root-profile "/guix-profile-1-link"))
+  (symlink* (string-append %root-profile "/guix-profile-1-link")
+            (string-append %root-profile "/guix-profile"))
+
+  (mkdir-p* "/root")
+  (symlink* (string-append %root-profile "/guix-profile")
+            "/root/.guix-profile"))
+
 ;;; install.scm ends here
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index e143fb2c55..b1258220b4 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -39,6 +39,7 @@
   #:use-module (gnu packages statistics)
   #:use-module (gnu packages swig)
   #:use-module (gnu packages tbb)
+  #:use-module (gnu packages textutils)
   #:use-module (gnu packages vim)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages zip))
@@ -471,6 +472,38 @@ file formats including SAM/BAM, Wiggle/BigWig, BED, GFF/GTF, VCF.")
 other types of unwanted sequence from high-throughput sequencing reads.")
     (license license:expat)))
 
+(define-public fastx-toolkit
+  (package
+    (name "fastx-toolkit")
+    (version "0.0.14")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append
+                "https://github.com/agordon/fastx_toolkit/releases/download/"
+                version "/fastx_toolkit-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "01jqzw386873sr0pjp1wr4rn8fsga2vxs1qfmicvx1pjr72007wy"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("libgtextutils" ,libgtextutils)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "http://hannonlab.cshl.edu/fastx_toolkit/")
+    (synopsis "Tools for FASTA/FASTQ file preprocessing")
+    (description
+     "The FASTX-Toolkit is a collection of command line tools for Short-Reads
+FASTA/FASTQ files preprocessing.
+
+Next-Generation sequencing machines usually produce FASTA or FASTQ files,
+containing multiple short-reads sequences.  The main processing of such
+FASTA/FASTQ files is mapping the sequences to reference genomes.  However, it
+is sometimes more productive to preprocess the files before mapping the
+sequences to the genome---manipulating the sequences to produce better mapping
+results.  The FASTX-Toolkit tools perform some of these preprocessing tasks.")
+    (license license:agpl3+)))
+
 (define-public flexbar
   (package
     (name "flexbar")
@@ -871,7 +904,7 @@ generated using the PacBio Iso-Seq protocol.")
         (string-append "mirror://sourceforge/rseqc/"
                        version "/RSeQC-" version ".tar.gz"))
        (sha256
-        (base32 "09rf0x9d6apjja5l01cgprj7vigpw6kiqhy34ibwwlxil0db0ri4"))
+        (base32 "15ly0254yi032qzkdplg00q144qfdsd986gh62829rl5bkxhj330"))
        (modules '((guix build utils)))
        (snippet
         '(begin
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index 05165774d7..0602463a87 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -60,7 +60,7 @@
 (define-public calibre
   (package
     (name "calibre")
-    (version "2.22.0")
+    (version "2.24.0")
     (source
       (origin
         (method url-fetch)
@@ -69,7 +69,7 @@
                             version ".tar.xz"))
         (sha256
           (base32
-           "19hpm5xzhjr0nfjm6xyqxjx2iwm3iw7y6bbs11337arfrxn16ly0"))
+           "1l9gdna8vzc48yh20kwidb5hfp04cawg6vggkkqnn5zh9dwcvm4d"))
         ;; 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 5eb9c4b44a..8d3df368b1 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -64,7 +64,8 @@
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0kn3rzm91qiswi0cql89kbv6mqn27rwsyjfb8xmwy9m5s8fxfiyx"))))
+               "0kn3rzm91qiswi0cql89kbv6mqn27rwsyjfb8xmwy9m5s8fxfiyx"))
+             (patches (list (search-patch "emacs-exec-path.patch")))))
     (build-system glib-or-gtk-build-system)
     (arguments
      '(#:phases (alist-cons-before
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index e3019f630c..977ca14e3a 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -35,6 +35,7 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pulseaudio)
+  #:use-module (gnu packages video)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages pkg-config)
@@ -262,7 +263,8 @@ developers consider to have good quality code and correct functionality.")
                 "1g7vg9amh3cc3nmc415h6g2rqxqi4wgwqi08hxfbpwq48ri64p30"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases
+     '(#:configure-flags '("--with-system-libav")
+       #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'patch-/bin/sh
                      (lambda _
@@ -271,10 +273,10 @@ developers consider to have good quality code and correct functionality.")
                           (string-append "#! "(which "sh")))))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("python" ,python)
-       ("yasm" ,yasm)))
+       ("python" ,python)))
     (inputs
      `(("gst-plugins-base" ,gst-plugins-base)
+       ("ffmpeg" ,ffmpeg)
        ("orc" ,orc)
        ("zlib" ,zlib)))
     (home-page "http://gstreamer.freedesktop.org/")
diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index 8ac78d3ece..62dc04385f 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
+;;; Copyright © 2014, 2015 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -29,7 +29,7 @@
 (define-public gnumach-headers
   (package
     (name "gnumach-headers")
-    (version "1.4")
+    (version "1.5")
     (source
      (origin
       (method url-fetch)
@@ -37,7 +37,7 @@
                           version ".tar.gz"))
       (sha256
        (base32
-        "0r371wsm7imx356p0xsls5hifb1gf9y90rm1phr0qkahbmfk9hlv"))))
+        "0wsf57q4h6xl2jn28d423qx7zplmhpnf9ssm4f1c0sf8513xm81j"))))
     (build-system gnu-build-system)
     (arguments
     `(#:phases (alist-replace
@@ -63,7 +63,7 @@
 (define-public mig
   (package
     (name "mig")
-    (version "1.4")
+    (version "1.5")
     (source
      (origin
       (method url-fetch)
@@ -71,7 +71,7 @@
                           version ".tar.gz"))
       (sha256
        (base32
-        "1jgzggnbp22sa8z5dilm43zy12vlf1pjxfb3kh13xrfhcay0l97b"))))
+        "13r1pg8icyc0pl082z7k36i440pr1f3nr7ahig3rrc0r7qndqmk9"))))
     (build-system gnu-build-system)
     (inputs `(("gnumach-headers" ,gnumach-headers)))
     (native-inputs
@@ -92,14 +92,14 @@ communication.")
 (define-public hurd-headers
   (package
     (name "hurd-headers")
-    (version "0.5")
+    (version "0.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/hurd/hurd-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0lvkz3r0ngb4bsn2hzdc9vjpyrfa3ls36jivrvy1n7f7f55zan7q"))))
+                "059lbspbpcjpcq5jf98f47jw9sm0ngs3x6phxax53m3rwca1fk7y"))))
     (build-system gnu-build-system)
     (native-inputs
      `(;; Autoconf shouldn't be necessary but there seems to be a bug in the
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index db730cd60e..2a8cd99fe6 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -102,7 +102,7 @@ build process and its dependencies, whereas Make uses Makefile format.")
 (define-public icedtea6
   (package
     (name "icedtea6")
-    (version "1.13.6")
+    (version "1.13.7")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -110,7 +110,7 @@ build process and its dependencies, whereas Make uses Makefile format.")
                     version ".tar.xz"))
               (sha256
                (base32
-                "16ac3f7kkln5skg202vllagkhjxrwd47h56diwzhfidhwjlz7410"))
+                "0fqq898h0mk554mya5z4j9p4x6sg2qj0ckqzx65x49zcjjp69jm5"))
               (modules '((guix build utils)))
               (snippet
                '(substitute* "Makefile.in"
@@ -467,10 +467,10 @@ build process and its dependencies, whereas Make uses Makefile format.")
        ("openjdk6-src"
         ,(origin
            (method url-fetch)
-           (uri "https://java.net/downloads/openjdk6/openjdk-6-src-b34-20_jan_2015.tar.xz")
+           (uri "https://java.net/downloads/openjdk6/openjdk-6-src-b35-14_apr_2015.tar.gz")
            (sha256
             (base32
-             "0lafxvi255r22pjljkj9x6liacqdgin8smdmh6nzkdjjw7hv9l8k"))))
+             "05glw29vy4yw9rkjy9y8wg6ybzi89gjwi19qpnfda978x02r2x5p"))))
        ("lcms" ,lcms)
        ("zlib" ,zlib)
        ("gtk" ,gtk+-2)
diff --git a/gnu/packages/linux-libre-i686.conf b/gnu/packages/linux-libre-i686.conf
index 2274ea2879..0b66cc0e7c 100644
--- a/gnu/packages/linux-libre-i686.conf
+++ b/gnu/packages/linux-libre-i686.conf
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/x86 3.19.0-gnu Kernel Configuration
+# Linux/x86 4.0.0-gnu Kernel Configuration
 #
 # CONFIG_64BIT is not set
 CONFIG_X86_32=y
@@ -128,6 +128,7 @@ CONFIG_TASK_IO_ACCOUNTING=y
 # RCU Subsystem
 #
 CONFIG_TREE_RCU=y
+CONFIG_SRCU=y
 # CONFIG_TASKS_RCU is not set
 CONFIG_RCU_STALL_COMMON=y
 CONFIG_RCU_FANOUT=32
@@ -135,6 +136,7 @@ CONFIG_RCU_FANOUT_LEAF=16
 # CONFIG_RCU_FANOUT_EXACT is not set
 CONFIG_RCU_FAST_NO_HZ=y
 # CONFIG_TREE_RCU_TRACE is not set
+CONFIG_RCU_KTHREAD_PRIO=0
 # CONFIG_RCU_NOCB_CPU is not set
 # CONFIG_BUILD_BIN2C is not set
 # CONFIG_IKCONFIG is not set
@@ -179,7 +181,6 @@ CONFIG_RD_LZMA=y
 CONFIG_RD_XZ=y
 CONFIG_RD_LZO=y
 CONFIG_RD_LZ4=y
-CONFIG_INIT_FALLBACK=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
 CONFIG_SYSCTL=y
 CONFIG_ANON_INODES=y
@@ -295,11 +296,6 @@ CONFIG_MODULE_UNLOAD=y
 CONFIG_MODVERSIONS=y
 CONFIG_MODULE_SRCVERSION_ALL=y
 # CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_SIG_SHA1 is not set
-# CONFIG_MODULE_SIG_SHA224 is not set
-# CONFIG_MODULE_SIG_SHA256 is not set
-# CONFIG_MODULE_SIG_SHA384 is not set
-# CONFIG_MODULE_SIG_SHA512 is not set
 # CONFIG_MODULE_COMPRESS is not set
 CONFIG_STOP_MACHINE=y
 CONFIG_BLOCK=y
@@ -364,6 +360,7 @@ CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
 CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
 CONFIG_MUTEX_SPIN_ON_OWNER=y
 CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_LOCK_SPIN_ON_OWNER=y
 CONFIG_ARCH_USE_QUEUE_RWLOCK=y
 CONFIG_QUEUE_RWLOCK=y
 CONFIG_FREEZER=y
@@ -379,7 +376,9 @@ CONFIG_X86_MPPARSE=y
 CONFIG_X86_EXTENDED_PLATFORM=y
 # CONFIG_X86_GOLDFISH is not set
 CONFIG_X86_INTEL_MID=y
+# CONFIG_X86_INTEL_QUARK is not set
 CONFIG_X86_INTEL_LPSS=y
+CONFIG_X86_AMD_PLATFORM_DEVICE=y
 CONFIG_IOSF_MBI=m
 CONFIG_IOSF_MBI_DEBUG=y
 # CONFIG_X86_RDC321X is not set
@@ -539,6 +538,7 @@ CONFIG_ZPOOL=y
 CONFIG_ZBUD=y
 CONFIG_ZSMALLOC=y
 CONFIG_PGTABLE_MAPPING=y
+# CONFIG_ZSMALLOC_STAT is not set
 CONFIG_GENERIC_EARLY_IOREMAP=y
 CONFIG_HIGHPTE=y
 CONFIG_X86_CHECK_BIOS_CORRUPTION=y
@@ -629,6 +629,7 @@ CONFIG_ACPI_PCI_SLOT=y
 CONFIG_X86_PM_TIMER=y
 CONFIG_ACPI_CONTAINER=y
 CONFIG_ACPI_HOTPLUG_MEMORY=y
+CONFIG_ACPI_HOTPLUG_IOAPIC=y
 CONFIG_ACPI_SBS=m
 CONFIG_ACPI_HED=y
 # CONFIG_ACPI_CUSTOM_METHOD is not set
@@ -677,6 +678,7 @@ CONFIG_X86_INTEL_PSTATE=y
 CONFIG_X86_PCC_CPUFREQ=y
 CONFIG_X86_ACPI_CPUFREQ=y
 CONFIG_X86_ACPI_CPUFREQ_CPB=y
+CONFIG_X86_SFI_CPUFREQ=m
 CONFIG_X86_POWERNOW_K6=m
 CONFIG_X86_POWERNOW_K7=m
 CONFIG_X86_POWERNOW_K7_ACPI=y
@@ -1277,7 +1279,6 @@ CONFIG_RDS_RDMA=m
 CONFIG_RDS_TCP=m
 # CONFIG_RDS_DEBUG is not set
 CONFIG_TIPC=m
-CONFIG_TIPC_PORTS=8191
 CONFIG_TIPC_MEDIA_IB=y
 CONFIG_ATM=m
 CONFIG_ATM_CLIP=m
@@ -1326,6 +1327,7 @@ CONFIG_LAPB=m
 CONFIG_PHONET=m
 CONFIG_6LOWPAN=m
 CONFIG_IEEE802154=m
+CONFIG_IEEE802154_SOCKET=m
 CONFIG_IEEE802154_6LOWPAN=m
 CONFIG_MAC802154=m
 CONFIG_NET_SCHED=y
@@ -1396,6 +1398,8 @@ CONFIG_NET_ACT_SIMP=m
 CONFIG_NET_ACT_SKBEDIT=m
 CONFIG_NET_ACT_CSUM=m
 CONFIG_NET_ACT_VLAN=m
+CONFIG_NET_ACT_BPF=m
+CONFIG_NET_ACT_CONNMARK=m
 # CONFIG_NET_CLS_IND is not set
 CONFIG_NET_SCH_FIFO=y
 CONFIG_DCB=y
@@ -1575,6 +1579,7 @@ CONFIG_BT_CMTP=m
 CONFIG_BT_HIDP=m
 CONFIG_BT_LE=y
 CONFIG_BT_6LOWPAN=m
+# CONFIG_BT_SELFTEST is not set
 
 #
 # Bluetooth device drivers
@@ -1843,6 +1848,7 @@ CONFIG_MTD_NAND_CAFE=m
 CONFIG_MTD_NAND_CS553X=m
 CONFIG_MTD_NAND_NANDSIM=m
 CONFIG_MTD_NAND_PLATFORM=m
+CONFIG_MTD_NAND_HISI504=m
 CONFIG_MTD_ONENAND=m
 CONFIG_MTD_ONENAND_VERIFY_WRITE=y
 CONFIG_MTD_ONENAND_GENERIC=m
@@ -1937,7 +1943,7 @@ CONFIG_BLK_DEV_SX8=m
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=16
 CONFIG_BLK_DEV_RAM_SIZE=65536
-# CONFIG_BLK_DEV_XIP is not set
+CONFIG_BLK_DEV_RAM_DAX=y
 CONFIG_CDROM_PKTCDVD=m
 CONFIG_CDROM_PKTCDVD_BUFFERS=8
 # CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -2370,16 +2376,6 @@ CONFIG_FIREWIRE_OHCI=m
 CONFIG_FIREWIRE_SBP2=m
 CONFIG_FIREWIRE_NET=m
 CONFIG_FIREWIRE_NOSY=m
-CONFIG_I2O=m
-CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
-CONFIG_I2O_EXT_ADAPTEC=y
-CONFIG_I2O_EXT_ADAPTEC_DMA64=y
-CONFIG_I2O_CONFIG=m
-# CONFIG_I2O_CONFIG_OLD_IOCTL is not set
-CONFIG_I2O_BUS=m
-CONFIG_I2O_BLOCK=m
-CONFIG_I2O_SCSI=m
-CONFIG_I2O_PROC=m
 CONFIG_MACINTOSH_DRIVERS=y
 CONFIG_MAC_EMUMOUSEBTN=m
 CONFIG_NETDEVICES=y
@@ -2503,6 +2499,8 @@ CONFIG_LANCE=m
 CONFIG_PCNET32=m
 CONFIG_PCMCIA_NMCLAN=m
 CONFIG_NI65=m
+CONFIG_AMD_XGBE=m
+CONFIG_AMD_XGBE_DCB=y
 # CONFIG_NET_XGENE is not set
 CONFIG_NET_VENDOR_ARC=y
 CONFIG_NET_VENDOR_ATHEROS=y
@@ -2576,6 +2574,7 @@ CONFIG_IGB_DCA=y
 CONFIG_IGBVF=m
 CONFIG_IXGB=m
 CONFIG_IXGBE=m
+CONFIG_IXGBE_VXLAN=y
 CONFIG_IXGBE_HWMON=y
 CONFIG_IXGBE_DCA=y
 CONFIG_IXGBE_DCB=y
@@ -2687,6 +2686,7 @@ CONFIG_NIU=m
 CONFIG_NET_VENDOR_TEHUTI=y
 CONFIG_TEHUTI=m
 CONFIG_NET_VENDOR_TI=y
+CONFIG_TI_CPSW_ALE=m
 CONFIG_TLAN=m
 CONFIG_NET_VENDOR_VIA=y
 CONFIG_VIA_RHINE=m
@@ -2713,6 +2713,7 @@ CONFIG_PHYLIB=y
 #
 CONFIG_AT803X_PHY=m
 CONFIG_AMD_PHY=m
+CONFIG_AMD_XGBE_PHY=m
 CONFIG_MARVELL_PHY=m
 CONFIG_DAVICOM_PHY=m
 CONFIG_QSEMI_PHY=m
@@ -3281,6 +3282,7 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
 CONFIG_MOUSE_PS2_ELANTECH=y
 CONFIG_MOUSE_PS2_SENTELIC=y
 CONFIG_MOUSE_PS2_TOUCHKIT=y
+CONFIG_MOUSE_PS2_FOCALTECH=y
 CONFIG_MOUSE_SERIAL=m
 CONFIG_MOUSE_APPLETOUCH=m
 CONFIG_MOUSE_BCM5974=m
@@ -3420,6 +3422,7 @@ CONFIG_INPUT_AD714X_I2C=m
 CONFIG_INPUT_AD714X_SPI=m
 CONFIG_INPUT_ARIZONA_HAPTICS=m
 CONFIG_INPUT_BMA150=m
+CONFIG_INPUT_E3X0_BUTTON=m
 CONFIG_INPUT_PCSPKR=m
 CONFIG_INPUT_MAX77693_HAPTIC=m
 CONFIG_INPUT_MAX8925_ONKEY=m
@@ -3440,7 +3443,10 @@ CONFIG_INPUT_KXTJ9=m
 CONFIG_INPUT_POWERMATE=m
 CONFIG_INPUT_YEALINK=m
 CONFIG_INPUT_CM109=m
+CONFIG_INPUT_REGULATOR_HAPTIC=m
 CONFIG_INPUT_RETU_PWRBUTTON=m
+CONFIG_INPUT_TPS65218_PWRBUTTON=m
+CONFIG_INPUT_AXP20X_PEK=m
 CONFIG_INPUT_TWL4030_PWRBUTTON=m
 CONFIG_INPUT_TWL4030_VIBRA=m
 CONFIG_INPUT_TWL6040_VIBRA=m
@@ -3517,6 +3523,7 @@ CONFIG_N_HDLC=m
 CONFIG_N_GSM=m
 CONFIG_TRACE_ROUTER=m
 CONFIG_TRACE_SINK=m
+CONFIG_DEVMEM=y
 # CONFIG_DEVKMEM is not set
 
 #
@@ -3551,7 +3558,6 @@ CONFIG_SERIAL_8250_FINTEK=m
 CONFIG_SERIAL_KGDB_NMI=y
 CONFIG_SERIAL_MAX3100=m
 CONFIG_SERIAL_MAX310X=y
-CONFIG_SERIAL_MRST_MAX3110=m
 CONFIG_SERIAL_MFD_HSU=m
 CONFIG_SERIAL_UARTLITE=m
 CONFIG_SERIAL_CORE=y
@@ -3630,8 +3636,9 @@ CONFIG_TCG_TIS_I2C_NUVOTON=m
 CONFIG_TCG_NSC=m
 CONFIG_TCG_ATMEL=m
 CONFIG_TCG_INFINEON=m
-CONFIG_TCG_ST33_I2C=m
+CONFIG_TCG_TIS_I2C_ST33=m
 CONFIG_TCG_XEN=m
+CONFIG_TCG_CRB=m
 CONFIG_TELCLOCK=m
 CONFIG_DEVPORT=y
 CONFIG_XILLYBUS=m
@@ -3644,7 +3651,7 @@ CONFIG_I2C=y
 CONFIG_ACPI_I2C_OPREGION=y
 CONFIG_I2C_BOARDINFO=y
 CONFIG_I2C_COMPAT=y
-CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_CHARDEV=y
 CONFIG_I2C_MUX=m
 
 #
@@ -3738,6 +3745,7 @@ CONFIG_SPI_MASTER=y
 CONFIG_SPI_ALTERA=m
 CONFIG_SPI_BITBANG=m
 CONFIG_SPI_BUTTERFLY=m
+CONFIG_SPI_DLN2=m
 CONFIG_SPI_GPIO=m
 CONFIG_SPI_LM70_LLP=m
 CONFIG_SPI_OC_TINY=m
@@ -3962,6 +3970,7 @@ CONFIG_CHARGER_LP8788=m
 CONFIG_CHARGER_GPIO=m
 CONFIG_CHARGER_MANAGER=y
 CONFIG_CHARGER_MAX14577=m
+CONFIG_CHARGER_MAX77693=m
 CONFIG_CHARGER_MAX8997=m
 CONFIG_CHARGER_MAX8998=m
 CONFIG_CHARGER_BQ2415X=m
@@ -3969,7 +3978,10 @@ CONFIG_CHARGER_BQ24190=m
 CONFIG_CHARGER_BQ24735=m
 CONFIG_CHARGER_SMB347=m
 CONFIG_CHARGER_TPS65090=m
+CONFIG_BATTERY_GAUGE_LTC2941=m
+CONFIG_BATTERY_RT5033=m
 CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_RESTART=y
 CONFIG_POWER_AVS=y
 CONFIG_HWMON=y
 CONFIG_HWMON_VID=m
@@ -4282,6 +4294,7 @@ CONFIG_MFD_DA9052_SPI=y
 CONFIG_MFD_DA9052_I2C=y
 CONFIG_MFD_DA9055=y
 CONFIG_MFD_DA9063=y
+CONFIG_MFD_DA9150=m
 CONFIG_MFD_DLN2=m
 CONFIG_MFD_MC13XXX=m
 CONFIG_MFD_MC13XXX_SPI=m
@@ -4298,7 +4311,6 @@ CONFIG_MFD_88PM800=m
 CONFIG_MFD_88PM805=m
 CONFIG_MFD_88PM860X=y
 CONFIG_MFD_MAX14577=y
-CONFIG_MFD_MAX77686=y
 CONFIG_MFD_MAX77693=y
 CONFIG_MFD_MAX8907=m
 CONFIG_MFD_MAX8925=y
@@ -4314,6 +4326,7 @@ CONFIG_PCF50633_GPIO=m
 CONFIG_UCB1400_CORE=m
 CONFIG_MFD_RDC321X=m
 CONFIG_MFD_RTSX_PCI=m
+CONFIG_MFD_RT5033=m
 CONFIG_MFD_RTSX_USB=m
 CONFIG_MFD_RC5T583=y
 CONFIG_MFD_RN5T618=m
@@ -4406,9 +4419,7 @@ CONFIG_REGULATOR_MAX8952=m
 CONFIG_REGULATOR_MAX8973=m
 CONFIG_REGULATOR_MAX8997=m
 CONFIG_REGULATOR_MAX8998=m
-CONFIG_REGULATOR_MAX77686=m
 CONFIG_REGULATOR_MAX77693=m
-CONFIG_REGULATOR_MAX77802=m
 CONFIG_REGULATOR_MC13XXX_CORE=m
 CONFIG_REGULATOR_MC13783=m
 CONFIG_REGULATOR_MC13892=m
@@ -4419,6 +4430,7 @@ CONFIG_REGULATOR_PFUZE100=m
 CONFIG_REGULATOR_PWM=m
 CONFIG_REGULATOR_RC5T583=m
 CONFIG_REGULATOR_RN5T618=m
+CONFIG_REGULATOR_RT5033=m
 CONFIG_REGULATOR_S2MPA01=m
 CONFIG_REGULATOR_S2MPS11=m
 CONFIG_REGULATOR_S5M8767=m
@@ -4560,6 +4572,7 @@ CONFIG_USB_GSPCA_STV0680=m
 CONFIG_USB_GSPCA_SUNPLUS=m
 CONFIG_USB_GSPCA_T613=m
 CONFIG_USB_GSPCA_TOPRO=m
+CONFIG_USB_GSPCA_TOUPTEK=m
 CONFIG_USB_GSPCA_TV8532=m
 CONFIG_USB_GSPCA_VC032X=m
 CONFIG_USB_GSPCA_VICAM=m
@@ -4816,7 +4829,6 @@ CONFIG_MEDIA_COMMON_OPTIONS=y
 # common driver options
 #
 CONFIG_VIDEO_CX2341X=m
-CONFIG_VIDEO_BTCX=m
 CONFIG_VIDEO_TVEEPROM=m
 CONFIG_CYPRESS_FIRMWARE=m
 CONFIG_DVB_B2C2_FLEXCOP=m
@@ -5134,6 +5146,7 @@ CONFIG_VGA_SWITCHEROO=y
 # Direct Rendering Manager
 #
 CONFIG_DRM=m
+CONFIG_DRM_MIPI_DSI=y
 CONFIG_DRM_KMS_HELPER=m
 CONFIG_DRM_KMS_FB_HELPER=y
 CONFIG_DRM_LOAD_EDID_FIRMWARE=y
@@ -5146,7 +5159,6 @@ CONFIG_DRM_I2C_ADV7511=m
 CONFIG_DRM_I2C_CH7006=m
 CONFIG_DRM_I2C_SIL164=m
 CONFIG_DRM_I2C_NXP_TDA998X=m
-CONFIG_DRM_PTN3460=m
 CONFIG_DRM_TDFX=m
 CONFIG_DRM_R128=m
 CONFIG_DRM_RADEON=m
@@ -5176,6 +5188,11 @@ CONFIG_DRM_AST=m
 CONFIG_DRM_CIRRUS_QEMU=m
 CONFIG_DRM_QXL=m
 # CONFIG_DRM_BOCHS is not set
+CONFIG_DRM_PANEL=y
+
+#
+# Display Panels
+#
 
 #
 # Frame buffer Devices
@@ -5346,6 +5363,8 @@ CONFIG_VGA_CONSOLE=y
 # CONFIG_VGACON_SOFT_SCROLLBACK is not set
 CONFIG_MDA_CONSOLE=m
 CONFIG_DUMMY_CONSOLE=y
+CONFIG_DUMMY_CONSOLE_COLUMNS=80
+CONFIG_DUMMY_CONSOLE_ROWS=25
 CONFIG_FRAMEBUFFER_CONSOLE=y
 CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
 CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
@@ -5557,6 +5576,11 @@ CONFIG_SND_USB_US122L=m
 CONFIG_SND_USB_6FIRE=m
 CONFIG_SND_USB_HIFACE=m
 CONFIG_SND_BCD2000=m
+CONFIG_SND_USB_LINE6=m
+CONFIG_SND_USB_POD=m
+CONFIG_SND_USB_PODHD=m
+CONFIG_SND_USB_TONEPORT=m
+CONFIG_SND_USB_VARIAX=m
 CONFIG_SND_FIREWIRE=y
 CONFIG_SND_FIREWIRE_LIB=m
 CONFIG_SND_DICE=m
@@ -5601,6 +5625,8 @@ CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH=m
 CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
 CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
 CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
+CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
+CONFIG_SND_SOC_XTFPGA_I2S=m
 CONFIG_SND_SOC_I2C_AND_SPI=m
 
 #
@@ -5637,6 +5663,7 @@ CONFIG_SND_SOC_RL6231=m
 CONFIG_SND_SOC_RT286=m
 CONFIG_SND_SOC_RT5631=m
 CONFIG_SND_SOC_RT5640=m
+CONFIG_SND_SOC_RT5645=m
 CONFIG_SND_SOC_RT5670=m
 # CONFIG_SND_SOC_RT5677_SPI is not set
 CONFIG_SND_SOC_SGTL5000=m
@@ -5650,6 +5677,7 @@ CONFIG_SND_SOC_SSM2602=m
 CONFIG_SND_SOC_SSM2602_SPI=m
 CONFIG_SND_SOC_SSM2602_I2C=m
 CONFIG_SND_SOC_SSM4567=m
+CONFIG_SND_SOC_STA32X=m
 CONFIG_SND_SOC_STA350=m
 CONFIG_SND_SOC_TAS2552=m
 CONFIG_SND_SOC_TAS5086=m
@@ -5700,6 +5728,7 @@ CONFIG_HID_APPLE=m
 CONFIG_HID_APPLEIR=m
 CONFIG_HID_AUREAL=m
 CONFIG_HID_BELKIN=m
+CONFIG_HID_BETOP_FF=m
 CONFIG_HID_CHERRY=m
 CONFIG_HID_CHICONY=m
 CONFIG_HID_PRODIKEYS=m
@@ -5829,7 +5858,6 @@ CONFIG_USB_EHCI_PCI=y
 CONFIG_USB_EHCI_HCD_PLATFORM=y
 CONFIG_USB_OXU210HP_HCD=m
 CONFIG_USB_ISP116X_HCD=m
-CONFIG_USB_ISP1760_HCD=m
 CONFIG_USB_ISP1362_HCD=m
 CONFIG_USB_FUSBH200_HCD=m
 CONFIG_USB_FOTG210_HCD=m
@@ -5929,6 +5957,12 @@ CONFIG_USB_CHIPIDEA=m
 CONFIG_USB_CHIPIDEA_UDC=y
 CONFIG_USB_CHIPIDEA_HOST=y
 # CONFIG_USB_CHIPIDEA_DEBUG is not set
+CONFIG_USB_ISP1760=m
+CONFIG_USB_ISP1760_HCD=y
+CONFIG_USB_ISP1761_UDC=y
+# CONFIG_USB_ISP1760_HOST_ROLE is not set
+# CONFIG_USB_ISP1760_GADGET_ROLE is not set
+CONFIG_USB_ISP1760_DUAL_ROLE=y
 
 #
 # USB port drivers
@@ -6111,6 +6145,7 @@ CONFIG_USB_CONFIGFS_F_UAC1=y
 CONFIG_USB_CONFIGFS_F_UAC2=y
 CONFIG_USB_CONFIGFS_F_MIDI=y
 CONFIG_USB_CONFIGFS_F_HID=y
+CONFIG_USB_CONFIGFS_F_UVC=y
 CONFIG_USB_ZERO=m
 CONFIG_USB_AUDIO=m
 CONFIG_GADGET_UAC1=y
@@ -6163,8 +6198,6 @@ CONFIG_MMC_SDHCI_PCI=m
 CONFIG_MMC_RICOH_MMC=y
 CONFIG_MMC_SDHCI_ACPI=m
 CONFIG_MMC_SDHCI_PLTFM=m
-CONFIG_MMC_SDHCI_PXAV3=m
-CONFIG_MMC_SDHCI_PXAV2=m
 CONFIG_MMC_WBSD=m
 CONFIG_MMC_TIFM_SD=m
 CONFIG_MMC_SDRICOH_CS=m
@@ -6196,6 +6229,7 @@ CONFIG_MEMSTICK_REALTEK_PCI=m
 CONFIG_MEMSTICK_REALTEK_USB=m
 CONFIG_NEW_LEDS=y
 CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_CLASS_FLASH=m
 
 #
 # LED drivers
@@ -6333,6 +6367,7 @@ CONFIG_RTC_INTF_DEV=y
 #
 CONFIG_RTC_DRV_88PM860X=m
 CONFIG_RTC_DRV_88PM80X=m
+CONFIG_RTC_DRV_ABB5ZES3=m
 CONFIG_RTC_DRV_DS1307=m
 CONFIG_RTC_DRV_DS1374=m
 CONFIG_RTC_DRV_DS1374_WDT=y
@@ -6344,8 +6379,6 @@ CONFIG_RTC_DRV_MAX8907=m
 CONFIG_RTC_DRV_MAX8925=m
 CONFIG_RTC_DRV_MAX8998=m
 CONFIG_RTC_DRV_MAX8997=m
-CONFIG_RTC_DRV_MAX77686=m
-CONFIG_RTC_DRV_MAX77802=m
 CONFIG_RTC_DRV_RS5C372=m
 CONFIG_RTC_DRV_ISL1208=m
 CONFIG_RTC_DRV_ISL12022=m
@@ -6398,6 +6431,14 @@ CONFIG_RTC_DRV_VRTC=m
 CONFIG_RTC_DRV_DS1286=m
 CONFIG_RTC_DRV_DS1511=m
 CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1685_FAMILY=m
+CONFIG_RTC_DRV_DS1685=y
+# CONFIG_RTC_DRV_DS1689 is not set
+# CONFIG_RTC_DRV_DS17285 is not set
+# CONFIG_RTC_DRV_DS17485 is not set
+# CONFIG_RTC_DRV_DS17885 is not set
+# CONFIG_RTC_DS1685_PROC_REGS is not set
+# CONFIG_RTC_DS1685_SYSFS_REGS is not set
 CONFIG_RTC_DRV_DS1742=m
 CONFIG_RTC_DRV_DS2404=m
 CONFIG_RTC_DRV_DA9052=m
@@ -6478,6 +6519,7 @@ CONFIG_VIRTIO=y
 # Virtio drivers
 #
 CONFIG_VIRTIO_PCI=y
+CONFIG_VIRTIO_PCI_LEGACY=y
 CONFIG_VIRTIO_BALLOON=y
 CONFIG_VIRTIO_MMIO=y
 CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
@@ -6495,6 +6537,7 @@ CONFIG_HYPERV_BALLOON=m
 CONFIG_XEN_BALLOON=y
 CONFIG_XEN_SELFBALLOONING=y
 CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
+CONFIG_XEN_BALLOON_MEMORY_HOTPLUG_LIMIT=4
 CONFIG_XEN_SCRUB_PAGES=y
 CONFIG_XEN_DEV_EVTCHN=m
 CONFIG_XEN_BACKEND=y
@@ -6646,6 +6689,7 @@ CONFIG_COMEDI_KCOMEDILIB=m
 CONFIG_COMEDI_AMPLC_DIO200=m
 CONFIG_COMEDI_AMPLC_PC236=m
 CONFIG_COMEDI_DAS08=m
+CONFIG_COMEDI_ISADMA=m
 CONFIG_COMEDI_NI_LABPC=m
 CONFIG_COMEDI_NI_LABPC_ISADMA=m
 CONFIG_COMEDI_NI_TIO=m
@@ -6666,8 +6710,6 @@ CONFIG_R8723AU=m
 CONFIG_8723AU_AP_MODE=y
 CONFIG_8723AU_BT_COEXIST=y
 CONFIG_RTS5208=m
-CONFIG_LINE6_USB=m
-# CONFIG_LINE6_USB_IMPULSE_RESPONSE is not set
 CONFIG_VT6655=m
 CONFIG_VT6656=m
 
@@ -6768,6 +6810,7 @@ CONFIG_IIO_PERIODIC_RTC_TRIGGER=m
 CONFIG_IIO_SIMPLE_DUMMY=m
 # CONFIG_IIO_SIMPLE_DUMMY_EVENTS is not set
 # CONFIG_IIO_SIMPLE_DUMMY_BUFFER is not set
+CONFIG_FB_SM7XX=m
 CONFIG_FB_XGI=m
 CONFIG_FT1000=m
 CONFIG_FT1000_USB=m
@@ -6792,7 +6835,6 @@ CONFIG_SPEAKUP_SYNTH_SOFT=m
 CONFIG_SPEAKUP_SYNTH_SPKOUT=m
 CONFIG_SPEAKUP_SYNTH_TXPRT=m
 CONFIG_SPEAKUP_SYNTH_DUMMY=m
-CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
 CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
 CONFIG_STAGING_MEDIA=y
 CONFIG_I2C_BCM2048=m
@@ -6800,15 +6842,8 @@ CONFIG_DVB_CXD2099=m
 CONFIG_VIDEO_DT3155=m
 # CONFIG_DT3155_CCIR is not set
 CONFIG_DT3155_STREAMING=y
-CONFIG_VIDEO_TLG2300=m
 CONFIG_DVB_MN88472=m
 CONFIG_DVB_MN88473=m
-CONFIG_MEDIA_PARPORT_SUPPORT=y
-CONFIG_VIDEO_BWQCAM=m
-CONFIG_VIDEO_CQCAM=m
-CONFIG_VIDEO_PMS=m
-CONFIG_VIDEO_W9966=m
-CONFIG_VIDEO_SAA7191=m
 CONFIG_LIRC_STAGING=y
 CONFIG_LIRC_BT829=m
 CONFIG_LIRC_IMON=m
@@ -6847,6 +6882,44 @@ CONFIG_LNET_XPRT_IB=m
 CONFIG_DGNC=m
 CONFIG_DGAP=m
 CONFIG_GS_FPGABOOT=m
+CONFIG_FB_TFT=m
+CONFIG_FB_TFT_AGM1264K_FL=m
+CONFIG_FB_TFT_BD663474=m
+CONFIG_FB_TFT_HX8340BN=m
+CONFIG_FB_TFT_HX8347D=m
+CONFIG_FB_TFT_HX8353D=m
+CONFIG_FB_TFT_ILI9320=m
+CONFIG_FB_TFT_ILI9325=m
+CONFIG_FB_TFT_ILI9340=m
+CONFIG_FB_TFT_ILI9341=m
+CONFIG_FB_TFT_ILI9481=m
+CONFIG_FB_TFT_ILI9486=m
+CONFIG_FB_TFT_PCD8544=m
+CONFIG_FB_TFT_RA8875=m
+CONFIG_FB_TFT_S6D02A1=m
+CONFIG_FB_TFT_S6D1121=m
+CONFIG_FB_TFT_SSD1289=m
+CONFIG_FB_TFT_SSD1306=m
+CONFIG_FB_TFT_SSD1331=m
+CONFIG_FB_TFT_SSD1351=m
+CONFIG_FB_TFT_ST7735R=m
+CONFIG_FB_TFT_TINYLCD=m
+CONFIG_FB_TFT_TLS8204=m
+CONFIG_FB_TFT_UC1701=m
+CONFIG_FB_TFT_UPD161704=m
+CONFIG_FB_TFT_WATTEROTT=m
+CONFIG_FB_FLEX=m
+CONFIG_FB_TFT_FBTFT_DEVICE=m
+CONFIG_I2O=m
+CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
+CONFIG_I2O_EXT_ADAPTEC=y
+CONFIG_I2O_EXT_ADAPTEC_DMA64=y
+CONFIG_I2O_CONFIG=m
+# CONFIG_I2O_CONFIG_OLD_IOCTL is not set
+CONFIG_I2O_BUS=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_SCSI=m
+CONFIG_I2O_PROC=m
 CONFIG_X86_PLATFORM_DEVICES=y
 CONFIG_ACER_WMI=m
 CONFIG_ACERHDF=m
@@ -6916,14 +6989,12 @@ CONFIG_COMMON_CLK=y
 # Common Clock Framework
 #
 CONFIG_COMMON_CLK_WM831X=m
-CONFIG_COMMON_CLK_MAX_GEN=y
-CONFIG_COMMON_CLK_MAX77686=m
-CONFIG_COMMON_CLK_MAX77802=m
 CONFIG_COMMON_CLK_SI5351=m
 CONFIG_COMMON_CLK_S2MPS11=m
 CONFIG_CLK_TWL6040=m
 CONFIG_COMMON_CLK_PALMAS=m
 # CONFIG_COMMON_CLK_PXA is not set
+CONFIG_COMMON_CLK_CDCE706=m
 
 #
 # Hardware Spinlock drivers
@@ -6944,8 +7015,14 @@ CONFIG_DW_APB_TIMER=y
 # CONFIG_EM_TIMER_STI is not set
 CONFIG_MAILBOX=y
 CONFIG_PCC=y
+CONFIG_ALTERA_MBOX=m
 CONFIG_IOMMU_API=y
 CONFIG_IOMMU_SUPPORT=y
+
+#
+# Generic IOMMU Pagetable Support
+#
+CONFIG_IOMMU_IOVA=y
 CONFIG_DMAR_TABLE=y
 CONFIG_INTEL_IOMMU=y
 # CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
@@ -6978,6 +7055,7 @@ CONFIG_DEVFREQ_GOV_USERSPACE=y
 #
 # DEVFREQ Drivers
 #
+CONFIG_PM_DEVFREQ_EVENT=y
 CONFIG_EXTCON=y
 
 #
@@ -7013,6 +7091,9 @@ CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m
 CONFIG_KXSD9=m
 CONFIG_MMA8452=m
 CONFIG_KXCJK1013=m
+CONFIG_MMA9551_CORE=m
+CONFIG_MMA9551=m
+CONFIG_MMA9553=m
 
 #
 # Analog to digital converters
@@ -7028,6 +7109,7 @@ CONFIG_AD7887=m
 CONFIG_AD7923=m
 CONFIG_AD799X=m
 CONFIG_AXP288_ADC=m
+CONFIG_CC10001_ADC=m
 CONFIG_LP8788_ADC=m
 CONFIG_MAX1027=m
 CONFIG_MAX1363=m
@@ -7036,6 +7118,7 @@ CONFIG_MCP3422=m
 CONFIG_MEN_Z188_ADC=m
 CONFIG_NAU7802=m
 CONFIG_QCOM_SPMI_IADC=m
+CONFIG_QCOM_SPMI_VADC=m
 CONFIG_TI_ADC081C=m
 CONFIG_TI_ADC128S052=m
 CONFIG_TI_AM335X_ADC=m
@@ -7053,6 +7136,12 @@ CONFIG_AD8366=m
 #
 CONFIG_HID_SENSOR_IIO_COMMON=m
 CONFIG_HID_SENSOR_IIO_TRIGGER=m
+
+#
+# SSP Sensor Common
+#
+CONFIG_IIO_SSP_SENSORS_COMMONS=m
+CONFIG_IIO_SSP_SENSORHUB=m
 CONFIG_IIO_ST_SENSORS_I2C=m
 CONFIG_IIO_ST_SENSORS_SPI=m
 CONFIG_IIO_ST_SENSORS_CORE=m
@@ -7118,6 +7207,7 @@ CONFIG_SI7020=m
 #
 CONFIG_ADIS16400=m
 CONFIG_ADIS16480=m
+CONFIG_KMX61=m
 CONFIG_INV_MPU6050_IIO=m
 CONFIG_IIO_ADIS_LIB=m
 CONFIG_IIO_ADIS_LIB_BUFFER=y
@@ -7129,11 +7219,13 @@ CONFIG_ADJD_S311=m
 CONFIG_AL3320A=m
 CONFIG_APDS9300=m
 CONFIG_CM32181=m
+CONFIG_CM3232=m
 CONFIG_CM36651=m
 CONFIG_GP2AP020A00F=m
 CONFIG_ISL29125=m
 CONFIG_HID_SENSOR_ALS=m
 CONFIG_HID_SENSOR_PROX=m
+CONFIG_JSA1212=m
 CONFIG_SENSORS_LM3533=m
 CONFIG_LTR501=m
 CONFIG_TCS3414=m
@@ -7183,6 +7275,11 @@ CONFIG_T5403=m
 CONFIG_AS3935=m
 
 #
+# Proximity sensors
+#
+CONFIG_SX9500=m
+
+#
 # Temperature sensors
 #
 CONFIG_MLX90614=m
@@ -7316,6 +7413,7 @@ CONFIG_BTRFS_FS_POSIX_ACL=y
 # CONFIG_BTRFS_DEBUG is not set
 # CONFIG_BTRFS_ASSERT is not set
 CONFIG_NILFS2_FS=m
+CONFIG_FS_DAX=y
 CONFIG_FS_POSIX_ACL=y
 CONFIG_EXPORTFS=y
 CONFIG_FILE_LOCKING=y
@@ -7386,6 +7484,7 @@ CONFIG_TMPFS_XATTR=y
 CONFIG_HUGETLBFS=y
 CONFIG_HUGETLB_PAGE=y
 CONFIG_CONFIGFS_FS=m
+CONFIG_EFIVAR_FS=y
 CONFIG_MISC_FILESYSTEMS=y
 CONFIG_ADFS_FS=m
 # CONFIG_ADFS_FS_RW is not set
@@ -7450,6 +7549,7 @@ CONFIG_ROMFS_BACKED_BY_BLOCK=y
 CONFIG_ROMFS_ON_BLOCK=y
 CONFIG_PSTORE=y
 # CONFIG_PSTORE_CONSOLE is not set
+# CONFIG_PSTORE_PMSG is not set
 # CONFIG_PSTORE_FTRACE is not set
 CONFIG_PSTORE_RAM=m
 CONFIG_SYSV_FS=m
@@ -7464,7 +7564,7 @@ CONFIG_F2FS_FS_XATTR=y
 CONFIG_F2FS_FS_POSIX_ACL=y
 CONFIG_F2FS_FS_SECURITY=y
 # CONFIG_F2FS_CHECK_FS is not set
-CONFIG_EFIVAR_FS=y
+# CONFIG_F2FS_IO_TRACE is not set
 CONFIG_ORE=m
 CONFIG_NETWORK_FILESYSTEMS=y
 CONFIG_NFS_FS=m
@@ -7478,6 +7578,7 @@ CONFIG_NFS_V4_2=y
 CONFIG_PNFS_FILE_LAYOUT=m
 CONFIG_PNFS_BLOCK=m
 CONFIG_PNFS_OBJLAYOUT=m
+CONFIG_PNFS_FLEXFILE_LAYOUT=m
 CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
 CONFIG_NFS_V4_1_MIGRATION=y
 CONFIG_NFS_V4_SECURITY_LABEL=y
@@ -7490,6 +7591,7 @@ CONFIG_NFSD_V2_ACL=y
 CONFIG_NFSD_V3=y
 CONFIG_NFSD_V3_ACL=y
 CONFIG_NFSD_V4=y
+CONFIG_NFSD_PNFS=y
 CONFIG_NFSD_V4_SECURITY_LABEL=y
 # CONFIG_NFSD_FAULT_INJECTION is not set
 CONFIG_GRACE_PERIOD=m
@@ -7766,6 +7868,7 @@ CONFIG_INTERVAL_TREE_TEST=m
 CONFIG_PERCPU_TEST=m
 # CONFIG_ATOMIC64_SELFTEST is not set
 CONFIG_ASYNC_RAID6_TEST=m
+CONFIG_TEST_HEXDUMP=m
 CONFIG_TEST_STRING_HELPERS=m
 CONFIG_TEST_KSTRTOX=m
 # CONFIG_TEST_RHASHTABLE is not set
@@ -7825,7 +7928,6 @@ CONFIG_PERSISTENT_KEYRINGS=y
 CONFIG_BIG_KEYS=y
 CONFIG_TRUSTED_KEYS=y
 CONFIG_ENCRYPTED_KEYS=y
-CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY_DMESG_RESTRICT is not set
 CONFIG_SECURITY=y
 CONFIG_SECURITYFS=y
@@ -7844,6 +7946,7 @@ CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
 # CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
 CONFIG_SECURITY_SMACK=y
 # CONFIG_SECURITY_SMACK_BRINGUP is not set
+CONFIG_SECURITY_SMACK_NETFILTER=y
 CONFIG_SECURITY_TOMOYO=y
 CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
 CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
@@ -8018,6 +8121,7 @@ CONFIG_CRYPTO_DRBG=m
 CONFIG_CRYPTO_USER_API=m
 CONFIG_CRYPTO_USER_API_HASH=m
 CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_USER_API_RNG=m
 CONFIG_CRYPTO_HASH_INFO=y
 CONFIG_CRYPTO_HW=y
 CONFIG_CRYPTO_DEV_PADLOCK=y
@@ -8046,6 +8150,7 @@ CONFIG_KVM_ASYNC_PF=y
 CONFIG_HAVE_KVM_MSI=y
 CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
 CONFIG_KVM_VFIO=y
+CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
 CONFIG_VIRTUALIZATION=y
 CONFIG_KVM=m
 CONFIG_KVM_INTEL=m
@@ -8060,6 +8165,7 @@ CONFIG_BINARY_PRINTF=y
 #
 CONFIG_RAID6_PQ=m
 CONFIG_BITREVERSE=y
+# CONFIG_HAVE_ARCH_BITREVERSE is not set
 CONFIG_RATIONAL=y
 CONFIG_GENERIC_STRNCPY_FROM_USER=y
 CONFIG_GENERIC_STRNLEN_USER=y
diff --git a/gnu/packages/linux-libre-x86_64.conf b/gnu/packages/linux-libre-x86_64.conf
index cf4cd766c0..04cf66ea72 100644
--- a/gnu/packages/linux-libre-x86_64.conf
+++ b/gnu/packages/linux-libre-x86_64.conf
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/x86 3.19.0-gnu Kernel Configuration
+# Linux/x86 4.0.0-gnu Kernel Configuration
 #
 CONFIG_64BIT=y
 CONFIG_X86_64=y
@@ -131,6 +131,7 @@ CONFIG_TASK_IO_ACCOUNTING=y
 # RCU Subsystem
 #
 CONFIG_TREE_RCU=y
+CONFIG_SRCU=y
 # CONFIG_TASKS_RCU is not set
 CONFIG_RCU_STALL_COMMON=y
 CONFIG_CONTEXT_TRACKING=y
@@ -141,6 +142,7 @@ CONFIG_RCU_FANOUT_LEAF=16
 # CONFIG_RCU_FANOUT_EXACT is not set
 CONFIG_RCU_FAST_NO_HZ=y
 # CONFIG_TREE_RCU_TRACE is not set
+CONFIG_RCU_KTHREAD_PRIO=0
 CONFIG_RCU_NOCB_CPU=y
 # CONFIG_RCU_NOCB_CPU_NONE is not set
 # CONFIG_RCU_NOCB_CPU_ZERO is not set
@@ -192,7 +194,6 @@ CONFIG_RD_LZMA=y
 CONFIG_RD_XZ=y
 CONFIG_RD_LZO=y
 CONFIG_RD_LZ4=y
-CONFIG_INIT_FALLBACK=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
 CONFIG_SYSCTL=y
 CONFIG_ANON_INODES=y
@@ -312,11 +313,6 @@ CONFIG_MODULE_UNLOAD=y
 CONFIG_MODVERSIONS=y
 CONFIG_MODULE_SRCVERSION_ALL=y
 # CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_SIG_SHA1 is not set
-# CONFIG_MODULE_SIG_SHA224 is not set
-# CONFIG_MODULE_SIG_SHA256 is not set
-# CONFIG_MODULE_SIG_SHA384 is not set
-# CONFIG_MODULE_SIG_SHA512 is not set
 # CONFIG_MODULE_COMPRESS is not set
 CONFIG_STOP_MACHINE=y
 CONFIG_BLOCK=y
@@ -381,6 +377,7 @@ CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
 CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
 CONFIG_MUTEX_SPIN_ON_OWNER=y
 CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_LOCK_SPIN_ON_OWNER=y
 CONFIG_ARCH_USE_QUEUE_RWLOCK=y
 CONFIG_QUEUE_RWLOCK=y
 CONFIG_FREEZER=y
@@ -399,6 +396,7 @@ CONFIG_X86_NUMACHIP=y
 # CONFIG_X86_UV is not set
 # CONFIG_X86_GOLDFISH is not set
 CONFIG_X86_INTEL_LPSS=y
+CONFIG_X86_AMD_PLATFORM_DEVICE=y
 CONFIG_IOSF_MBI=m
 CONFIG_IOSF_MBI_DEBUG=y
 CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
@@ -539,6 +537,7 @@ CONFIG_ZPOOL=y
 CONFIG_ZBUD=y
 CONFIG_ZSMALLOC=y
 CONFIG_PGTABLE_MAPPING=y
+# CONFIG_ZSMALLOC_STAT is not set
 CONFIG_GENERIC_EARLY_IOREMAP=y
 CONFIG_X86_CHECK_BIOS_CORRUPTION=y
 CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
@@ -578,6 +577,8 @@ CONFIG_HOTPLUG_CPU=y
 # CONFIG_DEBUG_HOTPLUG_CPU0 is not set
 # CONFIG_COMPAT_VDSO is not set
 # CONFIG_CMDLINE_BOOL is not set
+CONFIG_HAVE_LIVEPATCH=y
+CONFIG_LIVEPATCH=y
 CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
 CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
 CONFIG_USE_PERCPU_NUMA_NODE_ID=y
@@ -633,6 +634,7 @@ CONFIG_ACPI_PCI_SLOT=y
 CONFIG_X86_PM_TIMER=y
 CONFIG_ACPI_CONTAINER=y
 CONFIG_ACPI_HOTPLUG_MEMORY=y
+CONFIG_ACPI_HOTPLUG_IOAPIC=y
 CONFIG_ACPI_SBS=m
 CONFIG_ACPI_HED=y
 # CONFIG_ACPI_CUSTOM_METHOD is not set
@@ -1255,7 +1257,6 @@ CONFIG_RDS_RDMA=m
 CONFIG_RDS_TCP=m
 # CONFIG_RDS_DEBUG is not set
 CONFIG_TIPC=m
-CONFIG_TIPC_PORTS=8191
 CONFIG_TIPC_MEDIA_IB=y
 CONFIG_ATM=m
 CONFIG_ATM_CLIP=m
@@ -1300,6 +1301,7 @@ CONFIG_LAPB=m
 CONFIG_PHONET=m
 CONFIG_6LOWPAN=m
 CONFIG_IEEE802154=m
+CONFIG_IEEE802154_SOCKET=m
 CONFIG_IEEE802154_6LOWPAN=m
 CONFIG_MAC802154=m
 CONFIG_NET_SCHED=y
@@ -1370,6 +1372,8 @@ CONFIG_NET_ACT_SIMP=m
 CONFIG_NET_ACT_SKBEDIT=m
 CONFIG_NET_ACT_CSUM=m
 CONFIG_NET_ACT_VLAN=m
+CONFIG_NET_ACT_BPF=m
+CONFIG_NET_ACT_CONNMARK=m
 # CONFIG_NET_CLS_IND is not set
 CONFIG_NET_SCH_FIFO=y
 CONFIG_DCB=y
@@ -1543,6 +1547,7 @@ CONFIG_BT_CMTP=m
 CONFIG_BT_HIDP=m
 CONFIG_BT_LE=y
 CONFIG_BT_6LOWPAN=m
+# CONFIG_BT_SELFTEST is not set
 
 #
 # Bluetooth device drivers
@@ -1810,6 +1815,7 @@ CONFIG_MTD_NAND_DOCG4=m
 CONFIG_MTD_NAND_CAFE=m
 CONFIG_MTD_NAND_NANDSIM=m
 CONFIG_MTD_NAND_PLATFORM=m
+CONFIG_MTD_NAND_HISI504=m
 CONFIG_MTD_ONENAND=m
 CONFIG_MTD_ONENAND_VERIFY_WRITE=y
 CONFIG_MTD_ONENAND_GENERIC=m
@@ -1901,7 +1907,7 @@ CONFIG_BLK_DEV_SX8=m
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=16
 CONFIG_BLK_DEV_RAM_SIZE=65536
-# CONFIG_BLK_DEV_XIP is not set
+CONFIG_BLK_DEV_RAM_DAX=y
 CONFIG_CDROM_PKTCDVD=m
 CONFIG_CDROM_PKTCDVD_BUFFERS=8
 # CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -2306,16 +2312,6 @@ CONFIG_FIREWIRE_OHCI=m
 CONFIG_FIREWIRE_SBP2=m
 CONFIG_FIREWIRE_NET=m
 CONFIG_FIREWIRE_NOSY=m
-CONFIG_I2O=m
-CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
-CONFIG_I2O_EXT_ADAPTEC=y
-CONFIG_I2O_EXT_ADAPTEC_DMA64=y
-CONFIG_I2O_CONFIG=m
-# CONFIG_I2O_CONFIG_OLD_IOCTL is not set
-CONFIG_I2O_BUS=m
-CONFIG_I2O_BLOCK=m
-CONFIG_I2O_SCSI=m
-CONFIG_I2O_PROC=m
 CONFIG_MACINTOSH_DRIVERS=y
 CONFIG_MAC_EMUMOUSEBTN=m
 CONFIG_NETDEVICES=y
@@ -2434,6 +2430,8 @@ CONFIG_NET_VENDOR_AMD=y
 CONFIG_AMD8111_ETH=m
 CONFIG_PCNET32=m
 CONFIG_PCMCIA_NMCLAN=m
+CONFIG_AMD_XGBE=m
+CONFIG_AMD_XGBE_DCB=y
 # CONFIG_NET_XGENE is not set
 CONFIG_NET_VENDOR_ARC=y
 CONFIG_NET_VENDOR_ATHEROS=y
@@ -2504,6 +2502,7 @@ CONFIG_IGB_DCA=y
 CONFIG_IGBVF=m
 CONFIG_IXGB=m
 CONFIG_IXGBE=m
+CONFIG_IXGBE_VXLAN=y
 CONFIG_IXGBE_HWMON=y
 CONFIG_IXGBE_DCA=y
 CONFIG_IXGBE_DCB=y
@@ -2610,6 +2609,7 @@ CONFIG_NIU=m
 CONFIG_NET_VENDOR_TEHUTI=y
 CONFIG_TEHUTI=m
 CONFIG_NET_VENDOR_TI=y
+CONFIG_TI_CPSW_ALE=m
 CONFIG_TLAN=m
 CONFIG_NET_VENDOR_VIA=y
 CONFIG_VIA_RHINE=m
@@ -2636,6 +2636,7 @@ CONFIG_PHYLIB=y
 #
 CONFIG_AT803X_PHY=m
 CONFIG_AMD_PHY=m
+CONFIG_AMD_XGBE_PHY=m
 CONFIG_MARVELL_PHY=m
 CONFIG_DAVICOM_PHY=m
 CONFIG_QSEMI_PHY=m
@@ -3182,6 +3183,7 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
 CONFIG_MOUSE_PS2_ELANTECH=y
 CONFIG_MOUSE_PS2_SENTELIC=y
 CONFIG_MOUSE_PS2_TOUCHKIT=y
+CONFIG_MOUSE_PS2_FOCALTECH=y
 CONFIG_MOUSE_SERIAL=m
 CONFIG_MOUSE_APPLETOUCH=m
 CONFIG_MOUSE_BCM5974=m
@@ -3316,6 +3318,7 @@ CONFIG_INPUT_AD714X_I2C=m
 CONFIG_INPUT_AD714X_SPI=m
 CONFIG_INPUT_ARIZONA_HAPTICS=m
 CONFIG_INPUT_BMA150=m
+CONFIG_INPUT_E3X0_BUTTON=m
 CONFIG_INPUT_PCSPKR=m
 CONFIG_INPUT_MAX77693_HAPTIC=m
 CONFIG_INPUT_MAX8925_ONKEY=m
@@ -3335,7 +3338,10 @@ CONFIG_INPUT_KXTJ9=m
 CONFIG_INPUT_POWERMATE=m
 CONFIG_INPUT_YEALINK=m
 CONFIG_INPUT_CM109=m
+CONFIG_INPUT_REGULATOR_HAPTIC=m
 CONFIG_INPUT_RETU_PWRBUTTON=m
+CONFIG_INPUT_TPS65218_PWRBUTTON=m
+CONFIG_INPUT_AXP20X_PEK=m
 CONFIG_INPUT_TWL4030_PWRBUTTON=m
 CONFIG_INPUT_TWL4030_VIBRA=m
 CONFIG_INPUT_TWL6040_VIBRA=m
@@ -3412,6 +3418,7 @@ CONFIG_N_HDLC=m
 CONFIG_N_GSM=m
 CONFIG_TRACE_ROUTER=m
 CONFIG_TRACE_SINK=m
+CONFIG_DEVMEM=y
 # CONFIG_DEVKMEM is not set
 
 #
@@ -3441,7 +3448,6 @@ CONFIG_SERIAL_8250_FINTEK=m
 CONFIG_SERIAL_KGDB_NMI=y
 CONFIG_SERIAL_MAX3100=m
 CONFIG_SERIAL_MAX310X=y
-CONFIG_SERIAL_MRST_MAX3110=m
 CONFIG_SERIAL_MFD_HSU=m
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
@@ -3511,8 +3517,9 @@ CONFIG_TCG_TIS_I2C_NUVOTON=m
 CONFIG_TCG_NSC=m
 CONFIG_TCG_ATMEL=m
 CONFIG_TCG_INFINEON=m
-CONFIG_TCG_ST33_I2C=m
+CONFIG_TCG_TIS_I2C_ST33=m
 CONFIG_TCG_XEN=m
+CONFIG_TCG_CRB=m
 CONFIG_TELCLOCK=m
 CONFIG_DEVPORT=y
 CONFIG_XILLYBUS=m
@@ -3525,7 +3532,7 @@ CONFIG_I2C=y
 CONFIG_ACPI_I2C_OPREGION=y
 CONFIG_I2C_BOARDINFO=y
 CONFIG_I2C_COMPAT=y
-CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_CHARDEV=y
 CONFIG_I2C_MUX=m
 
 #
@@ -3616,6 +3623,7 @@ CONFIG_SPI_MASTER=y
 CONFIG_SPI_ALTERA=m
 CONFIG_SPI_BITBANG=m
 CONFIG_SPI_BUTTERFLY=m
+CONFIG_SPI_DLN2=m
 CONFIG_SPI_GPIO=m
 CONFIG_SPI_LM70_LLP=m
 CONFIG_SPI_OC_TINY=m
@@ -3833,6 +3841,7 @@ CONFIG_CHARGER_LP8788=m
 CONFIG_CHARGER_GPIO=m
 CONFIG_CHARGER_MANAGER=y
 CONFIG_CHARGER_MAX14577=m
+CONFIG_CHARGER_MAX77693=m
 CONFIG_CHARGER_MAX8997=m
 CONFIG_CHARGER_MAX8998=m
 CONFIG_CHARGER_BQ2415X=m
@@ -3840,7 +3849,10 @@ CONFIG_CHARGER_BQ24190=m
 CONFIG_CHARGER_BQ24735=m
 CONFIG_CHARGER_SMB347=m
 CONFIG_CHARGER_TPS65090=m
+CONFIG_BATTERY_GAUGE_LTC2941=m
+CONFIG_BATTERY_RT5033=m
 CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_RESTART=y
 CONFIG_POWER_AVS=y
 CONFIG_HWMON=y
 CONFIG_HWMON_VID=m
@@ -4140,6 +4152,7 @@ CONFIG_MFD_DA9052_SPI=y
 CONFIG_MFD_DA9052_I2C=y
 CONFIG_MFD_DA9055=y
 CONFIG_MFD_DA9063=y
+CONFIG_MFD_DA9150=m
 CONFIG_MFD_DLN2=m
 CONFIG_MFD_MC13XXX=m
 CONFIG_MFD_MC13XXX_SPI=m
@@ -4155,7 +4168,6 @@ CONFIG_MFD_88PM800=m
 CONFIG_MFD_88PM805=m
 CONFIG_MFD_88PM860X=y
 CONFIG_MFD_MAX14577=y
-CONFIG_MFD_MAX77686=y
 CONFIG_MFD_MAX77693=y
 CONFIG_MFD_MAX8907=m
 CONFIG_MFD_MAX8925=y
@@ -4171,6 +4183,7 @@ CONFIG_PCF50633_GPIO=m
 CONFIG_UCB1400_CORE=m
 CONFIG_MFD_RDC321X=m
 CONFIG_MFD_RTSX_PCI=m
+CONFIG_MFD_RT5033=m
 CONFIG_MFD_RTSX_USB=m
 CONFIG_MFD_RC5T583=y
 CONFIG_MFD_RN5T618=m
@@ -4262,9 +4275,7 @@ CONFIG_REGULATOR_MAX8952=m
 CONFIG_REGULATOR_MAX8973=m
 CONFIG_REGULATOR_MAX8997=m
 CONFIG_REGULATOR_MAX8998=m
-CONFIG_REGULATOR_MAX77686=m
 CONFIG_REGULATOR_MAX77693=m
-CONFIG_REGULATOR_MAX77802=m
 CONFIG_REGULATOR_MC13XXX_CORE=m
 CONFIG_REGULATOR_MC13783=m
 CONFIG_REGULATOR_MC13892=m
@@ -4275,6 +4286,7 @@ CONFIG_REGULATOR_PFUZE100=m
 CONFIG_REGULATOR_PWM=m
 CONFIG_REGULATOR_RC5T583=m
 CONFIG_REGULATOR_RN5T618=m
+CONFIG_REGULATOR_RT5033=m
 CONFIG_REGULATOR_S2MPA01=m
 CONFIG_REGULATOR_S2MPS11=m
 CONFIG_REGULATOR_S5M8767=m
@@ -4415,6 +4427,7 @@ CONFIG_USB_GSPCA_STV0680=m
 CONFIG_USB_GSPCA_SUNPLUS=m
 CONFIG_USB_GSPCA_T613=m
 CONFIG_USB_GSPCA_TOPRO=m
+CONFIG_USB_GSPCA_TOUPTEK=m
 CONFIG_USB_GSPCA_TV8532=m
 CONFIG_USB_GSPCA_VC032X=m
 CONFIG_USB_GSPCA_VICAM=m
@@ -4655,7 +4668,6 @@ CONFIG_MEDIA_COMMON_OPTIONS=y
 # common driver options
 #
 CONFIG_VIDEO_CX2341X=m
-CONFIG_VIDEO_BTCX=m
 CONFIG_VIDEO_TVEEPROM=m
 CONFIG_CYPRESS_FIRMWARE=m
 CONFIG_DVB_B2C2_FLEXCOP=m
@@ -4966,6 +4978,7 @@ CONFIG_VGA_SWITCHEROO=y
 # Direct Rendering Manager
 #
 CONFIG_DRM=m
+CONFIG_DRM_MIPI_DSI=y
 CONFIG_DRM_KMS_HELPER=m
 CONFIG_DRM_KMS_FB_HELPER=y
 CONFIG_DRM_LOAD_EDID_FIRMWARE=y
@@ -4978,7 +4991,6 @@ CONFIG_DRM_I2C_ADV7511=m
 CONFIG_DRM_I2C_CH7006=m
 CONFIG_DRM_I2C_SIL164=m
 CONFIG_DRM_I2C_NXP_TDA998X=m
-CONFIG_DRM_PTN3460=m
 CONFIG_DRM_TDFX=m
 CONFIG_DRM_R128=m
 CONFIG_DRM_RADEON=m
@@ -5007,6 +5019,11 @@ CONFIG_DRM_AST=m
 CONFIG_DRM_CIRRUS_QEMU=m
 CONFIG_DRM_QXL=m
 # CONFIG_DRM_BOCHS is not set
+CONFIG_DRM_PANEL=y
+
+#
+# Display Panels
+#
 CONFIG_HSA_AMD=m
 
 #
@@ -5171,6 +5188,8 @@ CONFIG_HDMI=y
 CONFIG_VGA_CONSOLE=y
 # CONFIG_VGACON_SOFT_SCROLLBACK is not set
 CONFIG_DUMMY_CONSOLE=y
+CONFIG_DUMMY_CONSOLE_COLUMNS=80
+CONFIG_DUMMY_CONSOLE_ROWS=25
 CONFIG_FRAMEBUFFER_CONSOLE=y
 CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
 CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
@@ -5341,6 +5360,11 @@ CONFIG_SND_USB_US122L=m
 CONFIG_SND_USB_6FIRE=m
 CONFIG_SND_USB_HIFACE=m
 CONFIG_SND_BCD2000=m
+CONFIG_SND_USB_LINE6=m
+CONFIG_SND_USB_POD=m
+CONFIG_SND_USB_PODHD=m
+CONFIG_SND_USB_TONEPORT=m
+CONFIG_SND_USB_VARIAX=m
 CONFIG_SND_FIREWIRE=y
 CONFIG_SND_FIREWIRE_LIB=m
 CONFIG_SND_DICE=m
@@ -5383,6 +5407,8 @@ CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH=m
 CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
 CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
 CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
+CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
+CONFIG_SND_SOC_XTFPGA_I2S=m
 CONFIG_SND_SOC_I2C_AND_SPI=m
 
 #
@@ -5419,6 +5445,7 @@ CONFIG_SND_SOC_RL6231=m
 CONFIG_SND_SOC_RT286=m
 CONFIG_SND_SOC_RT5631=m
 CONFIG_SND_SOC_RT5640=m
+CONFIG_SND_SOC_RT5645=m
 CONFIG_SND_SOC_RT5670=m
 # CONFIG_SND_SOC_RT5677_SPI is not set
 CONFIG_SND_SOC_SGTL5000=m
@@ -5431,6 +5458,7 @@ CONFIG_SND_SOC_SSM2602=m
 CONFIG_SND_SOC_SSM2602_SPI=m
 CONFIG_SND_SOC_SSM2602_I2C=m
 CONFIG_SND_SOC_SSM4567=m
+CONFIG_SND_SOC_STA32X=m
 CONFIG_SND_SOC_STA350=m
 CONFIG_SND_SOC_TAS2552=m
 CONFIG_SND_SOC_TAS5086=m
@@ -5481,6 +5509,7 @@ CONFIG_HID_APPLE=m
 CONFIG_HID_APPLEIR=m
 CONFIG_HID_AUREAL=m
 CONFIG_HID_BELKIN=m
+CONFIG_HID_BETOP_FF=m
 CONFIG_HID_CHERRY=m
 CONFIG_HID_CHICONY=m
 CONFIG_HID_PRODIKEYS=m
@@ -5610,7 +5639,6 @@ CONFIG_USB_EHCI_PCI=y
 CONFIG_USB_EHCI_HCD_PLATFORM=y
 CONFIG_USB_OXU210HP_HCD=m
 CONFIG_USB_ISP116X_HCD=m
-CONFIG_USB_ISP1760_HCD=m
 CONFIG_USB_ISP1362_HCD=m
 CONFIG_USB_FUSBH200_HCD=m
 CONFIG_USB_FOTG210_HCD=m
@@ -5710,6 +5738,12 @@ CONFIG_USB_CHIPIDEA=m
 CONFIG_USB_CHIPIDEA_UDC=y
 CONFIG_USB_CHIPIDEA_HOST=y
 # CONFIG_USB_CHIPIDEA_DEBUG is not set
+CONFIG_USB_ISP1760=m
+CONFIG_USB_ISP1760_HCD=y
+CONFIG_USB_ISP1761_UDC=y
+# CONFIG_USB_ISP1760_HOST_ROLE is not set
+# CONFIG_USB_ISP1760_GADGET_ROLE is not set
+CONFIG_USB_ISP1760_DUAL_ROLE=y
 
 #
 # USB port drivers
@@ -5892,6 +5926,7 @@ CONFIG_USB_CONFIGFS_F_UAC1=y
 CONFIG_USB_CONFIGFS_F_UAC2=y
 CONFIG_USB_CONFIGFS_F_MIDI=y
 CONFIG_USB_CONFIGFS_F_HID=y
+CONFIG_USB_CONFIGFS_F_UVC=y
 CONFIG_USB_ZERO=m
 CONFIG_USB_AUDIO=m
 CONFIG_GADGET_UAC1=y
@@ -5944,8 +5979,6 @@ CONFIG_MMC_SDHCI_PCI=m
 CONFIG_MMC_RICOH_MMC=y
 CONFIG_MMC_SDHCI_ACPI=m
 CONFIG_MMC_SDHCI_PLTFM=m
-CONFIG_MMC_SDHCI_PXAV3=m
-CONFIG_MMC_SDHCI_PXAV2=m
 CONFIG_MMC_WBSD=m
 CONFIG_MMC_TIFM_SD=m
 CONFIG_MMC_SPI=m
@@ -5978,6 +6011,7 @@ CONFIG_MEMSTICK_REALTEK_PCI=m
 CONFIG_MEMSTICK_REALTEK_USB=m
 CONFIG_NEW_LEDS=y
 CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_CLASS_FLASH=m
 
 #
 # LED drivers
@@ -6111,6 +6145,7 @@ CONFIG_RTC_INTF_DEV=y
 #
 CONFIG_RTC_DRV_88PM860X=m
 CONFIG_RTC_DRV_88PM80X=m
+CONFIG_RTC_DRV_ABB5ZES3=m
 CONFIG_RTC_DRV_DS1307=m
 CONFIG_RTC_DRV_DS1374=m
 CONFIG_RTC_DRV_DS1374_WDT=y
@@ -6122,8 +6157,6 @@ CONFIG_RTC_DRV_MAX8907=m
 CONFIG_RTC_DRV_MAX8925=m
 CONFIG_RTC_DRV_MAX8998=m
 CONFIG_RTC_DRV_MAX8997=m
-CONFIG_RTC_DRV_MAX77686=m
-CONFIG_RTC_DRV_MAX77802=m
 CONFIG_RTC_DRV_RS5C372=m
 CONFIG_RTC_DRV_ISL1208=m
 CONFIG_RTC_DRV_ISL12022=m
@@ -6175,6 +6208,14 @@ CONFIG_RTC_DRV_CMOS=y
 CONFIG_RTC_DRV_DS1286=m
 CONFIG_RTC_DRV_DS1511=m
 CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1685_FAMILY=m
+CONFIG_RTC_DRV_DS1685=y
+# CONFIG_RTC_DRV_DS1689 is not set
+# CONFIG_RTC_DRV_DS17285 is not set
+# CONFIG_RTC_DRV_DS17485 is not set
+# CONFIG_RTC_DRV_DS17885 is not set
+# CONFIG_RTC_DS1685_PROC_REGS is not set
+# CONFIG_RTC_DS1685_SYSFS_REGS is not set
 CONFIG_RTC_DRV_DS1742=m
 CONFIG_RTC_DRV_DS2404=m
 CONFIG_RTC_DRV_DA9052=m
@@ -6254,6 +6295,7 @@ CONFIG_VIRTIO=y
 # Virtio drivers
 #
 CONFIG_VIRTIO_PCI=y
+CONFIG_VIRTIO_PCI_LEGACY=y
 CONFIG_VIRTIO_BALLOON=y
 CONFIG_VIRTIO_MMIO=y
 CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
@@ -6271,6 +6313,7 @@ CONFIG_HYPERV_BALLOON=m
 CONFIG_XEN_BALLOON=y
 CONFIG_XEN_SELFBALLOONING=y
 CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
+CONFIG_XEN_BALLOON_MEMORY_HOTPLUG_LIMIT=512
 CONFIG_XEN_SCRUB_PAGES=y
 CONFIG_XEN_DEV_EVTCHN=m
 CONFIG_XEN_BACKEND=y
@@ -6423,6 +6466,7 @@ CONFIG_COMEDI_KCOMEDILIB=m
 CONFIG_COMEDI_AMPLC_DIO200=m
 CONFIG_COMEDI_AMPLC_PC236=m
 CONFIG_COMEDI_DAS08=m
+CONFIG_COMEDI_ISADMA=m
 CONFIG_COMEDI_NI_LABPC=m
 CONFIG_COMEDI_NI_LABPC_ISADMA=m
 CONFIG_COMEDI_NI_TIO=m
@@ -6443,8 +6487,6 @@ CONFIG_R8723AU=m
 CONFIG_8723AU_AP_MODE=y
 CONFIG_8723AU_BT_COEXIST=y
 CONFIG_RTS5208=m
-CONFIG_LINE6_USB=m
-# CONFIG_LINE6_USB_IMPULSE_RESPONSE is not set
 CONFIG_VT6655=m
 CONFIG_VT6656=m
 
@@ -6545,6 +6587,7 @@ CONFIG_IIO_PERIODIC_RTC_TRIGGER=m
 CONFIG_IIO_SIMPLE_DUMMY=m
 # CONFIG_IIO_SIMPLE_DUMMY_EVENTS is not set
 # CONFIG_IIO_SIMPLE_DUMMY_BUFFER is not set
+CONFIG_FB_SM7XX=m
 CONFIG_FB_XGI=m
 CONFIG_FT1000=m
 CONFIG_FT1000_USB=m
@@ -6565,7 +6608,6 @@ CONFIG_SPEAKUP_SYNTH_SOFT=m
 CONFIG_SPEAKUP_SYNTH_SPKOUT=m
 CONFIG_SPEAKUP_SYNTH_TXPRT=m
 CONFIG_SPEAKUP_SYNTH_DUMMY=m
-CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
 CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
 CONFIG_STAGING_MEDIA=y
 CONFIG_I2C_BCM2048=m
@@ -6573,14 +6615,8 @@ CONFIG_DVB_CXD2099=m
 CONFIG_VIDEO_DT3155=m
 # CONFIG_DT3155_CCIR is not set
 CONFIG_DT3155_STREAMING=y
-CONFIG_VIDEO_TLG2300=m
 CONFIG_DVB_MN88472=m
 CONFIG_DVB_MN88473=m
-CONFIG_MEDIA_PARPORT_SUPPORT=y
-CONFIG_VIDEO_BWQCAM=m
-CONFIG_VIDEO_CQCAM=m
-CONFIG_VIDEO_W9966=m
-CONFIG_VIDEO_SAA7191=m
 CONFIG_LIRC_STAGING=y
 CONFIG_LIRC_BT829=m
 CONFIG_LIRC_IMON=m
@@ -6624,10 +6660,47 @@ CONFIG_UNISYSSPAR=y
 CONFIG_UNISYS_VISORUTIL=m
 CONFIG_UNISYS_VISORCHANNEL=m
 CONFIG_UNISYS_VISORCHIPSET=m
-CONFIG_UNISYS_CHANNELSTUB=m
 CONFIG_UNISYS_UISLIB=m
 CONFIG_UNISYS_VIRTPCI=m
 CONFIG_UNISYS_VIRTHBA=m
+CONFIG_FB_TFT=m
+CONFIG_FB_TFT_AGM1264K_FL=m
+CONFIG_FB_TFT_BD663474=m
+CONFIG_FB_TFT_HX8340BN=m
+CONFIG_FB_TFT_HX8347D=m
+CONFIG_FB_TFT_HX8353D=m
+CONFIG_FB_TFT_ILI9320=m
+CONFIG_FB_TFT_ILI9325=m
+CONFIG_FB_TFT_ILI9340=m
+CONFIG_FB_TFT_ILI9341=m
+CONFIG_FB_TFT_ILI9481=m
+CONFIG_FB_TFT_ILI9486=m
+CONFIG_FB_TFT_PCD8544=m
+CONFIG_FB_TFT_RA8875=m
+CONFIG_FB_TFT_S6D02A1=m
+CONFIG_FB_TFT_S6D1121=m
+CONFIG_FB_TFT_SSD1289=m
+CONFIG_FB_TFT_SSD1306=m
+CONFIG_FB_TFT_SSD1331=m
+CONFIG_FB_TFT_SSD1351=m
+CONFIG_FB_TFT_ST7735R=m
+CONFIG_FB_TFT_TINYLCD=m
+CONFIG_FB_TFT_TLS8204=m
+CONFIG_FB_TFT_UC1701=m
+CONFIG_FB_TFT_UPD161704=m
+CONFIG_FB_TFT_WATTEROTT=m
+CONFIG_FB_FLEX=m
+CONFIG_FB_TFT_FBTFT_DEVICE=m
+CONFIG_I2O=m
+CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
+CONFIG_I2O_EXT_ADAPTEC=y
+CONFIG_I2O_EXT_ADAPTEC_DMA64=y
+CONFIG_I2O_CONFIG=m
+# CONFIG_I2O_CONFIG_OLD_IOCTL is not set
+CONFIG_I2O_BUS=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_SCSI=m
+CONFIG_I2O_PROC=m
 CONFIG_X86_PLATFORM_DEVICES=y
 CONFIG_ACER_WMI=m
 CONFIG_ACERHDF=m
@@ -6691,14 +6764,12 @@ CONFIG_COMMON_CLK=y
 # Common Clock Framework
 #
 CONFIG_COMMON_CLK_WM831X=m
-CONFIG_COMMON_CLK_MAX_GEN=y
-CONFIG_COMMON_CLK_MAX77686=m
-CONFIG_COMMON_CLK_MAX77802=m
 CONFIG_COMMON_CLK_SI5351=m
 CONFIG_COMMON_CLK_S2MPS11=m
 CONFIG_CLK_TWL6040=m
 CONFIG_COMMON_CLK_PALMAS=m
 # CONFIG_COMMON_CLK_PXA is not set
+CONFIG_COMMON_CLK_CDCE706=m
 
 #
 # Hardware Spinlock drivers
@@ -6717,8 +6788,14 @@ CONFIG_CLKBLD_I8253=y
 # CONFIG_EM_TIMER_STI is not set
 CONFIG_MAILBOX=y
 CONFIG_PCC=y
+CONFIG_ALTERA_MBOX=m
 CONFIG_IOMMU_API=y
 CONFIG_IOMMU_SUPPORT=y
+
+#
+# Generic IOMMU Pagetable Support
+#
+CONFIG_IOMMU_IOVA=y
 CONFIG_AMD_IOMMU=y
 CONFIG_AMD_IOMMU_STATS=y
 CONFIG_AMD_IOMMU_V2=m
@@ -6755,6 +6832,7 @@ CONFIG_DEVFREQ_GOV_USERSPACE=y
 #
 # DEVFREQ Drivers
 #
+CONFIG_PM_DEVFREQ_EVENT=y
 CONFIG_EXTCON=y
 
 #
@@ -6790,6 +6868,9 @@ CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m
 CONFIG_KXSD9=m
 CONFIG_MMA8452=m
 CONFIG_KXCJK1013=m
+CONFIG_MMA9551_CORE=m
+CONFIG_MMA9551=m
+CONFIG_MMA9553=m
 
 #
 # Analog to digital converters
@@ -6805,6 +6886,7 @@ CONFIG_AD7887=m
 CONFIG_AD7923=m
 CONFIG_AD799X=m
 CONFIG_AXP288_ADC=m
+CONFIG_CC10001_ADC=m
 CONFIG_LP8788_ADC=m
 CONFIG_MAX1027=m
 CONFIG_MAX1363=m
@@ -6813,6 +6895,7 @@ CONFIG_MCP3422=m
 CONFIG_MEN_Z188_ADC=m
 CONFIG_NAU7802=m
 CONFIG_QCOM_SPMI_IADC=m
+CONFIG_QCOM_SPMI_VADC=m
 CONFIG_TI_ADC081C=m
 CONFIG_TI_ADC128S052=m
 CONFIG_TI_AM335X_ADC=m
@@ -6830,6 +6913,12 @@ CONFIG_AD8366=m
 #
 CONFIG_HID_SENSOR_IIO_COMMON=m
 CONFIG_HID_SENSOR_IIO_TRIGGER=m
+
+#
+# SSP Sensor Common
+#
+CONFIG_IIO_SSP_SENSORS_COMMONS=m
+CONFIG_IIO_SSP_SENSORHUB=m
 CONFIG_IIO_ST_SENSORS_I2C=m
 CONFIG_IIO_ST_SENSORS_SPI=m
 CONFIG_IIO_ST_SENSORS_CORE=m
@@ -6895,6 +6984,7 @@ CONFIG_SI7020=m
 #
 CONFIG_ADIS16400=m
 CONFIG_ADIS16480=m
+CONFIG_KMX61=m
 CONFIG_INV_MPU6050_IIO=m
 CONFIG_IIO_ADIS_LIB=m
 CONFIG_IIO_ADIS_LIB_BUFFER=y
@@ -6906,11 +6996,13 @@ CONFIG_ADJD_S311=m
 CONFIG_AL3320A=m
 CONFIG_APDS9300=m
 CONFIG_CM32181=m
+CONFIG_CM3232=m
 CONFIG_CM36651=m
 CONFIG_GP2AP020A00F=m
 CONFIG_ISL29125=m
 CONFIG_HID_SENSOR_ALS=m
 CONFIG_HID_SENSOR_PROX=m
+CONFIG_JSA1212=m
 CONFIG_SENSORS_LM3533=m
 CONFIG_LTR501=m
 CONFIG_TCS3414=m
@@ -6960,6 +7052,11 @@ CONFIG_T5403=m
 CONFIG_AS3935=m
 
 #
+# Proximity sensors
+#
+CONFIG_SX9500=m
+
+#
 # Temperature sensors
 #
 CONFIG_MLX90614=m
@@ -7093,6 +7190,7 @@ CONFIG_BTRFS_FS_POSIX_ACL=y
 # CONFIG_BTRFS_DEBUG is not set
 # CONFIG_BTRFS_ASSERT is not set
 CONFIG_NILFS2_FS=m
+CONFIG_FS_DAX=y
 CONFIG_FS_POSIX_ACL=y
 CONFIG_EXPORTFS=y
 CONFIG_FILE_LOCKING=y
@@ -7164,6 +7262,7 @@ CONFIG_TMPFS_XATTR=y
 CONFIG_HUGETLBFS=y
 CONFIG_HUGETLB_PAGE=y
 CONFIG_CONFIGFS_FS=m
+CONFIG_EFIVAR_FS=y
 CONFIG_MISC_FILESYSTEMS=y
 CONFIG_ADFS_FS=m
 # CONFIG_ADFS_FS_RW is not set
@@ -7228,6 +7327,7 @@ CONFIG_ROMFS_BACKED_BY_BLOCK=y
 CONFIG_ROMFS_ON_BLOCK=y
 CONFIG_PSTORE=y
 # CONFIG_PSTORE_CONSOLE is not set
+# CONFIG_PSTORE_PMSG is not set
 # CONFIG_PSTORE_FTRACE is not set
 CONFIG_PSTORE_RAM=m
 CONFIG_SYSV_FS=m
@@ -7242,7 +7342,7 @@ CONFIG_F2FS_FS_XATTR=y
 CONFIG_F2FS_FS_POSIX_ACL=y
 CONFIG_F2FS_FS_SECURITY=y
 # CONFIG_F2FS_CHECK_FS is not set
-CONFIG_EFIVAR_FS=y
+# CONFIG_F2FS_IO_TRACE is not set
 CONFIG_ORE=m
 CONFIG_NETWORK_FILESYSTEMS=y
 CONFIG_NFS_FS=m
@@ -7256,6 +7356,7 @@ CONFIG_NFS_V4_2=y
 CONFIG_PNFS_FILE_LAYOUT=m
 CONFIG_PNFS_BLOCK=m
 CONFIG_PNFS_OBJLAYOUT=m
+CONFIG_PNFS_FLEXFILE_LAYOUT=m
 CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
 CONFIG_NFS_V4_1_MIGRATION=y
 CONFIG_NFS_V4_SECURITY_LABEL=y
@@ -7268,6 +7369,7 @@ CONFIG_NFSD_V2_ACL=y
 CONFIG_NFSD_V3=y
 CONFIG_NFSD_V3_ACL=y
 CONFIG_NFSD_V4=y
+CONFIG_NFSD_PNFS=y
 CONFIG_NFSD_V4_SECURITY_LABEL=y
 # CONFIG_NFSD_FAULT_INJECTION is not set
 CONFIG_GRACE_PERIOD=m
@@ -7423,6 +7525,9 @@ CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m
 CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
 # CONFIG_DEBUG_STACKOVERFLOW is not set
 CONFIG_HAVE_ARCH_KMEMCHECK=y
+CONFIG_HAVE_ARCH_KASAN=y
+# CONFIG_KASAN is not set
+CONFIG_KASAN_SHADOW_OFFSET=0xdffffc0000000000
 # CONFIG_DEBUG_SHIRQ is not set
 
 #
@@ -7544,6 +7649,7 @@ CONFIG_INTERVAL_TREE_TEST=m
 CONFIG_PERCPU_TEST=m
 # CONFIG_ATOMIC64_SELFTEST is not set
 CONFIG_ASYNC_RAID6_TEST=m
+CONFIG_TEST_HEXDUMP=m
 CONFIG_TEST_STRING_HELPERS=m
 CONFIG_TEST_KSTRTOX=m
 # CONFIG_TEST_RHASHTABLE is not set
@@ -7603,7 +7709,6 @@ CONFIG_PERSISTENT_KEYRINGS=y
 CONFIG_BIG_KEYS=y
 CONFIG_TRUSTED_KEYS=y
 CONFIG_ENCRYPTED_KEYS=y
-CONFIG_KEYS_DEBUG_PROC_KEYS=y
 # CONFIG_SECURITY_DMESG_RESTRICT is not set
 CONFIG_SECURITY=y
 CONFIG_SECURITYFS=y
@@ -7622,6 +7727,7 @@ CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
 # CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
 CONFIG_SECURITY_SMACK=y
 # CONFIG_SECURITY_SMACK_BRINGUP is not set
+CONFIG_SECURITY_SMACK_NETFILTER=y
 CONFIG_SECURITY_TOMOYO=y
 CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
 CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
@@ -7813,6 +7919,7 @@ CONFIG_CRYPTO_DRBG=m
 CONFIG_CRYPTO_USER_API=m
 CONFIG_CRYPTO_USER_API_HASH=m
 CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_USER_API_RNG=m
 CONFIG_CRYPTO_HASH_INFO=y
 CONFIG_CRYPTO_HW=y
 CONFIG_CRYPTO_DEV_PADLOCK=y
@@ -7840,6 +7947,8 @@ CONFIG_KVM_ASYNC_PF=y
 CONFIG_HAVE_KVM_MSI=y
 CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
 CONFIG_KVM_VFIO=y
+CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
+CONFIG_KVM_COMPAT=y
 CONFIG_VIRTUALIZATION=y
 CONFIG_KVM=m
 CONFIG_KVM_INTEL=m
@@ -7853,6 +7962,7 @@ CONFIG_BINARY_PRINTF=y
 #
 CONFIG_RAID6_PQ=m
 CONFIG_BITREVERSE=y
+# CONFIG_HAVE_ARCH_BITREVERSE is not set
 CONFIG_RATIONAL=y
 CONFIG_GENERIC_STRNCPY_FROM_USER=y
 CONFIG_GENERIC_STRNLEN_USER=y
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 4a0f61ef22..101982114c 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -198,7 +198,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM."
      #f)))
 
 (define-public linux-libre
-  (let* ((version "3.19.3")
+  (let* ((version "4.0")
          (build-phase
           '(lambda* (#:key system inputs #:allow-other-keys #:rest args)
              ;; Apply the neat patch.
@@ -271,10 +271,9 @@ for SYSTEM, or #f if there is no configuration for SYSTEM."
              (uri (linux-libre-urls version))
              (sha256
               (base32
-               "13nq0wzkjy7hrhnnvxlwzs1awlqd81vzriqddjn6s9ma3fzj44bn"))
+               "12nkzn1n4si2zcp10b645qri83m2y7iwp29vs2rjmy612azdab8f"))
              (patches
-              (list (search-patch "linux-libre-libreboot-fix.patch")
-                    (search-patch "linux-libre-vblank-fix.patch")))))
+              (list (search-patch "linux-libre-libreboot-fix.patch")))))
     (build-system gnu-build-system)
     (native-inputs `(("perl" ,perl)
                      ("bc" ,bc)
@@ -2091,3 +2090,45 @@ the 1394 Trade Assocation.  AV/C stands for Audio/Video Control.")
      "The libiec61883 library provides a higher level API for streaming DV,
 MPEG-2 and audio over Linux IEEE 1394.")
     (license lgpl2.1+)))
+
+(define-public mdadm
+  (package
+    (name "mdadm")
+    (version "3.3.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://kernel.org/linux/utils/raid/mdadm/mdadm-"
+                    version ".tar.xz"))
+              (sha256
+               (base32
+                "132vdvh3myjgcjn6i9w90ck16ddjxjcszklzkyvr4f5ifqd7wfhg"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("udev" ,eudev)))
+    (arguments
+     `(#:make-flags (let ((out (assoc-ref %outputs "out")))
+                      (list "INSTALL=install"
+                            "CHECK_RUN_DIR=0"
+                            ;; TODO: tell it where to find 'sendmail'
+                            ;; (string-append "MAILCMD=" <???> "/sbin/sendmail")
+                            (string-append "BINDIR=" out "/sbin")
+                            (string-append "MANDIR=" out "/share/man")
+                            (string-append "UDEVDIR=" out "/lib/udev")))
+       #:phases (alist-cons-before
+                 'build 'patch-program-paths
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   (let ((coreutils (assoc-ref inputs "coreutils")))
+                     (substitute* "udev-md-raid-arrays.rules"
+                       (("/usr/bin/(readlink|basename)" all program)
+                        (string-append coreutils "/bin/" program)))))
+                 (alist-delete 'configure %standard-phases))
+       ;;tests must be done as root
+       #:tests? #f))
+    (home-page "http://neil.brown.name/blog/mdadm")
+    (synopsis "Tool for managing Linux Software RAID arrays")
+    (description
+     "mdadm is a tool for managing Linux Software RAID arrays.  It can create,
+assemble, report on, and monitor arrays.  It can also move spares between raid
+arrays when needed.")
+    (license gpl2+)))
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 6d20b182cd..752f0a9833 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -309,7 +309,7 @@ repository and Maildir/IMAP as LOCAL repository.")
 (define-public mu
   (package
     (name "mu")
-    (version "0.9.11")
+    (version "0.9.12")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/djcb/mu/archive/v"
@@ -317,7 +317,7 @@ repository and Maildir/IMAP as LOCAL repository.")
               (file-name (string-append "mu-" version ".tar.gz"))
               (sha256
                (base32
-                "01n1lzq4pfsm5pn932p948d1z55yqc7kkm1ifjxjchb3k8lr66fh"))))
+                "1bxryacmas2llj68m2dv8dr1vwx8f5k2i2azh69jajkpqx7i4wdq"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
diff --git a/gnu/packages/patches/emacs-exec-path.patch b/gnu/packages/patches/emacs-exec-path.patch
new file mode 100644
index 0000000000..884fa94a64
--- /dev/null
+++ b/gnu/packages/patches/emacs-exec-path.patch
@@ -0,0 +1,18 @@
+Do not capture the build-time value of $PATH in the 'emacs' executable
+since this can noticeably increase the size of the closure of Emacs
+with things like GCC being referenced.
+
+--- a/lisp/loadup.el
++++ b/lisp/loadup.el
+@@ -64,6 +64,11 @@
+ 			    (expand-file-name "textmodes" dir)
+ 			    (expand-file-name "vc" dir)))))
+ 
++;; Reset 'exec-path' so we don't capture the build-time $PATH in the
++;; 'emacs' executable.
++(setq-default exec-path nil)
++(setq exec-path nil)
++
+ (if (eq t purify-flag)
+     ;; Hash consing saved around 11% of pure space in my tests.
+     (setq purify-flag (make-hash-table :test 'equal :size 70000)))
diff --git a/gnu/packages/patches/linux-libre-vblank-fix.patch b/gnu/packages/patches/linux-libre-vblank-fix.patch
deleted file mode 100644
index 7f242cfcc1..0000000000
--- a/gnu/packages/patches/linux-libre-vblank-fix.patch
+++ /dev/null
@@ -1,175 +0,0 @@
-From f9b61ff6bce9a44555324b29e593fdffc9a115bc Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel.vetter@ffwll.ch>
-Date: Wed, 7 Jan 2015 13:54:39 +0100
-Subject: [PATCH] drm/i915: Push vblank enable/disable past
- encoder->enable/disable
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-It is platform/output depenedent when exactly the pipe will start
-running. Sometimes we just need the (cpu) pipe enabled, in other cases
-the pch transcoder is enough and in yet other cases the (DP) port is
-sending the frame start signal.
-
-In a perfect world we'd put the drm_crtc_vblank_on call exactly where
-the pipe starts running, but due to cloning and similar things this
-will get messy. And the current approach of picking the most
-conservative place for all combinations also doesn't work since that
-results in legit vblank waits (in encoder->enable hooks, e.g. the 2
-vblank waits for sdvo) failing.
-
-Completely going back to the old world before
-
-commit 51e31d49c89055299e34b8f44d13f70e19aaaad1
-Author: Daniel Vetter <daniel.vetter@ffwll.ch>
-Date:   Mon Sep 15 12:36:02 2014 +0200
-
-    drm/i915: Use generic vblank wait
-
-isn't great either since screaming when the vblank wait work because
-the pipe is off is kinda nice.
-
-Pick a compromise and move the drm_crtc_vblank_on right before the
-encoder->enable call. This is a lie on some outputs/platforms, but
-after the ->enable callback the pipe is guaranteed to run everywhere.
-So not that bad really. Suggested by Ville.
-
-v2: Same treatment for drm_crtc_vblank_off and encoder->disable: I've
-missed the ibx pipe B select w/a, which also has a vblank wait in the
-disable function (while the pipe is obviously still running).
-
-Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
-Cc: Chris Wilson <chris@chris-wilson.co.uk>
-Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
-Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
----
- drivers/gpu/drm/i915/intel_display.c | 42 ++++++++++++++++++------------------
- 1 file changed, 21 insertions(+), 21 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index a1dbe74..e224820 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -4301,15 +4301,15 @@ static void ironlake_crtc_enable(struct drm_crtc *crtc)
- 	if (intel_crtc->config.has_pch_encoder)
- 		ironlake_pch_enable(crtc);
- 
-+	assert_vblank_disabled(crtc);
-+	drm_crtc_vblank_on(crtc);
-+
- 	for_each_encoder_on_crtc(dev, crtc, encoder)
- 		encoder->enable(encoder);
- 
- 	if (HAS_PCH_CPT(dev))
- 		cpt_verify_modeset(dev, intel_crtc->pipe);
- 
--	assert_vblank_disabled(crtc);
--	drm_crtc_vblank_on(crtc);
--
- 	intel_crtc_enable_planes(crtc);
- }
- 
-@@ -4421,14 +4421,14 @@ static void haswell_crtc_enable(struct drm_crtc *crtc)
- 	if (intel_crtc->config.dp_encoder_is_mst)
- 		intel_ddi_set_vc_payload_alloc(crtc, true);
- 
-+	assert_vblank_disabled(crtc);
-+	drm_crtc_vblank_on(crtc);
-+
- 	for_each_encoder_on_crtc(dev, crtc, encoder) {
- 		encoder->enable(encoder);
- 		intel_opregion_notify_encoder(encoder, true);
- 	}
- 
--	assert_vblank_disabled(crtc);
--	drm_crtc_vblank_on(crtc);
--
- 	/* If we change the relative order between pipe/planes enabling, we need
- 	 * to change the workaround. */
- 	haswell_mode_set_planes_workaround(intel_crtc);
-@@ -4479,12 +4479,12 @@ static void ironlake_crtc_disable(struct drm_crtc *crtc)
- 
- 	intel_crtc_disable_planes(crtc);
- 
--	drm_crtc_vblank_off(crtc);
--	assert_vblank_disabled(crtc);
--
- 	for_each_encoder_on_crtc(dev, crtc, encoder)
- 		encoder->disable(encoder);
- 
-+	drm_crtc_vblank_off(crtc);
-+	assert_vblank_disabled(crtc);
-+
- 	if (intel_crtc->config.has_pch_encoder)
- 		intel_set_pch_fifo_underrun_reporting(dev_priv, pipe, false);
- 
-@@ -4544,14 +4544,14 @@ static void haswell_crtc_disable(struct drm_crtc *crtc)
- 
- 	intel_crtc_disable_planes(crtc);
- 
--	drm_crtc_vblank_off(crtc);
--	assert_vblank_disabled(crtc);
--
- 	for_each_encoder_on_crtc(dev, crtc, encoder) {
- 		intel_opregion_notify_encoder(encoder, false);
- 		encoder->disable(encoder);
- 	}
- 
-+	drm_crtc_vblank_off(crtc);
-+	assert_vblank_disabled(crtc);
-+
- 	if (intel_crtc->config.has_pch_encoder)
- 		intel_set_pch_fifo_underrun_reporting(dev_priv, TRANSCODER_A,
- 						      false);
-@@ -5021,12 +5021,12 @@ static void valleyview_crtc_enable(struct drm_crtc *crtc)
- 	intel_update_watermarks(crtc);
- 	intel_enable_pipe(intel_crtc);
- 
--	for_each_encoder_on_crtc(dev, crtc, encoder)
--		encoder->enable(encoder);
--
- 	assert_vblank_disabled(crtc);
- 	drm_crtc_vblank_on(crtc);
- 
-+	for_each_encoder_on_crtc(dev, crtc, encoder)
-+		encoder->enable(encoder);
-+
- 	intel_crtc_enable_planes(crtc);
- 
- 	/* Underruns don't raise interrupts, so check manually. */
-@@ -5082,12 +5082,12 @@ static void i9xx_crtc_enable(struct drm_crtc *crtc)
- 	intel_update_watermarks(crtc);
- 	intel_enable_pipe(intel_crtc);
- 
--	for_each_encoder_on_crtc(dev, crtc, encoder)
--		encoder->enable(encoder);
--
- 	assert_vblank_disabled(crtc);
- 	drm_crtc_vblank_on(crtc);
- 
-+	for_each_encoder_on_crtc(dev, crtc, encoder)
-+		encoder->enable(encoder);
-+
- 	intel_crtc_enable_planes(crtc);
- 
- 	/*
-@@ -5159,12 +5159,12 @@ static void i9xx_crtc_disable(struct drm_crtc *crtc)
- 	 */
- 	intel_wait_for_vblank(dev, pipe);
- 
--	drm_crtc_vblank_off(crtc);
--	assert_vblank_disabled(crtc);
--
- 	for_each_encoder_on_crtc(dev, crtc, encoder)
- 		encoder->disable(encoder);
- 
-+	drm_crtc_vblank_off(crtc);
-+	assert_vblank_disabled(crtc);
-+
- 	intel_disable_pipe(intel_crtc);
- 
- 	i9xx_pfit_disable(intel_crtc);
--- 
-2.2.1
-
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index feb4ec191d..42fcc93017 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -38,7 +38,7 @@
 (define-public ruby
   (package
     (name "ruby")
-    (version "2.2.1")
+    (version "2.2.2")
     (source
      (origin
        (method url-fetch)
@@ -47,7 +47,7 @@
                            "/ruby-" version ".tar.xz"))
        (sha256
         (base32
-         "1h16lrahp1m57la6sllsad0n3d72g9ccg62n5fxd04nwgz054a1v"))))
+         "0qj48a8ji8qj1sllsrhb6y65frwr77bvr08xikj86w5mib8baczh"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
diff --git a/gnu/packages/tbb.scm b/gnu/packages/tbb.scm
index 42670d77c0..3c41141dc6 100644
--- a/gnu/packages/tbb.scm
+++ b/gnu/packages/tbb.scm
@@ -46,8 +46,13 @@
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
-       #:phases (alist-delete
+       #:phases (alist-replace
                  'configure
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   (substitute* "build/linux.gcc.inc"
+                     (("LIB_LINK_FLAGS =")
+                      (string-append "LIB_LINK_FLAGS = -Wl,-rpath="
+                                     (assoc-ref outputs "out") "/lib"))))
                  (alist-replace
                   'install
                   (lambda* (#:key outputs #:allow-other-keys)
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index b9e38c33d0..4506690500 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,6 +21,7 @@
 (define-module (gnu packages telephony)
   #:use-module (gnu packages)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages pkg-config)
   #:use-module (guix licenses)
   #:use-module (guix packages)
@@ -183,3 +185,25 @@ internet.")
    (license gpl3+)
    (home-page "http://www.gnu.org/software/sipwitch")))
 
+(define-public libsrtp
+  (package
+    (name "libsrtp")
+    (version "1.5.2")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "https://github.com/cisco/libsrtp/archive/v"
+                                  version ".tar.gz"))
+             (sha256
+              (base32
+               "1njf62f6sazz2q7qc4j495v1pga385whkmxxyr8hfz1ragiyzqc6"))))
+    (native-inputs
+     `(("procps" ,procps)))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "runtest"))
+    (synopsis "Secure RTP (SRTP) Reference Implementation")
+    (description "This package provides an implementation of the Secure
+Real-time Transport Protocol (SRTP), the Universal Security Transform (UST),
+and a supporting cryptographic kernel.")
+    (home-page "https://github.com/cisco/libsrtp")
+    (license bsd-3)))
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index c9483697df..08b1b64c57 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -23,6 +23,7 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages python))
 
 (define-public recode
@@ -124,3 +125,33 @@ libenca and several charset conversion libraries and tools.")
 normalization, case-folding, and other operations for data in the UTF-8
 encoding, supporting Unicode version 7.0.")
     (license license:expat)))
+
+(define-public libgtextutils
+  (package
+    (name "libgtextutils")
+    (version "0.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/agordon/libgtextutils/releases/download/"
+             version "/libgtextutils-" version ".tar.gz"))
+       (sha256
+        (base32 "0jiybkb2z58wa2msvllnphr4js2hvjvh988pavb3mzkgr6ihwbkr"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (alist-cons-after
+        'unpack 'autoreconf
+        (lambda _ (zero? (system* "autoreconf" "-vif")))
+        %standard-phases)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)))
+    (home-page "https://github.com/agordon/libgtextutils")
+    (synopsis "Gordon's text utils library")
+    (description
+     "libgtextutils is a text utilities library used by the fastx toolkit from
+the Hannon Lab.")
+    (license license:agpl3+)))
diff --git a/gnu/services/avahi.scm b/gnu/services/avahi.scm
index 89478cb997..0a56f3d7f6 100644
--- a/gnu/services/avahi.scm
+++ b/gnu/services/avahi.scm
@@ -20,6 +20,7 @@
   #:use-module (gnu services)
   #:use-module (gnu system shadow)
   #:use-module (gnu packages avahi)
+  #:use-module (gnu packages admin)
   #:use-module (guix monads)
   #:use-module (guix store)
   #:use-module (guix gexp)
@@ -106,6 +107,6 @@ sockets."
                             (comment "Avahi daemon user")
                             (home-directory "/var/empty")
                             (shell
-                             "/run/current-system/profile/sbin/nologin"))))))))
+                             #~(string-append #$shadow "/sbin/nologin")))))))))
 
 ;;; avahi.scm ends here
diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm
index 671dafa194..8f3b350951 100644
--- a/gnu/services/dbus.scm
+++ b/gnu/services/dbus.scm
@@ -20,6 +20,7 @@
   #:use-module (gnu services)
   #:use-module (gnu system shadow)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages admin)
   #:use-module (guix monads)
   #:use-module (guix store)
   #:use-module (guix gexp)
@@ -99,7 +100,7 @@ and policy files.  For example, to allow avahi-daemon to use the system bus,
                             (comment "D-Bus system bus user")
                             (home-directory "/var/run/dbus")
                             (shell
-                             "/run/current-system/profile/sbin/nologin"))))
+                             #~(string-append #$shadow "/sbin/nologin")))))
       (activate #~(begin
                     (use-modules (guix build utils))
 
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index af8dd43bd6..f9d262d977 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -227,7 +227,7 @@ restrict -6 ::1\n"))
                             (comment "NTP daemon user")
                             (home-directory "/var/empty")
                             (shell
-                             "/run/current-system/profile/sbin/nologin"))))))))
+                             #~(string-append #$shadow "/sbin/nologin")))))))))
 
 (define* (tor-service #:key (tor tor))
   "Return a service to run the @uref{https://torproject.org,Tor} daemon.
@@ -257,7 +257,7 @@ policy) as the @code{tor} unprivileged user."
                             (comment "Tor daemon user")
                             (home-directory "/var/empty")
                             (shell
-                             "/run/current-system/profile/sbin/nologin"))))
+                             #~(string-append #$shadow "/sbin/nologin")))))
 
       (documentation "Run the Tor anonymous network overlay.")))))
 
diff --git a/gnu/system.scm b/gnu/system.scm
index 6cf12df604..609604a9b5 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -405,30 +405,47 @@ settings for 'guix.el' to work out-of-the-box."
                           (chdir #$output)
                           (symlink #$file "site-start.el")))))
 
+(define (user-shells os)
+  "Return the list of all the shells used by the accounts of OS.  These may be
+gexps or strings."
+  (mlet %store-monad ((accounts (operating-system-accounts os)))
+    (return (map user-account-shell accounts))))
+
+(define (shells-file shells)
+  "Return a derivation that builds a shell list for use as /etc/shells based
+on SHELLS.  /etc/shells is used by xterm, polkit, and other programs."
+  (gexp->derivation "shells"
+                    #~(begin
+                        (use-modules (srfi srfi-1))
+
+                        (define shells
+                          (delete-duplicates (list #$@shells)))
+
+                        (call-with-output-file #$output
+                          (lambda (port)
+                            (display "\
+/bin/sh
+/run/current-system/profile/bin/sh
+/run/current-system/profile/bin/bash\n" port)
+                            (for-each (lambda (shell)
+                                        (display shell port)
+                                        (newline port))
+                                      shells))))))
+
 (define* (etc-directory #:key
                         (locale "C") (timezone "Europe/Paris")
                         (issue "Hello!\n")
                         (skeletons '())
                         (pam-services '())
                         (profile "/run/current-system/profile")
-                        hosts-file nss
+                        hosts-file nss (shells '())
                         (sudoers ""))
   "Return a derivation that builds the static part of the /etc directory."
   (mlet* %store-monad
       ((pam.d      (pam-services->directory pam-services))
        (sudoers    (text-file "sudoers" sudoers))
        (login.defs (text-file "login.defs" "# Empty for now.\n"))
-
-       ;; /etc/shells is used by xterm and other programs.   We don't check
-       ;; whether these shells are installed, should be OK.
-       (shells     (text-file "shells"
-                              "\
-/bin/sh
-/run/current-system/profile/bin/sh
-/run/current-system/profile/bin/bash
-/run/current-system/profile/bin/fish
-/run/current-system/profile/bin/tcsh
-/run/current-system/profile/bin/zsh\n"))
+       (shells     (shells-file shells))
        (emacs      (emacs-site-directory))
        (issue      (text-file "issue" issue))
        (nsswitch   (text-file "nsswitch.conf"
@@ -543,7 +560,8 @@ fi\n"))
        (profile-drv (operating-system-profile os))
        (skeletons   (operating-system-skeletons os))
        (/etc/hosts  (or (operating-system-hosts-file os)
-                        (default-/etc/hosts (operating-system-host-name os)))))
+                        (default-/etc/hosts (operating-system-host-name os))))
+       (shells      (user-shells os)))
    (etc-directory #:pam-services pam-services
                   #:skeletons skeletons
                   #:issue (operating-system-issue os)
@@ -551,6 +569,7 @@ fi\n"))
                   #:nss (operating-system-name-service-switch os)
                   #:timezone (operating-system-timezone os)
                   #:hosts-file /etc/hosts
+                  #:shells shells
                   #:sudoers (operating-system-sudoers os)
                   #:profile profile-drv)))
 
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index 2e7e4eafad..2fd35e8c48 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -22,6 +22,7 @@
   #:use-module (guix store)
   #:use-module (guix monads)
   #:use-module ((guix store) #:select (%store-prefix))
+  #:use-module (guix profiles)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages cryptsetup)
@@ -30,7 +31,8 @@
   #:use-module (gnu packages grub)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages compression)
-  #:export (installation-os))
+  #:export (self-contained-tarball
+            installation-os))
 
 ;;; Commentary:
 ;;;
@@ -39,6 +41,41 @@
 ;;;
 ;;; Code:
 
+
+(define* (self-contained-tarball #:key (guix guix))
+  "Return a self-contained tarball containing a store initialized with the
+closure of GUIX.  The tarball contains /gnu/store, /var/guix, and a profile
+under /root/.guix-profile where GUIX is installed."
+  (mlet %store-monad ((profile (profile-derivation
+                                (manifest
+                                 (list (package->manifest-entry guix))))))
+    (define build
+      #~(begin
+          (use-modules (guix build utils)
+                       (gnu build install))
+
+          (define %root "root")
+
+          (setenv "PATH"
+                  (string-append #$guix "/sbin:" #$tar "/bin:" #$xz "/bin"))
+
+          (populate-single-profile-directory %root
+                                             #:profile #$profile
+                                             #:closure "profile")
+
+          ;; Create the tarball.  Use GNU format so there's no file name
+          ;; length limitation.
+          (with-directory-excursion %root
+            (zero? (system* "tar" "--xz" "--format=gnu"
+                            "-cvf" #$output ".")))))
+
+    (gexp->derivation "guix-tarball.tar.xz" build
+                      #:references-graphs `(("profile" ,profile))
+                      #:modules '((guix build utils)
+                                  (guix build store-copy)
+                                  (gnu build install)))))
+
+
 (define (log-to-info)
   "Return a script that spawns the Info reader on the right section of the
 manual."
diff --git a/guix/profiles.scm b/guix/profiles.scm
index a2f63d1cca..620feff97e 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -78,6 +78,7 @@
 
             profile-manifest
             package->manifest-entry
+            %default-profile-hooks
             profile-derivation
             generation-number
             generation-numbers
@@ -398,15 +399,12 @@ MANIFEST."
                (append-map info-files
                            '#$(manifest-inputs manifest)))))
 
-  ;; Don't depend on Texinfo when there's nothing to do.
-  (if (null? (manifest-entries manifest))
-      (gexp->derivation "info-dir" #~(mkdir #$output))
-      (gexp->derivation "info-dir" build
-                        #:modules '((guix build utils)))))
+  (gexp->derivation "info-dir" build
+                    #:modules '((guix build utils))))
 
 (define (ghc-package-cache-file manifest)
   "Return a derivation that builds the GHC 'package.cache' file for all the
-entries of MANIFEST."
+entries of MANIFEST, or #f if MANIFEST does not have any GHC packages."
   (define ghc                                 ;lazy reference
     (module-ref (resolve-interface '(gnu packages haskell)) 'ghc))
 
@@ -446,12 +444,11 @@ entries of MANIFEST."
           success)))
 
   ;; Don't depend on GHC when there's nothing to do.
-  (if (any (cut string-prefix? "ghc" <>)
-           (map manifest-entry-name (manifest-entries manifest)))
-      (gexp->derivation "ghc-package-cache" build
-                        #:modules '((guix build utils))
-                        #:local-build? #t)
-      (gexp->derivation "ghc-package-cache" #~(mkdir #$output))))
+  (and (any (cut string-prefix? "ghc" <>)
+            (map manifest-entry-name (manifest-entries manifest)))
+       (gexp->derivation "ghc-package-cache" build
+                         #:modules '((guix build utils))
+                         #:local-build? #t)))
 
 (define (ca-certificate-bundle manifest)
   "Return a derivation that builds a single-file bundle containing the CA
@@ -503,42 +500,31 @@ MANIFEST.  Single-file bundles are required by programs such as Git and Lynx."
                              (string-append result
                                             "/ca-certificates.crt")))))
 
-  ;; Don't depend on 'glibc-utf8-locales' and its dependencies when there's
-  ;; nothing to do.
-  (if (null? (manifest-entries manifest))
-      (gexp->derivation "ca-certificate-bundle" #~(mkdir #$output))
-      (gexp->derivation "ca-certificate-bundle" build
-                        #:modules '((guix build utils))
-                        #:local-build? #t)))
+  (gexp->derivation "ca-certificate-bundle" build
+                    #:modules '((guix build utils))
+                    #:local-build? #t))
+
+(define %default-profile-hooks
+  ;; This is the list of derivation-returning procedures that are called by
+  ;; default when making a non-empty profile.
+  (list info-dir-file
+        ghc-package-cache-file
+        ca-certificate-bundle))
 
 (define* (profile-derivation manifest
                              #:key
-                             (info-dir? #t)
-                             (ghc-package-cache? #t)
-                             (ca-certificate-bundle? #t))
+                             (hooks %default-profile-hooks))
   "Return a derivation that builds a profile (aka. 'user environment') with
-the given MANIFEST.  The profile includes a top-level Info 'dir' file unless
-INFO-DIR? is #f, a GHC 'package.cache' file unless GHC-PACKAGE-CACHE? is #f
-and a single-file CA certificate bundle unless CA-CERTIFICATE-BUNDLE? is #f."
-  (mlet %store-monad ((info-dir (if info-dir?
-                                    (info-dir-file manifest)
-                                    (return #f)))
-                      (ghc-package-cache (if ghc-package-cache?
-                                             (ghc-package-cache-file manifest)
-                                             (return #f)))
-                      (ca-cert-bundle (if ca-certificate-bundle?
-                                          (ca-certificate-bundle manifest)
-                                          (return #f))))
+the given MANIFEST.  The profile includes additional derivations returned by
+the monadic procedures listed in HOOKS--such as an Info 'dir' file, etc."
+  (mlet %store-monad ((extras (if (null? (manifest-entries manifest))
+                                  (return '())
+                                  (sequence %store-monad
+                                            (filter-map (lambda (hook)
+                                                          (hook manifest))
+                                                        hooks)))))
     (define inputs
-      (append (if info-dir
-                  (list (gexp-input info-dir))
-                  '())
-              (if ghc-package-cache
-                  (list (gexp-input ghc-package-cache))
-                  '())
-              (if ca-cert-bundle
-                  (list (gexp-input ca-cert-bundle))
-                  '())
+      (append (map gexp-input extras)
               (manifest-inputs manifest)))
 
     (define builder
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index 09ae782751..5ee3a89ba6 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
-;;; Copyright © 2013 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2013, 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -465,6 +465,8 @@ Install, remove, or upgrade PACKAGES in a single transaction.\n"))
   (display (_ "
   -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP"))
   (display (_ "
+      --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP"))
+  (display (_ "
       --roll-back        roll back to the previous generation"))
   (display (_ "
       --search-paths     display needed environment variable definitions"))
@@ -543,6 +545,13 @@ Install, remove, or upgrade PACKAGES in a single transaction.\n"))
                                          ;; would upgrade everything.
                                          (delete '(upgrade . #f) result))
                              arg-handler))))
+         (option '("do-not-upgrade") #f #t
+                 (lambda (opt name arg result arg-handler)
+                   (let arg-handler ((arg arg) (result result))
+                     (values (if arg
+                                 (alist-cons 'do-not-upgrade arg result)
+                                 result)
+                             arg-handler))))
          (option '("roll-back") #f #f
                  (lambda (opt name arg result arg-handler)
                    (values (alist-cons 'roll-back? #t result)
@@ -621,6 +630,13 @@ return the new list of manifest entries."
                  (_ #f))
                 opts))
 
+  (define do-not-upgrade-regexps
+    (filter-map (match-lambda
+                 (('do-not-upgrade . regexp)
+                  (make-regexp regexp))
+                 (_ #f))
+                opts))
+
   (define packages-to-upgrade
     (match upgrade-regexps
       (()
@@ -630,6 +646,8 @@ return the new list of manifest entries."
                     (($ <manifest-entry> name version output path _)
                      (and (any (cut regexp-exec <> name)
                                upgrade-regexps)
+                          (not (any (cut regexp-exec <> name)
+                                    do-not-upgrade-regexps))
                           (upgradeable? name version path)
                           (let ((output (or output "out")))
                             (call-with-values
@@ -837,9 +855,9 @@ more information.~%"))
                (let* ((prof-drv (run-with-store (%store)
                                   (profile-derivation
                                    new
-                                   #:info-dir? (not bootstrap?)
-                                   #:ghc-package-cache? (not bootstrap?)
-                                   #:ca-certificate-bundle? (not bootstrap?))))
+                                   #:hooks (if bootstrap?
+                                               '()
+                                               %default-profile-hooks))))
                       (prof     (derivation->output-path prof-drv)))
                  (show-manifest-transaction (%store) manifest transaction
                                             #:dry-run? dry-run?)
diff --git a/tests/packages.scm b/tests/packages.scm
index a93ee66831..3007b50b92 100644
--- a/tests/packages.scm
+++ b/tests/packages.scm
@@ -619,9 +619,7 @@
                  (profile-derivation
                   (manifest (map package->manifest-entry
                                  (list p1 p2)))
-                  #:info-dir? #f
-                  #:ghc-package-cache? #f
-                  #:ca-certificate-bundle? #f)
+                  #:hooks '())
                  #:guile-for-build (%guile-for-build))))
     (build-derivations %store (list prof))
     (string-match (format #f "^export XML_CATALOG_FILES=\"~a/xml/+bar/baz/catalog\\.xml\"\n"
diff --git a/tests/profiles.scm b/tests/profiles.scm
index d20cb9d808..54fbaea864 100644
--- a/tests/profiles.scm
+++ b/tests/profiles.scm
@@ -183,9 +183,7 @@
       ((entry ->   (package->manifest-entry %bootstrap-guile))
        (guile      (package->derivation %bootstrap-guile))
        (drv        (profile-derivation (manifest (list entry))
-                                       #:info-dir? #f
-                                       #:ghc-package-cache? #f
-                                       #:ca-certificate-bundle? #f))
+                                       #:hooks '()))
        (profile -> (derivation->output-path drv))
        (bindir ->  (string-append profile "/bin"))
        (_          (built-derivations (list drv))))
@@ -197,9 +195,7 @@
   (mlet* %store-monad
       ((entry ->   (package->manifest-entry packages:glibc "debug"))
        (drv        (profile-derivation (manifest (list entry))
-                                       #:info-dir? #f
-                                       #:ghc-package-cache? #f
-                                       #:ca-certificate-bundle? #f)))
+                                       #:hooks '())))
     (return (derivation-inputs drv))))
 
 (test-end "profiles")