/build-aux/

=''/>
diff options
context:
space:
mode:
Diffstat
-rw-r--r--.gitignore3
-rw-r--r--Makefile.am8
-rw-r--r--configure.ac3
-rw-r--r--doc/emacs.texi102
-rw-r--r--doc/guix.texi166
-rw-r--r--emacs.am13
-rw-r--r--emacs/guix-backend.el14
-rw-r--r--emacs/guix-base.el121
-rw-r--r--emacs/guix-command.el671
-rw-r--r--emacs/guix-config.el.in40
-rw-r--r--emacs/guix-external.el72
-rw-r--r--emacs/guix-help-vars.el108
-rw-r--r--emacs/guix-info.el48
-rw-r--r--emacs/guix-init.el (renamed from emacs/guix-init.el.in)4
-rw-r--r--emacs/guix-list.el52
-rw-r--r--emacs/guix-main.scm78
-rw-r--r--emacs/guix-messages.el8
-rw-r--r--emacs/guix-pcomplete.el91
-rw-r--r--emacs/guix-popup.el48
-rw-r--r--emacs/guix-prettify.el17
-rw-r--r--emacs/guix-profiles.el (renamed from emacs/guix-profiles.el.in)4
-rw-r--r--emacs/guix-read.el176
-rw-r--r--emacs/guix-utils.el120
-rw-r--r--emacs/guix.el12
-rw-r--r--gnu-system.am12
-rw-r--r--gnu/build/linux-container.scm18
-rw-r--r--gnu/build/linux-initrd.scm4
-rw-r--r--gnu/packages/admin.scm10
-rw-r--r--gnu/packages/audacity.scm2
-rw-r--r--gnu/packages/audio.scm7
-rw-r--r--gnu/packages/backup.scm40
-rw-r--r--gnu/packages/bioinformatics.scm39
-rw-r--r--gnu/packages/bootstrap.scm2
-rw-r--r--gnu/packages/compression.scm34
-rw-r--r--gnu/packages/cpio.scm18
-rw-r--r--gnu/packages/databases.scm19
-rw-r--r--gnu/packages/ebook.scm4
-rw-r--r--gnu/packages/emacs.scm107
-rw-r--r--gnu/packages/engineering.scm48
-rw-r--r--gnu/packages/enlightenment.scm53
-rw-r--r--gnu/packages/firmware.scm6
-rw-r--r--gnu/packages/fonts.scm82
-rw-r--r--gnu/packages/freedesktop.scm104
-rw-r--r--gnu/packages/game-development.scm14
-rw-r--r--gnu/packages/games.scm8
-rw-r--r--gnu/packages/gdb.scm54
-rw-r--r--gnu/packages/geeqie.scm3
-rw-r--r--gnu/packages/gettext.scm63
-rw-r--r--gnu/packages/gnome.scm139
-rw-r--r--gnu/packages/gnucash.scm46
-rw-r--r--gnu/packages/gnupg.scm4
-rw-r--r--gnu/packages/gstreamer.scm2
-rw-r--r--gnu/packages/gtk.scm88
-rw-r--r--gnu/packages/ibus.scm120
-rw-r--r--gnu/packages/image.scm16
-rw-r--r--gnu/packages/libcanberra.scm8
-rw-r--r--gnu/packages/libedit.scm6
-rw-r--r--gnu/packages/libusb.scm41
-rw-r--r--gnu/packages/linux-libre-i686.conf220
-rw-r--r--gnu/packages/linux-libre-x86_64.conf239
-rw-r--r--gnu/packages/linux.scm4
-rw-r--r--gnu/packages/mail.scm34
-rw-r--r--gnu/packages/make-bootstrap.scm2
-rw-r--r--gnu/packages/maths.scm36
-rw-r--r--gnu/packages/music.scm66
-rw-r--r--gnu/packages/ncdu.scm33
-rw-r--r--gnu/packages/openstack.scm216
-rw-r--r--gnu/packages/package-management.scm13
-rw-r--r--gnu/packages/patches/cpio-CVE-2014-9112-pt1.patch231
-rw-r--r--gnu/packages/patches/cpio-CVE-2014-9112-pt2.patch51
-rw-r--r--gnu/packages/patches/cpio-CVE-2014-9112-pt3.patch23
-rw-r--r--gnu/packages/patches/cpio-CVE-2014-9112-pt4.patch105
-rw-r--r--gnu/packages/patches/cpio-CVE-2014-9112-pt5.patch88
-rw-r--r--gnu/packages/patches/cpio-fix-symlink-bad-length-test.patch44
-rw-r--r--gnu/packages/patches/gnucash-price-quotes-perl.patch23
-rw-r--r--gnu/packages/patches/guile-present-coding.patch16
-rw-r--r--gnu/packages/patches/guile-rsvg-pkgconfig.patch16
-rw-r--r--gnu/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch15
-rw-r--r--gnu/packages/patches/xfce4-settings-defaults.patch29
-rw-r--r--gnu/packages/patchutils.scm32
-rw-r--r--gnu/packages/pdf.scm46
-rw-r--r--gnu/packages/perl.scm71
-rw-r--r--gnu/packages/photo.scm126
-rw-r--r--gnu/packages/polkit.scm79
-rw-r--r--gnu/packages/python.scm116
-rw-r--r--gnu/packages/ruby.scm516
-rw-r--r--gnu/packages/ssh.scm32
-rw-r--r--gnu/packages/statistics.scm385
-rw-r--r--gnu/packages/version-control.scm28
-rw-r--r--gnu/packages/video.scm17
-rw-r--r--gnu/packages/vpn.scm4
-rw-r--r--gnu/packages/web.scm131
-rw-r--r--gnu/packages/wm.scm79
-rw-r--r--gnu/packages/xfce.scm53
-rw-r--r--gnu/packages/xml.scm22
-rw-r--r--gnu/services/base.scm4
-rw-r--r--gnu/services/desktop.scm238
-rw-r--r--gnu/system/file-systems.scm22
-rw-r--r--gnu/system/install.scm2
-rw-r--r--gnu/system/locale.scm2
-rw-r--r--guix/build-system/r.scm134
-rw-r--r--guix/build/download.scm79
-rw-r--r--guix/build/emacs-build-system.scm2
-rw-r--r--guix/build/r-build-system.scm112
-rw-r--r--guix/build/ruby-build-system.scm16
-rw-r--r--guix/build/syscalls.scm24
-rw-r--r--guix/download.scm29
-rw-r--r--guix/git-download.scm4
-rw-r--r--guix/http-client.scm7
-rw-r--r--guix/import/cran.scm188
-rw-r--r--guix/import/gem.scm3
-rw-r--r--guix/licenses.scm20
-rw-r--r--guix/monads.scm8
-rw-r--r--guix/packages.scm15
-rw-r--r--guix/scripts/build.scm49
-rw-r--r--guix/scripts/graph.scm27
-rw-r--r--guix/scripts/import.scm2
-rw-r--r--guix/scripts/import/cran.scm92
-rw-r--r--guix/scripts/lint.scm28
-rw-r--r--guix/scripts/publish.scm23
-rw-r--r--guix/scripts/pull.scm2
-rw-r--r--guix/scripts/refresh.scm2
-rwxr-xr-xguix/scripts/substitute.scm2
-rw-r--r--guix/ui.scm111
-rw-r--r--tests/cran.scm178
-rw-r--r--tests/derivations.scm4
-rw-r--r--tests/gem.scm82
-rw-r--r--tests/guix-graph.sh5
-rw-r--r--tests/lint.scm6
-rw-r--r--tests/monads.scm4
-rw-r--r--tests/packages.scm17
131 files changed, 6647 insertions, 1337 deletions
diff --git a/.gitignore b/.gitignore
index 4547557631..a363c074ca 100644
--- a/.gitignore
+++ b/.gitignore
@@ -120,8 +120,7 @@ GTAGS
/emacs/Makefile
/emacs/guix-autoloads.el
/emacs/guix-helper.scm
-/emacs/guix-init.el
-/emacs/guix-profiles.el
+/emacs/guix-config.el
/doc/os-config-bare-bones.texi
/doc/os-config-desktop.texi
/doc/*.1
diff --git a/Makefile.am b/Makefile.am
index 85cc7bd50f..9a810e4ebd 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -58,6 +58,7 @@ MODULES = \
guix/build-system/perl.scm \
guix/build-system/python.scm \
guix/build-system/waf.scm \
+ guix/build-system/r.scm \
guix/build-system/ruby.scm \
guix/build-system/trivial.scm \
guix/ftp-client.scm \
@@ -77,6 +78,7 @@ MODULES = \
guix/build/gnu-dist.scm \
guix/build/perl-build-system.scm \
guix/build/python-build-system.scm \
+ guix/build/r-build-system.scm \
guix/build/ruby-build-system.scm \
guix/build/waf-build-system.scm \
guix/build/haskell-build-system.scm \
@@ -97,6 +99,7 @@ MODULES = \
guix/import/gnu.scm \
guix/import/snix.scm \
guix/import/cabal.scm \
+ guix/import/cran.scm \
guix/import/hackage.scm \
guix/import/elpa.scm \
guix/scripts/download.scm \
@@ -112,6 +115,7 @@ MODULES = \
guix/scripts/refresh.scm \
guix/scripts/system.scm \
guix/scripts/lint.scm \
+ guix/scripts/import/cran.scm \
guix/scripts/import/gnu.scm \
guix/scripts/import/nix.scm \
guix/scripts/import/hackage.scm \
@@ -198,6 +202,7 @@ SCM_TESTS = \
tests/packages.scm \
tests/snix.scm \
tests/hackage.scm \
+ tests/cran.scm \
tests/elpa.scm \
tests/store.scm \
tests/monads.scm \
@@ -226,7 +231,8 @@ MODULES += \
SCM_TESTS += \
tests/pypi.scm \
- tests/cpan.scm
+ tests/cpan.scm \
+ tests/gem.scm
endif
diff --git a/configure.ac b/configure.ac
index 247a9d5068..cbe5dfb67e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -205,8 +205,7 @@ AM_CONDITIONAL([HAVE_EMACS], [test "x$EMACS" != "xno"])
emacsuidir="${guilemoduledir}/guix/emacs"
AC_SUBST([emacsuidir])
-AC_CONFIG_FILES([emacs/guix-init.el
- emacs/guix-profiles.el
+AC_CONFIG_FILES([emacs/guix-config.el
emacs/guix-helper.scm])
AC_OUTPUT
diff --git a/doc/emacs.texi b/doc/emacs.texi
index 180037a88f..db2e657d27 100644
--- a/doc/emacs.texi
+++ b/doc/emacs.texi
@@ -1,29 +1,22 @@
@node Emacs Interface
-@section Emacs Interface
+@chapter Emacs Interface
@cindex Emacs
-GNU Guix comes with a visual user interface for GNU@tie{}Emacs, known
-as ``guix.el''. It can be used for routine package management tasks,
-pretty much like the @command{guix package} command (@pxref{Invoking
-guix package}). Specifically, ``guix.el'' makes it easy to:
-
-@itemize
-@item browse and display packages and generations;
-@item search, install, upgrade and remove packages;
-@item display packages from previous generations;
-@item do some other useful things.
-@end itemize
+GNU Guix comes with several useful modules (known as ``guix.el'') for
+GNU@tie{}Emacs which are intended to make an Emacs user interaction with
+Guix convenient and fun.
@menu
* Initial Setup: Emacs Initial Setup. Preparing @file{~/.emacs}.
-* Usage: Emacs Usage. Using the interface.
-* Configuration: Emacs Configuration. Configuring the interface.
+* Package Management: Emacs Package Management. Managing packages and generations.
+* Popup Interface: Emacs Popup Interface. Magit-like interface for guix commands.
* Prettify Mode: Emacs Prettify. Abbreviating @file{/gnu/store/@dots{}} file names.
* Completions: Emacs Completions. Completing @command{guix} shell command.
@end menu
+
@node Emacs Initial Setup
-@subsection Initial Setup
+@section Initial Setup
On the Guix System Distribution (@pxref{GNU Distribution}), ``guix.el''
is ready to use, provided Guix is installed system-wide, which is the
@@ -43,6 +36,12 @@ later;
@uref{http://nongnu.org/geiser/, Geiser}, version 0.3 or later: it is
used for interacting with the Guile process.
+@item
+@uref{https://github.com/magit/magit/, magit-popup library}. You
+already have this library if you use Magit 2.1.0 or later. This library
+is an optional dependency---it is required only for @kbd{M-x@tie{}guix}
+command (@pxref{Emacs Popup Interface}).
+
@end itemize
When it is done ``guix.el'' may be configured by requiring a special
@@ -105,22 +104,32 @@ emacs, The GNU Emacs Manual}).
You can activate Emacs packages installed in your profile whenever you
want using @kbd{M-x@tie{}guix-emacs-load-autoloads}.
-@node Emacs Usage
-@subsection Usage
+
+@node Emacs Package Management
+@section Package Management
Once ``guix.el'' has been successfully configured, you should be able to
-use commands for displaying packages and generations. This information
-can be displayed in a ``list'' or ``info'' buffer.
+use a visual interface for routine package management tasks, pretty much
+like the @command{guix package} command (@pxref{Invoking guix package}).
+Specifically, it makes it easy to:
+
+@itemize
+@item browse and display packages and generations;
+@item search, install, upgrade and remove packages;
+@item display packages from previous generations;
+@item do some other useful things.
+@end itemize
@menu
* Commands: Emacs Commands. @kbd{M-x guix-@dots{}}
* General information: Emacs General info. Common for both interfaces.
* ``List'' buffer: Emacs List buffer. List-like interface.
* ``Info'' buffer: Emacs Info buffer. Help-like interface.
+* Configuration: Emacs Configuration. Configuring the interface.
@end menu
@node Emacs Commands
-@subsubsection Commands
+@subsection Commands
All commands for displaying packages and generations use the current
profile, which can be changed with
@@ -191,7 +200,7 @@ Once @command{guix pull} has succeeded, the Guix REPL is restared. This
allows you to keep using the Emacs interface with the updated Guix.
@node Emacs General info
-@subsubsection General information
+@subsection General information
The following keys are available for both ``list'' and ``info'' types of
buffers:
@@ -235,7 +244,7 @@ was restarted, you may want to revert ``list'' buffer (by pressing
@kbd{g}).
@node Emacs List buffer
-@subsubsection ``List'' buffer
+@subsection ``List'' buffer
An interface of a ``list'' buffer is similar to the interface provided
by ``package.el'' (@pxref{Package Menu,,, emacs, The GNU Emacs Manual}).
@@ -310,7 +319,7 @@ with another marked generation.
@end table
@node Emacs Info buffer
-@subsubsection ``Info'' buffer
+@subsection ``Info'' buffer
The interface of an ``info'' buffer is similar to the interface of
@code{help-mode} (@pxref{Help Mode,,, emacs, The GNU Emacs Manual}).
@@ -484,12 +493,49 @@ Various settings for ``info'' buffers.
@end table
+@node Emacs Popup Interface
+@section Popup Interface
+
+If you ever used Magit, you know what ``popup interface'' is
+(@pxref{Top,,, magit-popup, Magit-Popup User Manual}). Even if you are
+not acquainted with Magit, there should be no worries as it is very
+intuitive.
+
+So @kbd{M-x@tie{}guix} command provides a top-level popup interface for
+all available guix commands. When you select an option, you'll be
+prompted for a value in the minibuffer. Many values have completions,
+so don't hesitate to press @key{TAB} key. Multiple values (for example,
+packages or lint checkers) should be separated by commas.
+
+After specifying all options and switches for a command, you may choose
+one of the available actions. The following default actions are
+available for all commands:
+
+@itemize
+
+@item
+Run the command in the Guix REPL. It is faster than running
+@code{guix@tie{}@dots{}} command directly in shell, as there is no
+need to run another guile process and to load required modules there.
+
+@item
+Run the command in a shell buffer. You can set
+@code{guix-run-in-shell-function} variable to fine tune the shell buffer
+you want to use.
+
+@item
+Add the command line to the kill ring (@pxref{Kill Ring,,, emacs, The
+GNU Emacs Manual}).
+
+@end itemize
+
+
@node Emacs Prettify
-@subsection Guix Prettify Mode
+@section Guix Prettify Mode
-Along with ``guix.el'', GNU@tie{}Guix comes with ``guix-prettify.el''.
-It provides a minor mode for abbreviating store file names by replacing
-hash sequences of symbols with ``@dots{}'':
+GNU@tie{}Guix also comes with ``guix-prettify.el''. It provides a minor
+mode for abbreviating store file names by replacing hash sequences of
+symbols with ``@dots{}'':
@example
/gnu/store/72f54nfp6g1hz873w8z3gfcah0h4nl9p-foo-0.1
@@ -526,7 +572,7 @@ mode hooks (@pxref{Hooks,,, emacs, The GNU Emacs Manual}), for example:
@node Emacs Completions
-@subsection Shell Completions
+@section Shell Completions
Another feature that becomes available after configuring Emacs interface
(@pxref{Emacs Initial Setup}) is completing of @command{guix}
diff --git a/doc/guix.texi b/doc/guix.texi
index f69440c325..9ae91a8d1e 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -70,6 +70,7 @@ package management tool written for the GNU system.
* Introduction:: What is Guix about?
* Installation:: Installing Guix.
* Package Management:: Package installation, upgrade, etc.
+* Emacs Interface:: Using Guix from Emacs.
* Programming Interface:: Using Guix in Scheme.
* Utilities:: Package management commands.
* GNU Distribution:: Software for your friendly GNU system.
@@ -101,13 +102,20 @@ Package Management
* Features:: How Guix will make your life brighter.
* Invoking guix package:: Package installation, removal, etc.
-* Emacs Interface:: Package management from Emacs.
* Substitutes:: Downloading pre-built binaries.
* Packages with Multiple Outputs:: Single source package, multiple outputs.
* Invoking guix gc:: Running the garbage collector.
* Invoking guix pull:: Fetching the latest Guix and distribution.
* Invoking guix archive:: Exporting and importing store files.
+Emacs Interface
+
+* Initial Setup: Emacs Initial Setup. Preparing @file{~/.emacs}.
+* Package Management: Emacs Package Management. Managing packages and generations.
+* Popup Interface: Emacs Popup Interface. Magit-like interface for guix commands.
+* Prettify Mode: Emacs Prettify. Abbreviating @file{/gnu/store/@dots{}} file names.
+* Completions: Emacs Completions. Completing @command{guix} shell command.
+
Programming Interface
* Defining Packages:: Defining new packages.
@@ -964,14 +972,13 @@ features.
This chapter describes the main features of Guix, as well as the package
management tools it provides. Two user interfaces are provided for
-routine package management tasks: a command-line interface
-(@pxref{Invoking guix package, @code{guix package}}), and a visual user
-interface in Emacs (@pxref{Emacs Interface}).
+routine package management tasks: A command-line interface described below
+(@pxref{Invoking guix package, @code{guix package}}), as well as a visual user
+interface in Emacs described in a subsequent chapter (@pxref{Emacs Interface}).
@menu
* Features:: How Guix will make your life brighter.
* Invoking guix package:: Package installation, removal, etc.
-* Emacs Interface:: Package management from Emacs.
* Substitutes:: Downloading pre-built binaries.
* Packages with Multiple Outputs:: Single source package, multiple outputs.
* Invoking guix gc:: Running the garbage collector.
@@ -1455,8 +1462,6 @@ Finally, since @command{guix package} may actually start build
processes, it supports all the common build options that @command{guix
build} supports (@pxref{Invoking guix build, common build options}).
-@include emacs.texi
-
@node Substitutes
@section Substitutes
@@ -1898,6 +1903,8 @@ automatically builds them. The build process may be controlled with the
same options that can be passed to the @command{guix build} command
(@pxref{Invoking guix build, common build options}).
+@c *********************************************************************
+@include emacs.texi
@c *********************************************************************
@node Programming Interface
@@ -2484,6 +2491,16 @@ passes flags specified by the @code{#:make-maker-flags} or
Which Perl package is used can be specified with @code{#:perl}.
@end defvr
+@defvr {Scheme Variable} r-build-system
+This variable is exported by @code{(guix build-system r)}. It
+implements the build procedure used by @uref{http://r-project.org, R}
+packages, which essentially is little more than running @code{R CMD
+INSTALL --library=/gnu/store/@dots{}} in an environment where
+@code{R_LIBS_SITE} contains the paths to all R package inputs. Tests
+are run after installation using the R function
+@code{tools::testInstalledPackage}.
+@end defvr
+
@defvr {Scheme Variable} ruby-build-system
This variable is exported by @code{(guix build-system ruby)}. It
implements the RubyGems build procedure used by Ruby packages, which
@@ -3612,7 +3629,7 @@ Make @var{file} a symlink to the result, and register it as a garbage
collector root.
@item --log-file
-Return the build log file names for the given
+Return the build log file names or URLs for the given
@var{package-or-derivation}s, or raise an error if build logs are
missing.
@@ -3626,7 +3643,19 @@ guix build --log-file guile
guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)'
@end example
+If a log is unavailable locally, and unless @code{--no-substitutes} is
+passed, the command looks for a corresponding log on one of the
+substitute servers (as specified with @code{--substitute-urls}.)
+
+So for instance, let's say you want to see the build log of GDB on MIPS
+but you're actually on an @code{x86_64} machine:
+@example
+$ guix build --log-file gdb -s mips64el-linux
+http://hydra.gnu.org/log/@dots{}-gdb-7.10
+@end example
+
+You can freely access a huge library of build logs!
@end table
@cindex common build options
@@ -3932,6 +3961,21 @@ Perl module:
guix import cpan Acme::Boolean
@end example
+@item cran
+@cindex CRAN
+Import meta-data from @uref{http://cran.r-project.org/, CRAN}, the
+central repository for the @uref{http://r-project.org, GNU@tie{}R
+statistical and graphical environment}.
+
+Information is extracted from the HTML package description.
+
+The command command below imports meta-data for the @code{Cairo}
+R package:
+
+@example
+guix import cran Cairo
+@end example
+
@item nix
Import meta-data from a local copy of the source of the
@uref{http://nixos.org/nixpkgs/, Nixpkgs distribution}@footnote{This
@@ -4385,6 +4429,16 @@ the values listed above.
@item --list-types
List the supported graph types.
+
+@item --expression=@var{expr}
+@itemx -e @var{expr}
+Consider the package @var{expr} evaluates to.
+
+This is useful to precisely refer to a package, as in this example:
+
+@example
+guix graph -e '(@@@@ (gnu packages commencement) gnu-make-final)'
+@end example
@end table
@@ -5477,7 +5531,7 @@ special-case and is automatically added whether or not it is specified.
A @dfn{locale} defines cultural conventions for a particular language
and region of the world (@pxref{Locales,,, libc, The GNU C Library
Reference Manual}). Each locale has a name that typically has the form
-@code{@var{language}_@var{territory}.@var{charset}}---e.g.,
+@code{@var{language}_@var{territory}.@var{codeset}}---e.g.,
@code{fr_LU.utf8} designates the locale for the French language, with
cultural conventions from Luxembourg, and using the UTF-8 encoding.
@@ -5538,9 +5592,17 @@ IANA}.
@end deftp
@defvr {Scheme Variable} %default-locale-definitions
-An arbitrary list of commonly used locales, used as the default value of
-the @code{locale-definitions} field of @code{operating-system}
+An arbitrary list of commonly used UTF-8 locales, used as the default
+value of the @code{locale-definitions} field of @code{operating-system}
declarations.
+
+@cindex locale name
+@cindex normalized codeset in locale names
+These locale definitions use the @dfn{normalized codeset} for the part
+that follows the dot in the name (@pxref{Using gettextized software,
+normalized codeset,, libc, The GNU C Library Reference Manual}). So for
+instance it has @code{uk_UA.utf8} but @emph{not}, say,
+@code{uk_UA.UTF-8}.
@end defvr
@node Services
@@ -6009,6 +6071,7 @@ adds or adjust services for a typical ``desktop'' setup.
In particular, it adds a graphical login manager (@pxref{X Window,
@code{slim-service}}), a network management tool (@pxref{Networking
Services, @code{wicd-service}}), energy and color management services,
+the @code{elogind} login and seat manager, the Polkit privilege service,
the GeoClue location service, an NTP client (@pxref{Networking
Services}), the Avahi daemon, and has the name service switch service
configured to be able to use @code{nss-mdns} (@pxref{Name Service
@@ -6037,6 +6100,87 @@ and policy files. For example, to allow avahi-daemon to use the system bus,
@var{services} must be equal to @code{(list avahi)}.
@end deffn
+@deffn {Monadic Procedure} elogind-service @
+ [#:elogind @var{elogind}] [#:config @var{config}]
+Return a service that runs the @code{elogind} login and
+seat management daemon. @uref{https://github.com/andywingo/elogind,
+Elogind} exposes a D-Bus interface that can be used to know which users
+are logged in, know what kind of sessions they have open, suspend the
+system, inhibit system suspend, reboot the system, and other tasks.
+
+Elogind handles most system-level power events for a computer, for
+example suspending the system when a lid is closed, or shutting it down
+when the power button is pressed.
+
+The @var{config} keyword argument specifies the configuration for
+elogind, and should be the result of a @code{(elogind-configuration
+(@var{parameter} @var{value})...)} invocation. Available parameters and
+their default values are:
+
+@table @code
+@item kill-user-processes?
+@code{#f}
+@item kill-only-users
+@code{()}
+@item kill-exclude-users
+@code{("root")}
+@item inhibit-delay-max-seconds
+@code{5}
+@item handle-power-key
+@code{poweroff}
+@item handle-suspend-key
+@code{suspend}
+@item handle-hibernate-key
+@code{hibernate}
+@item handle-lid-switch
+@code{suspend}
+@item handle-lid-switch-docked
+@code{ignore}
+@item power-key-ignore-inhibited?
+@code{#f}
+@item suspend-key-ignore-inhibited?
+@code{#f}
+@item hibernate-key-ignore-inhibited?
+@code{#f}
+@item lid-switch-ignore-inhibited?
+@code{#t}
+@item holdoff-timeout-seconds
+@code{30}
+@item idle-action
+@code{ignore}
+@item idle-action-seconds
+@code{(* 30 60)}
+@item runtime-directory-size-percent
+@code{10}
+@item runtime-directory-size
+@code{#f}
+@item remove-ipc?
+@code{#t}
+@item suspend-state
+@code{("mem" "standby" "freeze")}
+@item suspend-mode
+@code{()}
+@item hibernate-state
+@code{("disk")}
+@item hibernate-mode
+@code{("platform" "shutdown")}
+@item hybrid-sleep-state
+@code{("disk")}
+@item hybrid-sleep-mode
+@code{("suspend" "platform" "shutdown")}
+@end table
+@end deffn
+
+@deffn {Monadic Procedure} polkit-service @
+ [#:polkit @var{polkit}]
+Return a service that runs the Polkit privilege manager.
+@uref{http://www.freedesktop.org/wiki/Software/polkit/, Polkit} allows
+system administrators to grant access to privileged operations in a
+structured way. For example, polkit rules can allow a logged-in user
+whose session is active to shut down the machine, if there are no other
+users active.
+@end deffn
+
@deffn {Monadic Procedure} upower-service [#:upower @var{upower}] @
[#:watts-up-pro? #f] @
[#:poll-batteries? #t] @
diff --git a/emacs.am b/emacs.am
index 372b33e822..5d3cb81257 100644
--- a/emacs.am
+++ b/emacs.am
@@ -1,5 +1,5 @@
# GNU Guix --- Functional package management for GNU
-# Copyright © 2014 Alex Kost <alezost@gmail.com>
+# Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
#
# This file is part of GNU Guix.
#
@@ -21,13 +21,20 @@ AUTOLOADS = emacs/guix-autoloads.el
ELFILES = \
emacs/guix-backend.el \
emacs/guix-base.el \
+ emacs/guix-command.el \
emacs/guix-emacs.el \
+ emacs/guix-external.el \
+ emacs/guix-help-vars.el \
emacs/guix-history.el \
emacs/guix-info.el \
+ emacs/guix-init.el \
emacs/guix-list.el \
emacs/guix-messages.el \
emacs/guix-pcomplete.el \
+ emacs/guix-popup.el \
emacs/guix-prettify.el \
+ emacs/guix-profiles.el \
+ emacs/guix-read.el \
emacs/guix-utils.el \
emacs/guix.el
@@ -37,9 +44,7 @@ dist_lisp_DATA = \
$(ELFILES) \
$(AUTOLOADS)
-nodist_lisp_DATA = \
- emacs/guix-init.el \
- emacs/guix-profiles.el
+nodist_lisp_DATA = emacs/guix-config.el
$(AUTOLOADS): $(ELFILES)
$(EMACS) --batch --eval \
diff --git a/emacs/guix-backend.el b/emacs/guix-backend.el
index 73a429b9ee..7db1daacf0 100644
--- a/emacs/guix-backend.el
+++ b/emacs/guix-backend.el
@@ -52,26 +52,16 @@
;;; Code:
(require 'geiser-mode)
+(require 'guix-config)
(require 'guix-emacs)
-(defvar guix-load-path
- (file-name-directory (or load-file-name
- (locate-library "guix")))
+(defvar guix-load-path guix-emacs-interface-directory
"Directory with scheme files for \"guix.el\" package.")
(defvar guix-helper-file
(expand-file-name "guix-helper.scm" guix-load-path)
"Auxiliary scheme file for loading.")
-(defvar guix-guile-program (or geiser-guile-binary "guile")
- "Name of the guile executable used for Guix REPL.
-May be either a string (the name of the executable) or a list of
-strings of the form:
-
- (NAME . ARGS)
-
-Where ARGS is a list of arguments to the guile program.")
-
;;; REPL
diff --git a/emacs/guix-base.el b/emacs/guix-base.el
index fe89584f18..3bee910b05 100644
--- a/emacs/guix-base.el
+++ b/emacs/guix-base.el
@@ -1,6 +1,6 @@
;;; guix-base.el --- Common definitions -*- lexical-binding: t -*-
-;; Copyright © 2014 Alex Kost <alezost@gmail.com>
+;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
;; This file is part of GNU Guix.
@@ -89,8 +89,8 @@ Each element of the list has a form:
(defun guix-get-param-title (entry-type param)
"Return title of an ENTRY-TYPE entry parameter PARAM."
- (or (guix-get-key-val guix-param-titles
- entry-type param)
+ (or (guix-assq-value guix-param-titles
+ entry-type param)
(prog1 (symbol-name param)
(message "Couldn't find title for '%S %S'."
entry-type param))))
@@ -102,15 +102,15 @@ Each element of the list has a form:
(defun guix-get-full-name (entry &optional output)
"Return name specification of the package ENTRY and OUTPUT."
- (guix-get-name-spec (guix-get-key-val entry 'name)
- (guix-get-key-val entry 'version)
+ (guix-get-name-spec (guix-assq-value entry 'name)
+ (guix-assq-value entry 'version)
output))
(defun guix-entry-to-specification (entry)
"Return name specification by the package or output ENTRY."
- (guix-get-name-spec (guix-get-key-val entry 'name)
- (guix-get-key-val entry 'version)
- (guix-get-key-val entry 'output)))
+ (guix-get-name-spec (guix-assq-value entry 'name)
+ (guix-assq-value entry 'version)
+ (guix-assq-value entry 'output)))
(defun guix-entries-to-specifications (entries)
"Return name specifications by the package or output ENTRIES."
@@ -120,13 +120,13 @@ Each element of the list has a form:
(defun guix-get-installed-outputs (entry)
"Return list of installed outputs for the package ENTRY."
(mapcar (lambda (installed-entry)
- (guix-get-key-val installed-entry 'output))
- (guix-get-key-val entry 'installed)))
+ (guix-assq-value installed-entry 'output))
+ (guix-assq-value entry 'installed)))
(defun guix-get-entry-by-id (id entries)
"Return entry from ENTRIES by entry ID."
(cl-find-if (lambda (entry)
- (equal id (guix-get-key-val entry 'id)))
+ (equal id (guix-assq-value entry 'id)))
entries))
(defun guix-get-package-id-and-output-by-output-id (oid)
@@ -172,13 +172,36 @@ If PATH is relative, it is considered to be relative to
(move-to-column col)
(recenter 1))))
-(defun guix-edit-package (id)
- "Edit (go to location of) package with ID."
- (let ((loc (guix-eval-read (guix-make-guile-expression
- 'package-location-string id))))
- (if loc
- (guix-find-location loc)
- (message "Couldn't find package location."))))
+(defun guix-package-location (id-or-name)
+ "Return location of a package with ID-OR-NAME.
+For the meaning of location, see `guix-find-location'."
+ (guix-eval-read (guix-make-guile-expression
+ 'package-location-string id-or-name)))
+
+
+;;; Receivable lists of packages, lint checkers, etc.
+
+(guix-memoized-defun guix-graph-type-names ()
+ "Return a list of names of available graph node types."
+ (guix-eval-read (guix-make-guile-expression 'graph-type-names)))
+
+(guix-memoized-defun guix-lint-checker-names ()
+ "Return a list of names of available lint checkers."
+ (guix-eval-read (guix-make-guile-expression 'lint-checker-names)))
+
+(guix-memoized-defun guix-package-names ()
+ "Return a list of names of available packages."
+ (sort
+ ;; Work around <https://github.com/jaor/geiser/issues/64>:
+ ;; list of strings is parsed much slower than list of lists,
+ ;; so we use 'package-names-lists' instead of 'package-names'.
+
+ ;; (guix-eval-read (guix-make-guile-expression 'package-names))
+
+ (mapcar #'car
+ (guix-eval-read (guix-make-guile-expression
+ 'package-names-lists)))
+ #'string<))
;;; Buffers and auto updating.
@@ -392,7 +415,6 @@ following keywords are available:
(prefix (concat "guix-" entry-type-str "-" buf-type-str))
(group (intern prefix))
(mode-map-str (concat prefix "-mode-map"))
- (mode-map (intern mode-map-str))
(parent-mode (intern (concat "guix-" buf-type-str "-mode")))
(mode (intern (concat prefix "-mode")))
(mode-init-fun (intern (concat prefix "-mode-initialize")))
@@ -910,11 +932,11 @@ ENTRIES is a list of package entries to get info about packages."
(outputs (cdr spec))
(entry (guix-get-entry-by-id id entries)))
(when entry
- (let ((location (guix-get-key-val entry 'location)))
+ (let ((location (guix-assq-value entry 'location)))
(concat (guix-get-full-name entry)
(when outputs
(concat ":"
- (mapconcat #'identity outputs ",")))
+ (guix-concat-strings outputs ",")))
(when location
(concat "\t(" location ")")))))))
specs)))
@@ -1061,6 +1083,63 @@ FILE. With a prefix argument, also prompt for PROFILE."
operation-buffer)))
+;;; Executing guix commands
+
+(defcustom guix-run-in-shell-function #'guix-run-in-shell
+ "Function used to run guix command.
+The function is called with a single argument - a command line string."
+ :type '(choice (function-item guix-run-in-shell)
+ (function-item guix-run-in-eshell)
+ (function :tag "Other function"))
+ :group 'guix)
+
+(defcustom guix-shell-buffer-name "*shell*"
+ "Default name of a shell buffer used for running guix commands."
+ :type 'string
+ :group 'guix)
+
+(declare-function comint-send-input "comint" t)
+
+(defun guix-run-in-shell (string)
+ "Run command line STRING in `guix-shell-buffer-name' buffer."
+ (shell guix-shell-buffer-name)
+ (goto-char (point-max))
+ (insert string)
+ (comint-send-input))
+
+(declare-function eshell-send-input "esh-mode" t)
+
+(defun guix-run-in-eshell (string)
+ "Run command line STRING in eshell buffer."
+ (eshell)
+ (goto-char (point-max))
+ (insert string)
+ (eshell-send-input))
+
+(defun guix-run-command-in-shell (args)
+ "Execute 'guix ARGS ...' command in a shell buffer."
+ (funcall guix-run-in-shell-function
+ (guix-command-string args)))
+
+(defun guix-run-command-in-repl (args)
+ "Execute 'guix ARGS ...' command in Guix REPL."
+ (guix-eval-in-repl
+ (apply #'guix-make-guile-expression
+ 'guix-command args)))
+
+(defun guix-command-output (args)
+ "Return string with 'guix ARGS ...' output."
+ (guix-eval-read
+ (apply #'guix-make-guile-expression
+ 'guix-command-output args)))
+
+(defun guix-help-string (&optional commands)
+ "Return string with 'guix COMMANDS ... --help' output."
+ (guix-eval-read
+ (apply #'guix-make-guile-expression
+ 'help-string commands)))
+
+
;;; Pull
(defcustom guix-update-after-pull t
diff --git a/emacs/guix-command.el b/emacs/guix-command.el
new file mode 100644
index 0000000000..81f619f434
--- /dev/null
+++ b/emacs/guix-command.el
@@ -0,0 +1,671 @@
+;;; guix-command.el --- Popup interface for guix commands -*- lexical-binding: t -*-
+
+;; Copyright © 2015 Alex Kost <alezost@gmail.com>
+
+;; 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 this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file provides a magit-like popup interface for running guix
+;; commands in Guix REPL. The entry point is "M-x guix". When it is
+;; called the first time, "guix --help" output is parsed and
+;; `guix-COMMAND-action' functions are generated for each available guix
+;; COMMAND. Then a window with these commands is popped up. When a
+;; particular COMMAND is called, "guix COMMAND --help" output is parsed,
+;; and a user get a new popup window with available options for this
+;; command and so on.
+
+;; To avoid hard-coding all guix options, actions, etc., as much data is
+;; taken from "guix ... --help" outputs as possible. But this data is
+;; still incomplete: not all long options have short analogs, also
+;; special readers should be used for some options (for example, to
+;; complete package names while prompting for a package). So after
+;; parsing --help output, the arguments are "improved". All arguments
+;; (switches, options and actions) are `guix-command-argument'
+;; structures.
+
+;; Only "M-x guix" command is available after this file is loaded. The
+;; rest commands/actions/popups are generated on the fly only when they
+;; are needed (that's why there is a couple of `eval'-s in this file).
+
+;; COMMANDS argument is used by many functions in this file. It means a
+;; list of guix commands without "guix" itself, e.g.: ("build"),
+;; ("import" "gnu"). The empty list stands for the plain "guix" without
+;; subcommands.
+
+;; All actions in popup windows are divided into 2 groups:
+;;
+;; - 'Popup' actions - used to pop up another window. For example, every
+;; action in the 'guix' or 'guix import' window is a popup action. They
+;; are defined by `guix-command-define-popup-action' macro.
+;;
+;; - 'Execute' actions - used to do something with the command line (to
+;; run a command in Guix REPL or to copy it into kill-ring) constructed
+;; with the current popup. They are defined by
+;; `guix-command-define-execute-action' macro.
+
+;;; Code:
+
+(require 'cl-lib)
+(require 'guix-popup)
+(require 'guix-utils)
+(require 'guix-help-vars)
+(require 'guix-read)
+(require 'guix-base)
+(require 'guix-external)
+
+(defgroup guix-commands nil
+ "Settings for guix popup windows."
+ :group 'guix)
+
+(defvar guix-command-complex-with-shared-arguments
+ '("system")
+ "List of guix commands which have subcommands with shared options.
+I.e., 'guix foo --help' is the same as 'guix foo bar --help'.")
+
+(defun guix-command-action-name (&optional commands &rest name-parts)
+ "Return name of action function for guix COMMANDS."
+ (guix-command-symbol (append commands name-parts (list "action"))))
+
+
+;;; Command arguments
+
+(cl-defstruct (guix-command-argument
+ (:constructor guix-command-make-argument)
+ (:copier guix-command-copy-argument))
+ name char doc fun switch? option? action?)
+
+(cl-defun guix-command-modify-argument
+ (argument &key
+ (name nil name-bound?)
+ (char nil char-bound?)
+ (doc nil doc-bound?)
+ (fun nil fun-bound?)
+ (switch? nil switch?-bound?)
+ (option? nil option?-bound?)
+ (action? nil action?-bound?))
+ "Return a modified version of ARGUMENT."
+ (declare (indent 1))
+ (let ((copy (guix-command-copy-argument argument)))
+ (and name-bound? (setf (guix-command-argument-name copy) name))
+ (and char-bound? (setf (guix-command-argument-char copy) char))
+ (and doc-bound? (setf (guix-command-argument-doc copy) doc))
+ (and fun-bound? (setf (guix-command-argument-fun copy) fun))
+ (and switch?-bound? (setf (guix-command-argument-switch? copy) switch?))
+ (and option?-bound? (setf (guix-command-argument-option? copy) option?))
+ (and action?-bound? (setf (guix-command-argument-action? copy) action?))
+ copy))
+
+(defun guix-command-modify-argument-from-alist (argument alist)
+ "Return a modified version of ARGUMENT or nil if it wasn't modified.
+Each assoc from ALIST have a form (NAME . PLIST). NAME is an
+argument name. PLIST is a property list of argument parameters
+to be modified."
+ (let* ((name (guix-command-argument-name argument))
+ (plist (guix-assoc-value alist name)))
+ (when plist
+ (apply #'guix-command-modify-argument
+ argument plist))))
+
+(defmacro guix-command-define-argument-improver (name alist)
+ "Define NAME variable and function to modify an argument from ALIST."
+ (declare (indent 1))
+ `(progn
+ (defvar ,name ,alist)
+ (defun ,name (argument)
+ (guix-command-modify-argument-from-alist argument ,name))))
+
+(guix-command-define-argument-improver
+ guix-command-improve-action-argument
+ '(("graph" :char ?G)
+ ("environment" :char ?E)
+ ("publish" :char ?u)
+ ("pull" :char ?P)
+ ("size" :char ?z)))
+
+(guix-command-define-argument-improver
+ guix-command-improve-common-argument
+ '(("--help" :switch? nil)
+ ("--version" :switch? nil)))
+
+(guix-command-define-argument-improver
+ guix-command-improve-target-argument
+ '(("--target" :char ?T)))
+
+(guix-command-define-argument-improver
+ guix-command-improve-system-type-argument
+ '(("--system" :fun guix-read-system-type)))
+
+(guix-command-define-argument-improver
+ guix-command-improve-load-path-argument
+ '(("--load-path" :fun read-directory-name)))
+
+(guix-command-define-argument-improver
+ guix-command-improve-search-paths-argument
+ '(("--search-paths" :char ?P)))
+
+(guix-command-define-argument-improver
+ guix-command-improve-substitute-urls-argument
+ '(("--substitute-urls" :char ?U)))
+
+(guix-command-define-argument-improver
+ guix-command-improve-hash-argument
+ '(("--format" :fun guix-read-hash-format)))
+
+(guix-command-define-argument-improver
+ guix-command-improve-key-policy-argument
+ '(("--key-download" :fun guix-read-key-policy)))
+
+(defvar guix-command-improve-common-build-argument
+ '(("--no-substitutes" :char ?s)
+ ("--no-build-hook" :char ?h)
+ ("--max-silent-time" :char ?x)))
+
+(defun guix-command-improve-common-build-argument (argument)
+ (guix-command-modify-argument-from-alist
+ argument
+ (append guix-command-improve-load-path-argument
+ guix-command-improve-substitute-urls-argument
+ guix-command-improve-common-build-argument)))
+
+(guix-command-define-argument-improver
+ guix-command-improve-archive-argument
+ '(("--generate-key" :char ?k)))
+
+(guix-command-define-argument-improver
+ guix-command-improve-build-argument
+ '(("--no-grafts" :char ?g)
+ ("--root" :fun guix-read-file-name)
+ ("--sources" :char ?S :fun guix-read-source-type :switch? nil)
+ ("--with-source" :fun guix-read-file-name)))
+
+(guix-command-define-argument-improver
+ guix-command-improve-environment-argument
+ '(("--exec" :fun read-shell-command)
+ ("--load" :fun guix-read-file-name)))
+
+(guix-command-define-argument-improver
+ guix-command-improve-gc-argument
+ '(("--list-dead" :char ?D)
+ ("--list-live" :char ?L)
+ ("--referrers" :char ?f)
+ ("--verify" :fun guix-read-verify-options-string)))
+
+(guix-command-define-argument-improver
+ guix-command-improve-graph-argument
+ '(("--type" :fun guix-read-graph-type)))
+
+(guix-command-define-argument-improver
+ guix-command-improve-import-argument
+ '(("cran" :char ?r)))
+
+(guix-command-define-argument-improver
+ guix-command-improve-import-elpa-argument
+ '(("--archive" :fun guix-read-elpa-archive)))
+
+(guix-command-define-argument-improver
+ guix-command-improve-lint-argument
+ '(("--checkers" :fun guix-read-lint-checker-names-string)))
+
+(guix-command-define-argument-improver
+ guix-command-improve-package-argument
+ ;; Unlike all other options, --install/--remove do not have a form
+ ;; '--install=foo,bar' but '--install foo bar' instead, so we need
+ ;; some tweaks.
+ '(("--install"
+ :name "--install " :fun guix-read-package-names-string
+ :switch? nil :option? t)
+ ("--remove"
+ :name "--remove " :fun guix-read-package-names-string
+ :switch? nil :option? t)
+ ("--install-from-file" :fun guix-read-file-name)
+ ("--manifest" :fun guix-read-file-name)
+ ("--do-not-upgrade" :char ?U)
+ ("--roll-back" :char ?R)
+ ("--show" :char ?w :fun guix-read-package-name)))
+
+(guix-command-define-argument-improver
+ guix-command-improve-refresh-argument
+ '(("--select" :fun guix-read-refresh-subset)
+ ("--key-server" :char ?S)))
+
+(guix-command-define-argument-improver
+ guix-command-improve-size-argument
+ '(("--map-file" :fun guix-read-file-name)))
+
+(guix-command-define-argument-improver
+ guix-command-improve-system-argument
+ '(("vm-image" :char ?V)
+ ("--on-error" :char ?E)
+ ("--no-grub" :char ?g)
+ ("--full-boot" :char ?b)))
+
+(defvar guix-command-argument-improvers
+ '((()
+ guix-command-improve-action-argument)
+ (("archive")
+ guix-command-improve-common-build-argument
+ guix-command-improve-target-argument
+ guix-command-improve-system-type-argument
+ guix-command-improve-archive-argument)
+ (("build")
+ guix-command-improve-common-build-argument
+ guix-command-improve-target-argument
+ guix-command-improve-system-type-argument
+ guix-command-improve-build-argument)
+ (("download")
+ guix-command-improve-hash-argument)
+ (("hash")
+ guix-command-improve-hash-argument)
+ (("environment")
+ guix-command-improve-common-build-argument
+ guix-command-improve-search-paths-argument
+ guix-command-improve-system-type-argument
+ guix-command-improve-environment-argument)
+ (("gc")
+ guix-command-improve-gc-argument)
+ (("graph")
+ guix-command-improve-graph-argument)
+ (("import")
+ guix-command-improve-import-argument)
+ (("import" "gnu")
+ guix-command-improve-key-policy-argument)
+ (("import" "elpa")
+ guix-command-improve-import-elpa-argument)
+ (("lint")
+ guix-command-improve-lint-argument)
+ (("package")
+ guix-command-improve-common-build-argument
+ guix-command-improve-search-paths-argument
+ guix-command-improve-package-argument)
+ (("refresh")
+ guix-command-improve-key-policy-argument
+ guix-command-improve-refresh-argument)
+ (("size")
+ guix-command-improve-system-type-argument
+ guix-command-improve-substitute-urls-argument
+ guix-command-improve-size-argument)
+ (("system")
+ guix-command-improve-common-build-argument
+ guix-command-improve-system-argument))
+ "Alist of guix commands and argument improvers for them.")
+
+(defun guix-command-improve-argument (argument improvers)
+ "Return ARGUMENT modified with IMPROVERS."
+ (or (guix-any (lambda (improver)
+ (funcall improver argument))
+ improvers)
+ argument))
+
+(defun guix-command-improve-arguments (arguments commands)
+ "Return ARGUMENTS for 'guix COMMANDS ...' modified for popup interface."
+ (let ((improvers (cons 'guix-command-improve-common-argument
+ (guix-assoc-value guix-command-argument-improvers
+ commands))))
+ (mapcar (lambda (argument)
+ (guix-command-improve-argument argument improvers))
+ arguments)))
+
+(defun guix-command-parse-arguments (&optional commands)
+ "Return a list of parsed 'guix COMMANDS ...' arguments."
+ (with-temp-buffer
+ (insert (guix-help-string commands))
+ (let (args)
+ (guix-while-search guix-help-parse-option-regexp
+ (let* ((short (match-string-no-properties 1))
+ (name (match-string-no-properties 2))
+ (arg (match-string-no-properties 3))
+ (doc (match-string-no-properties 4))
+ (char (if short
+ (elt short 1) ; short option letter
+ (elt name 2))) ; first letter of the long option
+ ;; If "--foo=bar" or "--foo[=bar]" then it is 'option'.
+ (option? (not (string= "" arg)))
+ ;; If "--foo" or "--foo[=bar]" then it is 'switch'.
+ (switch? (or (string= "" arg)
+ (eq ?\[ (elt arg 0)))))
+ (push (guix-command-make-argument
+ :name name
+ :char char
+ :doc doc
+ :switch? switch?
+ :option? option?)
+ args)))
+ (guix-while-search guix-help-parse-command-regexp
+ (let* ((name (match-string-no-properties 1))
+ (char (elt name 0)))
+ (push (guix-command-make-argument
+ :name name
+ :char char
+ :fun (guix-command-action-name commands name)
+ :action? t)
+ args)))
+ args)))
+
+(defun guix-command-rest-argument (&optional commands)
+ "Return '--' argument for COMMANDS."
+ (cl-flet ((argument (&rest args)
+ (apply #'guix-command-make-argument
+ :name "-- " :char ?= :option? t args)))
+ (let ((command (car commands)))
+ (cond
+ ((member command '("archive" "build" "graph" "edit"
+ "environment" "lint" "refresh"))
+ (argument :doc "Packages" :fun 'guix-read-package-names-string))
+ ((string= command "download")
+ (argument :doc "URL"))
+ ((string= command "gc")
+ (argument :doc "Paths" :fun 'guix-read-file-name))
+ ((member command '("hash" "system"))
+ (argument :doc "File" :fun 'guix-read-file-name))
+ ((string= command "size")
+ (argument :doc "Package" :fun 'guix-read-package-name))
+ ((equal commands '("import" "nix"))
+ (argument :doc "Nixpkgs Attribute"))
+ ;; Other 'guix import' subcommands, but not 'import' itself.
+ ((and (cdr commands)
+ (string= command "import"))
+ (argument :doc "Package name"))))))
+
+(defun guix-command-additional-arguments (&optional commands)
+ "Return additional arguments for COMMANDS."
+ (let ((rest-arg (guix-command-rest-argument commands)))
+ (and rest-arg (list rest-arg))))
+
+;; Ideally only `guix-command-arguments' function should exist with the
+;; contents of `guix-command-all-arguments', but we need to make a
+;; special case for `guix-command-complex-with-shared-arguments' commands.
+
+(defun guix-command-all-arguments (&optional commands)
+ "Return list of all arguments for 'guix COMMANDS ...'."
+ (let ((parsed (guix-command-parse-arguments commands)))
+ (append (guix-command-improve-arguments parsed commands)
+ (guix-command-additional-arguments commands))))
+
+(guix-memoized-defalias guix-command-all-arguments-memoize
+ guix-command-all-arguments)
+
+(defun guix-command-arguments (&optional commands)
+ "Return list of arguments for 'guix COMMANDS ...'."
+ (let ((command (car commands)))
+ (if (member command
+ guix-command-complex-with-shared-arguments)
+ ;; Take actions only for 'guix system', and switches+options for
+ ;; 'guix system foo'.
+ (funcall (if (null (cdr commands))
+ #'cl-remove-if-not
+ #'cl-remove-if)
+ #'guix-command-argument-action?
+ (guix-command-all-arguments-memoize (list command)))
+ (guix-command-all-arguments commands))))
+
+(defun guix-command-switch->popup-switch (switch)
+ "Return popup switch from command SWITCH argument."
+ (list (guix-command-argument-char switch)
+ (or (guix-command-argument-doc switch)
+ "Unknown")
+ (guix-command-argument-name switch)))
+
+(defun guix-command-option->popup-option (option)
+ "Return popup option from command OPTION argument."
+ (list (guix-command-argument-char option)
+ (or (guix-command-argument-doc option)
+ "Unknown")
+ (let ((name (guix-command-argument-name option)))
+ (if (string-match-p " \\'" name) ; ends with space
+ name
+ (concat name "=")))
+ (or (guix-command-argument-fun option)
+ 'read-from-minibuffer)))
+
+(defun guix-command-action->popup-action (action)
+ "Return popup action from command ACTION argument."
+ (list (guix-command-argument-char action)
+ (or (guix-command-argument-doc action)
+ (guix-command-argument-name action)
+ "Unknown")
+ (guix-command-argument-fun action)))
+
+(defun guix-command-sort-arguments (arguments)
+ "Sort ARGUMENTS by name in alphabetical order."
+ (sort arguments
+ (lambda (a1 a2)
+ (let ((name1 (guix-command-argument-name a1))
+ (name2 (guix-command-argument-name a2)))
+ (cond ((null name1) nil)
+ ((null name2) t)
+ (t (string< name1 name2)))))))
+
+(defun guix-command-switches (arguments)
+ "Return switches from ARGUMENTS."
+ (cl-remove-if-not #'guix-command-argument-switch? arguments))
+
+(defun guix-command-options (arguments)
+ "Return options from ARGUMENTS."
+ (cl-remove-if-not #'guix-command-argument-option? arguments))
+
+(defun guix-command-actions (arguments)
+ "Return actions from ARGUMENTS."
+ (cl-remove-if-not #'guix-command-argument-action? arguments))
+
+(defun guix-command-post-process-args (args)
+ "Adjust appropriately command line ARGS returned from popup command."
+ ;; XXX We need to split "--install foo bar" and similar strings into
+ ;; lists of strings. But some commands (e.g., 'guix hash') accept a
+ ;; file name as the 'rest' argument, and as file names may contain
+ ;; spaces, splitting by spaces will break such names. For example, the
+ ;; following argument: "-- /tmp/file with spaces" will be transformed
+ ;; into the following list: ("--" "/tmp/file" "with" "spaces") instead
+ ;; of the wished ("--" "/tmp/file with spaces").
+ (let* (rest
+ (rx (rx string-start
+ (or "-- " "--install " "--remove ")))
+ (args (mapcar (lambda (arg)
+ (if (string-match-p rx arg)
+ (progn (push (split-string arg) rest)
+ nil)
+ arg))
+ args)))
+ (if rest
+ (apply #'append (delq nil args) rest)
+ args)))
+
+
+;;; 'Execute' actions
+
+(defvar guix-command-default-execute-arguments
+ (list
+ (guix-command-make-argument
+ :name "repl" :char ?r :doc "Run in Guix REPL")
+ (guix-command-make-argument
+ :name "shell" :char ?s :doc "Run in shell")
+ (guix-command-make-argument
+ :name "copy" :char ?c :doc "Copy command line"))
+ "List of default 'execute' action arguments.")
+
+(defvar guix-command-additional-execute-arguments
+ `((("graph")
+ ,(guix-command-make-argument
+ :name "view" :char ?v :doc "View graph")))
+ "Alist of guix commands and additional 'execute' action arguments.")
+
+(defun guix-command-execute-arguments (commands)
+ "Return a list of 'execute' action arguments for COMMANDS."
+ (mapcar (lambda (arg)
+ (guix-command-modify-argument arg
+ :action? t
+ :fun (guix-command-action-name
+ commands (guix-command-argument-name arg))))
+ (append guix-command-default-execute-arguments
+ (guix-assoc-value
+ guix-command-additional-execute-arguments commands))))
+
+(defvar guix-command-special-executors
+ '((("environment")
+ ("repl" . guix-run-environment-command-in-repl))
+ (("pull")
+ ("repl" . guix-run-pull-command-in-repl))
+ (("graph")
+ ("view" . guix-run-view-graph)))
+ "Alist of guix commands and alists of special executers for them.
+See also `guix-command-default-executors'.")
+
+(defvar guix-command-default-executors
+ '(("repl" . guix-run-command-in-repl)
+ ("shell" . guix-run-command-in-shell)
+ ("copy" . guix-copy-command-as-kill))
+ "Alist of default executers for action names.")
+
+(defun guix-command-executor (commands name)
+ "Return function to run command line arguments for guix COMMANDS."
+ (or (guix-assoc-value guix-command-special-executors commands name)
+ (guix-assoc-value guix-command-default-executors name)))
+
+(defun guix-run-environment-command-in-repl (args)
+ "Run 'guix ARGS ...' environment command in Guix REPL."
+ ;; As 'guix environment' usually tries to run another process, it may
+ ;; be fun but not wise to run this command in Geiser REPL.
+ (when (or (member "--dry-run" args)
+ (member "--search-paths" args)
+ (when (y-or-n-p
+ (format "'%s' command will spawn an external process.
+Do you really want to execute this command in Geiser REPL? "
+ (guix-command-string args)))
+ (message "May \"M-x shell-mode\" be with you!")
+ t))
+ (guix-run-command-in-repl args)))
+
+(defun guix-run-pull-command-in-repl (args)
+ "Run 'guix ARGS ...' pull command in Guix REPL.
+Perform pull-specific actions after operation, see
+`guix-after-pull-hook' and `guix-update-after-pull'."
+ (guix-eval-in-repl
+ (apply #'guix-make-guile-expression 'guix-command args)
+ nil 'pull))
+
+(defun guix-run-view-graph (args)
+ "Run 'guix ARGS ...' graph command, make the image and open it."
+ (let* ((graph-file (guix-dot-file-name))
+ (dot-args (guix-dot-arguments graph-file)))
+ (if (guix-eval-read (guix-make-guile-expression
+ 'pipe-guix-output args dot-args))
+ (guix-find-file graph-file)
+ (error "Couldn't create a graph"))))
+
+
+;;; Generating popups, actions, etc.
+
+(defmacro guix-command-define-popup-action (name &optional commands)
+ "Define NAME function to generate (if needed) and run popup for COMMANDS."
+ (declare (indent 1) (debug t))
+ (let* ((popup-fun (guix-command-symbol `(,@commands "popup")))
+ (doc (format "Call `%s' (generate it if needed)."
+ popup-fun)))
+ `(defun ,name (&optional arg)
+ ,doc
+ (interactive "P")
+ (unless (fboundp ',popup-fun)
+ (guix-command-generate-popup ',popup-fun ',commands))
+ (,popup-fun arg))))
+
+(defmacro guix-command-define-execute-action (name executor
+ &optional commands)
+ "Define NAME function to execute the current action for guix COMMANDS.
+EXECUTOR function is called with the current command line arguments."
+ (declare (indent 1) (debug t))
+ (let* ((arguments-fun (guix-command-symbol `(,@commands "arguments")))
+ (doc (format "Call `%s' with the current popup arguments."
+ executor)))
+ `(defun ,name (&rest args)
+ ,doc
+ (interactive (,arguments-fun))
+ (,executor (append ',commands
+ (guix-command-post-process-args args))))))
+
+(defun guix-command-generate-popup-actions (actions &optional commands)
+ "Generate 'popup' commands from ACTIONS arguments for guix COMMANDS."
+ (dolist (action actions)
+ (let ((fun (guix-command-argument-fun action)))
+ (unless (fboundp fun)
+ (eval `(guix-command-define-popup-action ,fun
+ ,(append commands
+ (list (guix-command-argument-name action)))))))))
+
+(defun guix-command-generate-execute-actions (actions &optional commands)
+ "Generate 'execute' commands from ACTIONS arguments for guix COMMANDS."
+ (dolist (action actions)
+ (let ((fun (guix-command-argument-fun action)))
+ (unless (fboundp fun)
+ (eval `(guix-command-define-execute-action ,fun
+ ,(guix-command-executor
+ commands (guix-command-argument-name action))
+ ,commands))))))
+
+(defun guix-command-generate-popup (name &optional commands)
+ "Define NAME popup with 'guix COMMANDS ...' interface."
+ (let* ((command (car commands))
+ (man-page (concat "guix" (and command (concat "-" command))))
+ (doc (format "Popup window for '%s' command."
+ (guix-concat-strings (cons "guix" commands)
+ " ")))
+ (args (guix-command-arguments commands))
+ (switches (guix-command-sort-arguments
+ (guix-command-switches args)))
+ (options (guix-command-sort-arguments
+ (guix-command-options args)))
+ (popup-actions (guix-command-sort-arguments
+ (guix-command-actions args)))
+ (execute-actions (unless popup-actions
+ (guix-command-execute-arguments commands)))
+ (actions (or popup-actions execute-actions)))
+ (if popup-actions
+ (guix-command-generate-popup-actions popup-actions commands)
+ (guix-command-generate-execute-actions execute-actions commands))
+ (eval
+ `(guix-define-popup ,name
+ ,doc
+ 'guix-commands
+ :man-page ,man-page
+ :switches ',(mapcar #'guix-command-switch->popup-switch switches)
+ :options ',(mapcar #'guix-command-option->popup-option options)
+ :actions ',(mapcar #'guix-command-action->popup-action actions)
+ :max-action-columns 4))))
+
+;;;###autoload (autoload 'guix "guix-command" "Popup window for 'guix'." t)
+(guix-command-define-popup-action guix)
+
+(defalias 'guix-edit-action #'guix-edit)
+
+
+(defvar guix-command-font-lock-keywords
+ (eval-when-compile
+ `((,(rx "("
+ (group "guix-command-define-"
+ (or "popup-action"
+ "execute-action"
+ "argument-improver"))
+ symbol-end
+ (zero-or-more blank)
+ (zero-or-one
+ (group (one-or-more (or (syntax word) (syntax symbol))))))
+ (1 font-lock-keyword-face)
+ (2 font-lock-function-name-face nil t)))))
+
+(font-lock-add-keywords 'emacs-lisp-mode guix-command-font-lock-keywords)
+
+(provide 'guix-command)
+
+;;; guix-command.el ends here
diff --git a/emacs/guix-config.el.in b/emacs/guix-config.el.in
new file mode 100644
index 0000000000..16434cecea
--- /dev/null
+++ b/emacs/guix-config.el.in
@@ -0,0 +1,40 @@
+;;; guix-config.el --- Compile-time configuration of Guix.
+
+;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
+
+;; This file is part of GNU Guix.
+
+;; GNU Guix is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Guix is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Code:
+
+(defconst guix-emacs-interface-directory
+ (replace-regexp-in-string "${prefix}" "@prefix@" "@emacsuidir@"))
+
+(defconst guix-state-directory
+ ;; This must match `NIX_STATE_DIR' as defined in `daemon.am'.
+ (or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix"))
+
+(defvar guix-guile-program "@GUILE@"
+ "Name of the guile executable used for Guix REPL.
+May be either a string (the name of the executable) or a list of
+strings of the form:
+
+ (NAME . ARGS)
+
+Where ARGS is a list of arguments to the guile program.")
+
+(provide 'guix-config)
+
+;;; guix-config.el ends here
diff --git a/emacs/guix-external.el b/emacs/guix-external.el
new file mode 100644
index 0000000000..d233473abe
--- /dev/null
+++ b/emacs/guix-external.el
@@ -0,0 +1,72 @@
+;;; guix-external.el --- External programs -*- lexical-binding: t -*-
+
+;; Copyright © 2015 Alex Kost <alezost@gmail.com>
+
+;; 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 this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file provides auxiliary code for running external programs.
+
+;;; Code:
+
+(defgroup guix-external nil
+ "Settings for external programs."
+ :group 'guix)
+
+(defcustom guix-dot-program (executable-find "dot")
+ "Name of the 'dot' executable."
+ :type 'string
+ :group 'guix-external)
+
+(defcustom guix-dot-default-arguments
+ '("-Tpng")
+ "Default arguments for 'dot' program."
+ :type '(repeat string)
+ :group 'guix-external)
+
+(defcustom guix-dot-file-name-function #'guix-png-file-name
+ "Function used to define a file name of a temporary 'dot' file.
+The function is called without arguments."
+ :type '(choice (function-item guix-png-file-name)
+ (function :tag "Other function"))
+ :group 'guix-external)
+
+(defun guix-dot-arguments (output-file &rest args)
+ "Return a list of dot arguments for writing a graph into OUTPUT-FILE.
+If ARGS is nil, use `guix-dot-default-arguments'."
+ (or guix-dot-program
+ (error (concat "Couldn't find 'dot'.\n"
+ "Set guix-dot-program to a proper value")))
+ (apply #'list
+ guix-dot-program
+ (concat "-o" output-file)
+ (or args guix-dot-default-arguments)))
+
+(defun guix-dot-file-name ()
+ "Call `guix-dot-file-name-function'."
+ (funcall guix-dot-file-name-function))
+
+(defun guix-png-file-name ()
+ "Return '.png' file name in the `temporary-file-directory'."
+ (concat (make-temp-name
+ (concat (file-name-as-directory temporary-file-directory)
+ "graph-"))
+ ".png"))
+
+(provide 'guix-external)
+
+;;; guix-external.el ends here
diff --git a/emacs/guix-help-vars.el b/emacs/guix-help-vars.el
new file mode 100644
index 0000000000..8117d28f3e
--- /dev/null
+++ b/emacs/guix-help-vars.el
@@ -0,0 +1,108 @@
+;;; guix-help-vars.el --- Variables related to --help output
+
+;; Copyright © 2015 Alex Kost <alezost@gmail.com>
+
+;; 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 this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file provides regular expressions to parse various "guix
+;; ... --help" outputs and lists of non-receivable items (system types,
+;; hash formats, etc.).
+
+;;; Code:
+
+
+;;; Regexps for parsing "guix ..." outputs
+
+(defvar guix-help-parse-option-regexp
+ (rx bol " "
+ (zero-or-one (group "-" (not (any "- ")))
+ ",")
+ (one-or-more " ")
+ (group "--" (one-or-more (or wordchar "-")))
+ (group (zero-or-one "[")
+ (zero-or-one "="))
+ (zero-or-more (not space))
+ (one-or-more space)
+ (group (one-or-more any)))
+ "Common regexp used to find command options.")
+
+(defvar guix-help-parse-command-regexp
+ (rx bol " "
+ (group wordchar (one-or-more (or wordchar "-"))))
+ "Regexp used to find guix commands.
+'Command' means any option not prefixed with '-'. For example,
+guix subcommand, system action, importer, etc.")
+
+(defvar guix-help-parse-long-option-regexp
+ (rx (or " " ", ")
+ (group "--" (one-or-more (or wordchar "-"))
+ (zero-or-one "=")))
+ "Regexp used to find long options.")
+
+(defvar guix-help-parse-short-option-regexp
+ (rx bol (one-or-more blank)
+ "-" (group (not (any "- "))))
+ "Regexp used to find short options.")
+
+(defvar guix-help-parse-package-regexp
+ (rx bol (group (one-or-more (not blank))))
+ "Regexp used to find names of the packages.")
+
+(defvar guix-help-parse-list-regexp
+ (rx bol (zero-or-more blank) "- "
+ (group (one-or-more (or wordchar "-"))))
+ "Regexp used to find various lists (lint checkers, graph types).")
+
+(defvar guix-help-parse-regexp-group 1
+ "Parenthesized expression of regexps used to find commands and
+options.")
+
+
+;;; Non-receivable lists of system types, hash formats, etc.
+
+(defvar guix-help-system-types
+ '("x86_64-linux" "i686-linux" "armhf-linux" "mips64el-linux")
+ "List of supported systems.")
+
+(defvar guix-help-source-types
+ '("package" "all" "transitive")
+ "List of supported sources types.")
+
+(defvar guix-help-hash-formats
+ '("nix-base32" "base32" "base16" "hex" "hexadecimal")
+ "List of supported hash formats.")
+
+(defvar guix-help-refresh-subsets
+ '("core" "non-core")
+ "List of supported 'refresh' subsets.")
+
+(defvar guix-help-key-policies
+ '("interactive" "always" "never")
+ "List of supported key download policies.")
+
+(defvar guix-help-verify-options
+ '("repair" "contents")
+ "List of supported 'verify' options")
+
+(defvar guix-help-elpa-archives
+ '("gnu" "melpa" "melpa-stable")
+ "List of supported ELPA archives.")
+
+(provide 'guix-help-vars)
+
+;;; guix-help-vars.el ends here
diff --git a/emacs/guix-info.el b/emacs/guix-info.el
index f17ce01ab6..4bdd62a6a5 100644
--- a/emacs/guix-info.el
+++ b/emacs/guix-info.el
@@ -178,13 +178,13 @@ The order of displayed parameters is the same as in this list.")
(defun guix-info-get-insert-methods (entry-type param)
"Return list of insert methods for parameter PARAM of ENTRY-TYPE.
See `guix-info-insert-methods' for details."
- (guix-get-key-val guix-info-insert-methods
- entry-type param))
+ (guix-assq-value guix-info-insert-methods
+ entry-type param))
(defun guix-info-get-displayed-params (entry-type)
"Return parameters of ENTRY-TYPE that should be displayed."
- (guix-get-key-val guix-info-displayed-params
- entry-type))
+ (guix-assq-value guix-info-displayed-params
+ entry-type))
(defun guix-info-get-indent (&optional level)
"Return `guix-info-indent' \"multiplied\" by LEVEL spaces.
@@ -232,7 +232,7 @@ Use `guix-info-insert-ENTRY-TYPE-function' or
"Insert title and value of a PARAM at point.
ENTRY is alist with parameters and their values.
ENTRY-TYPE is a type of ENTRY."
- (let ((val (guix-get-key-val entry param)))
+ (let ((val (guix-assq-value entry param)))
(unless (and guix-info-ignore-empty-vals (null val))
(let* ((title (guix-get-param-title entry-type param))
(insert-methods (guix-info-get-insert-methods entry-type param))
@@ -492,12 +492,12 @@ filling them to fit the window."
(defun guix-package-info-insert-heading (entry)
"Insert the heading for package ENTRY.
Show package name, version, and `guix-package-info-heading-params'."
- (guix-format-insert (concat (guix-get-key-val entry 'name) " "
- (guix-get-key-val entry 'version))
+ (guix-format-insert (concat (guix-assq-value entry 'name) " "
+ (guix-assq-value entry 'version))
'guix-package-info-heading)
(insert "\n\n")
(mapc (lambda (param)
- (let ((val (guix-get-key-val entry param))
+ (let ((val (guix-assq-value entry param))
(face (guix-get-symbol (symbol-name param)
'info 'package)))
(when val
@@ -587,10 +587,10 @@ If nil, insert installed info in a default way.")
(defun guix-package-info-insert-outputs (outputs entry)
"Insert OUTPUTS from package ENTRY at point."
- (and (guix-get-key-val entry 'obsolete)
+ (and (guix-assq-value entry 'obsolete)
(guix-package-info-insert-obsolete-text))
- (and (guix-get-key-val entry 'non-unique)
- (guix-get-key-val entry 'installed)
+ (and (guix-assq-value entry 'non-unique)
+ (guix-assq-value entry 'installed)
(guix-package-info-insert-non-unique-text
(guix-get-full-name entry)))
(insert "\n")
@@ -617,11 +617,11 @@ If nil, insert installed info in a default way.")
Make some fancy text with buttons and additional stuff if the
current OUTPUT is installed (if there is such output in
`installed' parameter of a package ENTRY)."
- (let* ((installed (guix-get-key-val entry 'installed))
- (obsolete (guix-get-key-val entry 'obsolete))
+ (let* ((installed (guix-assq-value entry 'installed))
+ (obsolete (guix-assq-value entry 'obsolete))
(installed-entry (cl-find-if
(lambda (entry)
- (string= (guix-get-key-val entry 'output)
+ (string= (guix-assq-value entry 'output)
output))
installed))
(action-type (if installed-entry 'delete 'install)))
@@ -655,8 +655,8 @@ ENTRY is an alist with package info."
(current-buffer)))
(concat type-str " '" full-name "'")
'action-type type
- 'id (or (guix-get-key-val entry 'package-id)
- (guix-get-key-val entry 'id))
+ 'id (or (guix-assq-value entry 'package-id)
+ (guix-assq-value entry 'id))
'output output)))
(defun guix-package-info-insert-output-path (path &optional _)
@@ -720,7 +720,7 @@ PACKAGE-ID is an ID of the package which source to show."
(entries (cl-substitute-if
new-entry
(lambda (entry)
- (equal (guix-get-key-val entry 'id)
+ (equal (guix-assq-value entry 'id)
entry-id))
guix-entries
:count 1)))
@@ -746,9 +746,9 @@ SOURCE is a list of URLs."
(guix-info-insert-indent)
(if (null source)
(guix-format-insert nil)
- (let* ((source-file (guix-get-key-val entry 'source-file))
- (entry-id (guix-get-key-val entry 'id))
- (package-id (or (guix-get-key-val entry 'package-id)
+ (let* ((source-file (guix-assq-value entry 'source-file))
+ (entry-id (guix-assq-value entry 'id))
+ (package-id (or (guix-assq-value entry 'package-id)
entry-id)))
(if (null source-file)
(guix-info-insert-action-button
@@ -798,13 +798,13 @@ If nil, insert output in a default way.")
"Insert output VERSION and obsolete text if needed at point."
(guix-info-insert-val-default version
'guix-package-info-version)
- (and (guix-get-key-val entry 'obsolete)
+ (and (guix-assq-value entry 'obsolete)
(guix-package-info-insert-obsolete-text)))
(defun guix-output-info-insert-output (output entry)
"Insert OUTPUT and action buttons at point."
- (let* ((installed (guix-get-key-val entry 'installed))
- (obsolete (guix-get-key-val entry 'obsolete))
+ (let* ((installed (guix-assq-value entry 'installed))
+ (obsolete (guix-assq-value entry 'obsolete))
(action-type (if installed 'delete 'install)))
(guix-info-insert-val-default
output
@@ -874,7 +874,7 @@ If nil, insert generation in a default way.")
(guix-switch-to-generation guix-profile (button-get btn 'number)
(current-buffer)))
"Switch to this generation (make it the current one)"
- 'number (guix-get-key-val entry 'number))))
+ 'number (guix-assq-value entry 'number))))
(provide 'guix-info)
diff --git a/emacs/guix-init.el.in b/emacs/guix-init.el
index 728bc375c2..3a727c7eb6 100644
--- a/emacs/guix-init.el.in
+++ b/emacs/guix-init.el
@@ -1,9 +1,5 @@
(require 'guix-autoloads)
-(defvar guix-load-path
- (replace-regexp-in-string "${prefix}" "@prefix@" "@emacsuidir@")
- "Directory with scheme files for \"guix.el\" package.")
-
(defcustom guix-package-enable-at-startup t
"If non-nil, activate Emacs packages installed in a user profile.
Set this variable to nil before requiring `guix-init' file to
diff --git a/emacs/guix-list.el b/emacs/guix-list.el
index e84d60a0aa..9796464dbf 100644
--- a/emacs/guix-list.el
+++ b/emacs/guix-list.el
@@ -1,6 +1,6 @@
;;; guix-list.el --- List buffers for displaying entries -*- lexical-binding: t -*-
-;; Copyright © 2014 Alex Kost <alezost@gmail.com>
+;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
;; This file is part of GNU Guix.
@@ -110,13 +110,13 @@ parameters and their values).")
(defun guix-list-get-param-title (entry-type param)
"Return title of an ENTRY-TYPE entry parameter PARAM."
- (or (guix-get-key-val guix-list-column-titles
- entry-type param)
+ (or (guix-assq-value guix-list-column-titles
+ entry-type param)
(guix-get-param-title entry-type param)))
(defun guix-list-get-column-format (entry-type)
"Return column format for ENTRY-TYPE."
- (guix-get-key-val guix-list-column-format entry-type))
+ (guix-assq-value guix-list-column-format entry-type))
(defun guix-list-get-displayed-params (entry-type)
"Return list of parameters of ENTRY-TYPE that should be displayed."
@@ -170,7 +170,7 @@ ENTRIES should have a form of `guix-entries'."
Values are taken from ENTRIES which should have the form of
`guix-entries'."
(mapcar (lambda (entry)
- (list (guix-get-key-val entry 'id)
+ (list (guix-assq-value entry 'id)
(guix-list-get-tabulated-entry entry entry-type)))
entries))
@@ -180,9 +180,9 @@ Parameters are taken from ENTRY of ENTRY-TYPE."
(guix-list-make-tabulated-vector
entry-type
(lambda (param _)
- (let ((val (guix-get-key-val entry param))
- (fun (guix-get-key-val guix-list-column-value-methods
- entry-type param)))
+ (let ((val (guix-assq-value entry param))
+ (fun (guix-assq-value guix-list-column-value-methods
+ entry-type param)))
(if fun
(funcall fun val entry)
(guix-get-string val))))))
@@ -221,7 +221,7 @@ VAL may be nil."
(guix-package-list-mode
(guix-list-current-id))
(guix-output-list-mode
- (guix-get-key-val (guix-list-current-entry) 'package-id))))
+ (guix-assq-value (guix-list-current-entry) 'package-id))))
(defun guix-list-for-each-line (fun &rest args)
"Call FUN with ARGS for each entry line."
@@ -262,7 +262,7 @@ ARGS is a list of additional values.")
(defsubst guix-list-get-mark (name)
"Return mark character by its NAME."
- (or (guix-get-key-val guix-list-mark-alist name)
+ (or (guix-assq-value guix-list-mark-alist name)
(error "Mark '%S' not found" name)))
(defsubst guix-list-get-mark-string (name)
@@ -355,8 +355,8 @@ With ARG, unmark all lines."
"Put marks according to `guix-list-mark-alist'."
(guix-list-for-each-line
(lambda ()
- (let ((mark-name (car (guix-get-key-val guix-list-marked
- (guix-list-current-id)))))
+ (let ((mark-name (car (guix-assq-value guix-list-marked
+ (guix-list-current-id)))))
(tabulated-list-put-tag
(guix-list-get-mark-string (or mark-name 'empty)))))))
@@ -472,7 +472,7 @@ With prefix (if ARG is non-nil), describe entries marked with any mark."
(defun guix-list-edit-package ()
"Go to the location of the current package."
(interactive)
- (guix-edit-package (guix-list-current-package-id)))
+ (guix-edit (guix-list-current-package-id)))
;;; Displaying packages
@@ -524,16 +524,16 @@ likely)."
Colorize it with `guix-package-list-installed' or
`guix-package-list-obsolete' if needed."
(guix-get-string name
- (cond ((guix-get-key-val entry 'obsolete)
+ (cond ((guix-assq-value entry 'obsolete)
'guix-package-list-obsolete)
- ((guix-get-key-val entry 'installed)
+ ((guix-assq-value entry 'installed)
'guix-package-list-installed))))
(defun guix-package-list-get-installed-outputs (installed &optional _)
"Return string with outputs from INSTALLED entries."
(guix-get-string
(mapcar (lambda (entry)
- (guix-get-key-val entry 'output))
+ (guix-assq-value entry 'output))
installed)))
(defun guix-package-list-marking-check ()
@@ -562,7 +562,7 @@ be separated with \",\")."
(interactive "P")
(guix-package-list-marking-check)
(let* ((entry (guix-list-current-entry))
- (all (guix-get-key-val entry 'outputs))
+ (all (guix-assq-value entry 'outputs))
(installed (guix-get-installed-outputs entry))
(available (cl-set-difference all installed :test #'string=)))
(or available
@@ -597,7 +597,7 @@ be separated with \",\")."
(installed (guix-get-installed-outputs entry)))
(or installed
(user-error "This package is not installed"))
- (when (or (guix-get-key-val entry 'obsolete)
+ (when (or (guix-assq-value entry 'obsolete)
(y-or-n-p "This package is not obsolete. Try to upgrade it anyway? "))
(guix-package-list-mark-outputs
'upgrade installed
@@ -611,14 +611,14 @@ accept an entry as argument."
(guix-package-list-marking-check)
(let ((obsolete (cl-remove-if-not
(lambda (entry)
- (guix-get-key-val entry 'obsolete))
+ (guix-assq-value entry 'obsolete))
guix-entries)))
(guix-list-for-each-line
(lambda ()
(let* ((id (guix-list-current-id))
(entry (cl-find-if
(lambda (entry)
- (equal id (guix-get-key-val entry 'id)))
+ (equal id (guix-assq-value entry 'id)))
obsolete)))
(when entry
(funcall fun entry)))))))
@@ -682,7 +682,7 @@ The specification is suitable for `guix-process-package-actions'."
(interactive)
(guix-package-list-marking-check)
(let* ((entry (guix-list-current-entry))
- (installed (guix-get-key-val entry 'installed)))
+ (installed (guix-assq-value entry 'installed)))
(if installed
(user-error "This output is already installed")
(guix-list--mark 'install t))))
@@ -692,7 +692,7 @@ The specification is suitable for `guix-process-package-actions'."
(interactive)
(guix-package-list-marking-check)
(let* ((entry (guix-list-current-entry))
- (installed (guix-get-key-val entry 'installed)))
+ (installed (guix-assq-value entry 'installed)))
(if installed
(guix-list--mark 'delete t)
(user-error "This output is not installed"))))
@@ -702,10 +702,10 @@ The specification is suitable for `guix-process-package-actions'."
(interactive)
(guix-package-list-marking-check)
(let* ((entry (guix-list-current-entry))
- (installed (guix-get-key-val entry 'installed)))
+ (installed (guix-assq-value entry 'installed)))
(or installed
(user-error "This output is not installed"))
- (when (or (guix-get-key-val entry 'obsolete)
+ (when (or (guix-assq-value entry 'obsolete)
(y-or-n-p "This output is not obsolete. Try to upgrade it anyway? "))
(guix-list--mark 'upgrade t))))
@@ -777,8 +777,8 @@ VAL is a boolean value."
"Switch current profile to the generation at point."
(interactive)
(let* ((entry (guix-list-current-entry))
- (current (guix-get-key-val entry 'current))
- (number (guix-get-key-val entry 'number)))
+ (current (guix-assq-value entry 'current))
+ (number (guix-assq-value entry 'number)))
(if current
(user-error "This generation is already the current one")
(guix-switch-to-generation guix-profile number (current-buffer)))))
diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm
index e0dc683d88..c9b84d36d9 100644
--- a/emacs/guix-main.scm
+++ b/emacs/guix-main.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
+;;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -45,6 +45,7 @@
(use-modules
(ice-9 vlist)
(ice-9 match)
+ (ice-9 popen)
(srfi srfi-1)
(srfi srfi-2)
(srfi srfi-11)
@@ -57,6 +58,8 @@
(guix licenses)
(guix utils)
(guix ui)
+ (guix scripts graph)
+ (guix scripts lint)
(guix scripts package)
(guix scripts pull)
(gnu packages))
@@ -68,7 +71,14 @@
(define (list-maybe obj)
(if (list? obj) obj (list obj)))
-(define full-name->name+version package-name->name+version)
+(define (full-name->name+version spec)
+ "Given package specification SPEC with or without output,
+return two values: name and version. For example, for SPEC
+\"foo-0.9.1b:lib\", return \"foo\" and \"0.9.1b\"."
+ (let-values (((name version output)
+ (package-specification->name+version+output spec)))
+ (values name version)))
+
(define (name+version->full-name name version)
(string-append name "-" version))
@@ -244,6 +254,10 @@ Example:
(filter-map (match-lambda
((_ (? package? package))
(package-full-name package))
+ ((_ (? package? package) output)
+ (make-package-specification (package-name package)
+ (package-version package)
+ output))
(_ #f))
inputs))
@@ -279,7 +293,7 @@ Example:
(license . ,package-license-names)
(source . ,package-source-names)
(synopsis . ,package-synopsis)
- (description . ,package-description)
+ (description . ,package-description-string)
(home-url . ,package-home-page)
(outputs . ,package-outputs)
(non-unique . ,(negate package-unique?))
@@ -887,9 +901,10 @@ GENERATIONS is a list of generation numbers."
(with-store store
(delete-generations store profile generations)))
-(define (package-location-string package-id)
- "Return a location string of a package PACKAGE-ID."
- (and-let* ((package (package-by-id package-id))
+(define (package-location-string id-or-name)
+ "Return a location string of a package with ID-OR-NAME."
+ (and-let* ((package (or (package-by-id id-or-name)
+ (first (packages-by-name id-or-name))))
(location (package-location package)))
(location->string location)))
@@ -927,3 +942,54 @@ GENERATIONS is a list of generation numbers."
(build-derivations store derivations))
(format #t "The source store path: ~a~%"
(package-source-derivation->store-path derivation))))))
+
+
+;;; Executing guix commands
+
+(define (guix-command . args)
+ "Run 'guix ARGS ...' command."
+ (catch 'quit
+ (lambda () (apply run-guix args))
+ (const #t)))
+
+(define (guix-command-output . args)
+ "Return string with 'guix ARGS ...' output."
+ (with-output-to-string
+ (lambda () (apply guix-command args))))
+
+(define (help-string . commands)
+ "Return string with 'guix COMMANDS ... --help' output."
+ (apply guix-command-output `(,@commands "--help")))
+
+(define (pipe-guix-output guix-args command-args)
+ "Run 'guix GUIX-ARGS ...' command and pipe its output to a shell command
+defined by COMMAND-ARGS.
+Return #t if the shell command was executed successfully."
+ (let ((pipe (apply open-pipe* OPEN_WRITE command-args)))
+ (with-output-to-port pipe
+ (lambda () (apply guix-command guix-args)))
+ (zero? (status:exit-val (close-pipe pipe)))))
+
+
+;;; Lists of packages, lint checkers, etc.
+
+(define (graph-type-names)
+ "Return a list of names of available graph node types."
+ (map node-type-name %node-types))
+
+(define (lint-checker-names)
+ "Return a list of names of available lint checkers."
+ (map (lambda (checker)
+ (symbol->string (lint-checker-name checker)))
+ %checkers))
+
+(define (package-names)
+ "Return a list of names of available packages."
+ (delete-duplicates
+ (fold-packages (lambda (pkg res)
+ (cons (package-name pkg) res))
+ '())))
+
+;; See the comment to 'guix-package-names' function in "guix-popup.el".
+(define (package-names-lists)
+ (map list (package-names)))
diff --git a/emacs/guix-messages.el b/emacs/guix-messages.el
index bd985a0670..2bf99de6fa 100644
--- a/emacs/guix-messages.el
+++ b/emacs/guix-messages.el
@@ -1,6 +1,6 @@
;;; guix-messages.el --- Minibuffer messages
-;; Copyright © 2014 Alex Kost <alezost@gmail.com>
+;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
;; This file is part of GNU Guix.
@@ -186,14 +186,14 @@
(defun guix-result-message (profile entries entry-type
search-type search-vals)
"Display an appropriate message after displaying ENTRIES."
- (let* ((type-spec (guix-get-key-val guix-messages
- entry-type search-type))
+ (let* ((type-spec (guix-assq-value guix-messages
+ entry-type search-type))
(fun-or-count-spec (car type-spec)))
(if (functionp fun-or-count-spec)
(funcall fun-or-count-spec profile entries search-vals)
(let* ((count (length entries))
(count-key (if (> count 1) 'many count))
- (msg-spec (guix-get-key-val type-spec count-key))
+ (msg-spec (guix-assq-value type-spec count-key))
(msg (car msg-spec))
(args (cdr msg-spec)))
(mapc (lambda (subst)
diff --git a/emacs/guix-pcomplete.el b/emacs/guix-pcomplete.el
index 9ec563cf52..4743be59bd 100644
--- a/emacs/guix-pcomplete.el
+++ b/emacs/guix-pcomplete.el
@@ -28,59 +28,7 @@
(require 'pcmpl-unix)
(require 'cl-lib)
(require 'guix-utils)
-
-
-;;; Regexps for parsing various "guix ..." outputs
-
-(defvar guix-pcomplete-parse-package-regexp
- (rx bol (group (one-or-more (not blank))))
- "Regexp used to find names of the packages.")
-
-(defvar guix-pcomplete-parse-command-regexp
- (rx bol " "
- (group wordchar (one-or-more (or wordchar "-"))))
- "Regexp used to find guix commands.
-'Command' means any option not prefixed with '-'. For example,
-guix subcommand, system action, importer, etc.")
-
-(defvar guix-pcomplete-parse-long-option-regexp
- (rx (or " " ", ")
- (group "--" (one-or-more (or wordchar "-"))
- (zero-or-one "=")))
- "Regexp used to find long options.")
-
-(defvar guix-pcomplete-parse-short-option-regexp
- (rx bol (one-or-more blank)
- "-" (group (not (any "- "))))
- "Regexp used to find short options.")
-
-(defvar guix-pcomplete-parse-list-regexp
- (rx bol (zero-or-more blank) "- "
- (group (one-or-more (or wordchar "-"))))
- "Regexp used to find various lists (lint checkers, graph types).")
-
-(defvar guix-pcomplete-parse-regexp-group 1
- "Parenthesized expression of regexps used to find commands and
-options.")
-
-
-;;; Non-receivable completions
-
-(defvar guix-pcomplete-systems
- '("x86_64-linux" "i686-linux" "armhf-linux" "mips64el-linux")
- "List of supported systems.")
-
-(defvar guix-pcomplete-hash-formats
- '("nix-base32" "base32" "base16" "hex" "hexadecimal")
- "List of supported hash formats.")
-
-(defvar guix-pcomplete-refresh-subsets
- '("core" "non-core")
- "List of supported 'refresh' subsets.")
-
-(defvar guix-pcomplete-key-policies
- '("interactive" "always" "never")
- "List of supported key download policies.")
+(require 'guix-help-vars)
;;; Interacting with guix
@@ -105,9 +53,8 @@ Return a list of strings matching REGEXP.
GROUP specifies a parenthesized expression used in REGEXP."
(with-temp-buffer
(apply #'guix-pcomplete-run-guix args)
- (goto-char (point-min))
(let (result)
- (while (re-search-forward regexp nil t)
+ (guix-while-search regexp
(push (match-string-no-properties group) result))
(nreverse result))))
@@ -129,7 +76,7 @@ function call is returned."
(let* ((args '("--help"))
(args (if command (cons command args) args))
(res (apply #'guix-pcomplete-run-guix-and-search
- ,regexp guix-pcomplete-parse-regexp-group args)))
+ ,regexp guix-help-parse-regexp-group args)))
,(if filter
`(funcall ,filter res)
'res))))
@@ -138,23 +85,23 @@ function call is returned."
"If COMMAND is nil, return a list of available guix commands.
If COMMAND is non-nil (it should be a string), return available
subcommands, actions, etc. for this guix COMMAND."
- guix-pcomplete-parse-command-regexp)
+ guix-help-parse-command-regexp)
(guix-pcomplete-define-options-finder guix-pcomplete-long-options
"Return a list of available long options for guix COMMAND."
- guix-pcomplete-parse-long-option-regexp)
+ guix-help-parse-long-option-regexp)
(guix-pcomplete-define-options-finder guix-pcomplete-short-options
"Return a string with available short options for guix COMMAND."
- guix-pcomplete-parse-short-option-regexp
+ guix-help-parse-short-option-regexp
(lambda (list)
- (mapconcat #'identity list "")))
+ (guix-concat-strings list "")))
(guix-memoized-defun guix-pcomplete-all-packages ()
"Return a list of all available Guix packages."
(guix-pcomplete-run-guix-and-search
- guix-pcomplete-parse-package-regexp
- guix-pcomplete-parse-regexp-group
+ guix-help-parse-package-regexp
+ guix-help-parse-regexp-group
"package" "--list-available"))
(guix-memoized-defun guix-pcomplete-installed-packages (&optional profile)
@@ -163,22 +110,22 @@ subcommands, actions, etc. for this guix COMMAND."
(list (concat "--profile=" profile))))
(args (append '("package" "--list-installed") args)))
(apply #'guix-pcomplete-run-guix-and-search
- guix-pcomplete-parse-package-regexp
- guix-pcomplete-parse-regexp-group
+ guix-help-parse-package-regexp
+ guix-help-parse-regexp-group
args)))
(guix-memoized-defun guix-pcomplete-lint-checkers ()
"Return a list of all available lint checkers."
(guix-pcomplete-run-guix-and-search
- guix-pcomplete-parse-list-regexp
- guix-pcomplete-parse-regexp-group
+ guix-help-parse-list-regexp
+ guix-help-parse-regexp-group
"lint" "--list-checkers"))
(guix-memoized-defun guix-pcomplete-graph-types ()
"Return a list of all available graph types."
(guix-pcomplete-run-guix-and-search
- guix-pcomplete-parse-list-regexp
- guix-pcomplete-parse-regexp-group
+ guix-help-parse-list-regexp
+ guix-help-parse-regexp-group
"graph" "--list-types"))
@@ -284,7 +231,7 @@ INPUT is the current partially completed string."
((option? "-L" "--load-path")
(complete* (pcomplete-dirs)))
((string= "--key-download" option)
- (complete* guix-pcomplete-key-policies))
+ (complete* guix-help-key-policies))
((command? "package")
(cond
@@ -313,7 +260,7 @@ INPUT is the current partially completed string."
((and (command? "archive" "build" "size")
(option? "-s" "--system"))
- (complete* guix-pcomplete-systems))
+ (complete* guix-help-system-types))
((and (command? "build")
(option? "-r" "--root"))
@@ -329,7 +276,7 @@ INPUT is the current partially completed string."
((and (command? "hash" "download")
(option? "-f" "--format"))
- (complete* guix-pcomplete-hash-formats))
+ (complete* guix-help-hash-formats))
((and (command? "lint")
(option? "-c" "--checkers"))
@@ -342,7 +289,7 @@ INPUT is the current partially completed string."
((and (command? "refresh")
(option? "-s" "--select"))
- (complete* guix-pcomplete-refresh-subsets))
+ (complete* guix-help-refresh-subsets))
((and (command? "size")
(option? "-m" "--map-file"))
diff --git a/emacs/guix-popup.el b/emacs/guix-popup.el
new file mode 100644
index 0000000000..59e98a352e
--- /dev/null
+++ b/emacs/guix-popup.el
@@ -0,0 +1,48 @@
+;;; guix-popup.el --- Popup windows library
+
+;; Copyright © 2015 Alex Kost <alezost@gmail.com>
+
+;; 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 this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file provides `guix-define-popup' macro which is just an alias
+;; to `magit-define-popup'. According to the manual (info
+;; "(magit-popup) Defining prefix and suffix commands") `magit-popup'
+;; library will eventually be superseded by a more general library.
+
+;;; Code:
+
+(require 'magit-popup)
+
+(defalias 'guix-define-popup 'magit-define-popup)
+
+(defvar guix-popup-font-lock-keywords
+ (eval-when-compile
+ `((,(rx "("
+ (group "guix-define-popup")
+ symbol-end
+ (zero-or-more blank)
+ (zero-or-one
+ (group (one-or-more (or (syntax word) (syntax symbol))))))
+ (1 font-lock-keyword-face)
+ (2 font-lock-function-name-face nil t)))))
+
+(font-lock-add-keywords 'emacs-lisp-mode guix-popup-font-lock-keywords)
+
+(provide 'guix-popup)
+
+;;; guix-popup.el ends here
diff --git a/emacs/guix-prettify.el b/emacs/guix-prettify.el
index b01495c86b..24dfbb33e2 100644
--- a/emacs/guix-prettify.el
+++ b/emacs/guix-prettify.el
@@ -1,6 +1,6 @@
;;; guix-prettify.el --- Prettify Guix store file names
-;; Copyright © 2014 Alex Kost <alezost@gmail.com>
+;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
;; This file is part of GNU Guix.
@@ -47,9 +47,12 @@
;;; Code:
+(require 'guix-utils)
+
(defgroup guix-prettify nil
"Prettify Guix store file names."
:prefix "guix-prettify-"
+ :group 'guix
:group 'font-lock
:group 'convenience)
@@ -136,13 +139,11 @@ enabling/disabling `guix-prettify-mode'. If nil, do nothing.")
(remove-text-properties (point-min)
(point-max)
'(composition nil))
- (save-excursion
- (goto-char (point-min))
- (while (re-search-forward guix-prettify-regexp nil t)
- (remove-text-properties
- (match-beginning guix-prettify-regexp-group)
- (match-end guix-prettify-regexp-group)
- '(composition nil))))))))
+ (guix-while-search guix-prettify-regexp
+ (remove-text-properties
+ (match-beginning guix-prettify-regexp-group)
+ (match-end guix-prettify-regexp-group)
+ '(composition nil)))))))
;;;###autoload
(define-minor-mode guix-prettify-mode
diff --git a/emacs/guix-profiles.el.in b/emacs/guix-profiles.el
index 1e43707b68..1a41745512 100644
--- a/emacs/guix-profiles.el.in
+++ b/emacs/guix-profiles.el
@@ -19,12 +19,14 @@
;;; Code:
+(require 'guix-config)
+
(defvar guix-user-profile
(expand-file-name "~/.guix-profile")
"User profile.")
(defvar guix-default-profile
- (concat (or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix")
+ (concat guix-state-directory
"/profiles/per-user/"
(getenv "USER")
"/guix-profile")
diff --git a/emacs/guix-read.el b/emacs/guix-read.el
new file mode 100644
index 0000000000..5a7201c3aa
--- /dev/null
+++ b/emacs/guix-read.el
@@ -0,0 +1,176 @@
+;;; guix-read.el --- Minibuffer readers
+
+;; Copyright © 2015 Alex Kost <alezost@gmail.com>
+
+;; 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 this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file provides functions to prompt a user for packages, system
+;; types, hash formats and other guix related stuff.
+
+;;; Code:
+
+(require 'guix-help-vars)
+(require 'guix-utils)
+(require 'guix-base)
+
+(defun guix-read-file-name (prompt &optional dir default-filename
+ mustmatch initial predicate)
+ "Read file name.
+This function is similar to `read-file-name' except it also
+expands the file name."
+ (expand-file-name (read-file-name prompt dir default-filename
+ mustmatch initial predicate)))
+
+(defmacro guix-define-reader (name read-fun completions prompt)
+ "Define NAME function to read from minibuffer.
+READ-FUN may be `completing-read', `completing-read-multiple' or
+another function with the same arguments."
+ `(defun ,name (&optional prompt initial-contents)
+ (,read-fun ,(if prompt
+ `(or prompt ,prompt)
+ 'prompt)
+ ,completions nil nil initial-contents)))
+
+(defmacro guix-define-readers (&rest args)
+ "Define reader functions.
+
+ARGS should have a form [KEYWORD VALUE] ... The following
+keywords are available:
+
+ - `completions-var' - variable used to get completions.
+
+ - `completions-getter' - function used to get completions.
+
+ - `single-reader', `single-prompt' - name of a function to read
+ a single value, and a prompt for it.
+
+ - `multiple-reader', `multiple-prompt' - name of a function to
+ read multiple values, and a prompt for it.
+
+ - `multiple-separator' - if specified, another
+ `<multiple-reader-name>-string' function returning a string
+ of multiple values separated the specified separator will be
+ defined."
+ (let (completions-var
+ completions-getter
+ single-reader
+ single-prompt
+ multiple-reader
+ multiple-prompt
+ multiple-separator)
+
+ ;; Process the keyword args.
+ (while (keywordp (car args))
+ (pcase (pop args)
+ (`:completions-var (setq completions-var (pop args)))
+ (`:completions-getter (setq completions-getter (pop args)))
+ (`:single-reader (setq single-reader (pop args)))
+ (`:single-prompt (setq single-prompt (pop args)))
+ (`:multiple-reader (setq multiple-reader (pop args)))
+ (`:multiple-prompt (setq multiple-prompt (pop args)))
+ (`:multiple-separator (setq multiple-separator (pop args)))
+ (_ (pop args))))
+
+ (let ((completions
+ (cond ((and completions-var completions-getter)
+ `(or ,completions-var
+ (setq ,completions-var
+ (funcall ',completions-getter))))
+ (completions-var
+ completions-var)
+ (completions-getter
+ `(funcall ',completions-getter)))))
+ `(progn
+ ,(when (and completions-var
+ (not (boundp completions-var)))
+ `(defvar ,completions-var nil))
+
+ ,(when single-reader
+ `(guix-define-reader ,single-reader completing-read
+ ,completions ,single-prompt))
+
+ ,(when multiple-reader
+ `(guix-define-reader ,multiple-reader completing-read-multiple
+ ,completions ,multiple-prompt))
+
+ ,(when (and multiple-reader multiple-separator)
+ (let ((name (intern (concat (symbol-name multiple-reader)
+ "-string"))))
+ `(defun ,name (&optional prompt initial-contents)
+ (guix-concat-strings
+ (,multiple-reader prompt initial-contents)
+ ,multiple-separator))))))))
+
+(guix-define-readers
+ :completions-var guix-help-system-types
+ :single-reader guix-read-system-type
+ :single-prompt "System type: ")
+
+(guix-define-readers
+ :completions-var guix-help-source-types
+ :single-reader guix-read-source-type
+ :single-prompt "Source type: ")
+
+(guix-define-readers
+ :completions-var guix-help-hash-formats
+ :single-reader guix-read-hash-format
+ :single-prompt "Hash format: ")
+
+(guix-define-readers
+ :completions-var guix-help-refresh-subsets
+ :single-reader guix-read-refresh-subset
+ :single-prompt "Refresh subset: ")
+
+(guix-define-readers
+ :completions-var guix-help-key-policies
+ :single-reader guix-read-key-policy
+ :single-prompt "Key policy: ")
+
+(guix-define-readers
+ :completions-var guix-help-elpa-archives
+ :single-reader guix-read-elpa-archive
+ :single-prompt "ELPA archive: ")
+
+(guix-define-readers
+ :completions-var guix-help-verify-options
+ :multiple-reader guix-read-verify-options
+ :multiple-prompt "Verify option,s: "
+ :multiple-separator ",")
+
+(guix-define-readers
+ :completions-getter guix-graph-type-names
+ :single-reader guix-read-graph-type
+ :single-prompt "Graph node type: ")
+
+(guix-define-readers
+ :completions-getter guix-lint-checker-names
+ :multiple-reader guix-read-lint-checker-names
+ :multiple-prompt "Linter,s: "
+ :multiple-separator ",")
+
+(guix-define-readers
+ :completions-getter guix-package-names
+ :single-reader guix-read-package-name
+ :single-prompt "Package: "
+ :multiple-reader guix-read-package-names
+ :multiple-prompt "Package,s: "
+ :multiple-separator " ")
+
+(provide 'guix-read)
+
+;;; guix-read.el ends here
diff --git a/emacs/guix-utils.el b/emacs/guix-utils.el
index dc0c58a114..c1ce954f8f 100644
--- a/emacs/guix-utils.el
+++ b/emacs/guix-utils.el
@@ -128,6 +128,53 @@ split it into several short lines."
(fill-region (point-min) (point-max)))
(buffer-string)))
+(defun guix-concat-strings (strings separator &optional location)
+ "Return new string by concatenating STRINGS with SEPARATOR.
+If LOCATION is a symbol `head', add another SEPARATOR to the
+beginning of the returned string; if `tail' - add SEPARATOR to
+the end of the string; if nil, do not add SEPARATOR; otherwise
+add both to the end and to the beginning."
+ (let ((str (mapconcat #'identity strings separator)))
+ (cond ((null location)
+ str)
+ ((eq location 'head)
+ (concat separator str))
+ ((eq location 'tail)
+ (concat str separator))
+ (t
+ (concat separator str separator)))))
+
+(defun guix-shell-quote-argument (argument)
+ "Quote shell command ARGUMENT.
+This function is similar to `shell-quote-argument', but less strict."
+ (if (equal argument "")
+ "''"
+ (replace-regexp-in-string
+ "\n" "'\n'"
+ (replace-regexp-in-string
+ (rx (not (any alnum "-=,./\n"))) "\\\\\\&" argument))))
+
+(defun guix-command-symbol (&optional args)
+ "Return symbol by concatenating 'guix' and ARGS (strings)."
+ (intern (guix-concat-strings (cons "guix" args) "-")))
+
+(defun guix-command-string (&optional args)
+ "Return 'guix ARGS ...' string with quoted shell arguments."
+ (let ((args (mapcar #'guix-shell-quote-argument args)))
+ (guix-concat-strings (cons "guix" args) " ")))
+
+(defun guix-copy-as-kill (string &optional no-message?)
+ "Put STRING into `kill-ring'.
+If NO-MESSAGE? is non-nil, do not display a message about it."
+ (kill-new string)
+ (unless no-message?
+ (message "'%s' has been added to kill ring." string)))
+
+(defun guix-copy-command-as-kill (args &optional no-message?)
+ "Put 'guix ARGS ...' string into `kill-ring'.
+See also `guix-copy-as-kill'."
+ (guix-copy-as-kill (guix-command-string args) no-message?))
+
(defun guix-completing-read-multiple (prompt table &optional predicate
require-match initial-input
hist def inherit-input-method)
@@ -146,20 +193,56 @@ Return time value."
(require 'org)
(org-read-date nil t nil prompt))
-(defun guix-get-key-val (alist &rest keys)
- "Return value from ALIST by KEYS.
-ALIST is alist of alists of alists ... which can be consecutively
-accessed with KEYS."
- (let ((val alist))
- (dolist (key keys val)
- (setq val (cdr (assq key val))))))
+(defcustom guix-find-file-function #'find-file
+ "Function used to find a file.
+The function is called by `guix-find-file' with a file name as a
+single argument."
+ :type '(choice (function-item find-file)
+ (function-item org-open-file)
+ (function :tag "Other function"))
+ :group 'guix)
(defun guix-find-file (file)
"Find FILE if it exists."
(if (file-exists-p file)
- (find-file file)
+ (funcall guix-find-file-function file)
(message "File '%s' does not exist." file)))
+(defmacro guix-while-search (regexp &rest body)
+ "Evaluate BODY after each search for REGEXP in the current buffer."
+ (declare (indent 1) (debug t))
+ `(save-excursion
+ (goto-char (point-min))
+ (while (re-search-forward ,regexp nil t)
+ ,@body)))
+
+(defun guix-any (pred lst)
+ "Test whether any element from LST satisfies PRED.
+If so, return the return value from the successful PRED call.
+Return nil otherwise."
+ (when lst
+ (or (funcall pred (car lst))
+ (guix-any pred (cdr lst)))))
+
+
+;;; Alist accessors
+
+(defmacro guix-define-alist-accessor (name assoc-fun)
+ "Define NAME function to access alist values using ASSOC-FUN."
+ `(defun ,name (alist &rest keys)
+ ,(format "Return value from ALIST by KEYS using `%s'.
+ALIST is alist of alists of alists ... which can be consecutively
+accessed with KEYS."
+ assoc-fun)
+ (if (or (null alist) (null keys))
+ alist
+ (apply #',name
+ (cdr (,assoc-fun (car keys) alist))
+ (cdr keys)))))
+
+(guix-define-alist-accessor guix-assq-value assq)
+(guix-define-alist-accessor guix-assoc-value assoc)
+
;;; Diff
@@ -199,6 +282,27 @@ See `defun' for the meaning of arguments."
(mapconcat #'symbol-name arglist " ")
docstring)))
+(defmacro guix-memoized-defalias (symbol definition &optional docstring)
+ "Set SYMBOL's function definition to memoized version of DEFINITION."
+ (declare (doc-string 3) (indent 1))
+ `(defalias ',symbol
+ (guix-memoize #',definition)
+ ,(or docstring
+ (format "Memoized version of `%S'." definition))))
+
+(defvar guix-memoized-font-lock-keywords
+ (eval-when-compile
+ `((,(rx "("
+ (group "guix-memoized-" (or "defun" "defalias"))
+ symbol-end
+ (zero-or-more blank)
+ (zero-or-one
+ (group (one-or-more (or (syntax word) (syntax symbol))))))
+ (1 font-lock-keyword-face)
+ (2 font-lock-function-name-face nil t)))))
+
+(font-lock-add-keywords 'emacs-lisp-mode guix-memoized-font-lock-keywords)
+
(provide 'guix-utils)
;;; guix-utils.el ends here
diff --git a/emacs/guix.el b/emacs/guix.el
index afe7285696..244696a184 100644
--- a/emacs/guix.el
+++ b/emacs/guix.el
@@ -1,6 +1,6 @@
;;; guix.el --- Interface for GNU Guix package manager
-;; Copyright © 2014 Alex Kost <alezost@gmail.com>
+;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
;; Package-Requires: ((geiser "0.3"))
;; Keywords: tools
@@ -32,6 +32,7 @@
(require 'guix-list)
(require 'guix-info)
(require 'guix-utils)
+(require 'guix-read)
(defgroup guix nil
"Interface for Guix package manager."
@@ -193,6 +194,15 @@ Interactively with prefix, prompt for PROFILE."
(float-time from)
(float-time to)))
+;;;###autoload
+(defun guix-edit (id-or-name)
+ "Edit (go to location of) package with ID-OR-NAME."
+ (interactive (list (guix-read-package-name)))
+ (let ((loc (guix-package-location id-or-name)))
+ (if loc
+ (guix-find-location loc)
+ (message "Couldn't find package location."))))
+
(provide 'guix)
;;; guix.el ends here
diff --git a/gnu-system.am b/gnu-system.am
index d3a9527939..2f31f6802a 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -239,6 +239,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/onc-rpc.scm \
gnu/packages/openbox.scm \
gnu/packages/openldap.scm \
+ gnu/packages/openstack.scm \
gnu/packages/orpheus.scm \
gnu/packages/ots.scm \
gnu/packages/package-management.scm \
@@ -416,12 +417,6 @@ dist_patch_DATA = \
gnu/packages/patches/clucene-pkgconfig.patch \
gnu/packages/patches/cmake-fix-tests.patch \
gnu/packages/patches/coreutils-racy-tail-test.patch \
- gnu/packages/patches/cpio-CVE-2014-9112-pt1.patch \
- gnu/packages/patches/cpio-CVE-2014-9112-pt2.patch \
- gnu/packages/patches/cpio-CVE-2014-9112-pt3.patch \
- gnu/packages/patches/cpio-CVE-2014-9112-pt4.patch \
- gnu/packages/patches/cpio-CVE-2014-9112-pt5.patch \
- gnu/packages/patches/cpio-fix-symlink-bad-length-test.patch \
gnu/packages/patches/cpio-gets-undeclared.patch \
gnu/packages/patches/cpufrequtils-fix-aclocal.patch \
gnu/packages/patches/crda-optional-gcrypt.patch \
@@ -476,6 +471,7 @@ dist_patch_DATA = \
gnu/packages/patches/glibc-locales.patch \
gnu/packages/patches/glibc-o-largefile.patch \
gnu/packages/patches/gmp-arm-asm-nothumb.patch \
+ gnu/packages/patches/gnucash-price-quotes-perl.patch \
gnu/packages/patches/gnutls-doc-fix.patch \
gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch \
gnu/packages/patches/gobject-introspection-cc.patch \
@@ -489,7 +485,9 @@ dist_patch_DATA = \
gnu/packages/patches/guile-arm-fixes.patch \
gnu/packages/patches/guile-default-utf8.patch \
gnu/packages/patches/guile-linux-syscalls.patch \
+ gnu/packages/patches/guile-present-coding.patch \
gnu/packages/patches/guile-relocatable.patch \
+ gnu/packages/patches/guile-rsvg-pkgconfig.patch \
gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \
gnu/packages/patches/hop-bigloo-4.0b.patch \
gnu/packages/patches/hop-linker-flags.patch \
@@ -576,6 +574,7 @@ dist_patch_DATA = \
gnu/packages/patches/patchutils-xfail-gendiff-tests.patch \
gnu/packages/patches/patch-hurd-path-max.patch \
gnu/packages/patches/perl-autosplit-default-time.patch \
+ gnu/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch \
gnu/packages/patches/perl-gd-options-passthrough-and-fontconfig.patch \
gnu/packages/patches/perl-module-pluggable-search.patch \
gnu/packages/patches/perl-net-amazon-s3-moose-warning.patch \
@@ -691,6 +690,7 @@ dist_patch_DATA = \
gnu/packages/patches/xf86-video-trident-remove-mibstore.patch \
gnu/packages/patches/xf86-video-vmware-glibc-2.20.patch \
gnu/packages/patches/xfce4-panel-plugins.patch \
+ gnu/packages/patches/xfce4-settings-defaults.patch \
gnu/packages/patches/xmodmap-asprintf.patch \
gnu/packages/patches/zathura-plugindir-environment-variable.patch
diff --git a/gnu/build/linux-container.scm b/gnu/build/linux-container.scm
index af599040a1..95220d0bc0 100644
--- a/gnu/build/linux-container.scm
+++ b/gnu/build/linux-container.scm
@@ -55,6 +55,9 @@ to ROOT, then make ROOT the new root directory for the process."
(define (scope dir)
(string-append root dir))
+ (define (touch file-name)
+ (call-with-output-file file-name (const #t)))
+
(define (bind-mount src dest)
(mount src dest "none" MS_BIND))
@@ -89,8 +92,7 @@ to ROOT, then make ROOT the new root directory for the process."
(for-each (lambda (device)
(when (file-exists? device)
;; Create the mount point file.
- (call-with-output-file (scope device)
- (const #t))
+ (touch (scope device))
(bind-mount device (scope device))))
'("/dev/null"
"/dev/zero"
@@ -101,6 +103,15 @@ to ROOT, then make ROOT the new root directory for the process."
"/dev/ptmx"
"/dev/fuse"))
+ ;; Setup the container's /dev/console by bind mounting the pseudo-terminal
+ ;; associated with standard input.
+ (let ((in (current-input-port))
+ (console (scope "/dev/console")))
+ (when (isatty? in)
+ (touch console)
+ (chmod console #o600)
+ (bind-mount (ttyname in) console)))
+
;; Setup standard input/output/error.
(symlink "/proc/self/fd" (scope "/dev/fd"))
(symlink "/proc/self/fd/0" (scope "/dev/stdin"))
@@ -151,7 +162,8 @@ host user identifiers to map into the user namespace."
(define (namespaces->bit-mask namespaces)
"Return the number suitable for the 'flags' argument of 'clone' that
corresponds to the symbols in NAMESPACES."
- (apply logior SIGCHLD
+ ;; Use the same flags as fork(3) in addition to the namespace flags.
+ (apply logior SIGCHLD CLONE_CHILD_CLEARTID CLONE_CHILD_SETTID
(map (match-lambda
('mnt CLONE_NEWNS)
('uts CLONE_NEWUTS)
diff --git a/gnu/build/linux-initrd.scm b/gnu/build/linux-initrd.scm
index e26c067b49..c65b5aacfa 100644
--- a/gnu/build/linux-initrd.scm
+++ b/gnu/build/linux-initrd.scm
@@ -72,7 +72,9 @@ COMPRESS? is true, compress it using GZIP. On success, return OUTPUT."
#:file->header cpio:file->cpio-header*)))
(or (not compress?)
- (and (zero? (system* gzip "--best" output))
+ ;; Use '--no-name' so that gzip records neither a file name nor a time
+ ;; stamp in its output.
+ (and (zero? (system* gzip "--best" "--no-name" output))
(rename-file (string-append output ".gz")
output))
output))
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 512d604982..027fe5b573 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -704,9 +704,9 @@ commands and their arguments.")
;; See <http://www.sudo.ws/sudo/license.html>.
(license license:x11)))
-(define-public wpa-supplicant-light
+(define-public wpa-supplicant-minimal
(package
- (name "wpa-supplicant-light")
+ (name "wpa-supplicant-minimal")
(version "2.4")
(source (origin
(method url-fetch)
@@ -796,12 +796,12 @@ This package provides the 'wpa_supplicant' daemon and the 'wpa_cli' command.")
(license license:bsd-3)))
(define-public wpa-supplicant
- (package (inherit wpa-supplicant-light)
+ (package (inherit wpa-supplicant-minimal)
(name "wpa-supplicant")
(inputs `(("dbus" ,dbus)
- ,@(package-inputs wpa-supplicant-light)))
+ ,@(package-inputs wpa-supplicant-minimal)))
(arguments
- (substitute-keyword-arguments (package-arguments wpa-supplicant-light)
+ (substitute-keyword-arguments (package-arguments wpa-supplicant-minimal)
((#:phases phases)
`(alist-cons-after
'configure 'configure-for-dbus
diff --git a/gnu/packages/audacity.scm b/gnu/packages/audacity.scm
index 4f7bc686e3..53cc2a497e 100644
--- a/gnu/packages/audacity.scm
+++ b/gnu/packages/audacity.scm
@@ -55,7 +55,7 @@
`(("wxwidgets" ,wxwidgets-2)
("gtk" ,gtk+-2)
("alsa-lib" ,alsa-lib)
- ("jack" ,jack-2)
+ ("jack" ,jack-1)
("expat" ,expat)
("ffmpeg" ,ffmpeg)
("lame" ,lame)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 1537f3335d..eed72c31a9 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -1659,14 +1659,14 @@ interface.")
(define-public qsynth
(package
(name "qsynth")
- (version "0.3.9")
+ (version "0.4.0")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://sourceforge/qsynth/qsynth-" version ".tar.gz"))
(sha256
- (base32 "08kyn6cl755l9i1grzjx8yi3f8mgiz4gx0hgqad1n0d8yz85087b"))))
+ (base32 "1chc89v9hcjw3k4rvzakl8g56wv24kh48fzv1gfs4iv8vhyl3j4x"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f)) ; no "check" phase
@@ -1689,12 +1689,13 @@ synthesizer written in C++.")
(method url-fetch)
(uri (string-append "https://github.com/Themaister/RSound/archive/v"
version ".tar.gz"))
+ (file-name (string-append name "-" version))
(sha256
(base32 "1wzs40c0k5zpkmm5ffl6c17xmr399sxli7ys0fbb9ib0fd334knx"))))
(build-system gnu-build-system)
(inputs
`(("alsa-lib" ,alsa-lib)
- ("jack" ,jack-2)
+ ("jack" ,jack-1)
("ao" ,ao)
("libsamplerate" ,libsamplerate)
("openal" ,openal)
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 3c703ecb76..84d27c08a6 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
+;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -26,6 +27,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (gnu packages)
+ #:use-module (gnu packages acl)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages dejagnu)
@@ -35,11 +37,11 @@
#:use-module (gnu packages mcrypt)
#:use-module (gnu packages nettle)
#:use-module (gnu packages pcre)
- #:use-module (gnu packages python)
- #:use-module (gnu packages linux)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages python)
#:use-module (gnu packages rsync)
#:use-module (gnu packages ssh)
+ #:use-module (gnu packages tls)
#:use-module (gnu packages xml))
(define-public duplicity
@@ -316,3 +318,37 @@ rsync. Thus you can use rdiff-backup and ssh to securely back a hard drive up
to a remote location, and only the differences will be transmitted. Finally,
rdiff-backup is easy to use and settings have sensible defaults.")
(license license:gpl2+)))
+
+(define-public attic
+ (package
+ (name "attic")
+ (version "0.16")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://pypi.python.org/packages/source/A/Attic/Attic-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0b5skd36r4c0915lwpkqg5hxm49gls9pprs1b7hc40910wlcsl36"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before
+ 'build 'set-openssl-prefix
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "ATTIC_OPENSSL_PREFIX" (assoc-ref inputs "openssl"))
+ #t)))))
+ (inputs
+ `(("acl" ,acl)
+ ("openssl" ,openssl)
+ ("python-llfuse" ,python-llfuse)
+ ("python-msgpack" ,python-msgpack)))
+ (synopsis "Deduplicating backup program")
+ (description "Attic is a deduplicating backup program. The main goal of
+Attic is to provide an efficient and secure way to backup data. The data
+deduplication technique used makes Attic suitable for daily backups since only
+changes are stored.")
+ (home-page "https://attic-backup.org/")
+ (license license:bsd-3)))
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 189dd959a5..bbd02f3123 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -873,6 +873,45 @@ 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 deeptools
+ (package
+ (name "deeptools")
+ (version "1.5.11")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/fidelram/deepTools/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1kaagygcbvjs9sxd9cqmskd02wcfp9imvb735r087w7hwqpvz6fs"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:python ,python-2))
+ (propagated-inputs
+ `(("python-scipy" ,python2-scipy)
+ ("python-numpy" ,python2-numpy)
+ ("python-matplotlib" ,python2-matplotlib)
+ ("python-bx-python" ,python2-bx-python)
+ ("python-pysam" ,python2-pysam)))
+ (native-inputs
+ `(("python-mock" ,python2-mock) ;for tests
+ ("python-pytz" ,python2-pytz) ;for tests
+ ("python-setuptools" ,python2-setuptools)))
+ (home-page "https://github.com/fidelram/deepTools")
+ (synopsis "Tools for normalizing and visualizing deep-sequencing data")
+ (description
+ "DeepTools addresses the challenge of handling the large amounts of data
+that are now routinely generated from DNA sequencing centers. To do so,
+deepTools contains useful modules to process the mapped reads data to create
+coverage files in standard bedGraph and bigWig file formats. By doing so,
+deepTools allows the creation of normalized coverage files or the comparison
+between two files (for example, treatment and control). Finally, using such
+normalized and standardized files, multiple visualizations can be created to
+identify enrichments with functional annotations of the genome.")
+ (license license:gpl3+)))
+
(define-public diamond
(package
(name "diamond")
diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index 8c0a59ad70..f5bf069c20 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -127,7 +127,7 @@ successful, or false to signal an error."
(synopsis description)
(description #f)
(home-page #f)
- (license #f)))
+ (license gpl3+)))
(define package-with-bootstrap-guile
(memoize
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 4a3e521f59..df62e9963e 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -5,6 +5,7 @@
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -30,6 +31,7 @@
#:use-module (guix build-system perl)
#:use-module (gnu packages base)
#:use-module (gnu packages perl)
+ #:use-module (gnu packages valgrind)
#:use-module ((srfi srfi-1) #:select (last)))
(define-public zlib
@@ -513,3 +515,35 @@ compression library.")
(description "IO-Compress provides a Perl interface to allow reading and
writing of compressed data created with the zlib and bzip2 libraries.")
(license (package-license perl))))
+
+(define-public lz4
+ (package
+ (name "lz4")
+ (version "131")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/Cyan4973/lz4/archive/"
+ "r" version ".tar.gz"))
+ (sha256
+ (base32 "1vfg305zvj50hwscad24wan9jar6nqj14gdk2hqyr7bb9mhh0kcx"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (build-system gnu-build-system)
+ (native-inputs `(("valgrind" ,valgrind)))
+ (arguments
+ `(#:test-target "test"
+ #:parallel-tests? #f ; tests fail if run in parallel
+ #:make-flags (list "CC=gcc"
+ (string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:phases (modify-phases %standard-phases
+ (delete 'configure))))
+ (home-page "https://github.com/Cyan4973/lz4")
+ (synopsis "Compression algorithm focused on speed")
+ (description "LZ4 is a lossless compression algorithm, providing
+compression speed at 400 MB/s per core (0.16 Bytes/cycle). It also features an
+extremely fast decoder, with speed in multiple GB/s per core (0.71 Bytes/cycle).
+A high compression derivative, called LZ4_HC, is also provided. It trades CPU
+time for compression ratio.")
+ ;; The libraries (lz4, lz4hc, and xxhash are BSD licenced. The command
+ ;; line interface programs (lz4, fullbench, fuzzer, datagen) are GPL2+.
+ (license (list license:bsd-2 license:gpl2+))))
diff --git a/gnu/packages/cpio.scm b/gnu/packages/cpio.scm
index cfb416239d..925b0eed5b 100644
--- a/gnu/packages/cpio.scm
+++ b/gnu/packages/cpio.scm
@@ -28,29 +28,15 @@
(define-public cpio
(package
(name "cpio")
- (version "2.11")
+ (version "2.12")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/cpio/cpio-"
version ".tar.bz2"))
(sha256
(base32
- "1gavgpzqwgkpagjxw72xgxz52y1ifgz0ckqh8g7cckz7jvyhp0mv"))
- (patches (map search-patch
- '("cpio-CVE-2014-9112-pt1.patch"
- "cpio-CVE-2014-9112-pt2.patch"
- "cpio-CVE-2014-9112-pt3.patch"
- "cpio-CVE-2014-9112-pt4.patch"
- "cpio-CVE-2014-9112-pt5.patch"
- "cpio-fix-symlink-bad-length-test.patch"
- "cpio-gets-undeclared.patch")))))
+ "0vi9q475h1rki53100zml75vxsykzyhrn70hidy41s5c2rc8r6bh"))))
(build-system gnu-build-system)
-
- ;; FIXME: autoconf is needed to run autom4te, to update to test suite
- ;; after the CVE-2014-9112 patches. Remove this when cpio is
- ;; updated to post-2.11.
- (native-inputs `(("autoconf" ,autoconf)))
-
(home-page "https://www.gnu.org/software/cpio/")
(synopsis "Manage cpio and tar file archives")
(description
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 98be700b80..e1cac39cc5 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -328,11 +328,18 @@ types are supported, as is encryption.")
6 #\0))))))
(list
(string-append
- "http://distfiles.gentoo.org/distfiles/"
- "/sqlite-autoconf-" numeric-version ".tar.gz")
+ "https://fossies.org/linux/misc/sqlite-autoconf-"
+ numeric-version ".tar.gz")
(string-append
- "mirror://sourceforge/sqlite.mirror/SQLite%20" version
- "/sqlite-autoconf-" numeric-version ".tar.gz"))))
+ "http://distfiles.gentoo.org/distfiles/"
+ "/sqlite-autoconf-" numeric-version ".tar.gz"))
+
+ ;; XXX: As of 2015-09-08, SourceForge is squatting the URL
+ ;; below, returning 200 and showing an advertising page.
+ ;; (string-append
+ ;; "mirror://sourceforge/sqlite.mirror/SQLite%20" version
+ ;; "/sqlite-autoconf-" numeric-version ".tar.gz")
+ ))
(sha256
(base32
"1dnkl4qr1dgaprbyf3jddfiynkhxnin86qabni47wjlc0fnb16gv"))))
@@ -740,14 +747,14 @@ similar to BerkeleyDB, LevelDB, etc.")
(define-public redis
(package
(name "redis")
- (version "3.0.3")
+ (version "3.0.4")
(source (origin
(method url-fetch)
(uri (string-append "http://download.redis.io/releases/redis-"
version".tar.gz"))
(sha256
(base32
- "19cxdrk380qachw160h1x51mwj7kpkxlggfzfh19bl0nbdkgl20x"))))
+ "1kqjc4qrasadgnl3cg71x3g5qpw2rilyk4pwl151698rb2nr0pm3"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; tests related to master/slave and replication fail
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index b0dde64360..ad615acc86 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -60,7 +60,7 @@
(define-public calibre
(package
(name "calibre")
- (version "2.35.0")
+ (version "2.37.1")
(source
(origin
(method url-fetch)
@@ -69,7 +69,7 @@
version ".tar.xz"))
(sha256
(base32
- "13sic0l16myvka8mgpr56h6qlpf1cwx8xlf4acp3qz6gsmz3r23x"))
+ "0cbpkhchxjz9dz4chkrlgq0q1sjmyp6lm9vrhnm2mwai61kzn25s"))
;; 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 9c7a19ad59..b6ca6cfc66 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -310,7 +310,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
(define-public magit
(package
(name "magit")
- (version "2.2.1")
+ (version "2.2.2")
(source (origin
(method url-fetch)
(uri (string-append
@@ -318,7 +318,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
version "/" name "-" version ".tar.gz"))
(sha256
(base32
- "0bjdj4468i5w3j2i945b6psb6n04z34vhjaqr0iz4xgixk3wiqmh"))))
+ "1imkj4prprnivhbpdn1mdpiryxkckzy5hbnqaahv7gixwac1irh8"))))
(build-system gnu-build-system)
(native-inputs `(("texinfo" ,texinfo)
("emacs" ,emacs-no-x)))
@@ -483,6 +483,82 @@ support for Git-SVN.")
programs.")
(license license:gpl3+)))
+(define-public let-alist
+ (package
+ (name "emacs-let-alist")
+ (version "1.0.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://elpa.gnu.org/packages/let-alist-"
+ version ".el"))
+ (sha256
+ (base32
+ "07312bvvyz86lf64vdkxg2l1wgfjl25ljdjwlf1bdzj01c4hm88x"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils)
+ (guix build emacs-utils))
+
+ #:builder (begin
+ (use-modules (guix build emacs-utils)
+ (guix build utils))
+
+ (let* ((out (assoc-ref %outputs "out"))
+ (lispdir (string-append out
+ "/share/emacs/site-lisp/"
+ "guix.d/let-alist-"
+ ,version))
+ (emacs (assoc-ref %build-inputs "emacs")))
+
+ (mkdir-p lispdir)
+ (copy-file (assoc-ref %build-inputs "source")
+ (string-append lispdir "/let-alist.el"))
+
+ (setenv "PATH" (string-append emacs "/bin"))
+ (emacs-byte-compile-directory lispdir)
+ #t))))
+ (native-inputs `(("emacs" ,emacs-no-x)))
+ (home-page "http://elpa.gnu.org/packages/let-alist.html")
+ (synopsis "Easily let-bind values of an assoc-list by their names")
+ (description
+ "This package offers a single Emacs Lisp macro, @code{let-alist}. This
+macro takes a first argument, whose value must be an alist (association list),
+and a body.
+
+The macro expands to a let form containing the body, where each dotted symbol
+inside body is let-bound to their cdrs in the alist. Only those present in
+the body are let-bound and this search is done at compile time.")
+ (license license:gpl3+)))
+
+(define-public flycheck
+ (package
+ (name "emacs-flycheck")
+ (version "0.23")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/flycheck/flycheck/releases/download/"
+ version "/flycheck-" version ".tar"))
+ (sha256
+ (base32
+ "1n2cifzsl5dbv42l82bi3y1vk6q33msi8dd4bj7b9nvnl9jfjj5b"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-dash" ,emacs-dash)
+ ("emacs-let-alist" ,let-alist)))
+ (home-page "https://www.flycheck.org")
+ (synopsis "On-the-fly syntax checking")
+ (description
+ "This package provides on-the-fly syntax checking for GNU Emacs. It is a
+replacement for the older Flymake extension which is part of GNU Emacs, with
+many improvements and additional features.
+
+Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
+checking for over 30 programming and markup languages with more than 70
+different tools. It highlights errors and warnings inline in the buffer, and
+provides an optional IDE-like error list.")
+ (license license:gpl3+))) ;+GFDLv1.3+ for the manual
+
;;;
;;; Web browsing.
@@ -989,3 +1065,30 @@ files and directories.")
(description "This package adds support to Org-Babel for evaluating Python
source code using IPython.")
(license license:gpl3+)))
+
+(define-public emacs-debbugs
+ (package
+ (name "emacs-debbugs")
+ (version "0.7")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://elpa.gnu.org/packages/debbugs-"
+ version ".tar"))
+ (sha256
+ (base32
+ "0pbglx3paa8icazgxlg4jf40wl8war63y9j2jmbb7gbd1xp95v72"))))
+ (build-system emacs-build-system)
+ (home-page "http://elpa.gnu.org/packages/debbugs.html")
+ (synopsis "Access the Debbugs bug tracker in Emacs")
+ (description
+ "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
+Tracker} from within Emacs.
+
+For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
+and the command @code{M-x debbugs-gnu-search} for bug searching. If you
+prefer the listing of bugs as TODO items of @code{org-mode}, you could use
+@code{M-x debbugs-org} and related commands.
+
+A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
+Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
+ (license license:gpl3+)))
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index bb009e2548..54e43ef0f8 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -28,6 +28,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
@@ -35,6 +36,7 @@
#:use-module (gnu packages flex)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gd)
+ #:use-module (gnu packages gettext)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
@@ -360,3 +362,49 @@ multipole-accelerated algorithm.")
"Fasthenry is an inductance extraction program based on a
multipole-accelerated algorithm.")
(license (license:non-copyleft #f "See induct.c."))))
+
+(define-public gerbv
+ (package
+ (name "gerbv")
+ (version "2.6.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/gerbv/gerbv/gerbv-"
+ version "/gerbv-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0v6ry0mxi5qym4z0y0lpblxsw9dfjpgxs4c4v2ngg7yw4b3a59ks"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'autoconf
+ (lambda _
+ ;; Build rules contain references to Russian translation, but the
+ ;; needed files are missing; see
+ ;; http://sourceforge.net/p/gerbv/bugs/174/
+ (delete-file "po/LINGUAS")
+ (substitute* "man/Makefile.am"
+ (("PO_FILES= gerbv.ru.1.in.po") "")
+ (("man_MANS = gerbv.1 gerbv.ru.1") "man_MANS = gerbv.1"))
+ (zero? (system* "autoreconf" "-vfi")))))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("gettext" ,gnu-gettext)
+ ("po4a" ,po4a)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("cairo" ,cairo)
+ ("gtk" ,gtk+-2)
+ ("desktop-file-utils" ,desktop-file-utils)))
+ (home-page "http://gerbv.geda-project.org/")
+ (synopsis "Gerber file viewer")
+ (description
+ "Gerbv is a viewer for files in the Gerber format (RS-274X only), which
+is commonly used to represent printed circuit board (PCB) layouts. Gerbv lets
+you load several files on top of each other, do measurements on the displayed
+image, etc. Besides viewing Gerbers, you may also view Excellon drill files
+as well as pick-place files.")
+ (license license:gpl2+)))
diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm
index 5e6693b8da..0a7eaf1fc4 100644
--- a/gnu/packages/enlightenment.scm
+++ b/gnu/packages/enlightenment.scm
@@ -51,14 +51,15 @@
(define-public efl
(package
(name "efl")
- (version "1.14.2")
+ (version "1.15.1")
(source (origin
(method url-fetch)
(uri (string-append
"https://download.enlightenment.org/rel/libs/efl/efl-"
version ".tar.xz"))
(sha256
- (base32 "0kg51v63ljq1z4dj65aiyxaqhq54gkl4hx53ifwbci6ihammandr"))))
+ (base32
+ "1n2l2n09lys5dph9lrnsv5z3qbgzp7bi0vidal2fvy18hflbbvsn"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@@ -127,20 +128,21 @@
for Enlightenment. Libraries covers data serialization, wide support for
graphics rendering, UI layout and themes, interaction with OS, access to
removable devices or support for multimedia.")
- (license (list license:bsd-2 license:lgpl2.1 license:zlib)))) ; different parts under different licenses
+ ;; Different parts are under different licenses.
+ (license (list license:bsd-2 license:lgpl2.1 license:zlib))))
(define-public elementary
(package
(name "elementary")
- (version "1.14.2")
+ (version "1.15.1")
(source (origin
(method url-fetch)
(uri
- (string-append
- "https://download.enlightenment.org/rel/libs/elementary/elementary-"
- version ".tar.xz"))
+ (string-append "https://download.enlightenment.org/rel/libs/"
+ "elementary/elementary-" version ".tar.xz"))
(sha256
- (base32 "1ck1jm9dfx2l72nklndqjfsxjqb0024b88naskld1dk9b8drs76b"))))
+ (base32
+ "015b277bvgb4q8cqjl58ir9nqb1d40fpj2jblf4gkxq8a45a88mb"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@@ -157,7 +159,7 @@ full capabilities of EFL.")
(define-public evas-generic-loaders
(package
(name "evas-generic-loaders")
- (version "1.14.0")
+ (version "1.15.0")
(source (origin
(method url-fetch)
(uri
@@ -166,7 +168,8 @@ full capabilities of EFL.")
"evas_generic_loaders/evas_generic_loaders-"
version ".tar.xz"))
(sha256
- (base32 "18b6xmbf81bly4mlwlzwr17g2m8dzznbhsdjk6pbb3nw4wn3y88l"))))
+ (base32
+ "0zzx06j20x580xqnnsxp7gb7rv279zcgvdxfbhs905af9m6rwlqy"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@@ -188,15 +191,16 @@ files in Evas (EFL canvas library).")
(define-public emotion-generic-players
(package
(name "emotion-generic-players")
- (version "1.14.0")
+ (version "1.15.0")
(source (origin
(method url-fetch)
(uri
- (string-append
- "https://download.enlightenment.org/rel/libs/emotion_generic_players/emotion_generic_players-"
- version ".tar.xz"))
+ (string-append "https://download.enlightenment.org/rel/libs/"
+ "emotion_generic_players/emotion_generic_players"
+ "-" version ".tar.xz"))
(sha256
- (base32 "0685jzag98ykknycfdqn70zif3fmcfi6m8k9yp6d79r1h8gc49n4"))))
+ (base32
+ "0pszwmcygxnv1sfx0m79md2jmi4sng8mdb1xcr6h2z5c8685wvcz"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@@ -214,15 +218,15 @@ The only supported now is VLC.")
(define-public terminology
(package
(name "terminology")
- (version "0.8.0")
+ (version "0.9.0")
(source (origin
(method url-fetch)
(uri
- (string-append
- "https://download.enlightenment.org/rel/apps/terminology/terminology-"
- version ".tar.gz"))
+ (string-append "https://download.enlightenment.org/rel/apps/"
+ "terminology/terminology-" version ".tar.xz"))
(sha256
- (base32 "0a767ixackzmhb2awrhjy7q6vsivsd54wc434i617xiw095x843s"))))
+ (base32
+ "0iwid9cvd96kwl0hjhbby84kkz5sgb4p8454nnkf7wjvdz2f9b96"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@@ -266,15 +270,14 @@ Libraries with some extra bells and whistles.")
(define-public enlightenment
(package
(name "enlightenment")
- (version "0.19.5")
+ (version "0.19.9")
(source (origin
(method url-fetch)
(uri
- (string-append
- "https://download.enlightenment.org/rel/apps/enlightenment/enlightenment-"
- version ".tar.xz"))
+ (string-append "https://download.enlightenment.org/rel/apps/"
+ name "/" name "-" version ".tar.xz"))
(sha256
- (base32 "0j66x7x76fbgqfw6fi77v8qy50slw3jnsq3vvs82rrfvniabm8wc"))))
+ (base32 "1ajpyw1bfbmxpniw041vbvrs9wqgzyw9kccx72nnfiy2wxspjcr5"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index bbd8368473..97f2975e51 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -29,7 +29,7 @@
(define-public ath9k-htc-firmware
(package
(name "ath9k-htc-firmware")
- (version "1.3.2")
+ (version "1.4.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -37,7 +37,7 @@
(commit version)))
(sha256
(base32
- "0dgqfp4cbky79vzjrdy3j462l8figymzrk2v0jalmmz3lkxw88ww"))
+ "16jbj8avg5jkgvq5lxm0hdxxn4c3zn7fx8b4nxllvr024apk9w23"))
(patches (list (search-patch "ath9k-htc-firmware-objcopy.patch")))))
(build-system gnu-build-system)
(arguments
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 62d44ec26b..f7d58424d9 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -5,6 +5,7 @@
;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
+;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -486,3 +487,84 @@ code-points needed for zh_cn, zh_sg, zh_tw, zh_hk, zh_mo, ja (Japanese) and
ko (Korean) locales for fontconfig.")
;; GPLv2 with font embedding exception
(license license:gpl2)))
+
+(define-public font-tex-gyre
+ (package
+ (name "font-tex-gyre")
+ (version "2.005")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://www.gust.org.pl/projects/e-foundry/"
+ "tex-gyre/whole/tg-" version "otf.zip"))
+ (sha256
+ (base32
+ "0kph9l3g7jb2bpmxdbdg5zl56wacmnvdvsdn7is1gc750sqvsn31"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+
+ (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
+ "/bin/unzip"))
+ (font-dir (string-append %output "/share/fonts/opentype")))
+ (mkdir-p font-dir)
+ (system* unzip
+ (assoc-ref %build-inputs "source")
+ "-d" font-dir)))))
+ (native-inputs
+ `(("unzip" ,unzip)))
+ (home-page "http://www.gust.org.pl/projects/e-foundry/tex-gyre/")
+ (synopsis "Remake of Ghostscript fonts")
+ (description "The TeX Gyre collection of fonts is the result of an
+extensive remake and extension of the freely available base PostScript fonts
+distributed with Ghostscript version 4.00. The collection contains the
+following fonts in the OpenType format: Adventor, Bonum, Chorus, Cursor,
+Heros, Pagella, Schola, Termes.")
+ (license license:gfl1.0)))
+
+(define-public font-anonymous-pro
+ (package
+ (name "font-anonymous-pro")
+ (version "1.002")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://www.marksimonson.com/assets/content/fonts/"
+ "AnonymousPro-" version ".zip"))
+ (sha256
+ (base32
+ "1asj6lykvxh46czbal7ymy2k861zlcdqpz8x3s5bbpqwlm3mhrl6"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
+ "/bin/unzip"))
+ (font-dir (string-append %output "/share/fonts/truetype"))
+ (doc-dir (string-append %output "/share/doc/" ,name)))
+ (system* unzip (assoc-ref %build-inputs "source"))
+ (mkdir-p font-dir)
+ (mkdir-p doc-dir)
+ (chdir (string-append "AnonymousPro-" ,version ".001"))
+ (for-each (lambda (ttf)
+ (copy-file ttf
+ (string-append font-dir "/" ttf)))
+ (find-files "." "\\.ttf$"))
+ (for-each (lambda (doc)
+ (copy-file doc
+ (string-append doc-dir "/" doc)))
+ (find-files "." "\\.txt$"))))))
+ (native-inputs
+ `(("unzip" ,unzip)))
+ (home-page "http://www.marksimonson.com/fonts/view/anonymous-pro")
+ (synopsis "Fixed-width fonts designed with coding in mind")
+ (description "Anonymous Pro is a family of four fixed-width fonts designed
+with coding in mind. Anonymous Pro features an international, Unicode-based
+character set, with support for most Western and Central European Latin-based
+languages, plus Greek and Cyrillic.")
+ (license license:silofl1.1)))
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index d47766835f..c085fe5770 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -41,6 +41,7 @@
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)
#:use-module (gnu packages boost)
+ #:use-module (gnu packages m4)
#:use-module (gnu packages compression)
#:use-module (gnu packages doxygen)
#:use-module (gnu packages libffi)
@@ -130,65 +131,56 @@ the freedesktop.org XDG Base Directory specification.")
(license license:expat)))
(define-public elogind
- (let ((commit "14405a9"))
- (package
- (name "elogind")
- (version (string-append "219." commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "http://git.elephly.net/software/elogind.git")
- (commit commit)))
- (sha256
- (base32
- "1wz5lxj95qg64x2q5hf4zcb35hpxlw3wfswx6sb2srvsg50y3y72"))
- (file-name (string-append name "-checkout-" commit))
- (modules '((guix build utils)))
- (snippet
- '(begin
- (use-modules (guix build utils))
- (substitute* "Makefile.am"
- ;; Avoid validation against DTD because the DTDs for
- ;; both doctype 4.2 and 4.5 are needed.
- (("XSLTPROC_FLAGS = ") "XSLTPROC_FLAGS = --novalid"))))))
- (build-system gnu-build-system)
- (arguments
- `(#:configure-flags
- (list
- ;; pam_elogind fails because of bus-error.c hackery
- "--disable-pam"
- (string-append "--with-rootprefix=" (assoc-ref %outputs "out")))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'autogen
- (lambda _
- (and (zero? (system* "intltoolize" "--force" "--automake"))
- (zero? (system* "autoreconf" "-vif"))))))))
- (native-inputs
- `(("intltool" ,intltool)
- ("gettext" ,gnu-gettext)
- ("docbook-xsl" ,docbook-xsl)
- ("docbook-xml" ,docbook-xml)
- ("xsltproc" ,libxslt)
- ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
- ("pkg-config", pkg-config)
- ("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)
- ("gperf" ,gperf)))
- (inputs
- `(("linux-pam" ,linux-pam)
- ("linux-libre-headers" ,linux-libre-headers)
- ("libcap" ,libcap)
- ("dbus" ,dbus)
- ("eudev" ,eudev)))
- (home-page "https://github.com/andywingo/elogind")
- (synopsis "User, seat, and session management service")
- (description "Elogind is the systemd project's \"logind\" service,
+ (package
+ (name "elogind")
+ (version "219.12")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://wingolog.org/pub/" name "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "13qc4f0dl7ynnfp1y565z2k0jjizly5w3dqhiqkdk7v6jr4pksb7"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (use-modules (guix build utils))
+ (substitute* "Makefile.am"
+ ;; Avoid validation against DTD because the DTDs for
+ ;; both doctype 4.2 and 4.5 are needed.
+ (("XSLTPROC_FLAGS = ") "XSLTPROC_FLAGS = --novalid"))))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags
+ (list (string-append "--with-libcap="
+ (assoc-ref %build-inputs "libcap"))
+ (string-append "--with-udevrulesdir="
+ (assoc-ref %outputs "out")
+ "/lib/udev/rules.d"))
+ #:make-flags '("PKTTYAGENT=/run/current-system/profile/bin/pkttyagent")))
+ (native-inputs
+ `(("intltool" ,intltool)
+ ("gettext" ,gnu-gettext)
+ ("docbook-xsl" ,docbook-xsl)
+ ("docbook-xml" ,docbook-xml)
+ ("xsltproc" ,libxslt)
+ ("m4" ,m4)
+ ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
+ ("pkg-config", pkg-config)
+ ("gperf" ,gperf)))
+ (inputs
+ `(("linux-pam" ,linux-pam)
+ ("linux-libre-headers" ,linux-libre-headers)
+ ("libcap" ,libcap)
+ ("dbus" ,dbus)
+ ("eudev" ,eudev)))
+ (home-page "https://github.com/andywingo/elogind")
+ (synopsis "User, seat, and session management service")
+ (description "Elogind is the systemd project's \"logind\" service,
extracted out as a separate project. Elogind integrates with PAM to provide
the org.freedesktop.login1 interface over the system bus, allowing other parts
of a the system to know what users are logged in, and where.")
- (license license:lgpl2.1+))))
+ (license license:lgpl2.1+)))
(define-public python-pyxdg
(package
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 26eb4ad9f3..9c918dee35 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -37,7 +37,8 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
#:use-module (gnu packages sdl)
- #:use-module (gnu packages pkg-config))
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages xiph))
(define-public bullet
(package
@@ -66,7 +67,7 @@ is used in some video games and movies.")
(define-public tiled
(package
(name "tiled")
- (version "0.13.0")
+ (version "0.13.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/bjorn/tiled/archive/v"
@@ -74,7 +75,7 @@ is used in some video games and movies.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1cfdhjwwwnc5fsq53axxyf6vmyy1grkk9ghi58dir68pwf6rlr3n"))))
+ "057a5cna3vhznpl9hyql2sxz995aprv43r8wva89x4vdphxv04lm"))))
(build-system gnu-build-system)
(inputs `(("qt" ,qt)
("zlib" ,zlib)))
@@ -101,14 +102,14 @@ clone.")
(define-public sfml
(package
(name "sfml")
- (version "2.2")
+ (version "2.3.1")
(source (origin
(method url-fetch)
(uri (string-append "http://mirror0.sfml-dev.org/files/SFML-"
version "-sources.zip"))
(sha256
(base32
- "1xhkvgyfbhqsjdmfbxvk729kdrzh7kdyagxa3bvpzi6z43mh1frd"))))
+ "0mjpkgfnz6ka4p0ir219pcqsbdy7gwcjydk7xxmjjfm2k5sw2qys"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f)) ; no tests
@@ -117,7 +118,10 @@ clone.")
(inputs
`(("mesa" ,mesa)
("glew" ,glew)
+ ("flac" ,flac)
+ ("libvorbis" ,libvorbis)
("libx11" ,libx11)
+ ("xcb-util-image" ,xcb-util-image)
("libxrandr" ,libxrandr)
("eudev" ,eudev)
("freetype" ,freetype)
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index bf261dd993..7eb65bb23b 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -576,7 +576,7 @@ for common mesh file formats, and collision detection.")
(define minetest-data
(package
(name "minetest-data")
- (version "0.4.12")
+ (version "0.4.13")
(source (origin
(method url-fetch)
(uri (string-append
@@ -585,7 +585,7 @@ for common mesh file formats, and collision detection.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0642vy6r6sv96mz6wbs9qvyr95vd69zj4fxiljdg9801javrmm9p"))))
+ "04xnyfap75v3p818kpqb07xshqwqzpws5xjvw5m96qnd9x4725ld"))))
(build-system trivial-build-system)
(native-inputs
`(("source" ,source)
@@ -617,7 +617,7 @@ for common mesh file formats, and collision detection.")
(define-public minetest
(package
(name "minetest")
- (version "0.4.12")
+ (version "0.4.13")
(source (origin
(method url-fetch)
(uri (string-append
@@ -626,7 +626,7 @@ for common mesh file formats, and collision detection.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1pqp8hfwg5wkimig8j5jrihzgjjgplxr24w5xisrxvx1hlvnczdk"))))
+ "1xzrvsg0fpbj5p4pz6lls11m3ab4y2bnjlsm4gnw68x9006ffznp"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags
diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm
index 9c0b3ea307..f17b398048 100644
--- a/gnu/packages/gdb.scm
+++ b/gnu/packages/gdb.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
@@ -36,33 +36,47 @@
(define-public gdb
(package
(name "gdb")
- (version "7.9.1")
+ (version "7.10")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gdb/gdb-"
version ".tar.xz"))
(sha256
(base32
- "0h5sfg4ndhb8q4fxbq0hdxfjp35n6ih96f6x8yvb418s84x5976d"))))
+ "1a08c9svaihqmz2mm44il1gwa810gmwkckns8b0y0v3qz52amgby"))))
(build-system gnu-build-system)
(arguments
- '(#:tests? #f ; FIXME "make check" fails on single-processor systems.
- #:phases (alist-cons-after
- 'configure 'post-configure
- (lambda _
- (for-each patch-makefile-SHELL
- (find-files "." "Makefile\\.in")))
- (alist-cons-after
- 'install 'post-install
- (lambda* (#:key outputs #:allow-other-keys)
- ;; Like Binutils, GDB installs libbfd and libopcodes.
- ;; However, this leads to collisions when both are
- ;; installed, and really is none of its business,
- ;; conceptually. So remove them.
- (for-each delete-file
- (find-files (assoc-ref outputs "out")
- "^lib(opcodes|bfd)\\.")))
- %standard-phases))))
+ `(#:tests? #f ; FIXME "make check" fails on single-processor systems.
+
+ #:modules ((srfi srfi-1)
+ ,@%gnu-build-system-modules)
+
+ #:phases (modify-phases %standard-phases
+ (add-after
+ 'configure 'post-configure
+ (lambda _
+ (for-each patch-makefile-SHELL
+ (find-files "." "Makefile\\.in"))))
+ (add-after
+ 'install 'remove-libs-already-in-binutils
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; Like Binutils, GDB installs libbfd, libopcodes, etc.
+ ;; However, this leads to collisions when both are
+ ;; installed, and really is none of its business,
+ ;; conceptually. So remove them.
+ (let* ((binutils (assoc-ref inputs "binutils"))
+ (out (assoc-ref outputs "out"))
+ (files1 (with-directory-excursion binutils
+ (append (find-files "lib")
+ (find-files "include"))))
+ (files2 (with-directory-excursion out
+ (append (find-files "lib")
+ (find-files "include"))))
+ (common (lset-intersection string=?
+ files1 files2)))
+ (with-directory-excursion out
+ (for-each delete-file common)
+ #t)))))))
(inputs
`(("expat" ,expat)
("mpfr" ,mpfr)
diff --git a/gnu/packages/geeqie.scm b/gnu/packages/geeqie.scm
index ff45bda8c4..a192c4b009 100644
--- a/gnu/packages/geeqie.scm
+++ b/gnu/packages/geeqie.scm
@@ -25,8 +25,7 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
- #:use-module ((gnu packages ghostscript)
- #:select (lcms))
+ #:use-module (gnu packages ghostscript)
#:use-module (gnu packages compression)
#:use-module (gnu packages xml))
diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm
index 6be3093bd6..f1b0221629 100644
--- a/gnu/packages/gettext.scm
+++ b/gnu/packages/gettext.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -18,11 +19,15 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages gettext)
- #:use-module ((guix licenses) #:select (gpl3+))
+ #:use-module ((guix licenses) #:select (gpl2+ gpl3+))
#:use-module (gnu packages)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system perl)
+ #:use-module (gnu packages docbook)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages texlive)
#:use-module (gnu packages xml))
;; Use that name to avoid clashes with Guile's 'gettext' procedure.
@@ -91,3 +96,59 @@ with the means to create message catalogs, as well as an Emacs mode to work
with them, and a runtime library to load translated messages from the
catalogs. Nearly all GNU packages use Gettext.")
(license gpl3+))) ;some files are under GPLv2+
+
+(define-public po4a
+ (package
+ (name "po4a")
+ (version "0.47")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://alioth.debian.org/frs/download.php"
+ "/file/4142/po4a-" version ".tar.gz"))
+ (sha256
+ (base32
+ "01vm0750aq0h2lphrflv3wq9gz7y0py8frglfpacn58ivyvy242h"))))
+ (build-system perl-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; FIXME: One test fails as we don't have SGMLS.pm
+ (add-before 'check 'disable-sgml-test
+ (lambda _
+ (delete-file "t/20-sgml.t")
+ #t))
+ (add-after 'unpack 'fix-builder
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "Po4aBuilder.pm"
+ ;; By default it tries to install into perl's manpath.
+ (("my \\$mandir = .*$")
+ (string-append "my $mandir = \"" (assoc-ref outputs "out")
+ "/share/man\";\n")))
+ #t))
+ (add-after 'install 'wrap-programs
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Make sure all executables in "bin" find the Perl modules
+ ;; provided by this package at runtime.
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin/"))
+ (path (string-append out "/lib/perl5/site_perl")))
+ (for-each (lambda (file)
+ (wrap-program file
+ `("PERL5LIB" ":" prefix (,path))))
+ (find-files bin "\\.*$"))
+ #t))))))
+ (native-inputs
+ `(("gettext" ,gnu-gettext)
+ ("perl-module-build" ,perl-module-build)
+ ("docbook-xsl" ,docbook-xsl)
+ ("docbook-xml" ,docbook-xml) ;for tests
+ ("texlive-bin" ,texlive-bin) ;for tests
+ ("libxml2" ,libxml2)
+ ("xsltproc" ,libxslt)))
+ (home-page "http://po4a.alioth.debian.org/")
+ (synopsis "Scripts to ease maintenance of translations")
+ (description
+ "The po4a (PO for anything) project goal is to ease translations (and
+more interestingly, the maintenance of translations) using gettext tools on
+areas where they were not expected like documentation.")
+ (license gpl2+)))
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index e4ab166700..ca75fa82e0 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1912,15 +1912,15 @@ library.")
library.")
(license license:lgpl2.0+)))
-(define-public librest
+(define-public rest
(package
- (name "librest")
+ (name "rest")
(version "0.7.93")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/rest/"
- (version-major+minor version) "/"
- "rest-" version ".tar.xz"))
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
(sha256
(base32
"05mj10hhiik23ai8w4wkk5vhsp7hcv24bih5q3fl82ilam268467"))))
@@ -2629,6 +2629,8 @@ without stepping on each others toes.")
(base32
"1b0ikh9q3c3qnny3kbvhqih35449q8ajcbh7zkm8k3kykwfx4scf"))))
(build-system gnu-build-system)
+ (outputs '("out"
+ "doc")) ;9 MiB of gtk-doc HTML pages
(native-inputs
`(("glib:bin" ,glib "bin") ; for glib-genmarshal
("gobject-introspection" ,gobject-introspection)
@@ -2649,7 +2651,12 @@ without stepping on each others toes.")
`(("libxkbcommon" ,libxkbcommon)
("udev" ,eudev)))
(arguments
- `(#:configure-flags '("--enable-x11-backend=yes")
+ `(#:configure-flags (list "--enable-x11-backend=yes"
+
+ ;; This produces share/doc/{clutter,cally}.
+ (string-append "--with-html-dir="
+ (assoc-ref %outputs "doc")
+ "/share/doc"))
;; XXX FIXME: Get test suite working. It would probably fail in the
;; same way the cogl tests fail, since clutter is based on cogl.
#:tests? #f))
@@ -2720,6 +2727,38 @@ implements the ClutterGstPlayer interface using playbin. Clutter is an Open
GL based interactive canvas library.")
(license license:lgpl2.0+)))
+(define-public libchamplain
+ (package
+ (name "libchamplain")
+ (version "0.12.10")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "019b8scnx7d3wdylmpk9ihzh06w25b63x9cn8nhj6kjx82rcwlxz"))))
+ (build-system gnu-build-system)
+ (native-inputs `(("pkg-config" ,pkg-config)))
+ (propagated-inputs
+ `(("libsoup" ,libsoup)
+ ("sqlite" ,sqlite)
+ ("clutter" ,clutter)
+ ("clutter-gtk" ,clutter-gtk)
+ ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
+ ("cairo" ,cairo)
+ ("gtk+3" ,gtk+)
+ ("glib" ,glib)))
+ (home-page "http://projects.gnome.org/libchamplain/")
+ (synopsis "C library providing a ClutterActor to display maps")
+ (description
+ "libchamplain is a C library providing a ClutterActor to display maps.
+It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
+and Perl bindings are also available. It supports numerous free map sources
+such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
+ (license license:lgpl2.1+)))
+
(define-public gom
(package
(name "gom")
@@ -3371,3 +3410,93 @@ principles are simplicity and standards compliance.")
"D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
of running programs and invoke methods on those interfaces.")
(license license:gpl2+)))
+
+(define-public yelp-xsl
+ (package
+ (name "yelp-xsl")
+ (version "3.16.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0jhpni4mmfvj3xf57rjm61nc8d0x66hz9gd1ywws5lh39g6fx59j"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("intltool" ,intltool)
+ ("itstool" ,itstool)
+ ("xmllint" ,libxml2)))
+ (home-page "https://wiki.gnome.org/Apps/Yelp")
+ (synopsis "XSL stylesheets for Yelp")
+ (description
+ "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
+to format Docbook and Mallard documents.")
+ (license license:gpl2+)))
+
+(define-public yelp
+ (package
+ (name "yelp")
+ (version "3.16.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1jk7aad1srykhgc3x0hd3q3dnlshmy1ak00alwjzaasxvy6hp0b0"))))
+ (build-system glib-or-gtk-build-system)
+ (native-inputs
+ `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
+ ("intltool" ,intltool)
+ ("itstool" ,itstool)
+ ("pkg-config" ,pkg-config)))
+ (propagated-inputs
+ `(("dconf" ,dconf)))
+ (inputs
+ `(("libxslt" ,libxslt)
+ ("sqlite" ,sqlite)
+ ("webkitgtk" ,webkitgtk-2.4)
+ ("yelp-xsl" ,yelp-xsl)
+ ;; XXX: need by libwebkitgtk-3.0.la.
+ ("icu4c" ,(@ (gnu packages icu4c) icu4c))))
+ (home-page "https://wiki.gnome.org/Apps/Yelp")
+ (synopsis "GNOME help browser")
+ (description
+ "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
+man, info, and HTML documents. It can locate documents according to the
+freedesktop.org help system specification.")
+ (license license:gpl2+)))
+
+(define-public yelp-tools
+ (package
+ (name "yelp-tools")
+ (version "3.16.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "177qzvj5w019isdp41qxqcys2kc4sq2x6dqhqn6l9ipib8a6rxml"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (propagated-inputs
+ ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
+ `(("itstool" ,itstool)
+ ("xmllint" ,libxml2)
+ ("xsltproc" ,libxslt)))
+ (inputs
+ `(("yelp-xsl" ,yelp-xsl)))
+ (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
+ (synopsis "Yelp documentation tools")
+ (description
+ "Yelp-tools is a collection of scripts and build utilities to help create,
+manage, and publish documentation for Yelp and the web. Most of the heavy
+lifting is done by packages like yelp-xsl and itstool. This package just
+wraps things up in a developer-friendly way.")
+ (license license:gpl2+)))
diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm
index 6ab8f09ce6..42d19af8f4 100644
--- a/gnu/packages/gnucash.scm
+++ b/gnu/packages/gnucash.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -27,7 +28,9 @@
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages icu4c)
+ #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages web)
#:use-module (gnu packages webkit)
#:use-module (gnu packages xml))
@@ -42,11 +45,9 @@
version ".tar.bz2"))
(sha256
(base32
- "103ir5qg6k8m2mmg9b99c3gn8myxh1gsqyr0mfhmrhqya68wfdr3"))))
+ "103ir5qg6k8m2mmg9b99c3gn8myxh1gsqyr0mfhmrhqya68wfdr3"))
+ (patches (list (search-patch "gnucash-price-quotes-perl.patch")))))
(build-system gnu-build-system)
- (arguments
- `(#:tests? #f ;FIXME: failing at /qof/gnc-date/qof print date dmy buff
- #:configure-flags '("--disable-dbi")))
(inputs
`(("guile" ,guile-2.0)
("icu4c" ,icu4c)
@@ -56,11 +57,46 @@
("libgnomecanvas" ,libgnomecanvas)
("libxml2" ,libxml2)
("libxslt" ,libxslt)
- ("webkitgtk" ,webkitgtk/gtk+-2)))
+ ("webkitgtk" ,webkitgtk/gtk+-2)
+ ("perl-date-manip" ,perl-date-manip)
+ ("perl-finance-quote" ,perl-finance-quote)))
(native-inputs
`(("glib" ,glib "bin") ; glib-compile-schemas, etc.
("intltool" ,intltool)
("pkg-config" ,pkg-config)))
+ (arguments
+ `(#:tests? #f ;FIXME: failing at /qof/gnc-date/qof print date dmy buff
+ #:configure-flags '("--disable-dbi")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after
+ 'install 'wrap-programs
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (for-each (lambda (prog)
+ (wrap-program (string-append (assoc-ref outputs "out")
+ "/bin/" prog)
+ `("PERL5LIB" ":" prefix
+ ,(map (lambda (o)
+ (string-append o "/lib/perl5/site_perl/"
+ ,(package-version perl)))
+ (if (string=? prog "gnc-fq-helper")
+ (list
+ ,@(transitive-input-references
+ 'inputs
+ (map (lambda (l)
+ (assoc l (inputs)))
+ '("perl-finance-quote"
+ "perl-date-manip"))))
+ (list
+ ,@(transitive-input-references
+ 'inputs
+ (map (lambda (l)
+ (assoc l (inputs)))
+ '("perl-finance-quote")))))))))
+ '("gnucash"
+ "gnc-fq-check"
+ "gnc-fq-helper"
+ "gnc-fq-dump")))))))
(home-page "https://gnu.org/software/gnucash")
(synopsis "Personal and small business financial accounting software")
(description
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index b66eec3843..58826176d5 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -193,14 +193,14 @@ compatible to GNU Pth.")
(define-public gnupg
(package
(name "gnupg")
- (version "2.1.7")
+ (version "2.1.8")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnupg/gnupg/gnupg-" version
".tar.bz2"))
(sha256
(base32
- "0vl4wzraln0h4db0kfza4l5by5pgfijqplji5n4riv3zsiv3g2n1"))))
+ "18w14xp0ynzzwpklyplkzbrncds1hly4k2gjx115swch8qgd1f53"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 717388ba00..920da6c864 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -203,7 +203,7 @@ for the GStreamer multimedia library.")
("flac" ,flac)
("gdk-pixbuf" ,gdk-pixbuf)
("gst-plugins-base" ,gst-plugins-base)
- ("jack" ,jack-2)
+ ("jack" ,jack-1)
("libavc1394" ,libavc1394)
("libcaca" ,libcaca)
("libdv" ,libdv)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 42ca2b1af6..79f3276ba8 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -33,6 +33,8 @@
#:use-module (guix build-system waf)
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages texinfo)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages docbook)
@@ -632,6 +634,92 @@ graphics library with all of the benefits of Scheme: memory management,
exceptions, macros, and a dynamic programming environment.")
(license license:lgpl3+)))
+(define-public guile-rsvg
+ (package
+ (name "guile-rsvg")
+ (version "2.18.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://wingolog.org/pub/guile-rsvg/"
+ name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "136f236iw3yrrz6pkkp1ma9c5mrs5icqha6pnawinqpk892r3jh7"))
+ (patches (list (search-patch "guile-rsvg-pkgconfig.patch")))
+ (modules '((guix build utils)))
+ (snippet
+ '(substitute* (find-files "." "Makefile\\.am")
+ (("/share/guile/site")
+ "/share/guile/site/2.0")))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (add-before 'configure 'bootstrap
+ (lambda _
+ (zero? (system* "autoreconf" "-vfi")))))))
+ (native-inputs `(("pkg-config" ,pkg-config)
+ ("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("texinfo" ,texinfo)))
+ (inputs `(("guile" ,guile-2.0)
+ ("librsvg" ,librsvg)
+ ("guile-lib" ,guile-lib))) ;for (unit-test)
+ (propagated-inputs `(("guile-cairo" ,guile-cairo)))
+ (synopsis "Render SVG images using Cairo from Guile")
+ (description
+ "Guile-RSVG wraps the RSVG library for Guile, allowing you to render SVG
+images onto Cairo surfaces.")
+ (home-page "http://wingolog.org/projects/guile-rsvg/")
+ (license license:lgpl2.1+)))
+
+(define-public guile-present
+ (package
+ (name "guile-present")
+ (version "0.3.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://wingolog.org/pub/guile-present/"
+ "guile-present-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1qam447m05sxxv6x8dlzg7qnyfc4dh8apjw1idpfhpns671gfr6m"))
+ (patches (list (search-patch "guile-present-coding.patch")))
+ (modules '((guix build utils)))
+ (snippet
+ '(substitute* "Makefile.in"
+ (("godir = .*$")
+ "godir = $(moddir)\n")))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases (alist-cons-after
+ 'install 'post-install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (guile (assoc-ref inputs "guile")))
+ (substitute* (find-files bin ".*")
+ (("guile")
+ (string-append guile "/bin/guile -L "
+ out "/share/guile/site/2.0 -C "
+ out "/share/guile/site/2.0 ")))))
+ %standard-phases)))
+ (native-inputs `(("pkg-config" ,pkg-config)))
+ (inputs `(("guile" ,guile-2.0)))
+ (propagated-inputs
+ ;; These are used by the (present …) modules.
+ `(("guile-lib" ,guile-lib)
+ ("guile-cairo" ,guile-cairo)
+ ("guile-rsvg" ,guile-rsvg)))
+ (home-page "http://wingolog.org/software/guile-present/")
+ (synopsis "Create SVG or PDF presentations in Guile")
+ (description
+ "Guile-Present defines a declarative vocabulary for presentations,
+together with tools to render presentation documents as SVG or PDF.
+Guile-Present can be used to make presentations programmatically, but also
+includes a tools to generate PDF presentations out of Org mode and Texinfo
+documents.")
+ (license license:lgpl3+)))
;;;
;;; C++ bindings.
diff --git a/gnu/packages/ibus.scm b/gnu/packages/ibus.scm
index 1abe70a1ab..38db959d94 100644
--- a/gnu/packages/ibus.scm
+++ b/gnu/packages/ibus.scm
@@ -24,6 +24,10 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk)
#:use-module (gnu packages)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages databases)
+ #:use-module (gnu packages freedesktop)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
@@ -34,14 +38,15 @@
(define-public ibus
(package
(name "ibus")
- (version "1.5.5")
+ (version "1.5.11")
(source (origin
(method url-fetch)
- (uri (string-append "https://ibus.googlecode.com/files/ibus-"
- version ".tar.gz"))
+ (uri (string-append "https://github.com/ibus/ibus/"
+ "releases/download/"
+ version "/ibus-" version ".tar.gz"))
(sha256
(base32
- "1v4a9xv2k26g6ggk4282ynfvh68j2r5hg1cdpvnryfa8c2pkdaq2"))))
+ "1g26llizd26h9sfz4xdq8krhz19hn08pirvfbkk3g89ri8lmm6a9"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:tests? #f ; tests fail because there's no connection to dbus
@@ -49,6 +54,9 @@
(list "CC=gcc"
(string-append "pyoverridesdir="
(assoc-ref %outputs "out")
+ "/lib/python2.7/site-packages/gi/overrides/")
+ (string-append "py2overridesdir="
+ (assoc-ref %outputs "out")
"/lib/python2.7/site-packages/gi/overrides/"))
#:phases
(alist-cons-before
@@ -83,6 +91,10 @@
`(("glib" ,glib "bin") ; for glib-genmarshal
("gobject-introspection" ,gobject-introspection) ; for g-ir-compiler
("pkg-config" ,pkg-config)))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "IBUS_COMPONENT_PATH")
+ (files '("share/ibus/component")))))
(synopsis "Input method framework")
(description
"IBus is an input framework providing a full-featured and user-friendly
@@ -90,3 +102,103 @@ input method user interface. It comes with multilingual input support. It
may also simplify input method development.")
(home-page "http://ibus.googlecode.com/")
(license lgpl2.1+)))
+
+(define-public ibus-libpinyin
+ (package
+ (name "ibus-libpinyin")
+ (version "1.7.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/libpinyin/"
+ "ibus-libpinyin/archive/" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "080ixx5lih9lr78b061y67dqmiyc7ij87jl1sa26hhs1dr28ihka"))))
+ (build-system glib-or-gtk-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'autogen
+ (lambda _ (and (zero? (system* "intltoolize"))
+ (zero? (system* "autoreconf" "-vif")))))
+ (add-after 'wrap-program 'wrap-with-additional-paths
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; Make sure 'ibus-setup-libpinyin' runs with the correct
+ ;; PYTHONPATH and GI_TYPELIB_PATH.
+ (let ((out (assoc-ref outputs "out")))
+ (wrap-program (string-append out "/libexec/ibus-setup-libpinyin")
+ `("PYTHONPATH" ":" prefix
+ (,(getenv "PYTHONPATH")
+ ,(string-append (assoc-ref inputs "ibus")
+ "/lib/girepository-1.0")))
+ `("GI_TYPELIB_PATH" ":" prefix
+ (,(string-append (assoc-ref inputs "ibus")
+ "/lib/girepository-1.0"))))
+ #t))))))
+ (inputs
+ `(("ibus" ,ibus)
+ ("libpinyin" ,libpinyin)
+ ("bdb" ,bdb)
+ ("sqlite" ,sqlite)
+ ("python" ,python-2)
+ ("pyxdg" ,python2-pyxdg)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)
+ ("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)))
+ (synopsis "Chinese Pinyin and ZhuYin input methods for IBus")
+ (description
+ "This package includes a Chinese Pinyin input method and a Chinese
+ZhuYin (Bopomofo) input method based on libpinyin for IBus.")
+ (home-page "https://github.com/libpinyin/ibus-libpinyin")
+ (license gpl2+)))
+
+(define-public libpinyin
+ (package
+ (name "libpinyin")
+ (version "1.2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/libpinyin/libpinyin/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "04didxd39vlry6nqy7xqynwc68ndajnhw334wahfmp7zjbbscs7p"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'autogen
+ (lambda _ (zero? (system* "autoreconf" "-vif"))))
+ (add-after 'unpack 'unpack-model
+ (lambda* (#:key inputs #:allow-other-keys)
+ (zero? (system* "tar" "-xvf"
+ (assoc-ref inputs "model")
+ "-C" "data")))))))
+ (inputs
+ `(("glib" ,glib)
+ ("bdb" ,bdb)
+ ("model"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/libpinyin/"
+ "models/model10.text.tar.gz"))
+ (sha256
+ (base32
+ "0g489wqcfklxphhxpkh8i4qf9y8scmnmdbfrzdbrgf3rignbwyiw"))))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)))
+ (synopsis "Library to handle Chinese Pinyin")
+ (description
+ "The libpinyin C++ library provides algorithms needed for sentence-based
+Chinese pinyin input methods.")
+ (home-page "https://github.com/libpinyin/libpinyin")
+ (license gpl2+)))
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 76f73e03ca..cee7f146fa 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -31,6 +31,7 @@
#:use-module (gnu packages fontutils)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
+ #:use-module (gnu packages graphics)
#:use-module (gnu packages maths)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
@@ -132,7 +133,7 @@ Included are a library, libtiff, for reading and writing TIFF and a small
collection of tools for doing simple manipulations of TIFF images.")
(license (license:non-copyleft "file://COPYRIGHT"
"See COPYRIGHT in the distribution."))
- (home-page "http://www.libtiff.org/")))
+ (home-page "http://www.remotesensing.org/libtiff/")))
(define-public libwmf
(package
@@ -508,9 +509,12 @@ graphics image formats like PNG, BMP, JPEG, TIFF and others.")
("fftw" ,fftw)
("fftwf" ,fftwf)
("hdf5" ,hdf5)
+ ("ilmbase" ,ilmbase) ; propagated by openexr, but needed explicitly
+ ; to create a configure-flag
("libjpeg" ,libjpeg)
("libpng" ,libpng)
("libtiff" ,libtiff)
+ ("openexr" ,openexr)
("python" ,python-2) ; print syntax
("python2-numpy" ,python2-numpy)
("zlib" ,zlib)))
@@ -524,7 +528,15 @@ graphics image formats like PNG, BMP, JPEG, TIFF and others.")
(list "-Wno-dev" ; suppress developer mode with lots of warnings
(string-append "-DVIGRANUMPY_INSTALL_DIR="
(assoc-ref %outputs "out")
- "/lib/python2.7/site-packages"))))
+ "/lib/python2.7/site-packages")
+ ;; OpenEXR is not enabled by default.
+ "-DWITH_OPENEXR=1"
+ ;; The header files of ilmbase are not found when included
+ ;; by the header files of openexr, and an explicit flag
+ ;; needs to be set.
+ (string-append "-DCMAKE_CXX_FLAGS=-I"
+ (assoc-ref %build-inputs "ilmbase")
+ "/include/OpenEXR"))))
(synopsis "Computer vision library")
(description
"VIGRA stands for Vision with Generic Algorithms. It is an image
diff --git a/gnu/packages/libcanberra.scm b/gnu/packages/libcanberra.scm
index 0ffae1f674..3769e3fe21 100644
--- a/gnu/packages/libcanberra.scm
+++ b/gnu/packages/libcanberra.scm
@@ -18,7 +18,8 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages libcanberra)
- #:use-module ((guix licenses) #:select (lgpl2.1+))
+ #:use-module ((guix licenses)
+ #:select (lgpl2.1+ gpl2 gpl2+ cc-by-sa4.0 cc-by3.0))
#:use-module (gnu packages)
#:use-module (guix packages)
#:use-module (guix download)
@@ -112,5 +113,8 @@ null) and is designed to be portable.")
(description
"This package provides audio samples that can be used by libcanberra as
sounds for various system events.")
- (license #f)
+
+ ;; The license of the various sounds is given in the 'CREDITS' file.
+ (license (list cc-by-sa4.0 cc-by3.0 gpl2 gpl2+))
+
(home-page "http://www.freedesktop.org/wiki/Specifications/sound-theme-spec/")))
diff --git a/gnu/packages/libedit.scm b/gnu/packages/libedit.scm
index 1d7b5b6a5f..a1a1ac6bb5 100644
--- a/gnu/packages/libedit.scm
+++ b/gnu/packages/libedit.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
+;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -26,7 +27,7 @@
(define-public libedit
(package
(name "libedit")
- (version "20141030-3.1")
+ (version "20150325-3.1")
(source
(origin
(method url-fetch)
@@ -34,8 +35,9 @@
"/" name "-" version ".tar.gz"))
(sha256
(base32
- "0h2svwfcdldpbg0fy7fnkld706r2a9k9h1mm0yj7z3zvf1jy20cp"))))
+ "1if8zi9h52m80ck796an28rrqfljk2n8cn25m3fl0prwz155x2n8"))))
(build-system gnu-build-system)
+ (arguments `(#:configure-flags (list "--enable-widec")))
(inputs
`(("ncurses" ,ncurses)))
(home-page "http://thrysoee.dk/editline/")
diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm
index 86a59befdd..e7f5b8b119 100644
--- a/gnu/packages/libusb.scm
+++ b/gnu/packages/libusb.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
+;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -25,9 +26,13 @@
#:use-module (guix utils)
#:use-module (guix download)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system glib-or-gtk)
#:use-module (gnu packages gnupg)
+ #:use-module (gnu packages gtk)
#:use-module (gnu packages linux)
- #:use-module (gnu packages pkg-config))
+ #:use-module (gnu packages mp3)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages xiph))
(define-public libusb
(package
@@ -116,3 +121,37 @@ proposed for standardization.")
;; Foundation; either version 2 of the License, or (at your option) any
;; later version."
(license lgpl2.1+)))
+
+(define-public gmtp
+ (package
+ (name "gmtp")
+ (version "1.3.9")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/gmtp/" version
+ "/gmtp-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0bdxvi0jf3q870a39xzsaj4qrjwc9b5bgvc95plc7xb6vf2m7zsv"))))
+ (build-system glib-or-gtk-build-system)
+ (arguments
+ '(#:configure-flags
+ (let ((libid3tag (assoc-ref %build-inputs "libid3tag")))
+ (list
+ ;; libid3tag provides no .pc file, so pkg-config fails to find them.
+ (string-append "ID3TAG_CFLAGS=-I" libid3tag "/include")
+ (string-append "ID3TAG_LIBS=-L" libid3tag "/lib -lid3tag -lz")))))
+ (inputs
+ `(("gtk+" ,gtk+)
+ ("flac" ,flac)
+ ("libvorbis" ,libvorbis)
+ ("libid3tag" ,libid3tag)
+ ("libmtp" ,libmtp)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "http://gmtp.sourceforge.net/")
+ (synopsis "Simple graphical MTP client")
+ (description "gMTP is a simple graphical client for the Media Transfer Protocol
+ (MTP), which allows media files to be transferred to and from many portable
+devices.")
+ (license bsd-3)))
diff --git a/gnu/packages/linux-libre-i686.conf b/gnu/packages/linux-libre-i686.conf
index a37225541e..7b17f7b7c3 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 4.1.0-gnu Kernel Configuration
+# Linux/x86 4.2.0-gnu Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -34,7 +34,6 @@ CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_HAVE_INTEL_TXT=y
CONFIG_X86_32_SMP=y
-CONFIG_X86_HT=y
CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_FIX_EARLYCON_MEM=y
@@ -83,11 +82,12 @@ CONFIG_AUDIT_TREE=y
#
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_IRQ_LEGACY_ALLOC_HWIRQ=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_GENERIC_IRQ_CHIP=y
CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_DOMAIN_HIERARCHY=y
CONFIG_GENERIC_MSI_IRQ=y
+CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
# CONFIG_IRQ_DOMAIN_DEBUG is not set
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
@@ -126,15 +126,11 @@ CONFIG_TASK_IO_ACCOUNTING=y
# RCU Subsystem
#
CONFIG_TREE_RCU=y
+# CONFIG_RCU_EXPERT is not set
CONFIG_SRCU=y
# CONFIG_TASKS_RCU is not set
CONFIG_RCU_STALL_COMMON=y
-CONFIG_RCU_FANOUT=32
-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_RCU_EXPEDITE_BOOT is not set
CONFIG_BUILD_BIN2C=y
@@ -162,6 +158,7 @@ CONFIG_CFS_BANDWIDTH=y
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_BLK_CGROUP=y
# CONFIG_DEBUG_BLK_CGROUP is not set
+CONFIG_CGROUP_WRITEBACK=y
CONFIG_CHECKPOINT_RESTORE=y
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
@@ -251,6 +248,7 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_ATTRS=y
CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_CLK=y
CONFIG_HAVE_DMA_API_DEBUG=y
@@ -278,6 +276,7 @@ CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
CONFIG_HAVE_ARCH_HUGE_VMAP=y
CONFIG_MODULES_USE_ELF_REL=y
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_HAVE_COPY_THREAD_TLS=y
CONFIG_CLONE_BACKWARDS=y
CONFIG_OLD_SIGSUSPEND3=y
CONFIG_OLD_SIGACTION=y
@@ -299,6 +298,7 @@ CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set
+CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
CONFIG_LBDAF=y
@@ -312,13 +312,7 @@ CONFIG_BLK_CMDLINE_PARSER=y
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
-CONFIG_ACORN_PARTITION=y
-CONFIG_ACORN_PARTITION_CUMANA=y
-CONFIG_ACORN_PARTITION_EESOX=y
-CONFIG_ACORN_PARTITION_ICS=y
-CONFIG_ACORN_PARTITION_ADFS=y
-CONFIG_ACORN_PARTITION_POWERTEC=y
-CONFIG_ACORN_PARTITION_RISCIX=y
+# CONFIG_ACORN_PARTITION is not set
CONFIG_AIX_PARTITION=y
CONFIG_OSF_PARTITION=y
CONFIG_AMIGA_PARTITION=y
@@ -353,7 +347,6 @@ CONFIG_DEFAULT_IOSCHED="deadline"
CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_PADATA=y
CONFIG_ASN1=y
-CONFIG_UNINLINE_SPIN_UNLOCK=y
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
CONFIG_INLINE_READ_UNLOCK=y
CONFIG_INLINE_READ_UNLOCK_IRQ=y
@@ -363,8 +356,10 @@ 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_ARCH_USE_QUEUED_SPINLOCKS=y
+CONFIG_QUEUED_SPINLOCKS=y
+CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
+CONFIG_QUEUED_RWLOCKS=y
CONFIG_FREEZER=y
#
@@ -541,7 +536,9 @@ CONFIG_ZSMALLOC=y
CONFIG_PGTABLE_MAPPING=y
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_GENERIC_EARLY_IOREMAP=y
-# CONFIG_X86_PMEM_LEGACY is not set
+CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y
+# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
+CONFIG_X86_PMEM_LEGACY=y
CONFIG_HIGHPTE=y
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
@@ -612,6 +609,7 @@ CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
CONFIG_ACPI_SLEEP=y
# CONFIG_ACPI_PROCFS_POWER is not set
+CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
CONFIG_ACPI_EC_DEBUGFS=m
CONFIG_ACPI_AC=y
CONFIG_ACPI_BATTERY=y
@@ -638,6 +636,8 @@ CONFIG_ACPI_HED=y
# CONFIG_ACPI_CUSTOM_METHOD is not set
CONFIG_ACPI_BGRT=y
# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set
+CONFIG_ACPI_NFIT=m
+# CONFIG_ACPI_NFIT_DEBUG is not set
CONFIG_HAVE_ACPI_APEI=y
CONFIG_HAVE_ACPI_APEI_NMI=y
CONFIG_ACPI_APEI=y
@@ -738,7 +738,9 @@ CONFIG_PCIEASPM_DEFAULT=y
# CONFIG_PCIEASPM_POWERSAVE is not set
# CONFIG_PCIEASPM_PERFORMANCE is not set
CONFIG_PCIE_PME=y
+CONFIG_PCI_BUS_ADDR_T_64BIT=y
CONFIG_PCI_MSI=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
# CONFIG_PCI_DEBUG is not set
CONFIG_PCI_REALLOC_ENABLE_AUTO=y
CONFIG_PCI_STUB=m
@@ -826,6 +828,7 @@ CONFIG_COREDUMP=y
CONFIG_HAVE_ATOMIC_IOMAP=y
CONFIG_PMC_ATOM=y
CONFIG_NET=y
+CONFIG_NET_INGRESS=y
#
# Networking options
@@ -869,7 +872,7 @@ CONFIG_NET_IPVTI=m
CONFIG_NET_UDP_TUNNEL=m
CONFIG_NET_FOU=m
CONFIG_NET_FOU_IP_TUNNELS=y
-CONFIG_GENEVE=m
+CONFIG_GENEVE_CORE=m
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
@@ -896,6 +899,7 @@ CONFIG_TCP_CONG_VENO=m
CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_CONG_ILLINOIS=m
CONFIG_TCP_CONG_DCTCP=m
+CONFIG_TCP_CONG_CDG=m
CONFIG_DEFAULT_CUBIC=y
# CONFIG_DEFAULT_RENO is not set
CONFIG_DEFAULT_TCP_CONG="cubic"
@@ -937,6 +941,7 @@ CONFIG_BRIDGE_NETFILTER=m
#
# Core Netfilter Configuration
#
+CONFIG_NETFILTER_INGRESS=y
CONFIG_NETFILTER_NETLINK=m
CONFIG_NETFILTER_NETLINK_ACCT=m
CONFIG_NETFILTER_NETLINK_QUEUE=m
@@ -984,6 +989,7 @@ CONFIG_NF_NAT_REDIRECT=m
CONFIG_NETFILTER_SYNPROXY=m
CONFIG_NF_TABLES=m
CONFIG_NF_TABLES_INET=m
+CONFIG_NF_TABLES_NETDEV=m
CONFIG_NFT_EXTHDR=m
CONFIG_NFT_META=m
CONFIG_NFT_CT=m
@@ -1382,6 +1388,7 @@ CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_FLOW=m
CONFIG_NET_CLS_CGROUP=m
CONFIG_NET_CLS_BPF=m
+CONFIG_NET_CLS_FLOWER=m
CONFIG_NET_EMATCH=y
CONFIG_NET_EMATCH_STACK=32
CONFIG_NET_EMATCH_CMP=m
@@ -1594,8 +1601,10 @@ CONFIG_BT_DEBUGFS=y
#
CONFIG_BT_INTEL=m
CONFIG_BT_BCM=m
+CONFIG_BT_RTL=m
CONFIG_BT_HCIBTUSB=m
CONFIG_BT_HCIBTUSB_BCM=y
+CONFIG_BT_HCIBTUSB_RTL=y
CONFIG_BT_HCIBTSDIO=m
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_H4=y
@@ -1654,6 +1663,7 @@ CONFIG_MAC80211_LEDS=y
CONFIG_MAC80211_DEBUGFS=y
CONFIG_MAC80211_MESSAGE_TRACING=y
# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
CONFIG_WIMAX=m
CONFIG_WIMAX_DEBUG_LEVEL=8
CONFIG_RFKILL=y
@@ -1676,6 +1686,7 @@ CONFIG_NFC=m
CONFIG_NFC_DIGITAL=m
CONFIG_NFC_NCI=m
CONFIG_NFC_NCI_SPI=y
+CONFIG_NFC_NCI_UART=m
CONFIG_NFC_HCI=m
CONFIG_NFC_SHDLC=y
@@ -1696,10 +1707,11 @@ CONFIG_NFC_MICROREAD_I2C=m
CONFIG_NFC_MICROREAD_MEI=m
CONFIG_NFC_MRVL=m
CONFIG_NFC_MRVL_USB=m
+CONFIG_NFC_MRVL_UART=m
CONFIG_NFC_ST21NFCA=m
CONFIG_NFC_ST21NFCA_I2C=m
-CONFIG_NFC_ST21NFCB=m
-CONFIG_NFC_ST21NFCB_I2C=m
+CONFIG_NFC_ST_NCI=m
+CONFIG_NFC_ST_NCI_I2C=m
CONFIG_NFC_NXP_NCI=m
CONFIG_NFC_NXP_NCI_I2C=m
@@ -1885,6 +1897,7 @@ CONFIG_MTD_UBI_BEB_LIMIT=20
CONFIG_MTD_UBI_FASTMAP=y
CONFIG_MTD_UBI_GLUEBI=m
CONFIG_MTD_UBI_BLOCK=y
+# CONFIG_OF is not set
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
@@ -1942,7 +1955,6 @@ CONFIG_PARIDE_ON26=m
CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
CONFIG_ZRAM=m
CONFIG_ZRAM_LZ4_COMPRESS=y
-# CONFIG_ZRAM_DEBUG is not set
CONFIG_BLK_CPQ_CISS_DA=m
CONFIG_CISS_SCSI_TAPE=y
CONFIG_BLK_DEV_DAC960=m
@@ -1961,7 +1973,6 @@ CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=65536
CONFIG_BLK_DEV_RAM_DAX=y
-CONFIG_BLK_DEV_PMEM=m
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -2045,14 +2056,23 @@ CONFIG_VMWARE_VMCI=m
#
#
+# SCIF Bus Driver
+#
+
+#
# Intel MIC Host Driver
#
#
# Intel MIC Card Driver
#
+
+#
+# SCIF Driver
+#
CONFIG_ECHO=m
# CONFIG_CXL_BASE is not set
+# CONFIG_CXL_KERNEL_API is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set
@@ -2158,6 +2178,8 @@ CONFIG_LIBFC=m
CONFIG_LIBFCOE=m
CONFIG_FCOE=m
CONFIG_FCOE_FNIC=m
+CONFIG_SCSI_SNIC=m
+# CONFIG_SCSI_SNIC_DEBUG_FS is not set
CONFIG_SCSI_DMX3191D=m
CONFIG_SCSI_DTC3280=m
CONFIG_SCSI_EATA=m
@@ -2356,6 +2378,7 @@ CONFIG_DM_SNAPSHOT=m
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_CACHE=m
CONFIG_DM_CACHE_MQ=m
+CONFIG_DM_CACHE_SMQ=m
CONFIG_DM_CACHE_CLEANER=m
CONFIG_DM_ERA=m
CONFIG_DM_MIRROR=m
@@ -2417,6 +2440,7 @@ CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
CONFIG_IPVLAN=m
CONFIG_VXLAN=m
+CONFIG_GENEVE=m
CONFIG_NETCONSOLE=m
CONFIG_NETCONSOLE_DYNAMIC=y
CONFIG_NETPOLL=y
@@ -2426,6 +2450,7 @@ CONFIG_RIONET=m
CONFIG_RIONET_TX_SIZE=128
CONFIG_RIONET_RX_SIZE=128
CONFIG_TUN=y
+# CONFIG_TUN_VNET_CROSS_LE is not set
CONFIG_VETH=m
CONFIG_VIRTIO_NET=y
CONFIG_NLMON=m
@@ -2485,6 +2510,7 @@ CONFIG_VHOST_NET=m
CONFIG_VHOST_SCSI=m
CONFIG_VHOST_RING=m
CONFIG_VHOST=m
+# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
#
# Distributed Switch Architecture drivers
@@ -2536,6 +2562,7 @@ CONFIG_BNX2X=m
CONFIG_BNX2X_SRIOV=y
CONFIG_NET_VENDOR_BROCADE=y
CONFIG_BNA=m
+CONFIG_NET_VENDOR_CAVIUM=m
CONFIG_NET_VENDOR_CHELSIO=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T1_1G=y
@@ -2570,7 +2597,9 @@ CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_NET_VENDOR_EMULEX=y
CONFIG_BE2NET=m
+CONFIG_BE2NET_HWMON=y
CONFIG_BE2NET_VXLAN=y
+CONFIG_NET_VENDOR_EZCHIP=y
CONFIG_NET_VENDOR_EXAR=y
CONFIG_S2IO=m
CONFIG_VXGE=m
@@ -2618,6 +2647,7 @@ CONFIG_MLX4_EN_VXLAN=y
CONFIG_MLX4_CORE=m
CONFIG_MLX4_DEBUG=y
CONFIG_MLX5_CORE=m
+CONFIG_MLX5_CORE_EN=y
CONFIG_NET_VENDOR_MICREL=y
CONFIG_KS8842=m
CONFIG_KS8851=m
@@ -2667,6 +2697,7 @@ CONFIG_8139TOO_PIO=y
CONFIG_8139TOO_8129=y
# CONFIG_8139_OLD_RX_RESET is not set
CONFIG_R8169=m
+CONFIG_NET_VENDOR_RENESAS=y
CONFIG_NET_VENDOR_RDC=y
CONFIG_R6040=m
CONFIG_NET_VENDOR_ROCKER=y
@@ -2682,6 +2713,7 @@ CONFIG_SFC=m
CONFIG_SFC_MTD=y
CONFIG_SFC_MCDI_MON=y
CONFIG_SFC_SRIOV=y
+CONFIG_SFC_MCDI_LOGGING=y
CONFIG_NET_VENDOR_SMSC=y
CONFIG_SMC9194=m
CONFIG_PCMCIA_SMC91C92=m
@@ -2692,6 +2724,7 @@ CONFIG_SMSC9420=m
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_STMMAC_ETH=m
CONFIG_STMMAC_PLATFORM=m
+CONFIG_DWMAC_GENERIC=m
# CONFIG_STMMAC_PCI is not set
CONFIG_NET_VENDOR_SUN=y
CONFIG_HAPPYMEAL=m
@@ -2744,6 +2777,7 @@ CONFIG_NATIONAL_PHY=m
CONFIG_STE10XP=m
CONFIG_LSI_ET1011C_PHY=m
CONFIG_MICREL_PHY=m
+CONFIG_DP83867_PHY=m
CONFIG_FIXED_PHY=y
CONFIG_MDIO_BITBANG=m
CONFIG_MDIO_GPIO=m
@@ -3003,6 +3037,8 @@ CONFIG_RT2X00_LIB_CRYPTO=y
CONFIG_RT2X00_LIB_LEDS=y
# CONFIG_RT2X00_LIB_DEBUGFS is not set
# CONFIG_RT2X00_DEBUG is not set
+CONFIG_WL_MEDIATEK=y
+CONFIG_MT7601U=m
CONFIG_RTL_CARDS=m
CONFIG_RTL8192CE=m
CONFIG_RTL8192SE=m
@@ -3083,6 +3119,7 @@ CONFIG_IEEE802154_FAKELB=m
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_MRF24J40=m
CONFIG_IEEE802154_CC2520=m
+CONFIG_IEEE802154_ATUSB=m
CONFIG_XEN_NETDEV_FRONTEND=y
CONFIG_XEN_NETDEV_BACKEND=m
CONFIG_VMXNET3=m
@@ -3239,6 +3276,7 @@ CONFIG_ISDN_HDLC=m
# Input device support
#
CONFIG_INPUT=y
+CONFIG_INPUT_LEDS=m
CONFIG_INPUT_FF_MEMLESS=m
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_SPARSEKMAP=m
@@ -3394,6 +3432,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m
CONFIG_TOUCHSCREEN_UCB1400=m
CONFIG_TOUCHSCREEN_PIXCIR=m
+CONFIG_TOUCHSCREEN_WDT87XX_I2C=m
CONFIG_TOUCHSCREEN_WM831X=m
CONFIG_TOUCHSCREEN_WM97XX=m
CONFIG_TOUCHSCREEN_WM9705=y
@@ -3474,6 +3513,7 @@ CONFIG_INPUT_PWM_BEEPER=m
CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
CONFIG_INPUT_DA9052_ONKEY=m
CONFIG_INPUT_DA9055_ONKEY=m
+CONFIG_INPUT_DA9063_ONKEY=m
CONFIG_INPUT_WM831X_ON=m
CONFIG_INPUT_PCAP=m
CONFIG_INPUT_ADXL34X=m
@@ -3486,6 +3526,7 @@ CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
CONFIG_INPUT_SOC_BUTTON_ARRAY=m
CONFIG_INPUT_DRV260X_HAPTICS=m
+CONFIG_INPUT_DRV2665_HAPTICS=m
CONFIG_INPUT_DRV2667_HAPTICS=m
#
@@ -3581,7 +3622,10 @@ CONFIG_CONSOLE_POLL=y
CONFIG_SERIAL_JSM=m
CONFIG_SERIAL_SCCNXP=y
CONFIG_SERIAL_SCCNXP_CONSOLE=y
+CONFIG_SERIAL_SC16IS7XX_CORE=m
CONFIG_SERIAL_SC16IS7XX=m
+CONFIG_SERIAL_SC16IS7XX_I2C=y
+CONFIG_SERIAL_SC16IS7XX_SPI=y
CONFIG_SERIAL_TIMBERDALE=m
CONFIG_SERIAL_ALTERA_JTAGUART=m
CONFIG_SERIAL_ALTERA_UART=m
@@ -3774,6 +3818,7 @@ CONFIG_SPI_SC18IS602=m
CONFIG_SPI_TOPCLIFF_PCH=m
CONFIG_SPI_XCOMM=m
# CONFIG_SPI_XILINX is not set
+CONFIG_SPI_ZYNQMP_GQSPI=m
CONFIG_SPI_DESIGNWARE=m
CONFIG_SPI_DW_PCI=m
CONFIG_SPI_DW_MID_DMA=y
@@ -3969,6 +4014,7 @@ CONFIG_BATTERY_BQ27X00_PLATFORM=y
CONFIG_BATTERY_DA9030=m
CONFIG_BATTERY_DA9052=m
CONFIG_CHARGER_DA9150=m
+CONFIG_AXP288_CHARGER=m
CONFIG_AXP288_FUEL_GAUGE=m
CONFIG_BATTERY_MAX17040=m
CONFIG_BATTERY_MAX17042=m
@@ -3990,11 +4036,14 @@ CONFIG_CHARGER_MAX8997=m
CONFIG_CHARGER_MAX8998=m
CONFIG_CHARGER_BQ2415X=m
CONFIG_CHARGER_BQ24190=m
+CONFIG_CHARGER_BQ24257=m
CONFIG_CHARGER_BQ24735=m
+CONFIG_CHARGER_BQ25890=m
CONFIG_CHARGER_SMB347=m
CONFIG_CHARGER_TPS65090=m
CONFIG_BATTERY_GAUGE_LTC2941=m
CONFIG_BATTERY_RT5033=m
+CONFIG_CHARGER_RT9455=m
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_RESTART=y
CONFIG_POWER_AVS=y
@@ -4032,6 +4081,7 @@ CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_DS620=m
CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_DELL_SMM=m
CONFIG_SENSORS_DA9052_ADC=m
CONFIG_SENSORS_DA9055=m
CONFIG_SENSORS_I5K_AMB=m
@@ -4134,6 +4184,7 @@ CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
+CONFIG_SENSORS_TC74=m
CONFIG_SENSORS_THMC50=m
CONFIG_SENSORS_TMP102=m
CONFIG_SENSORS_TMP103=m
@@ -4164,16 +4215,20 @@ CONFIG_SENSORS_ACPI_POWER=m
CONFIG_SENSORS_ATK0110=m
CONFIG_THERMAL=y
CONFIG_THERMAL_HWMON=y
+CONFIG_THERMAL_WRITABLE_TRIPS=y
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set
CONFIG_THERMAL_GOV_FAIR_SHARE=y
CONFIG_THERMAL_GOV_STEP_WISE=y
CONFIG_THERMAL_GOV_BANG_BANG=y
CONFIG_THERMAL_GOV_USER_SPACE=y
+CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y
CONFIG_THERMAL_EMULATION=y
CONFIG_INTEL_POWERCLAMP=m
CONFIG_X86_PKG_TEMP_THERMAL=m
+CONFIG_INTEL_SOC_DTS_IOSF_CORE=m
CONFIG_INTEL_SOC_DTS_THERMAL=m
CONFIG_INT340X_THERMAL=m
CONFIG_ACPI_THERMAL_REL=m
@@ -4200,6 +4255,7 @@ CONFIG_CADENCE_WATCHDOG=m
CONFIG_DW_WATCHDOG=m
CONFIG_RN5T618_WATCHDOG=m
CONFIG_TWL4030_WATCHDOG=m
+CONFIG_MAX63XX_WATCHDOG=m
CONFIG_RETU_WATCHDOG=m
CONFIG_ACQUIRE_WDT=m
CONFIG_ADVANTECH_WDT=m
@@ -4306,6 +4362,7 @@ CONFIG_MFD_BCM590XX=m
CONFIG_MFD_AXP20X=y
CONFIG_MFD_CROS_EC=m
CONFIG_MFD_CROS_EC_I2C=m
+CONFIG_MFD_CROS_EC_SPI=m
CONFIG_PMIC_DA903X=y
CONFIG_PMIC_DA9052=y
CONFIG_MFD_DA9052_SPI=y
@@ -4451,6 +4508,7 @@ CONFIG_REGULATOR_PCAP=m
CONFIG_REGULATOR_PCF50633=m
CONFIG_REGULATOR_PFUZE100=m
CONFIG_REGULATOR_PWM=m
+CONFIG_REGULATOR_QCOM_SPMI=m
CONFIG_REGULATOR_RC5T583=m
CONFIG_REGULATOR_RN5T618=m
CONFIG_REGULATOR_RT5033=m
@@ -4494,6 +4552,7 @@ CONFIG_VIDEO_V4L2=m
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
CONFIG_VIDEO_TUNER=m
CONFIG_V4L2_MEM2MEM_DEV=m
+CONFIG_V4L2_FLASH_LED_CLASS=m
CONFIG_VIDEOBUF_GEN=m
CONFIG_VIDEOBUF_DMA_SG=m
CONFIG_VIDEOBUF_VMALLOC=m
@@ -4733,6 +4792,7 @@ CONFIG_VIDEO_HEXIUM_ORION=m
CONFIG_VIDEO_MXB=m
CONFIG_VIDEO_SOLO6X10=m
CONFIG_VIDEO_TW68=m
+CONFIG_VIDEO_DT3155=m
#
# Media capture/analog/hybrid TV support
@@ -4758,6 +4818,7 @@ CONFIG_VIDEO_SAA7134_RC=y
CONFIG_VIDEO_SAA7134_DVB=m
CONFIG_VIDEO_SAA7134_GO7007=m
CONFIG_VIDEO_SAA7164=m
+CONFIG_VIDEO_COBALT=m
#
# Media digital TV PCI Adapters
@@ -4895,6 +4956,8 @@ CONFIG_VIDEO_SAA6588=m
# Video decoders
#
CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_ADV7604=m
+CONFIG_VIDEO_ADV7842=m
CONFIG_VIDEO_BT819=m
CONFIG_VIDEO_BT856=m
CONFIG_VIDEO_BT866=m
@@ -4920,6 +4983,7 @@ CONFIG_VIDEO_SAA7127=m
CONFIG_VIDEO_SAA7185=m
CONFIG_VIDEO_ADV7170=m
CONFIG_VIDEO_ADV7175=m
+CONFIG_VIDEO_ADV7511=m
#
# Camera sensor devices
@@ -5046,6 +5110,7 @@ CONFIG_DVB_TDA826X=m
CONFIG_DVB_TUA6100=m
CONFIG_DVB_CX24116=m
CONFIG_DVB_CX24117=m
+CONFIG_DVB_CX24120=m
CONFIG_DVB_SI21XX=m
CONFIG_DVB_TS2020=m
CONFIG_DVB_DS3000=m
@@ -5188,6 +5253,9 @@ CONFIG_DRM_R128=m
CONFIG_DRM_RADEON=m
# CONFIG_DRM_RADEON_USERPTR is not set
# CONFIG_DRM_RADEON_UMS is not set
+CONFIG_DRM_AMDGPU=m
+CONFIG_DRM_AMDGPU_CIK=y
+CONFIG_DRM_AMDGPU_USERPTR=y
CONFIG_DRM_NOUVEAU=m
CONFIG_NOUVEAU_DEBUG=5
CONFIG_NOUVEAU_DEBUG_DEFAULT=3
@@ -5196,7 +5264,7 @@ CONFIG_DRM_I810=m
CONFIG_DRM_I915=m
CONFIG_DRM_I915_KMS=y
CONFIG_DRM_I915_FBDEV=y
-CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT=y
+# CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT is not set
CONFIG_DRM_MGA=m
CONFIG_DRM_SIS=m
CONFIG_DRM_VIA=m
@@ -5214,6 +5282,7 @@ CONFIG_DRM_AST=m
CONFIG_DRM_CIRRUS_QEMU=m
CONFIG_DRM_QXL=m
# CONFIG_DRM_BOCHS is not set
+CONFIG_DRM_VIRTIO_GPU=m
CONFIG_DRM_PANEL=y
#
@@ -5422,11 +5491,11 @@ CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
CONFIG_SND_DYNAMIC_MINORS=y
CONFIG_SND_MAX_CARDS=32
CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_PROC_FS=y
CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
CONFIG_SND_VMASTER=y
-CONFIG_SND_KCTL_JACK=y
CONFIG_SND_DMA_SGBUF=y
CONFIG_SND_RAWMIDI_SEQ=m
CONFIG_SND_OPL3_LIB_SEQ=m
@@ -5569,20 +5638,16 @@ CONFIG_SND_YMFPCI=m
#
CONFIG_SND_HDA=m
CONFIG_SND_HDA_INTEL=m
-CONFIG_SND_HDA_DSP_LOADER=y
-CONFIG_SND_HDA_PREALLOC_SIZE=64
CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDA_INPUT_BEEP=y
CONFIG_SND_HDA_INPUT_BEEP_MODE=0
-CONFIG_SND_HDA_INPUT_JACK=y
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_CODEC_REALTEK=m
CONFIG_SND_HDA_CODEC_ANALOG=m
CONFIG_SND_HDA_CODEC_SIGMATEL=m
CONFIG_SND_HDA_CODEC_VIA=m
CONFIG_SND_HDA_CODEC_HDMI=m
-CONFIG_SND_HDA_I915=y
CONFIG_SND_HDA_CODEC_CIRRUS=m
CONFIG_SND_HDA_CODEC_CONEXANT=m
CONFIG_SND_HDA_CODEC_CA0110=m
@@ -5593,6 +5658,9 @@ CONFIG_SND_HDA_CODEC_SI3054=m
CONFIG_SND_HDA_GENERIC=m
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
CONFIG_SND_HDA_CORE=m
+CONFIG_SND_HDA_DSP_LOADER=y
+CONFIG_SND_HDA_I915=y
+CONFIG_SND_HDA_PREALLOC_SIZE=64
CONFIG_SND_SPI=y
CONFIG_SND_USB=y
CONFIG_SND_USB_AUDIO=m
@@ -5621,6 +5689,7 @@ CONFIG_SND_PCMCIA=y
CONFIG_SND_VXPOCKET=m
CONFIG_SND_PDAUDIOCF=m
CONFIG_SND_SOC=m
+CONFIG_SND_SOC_AC97_BUS=y
CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
CONFIG_SND_ATMEL_SOC=m
CONFIG_SND_DESIGNWARE_I2S=m
@@ -5654,6 +5723,7 @@ 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_INTEL_CHT_BSW_MAX98090_TI_MACH=m
CONFIG_SND_SOC_QCOM=m
CONFIG_SND_SOC_XTFPGA_I2S=m
CONFIG_SND_SOC_I2C_AND_SPI=m
@@ -5661,6 +5731,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=m
#
# CODEC drivers
#
+CONFIG_SND_SOC_AC97_CODEC=m
CONFIG_SND_SOC_ADAU1701=m
CONFIG_SND_SOC_AK4104=m
CONFIG_SND_SOC_AK4554=m
@@ -5689,6 +5760,7 @@ CONFIG_SND_SOC_PCM512x=m
CONFIG_SND_SOC_PCM512x_I2C=m
CONFIG_SND_SOC_PCM512x_SPI=m
CONFIG_SND_SOC_RL6231=m
+CONFIG_SND_SOC_RL6347A=m
CONFIG_SND_SOC_RT286=m
CONFIG_SND_SOC_RT5631=m
CONFIG_SND_SOC_RT5640=m
@@ -5710,6 +5782,7 @@ CONFIG_SND_SOC_STA32X=m
CONFIG_SND_SOC_STA350=m
CONFIG_SND_SOC_TAS2552=m
CONFIG_SND_SOC_TAS5086=m
+CONFIG_SND_SOC_TAS571X=m
CONFIG_SND_SOC_TFA9879=m
CONFIG_SND_SOC_TLV320AIC23=m
CONFIG_SND_SOC_TLV320AIC23_I2C=m
@@ -5870,6 +5943,7 @@ CONFIG_USB_DYNAMIC_MINORS=y
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
# CONFIG_USB_OTG_FSM is not set
+CONFIG_USB_ULPI_BUS=m
CONFIG_USB_MON=m
CONFIG_USB_WUSB=m
CONFIG_USB_WUSB_CBAF=m
@@ -5960,6 +6034,7 @@ CONFIG_USB_MUSB_DUAL_ROLE=y
#
CONFIG_MUSB_PIO_ONLY=y
CONFIG_USB_DWC3=m
+CONFIG_USB_DWC3_ULPI=y
# CONFIG_USB_DWC3_HOST is not set
# CONFIG_USB_DWC3_GADGET is not set
CONFIG_USB_DWC3_DUAL_ROLE=y
@@ -5979,7 +6054,6 @@ CONFIG_USB_DWC2_HOST=y
#
# Gadget/Dual-role mode requires USB Gadget support to be enabled
#
-CONFIG_USB_DWC2_PLATFORM=y
CONFIG_USB_DWC2_PCI=y
# CONFIG_USB_DWC2_DEBUG is not set
# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
@@ -6243,6 +6317,7 @@ CONFIG_MMC_USDHI6ROL0=m
CONFIG_MMC_REALTEK_PCI=m
CONFIG_MMC_REALTEK_USB=m
CONFIG_MMC_TOSHIBA_PCI=m
+CONFIG_MMC_MTK=m
CONFIG_MEMSTICK=m
# CONFIG_MEMSTICK_DEBUG is not set
@@ -6278,11 +6353,10 @@ CONFIG_LEDS_PCA9532=m
CONFIG_LEDS_PCA9532_GPIO=y
CONFIG_LEDS_GPIO=m
CONFIG_LEDS_LP3944=m
-CONFIG_LEDS_LP55XX_COMMON=m
-CONFIG_LEDS_LP5521=m
-CONFIG_LEDS_LP5523=m
-CONFIG_LEDS_LP5562=m
-CONFIG_LEDS_LP8501=m
+# CONFIG_LEDS_LP5521 is not set
+# CONFIG_LEDS_LP5523 is not set
+# CONFIG_LEDS_LP5562 is not set
+# CONFIG_LEDS_LP8501 is not set
CONFIG_LEDS_LP8788=m
CONFIG_LEDS_LP8860=m
CONFIG_LEDS_CLEVO_MAIL=m
@@ -6302,6 +6376,7 @@ CONFIG_LEDS_ADP5520=m
CONFIG_LEDS_DELL_NETBOOKS=m
CONFIG_LEDS_MC13783=m
CONFIG_LEDS_TCA6507=m
+CONFIG_LEDS_TLC591XX=m
CONFIG_LEDS_MAX8997=m
CONFIG_LEDS_LM355x=m
CONFIG_LEDS_OT200=m
@@ -6357,6 +6432,8 @@ CONFIG_INFINIBAND_SRP=m
CONFIG_INFINIBAND_SRPT=m
CONFIG_INFINIBAND_ISER=m
CONFIG_INFINIBAND_ISERT=m
+CONFIG_EDAC_ATOMIC_SCRUB=y
+CONFIG_EDAC_SUPPORT=y
CONFIG_EDAC=y
# CONFIG_EDAC_LEGACY_SYSFS is not set
# CONFIG_EDAC_DEBUG is not set
@@ -6384,8 +6461,9 @@ CONFIG_EDAC_I7300=m
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_SYSTOHC=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+CONFIG_RTC_SYSTOHC=y
+CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
# CONFIG_RTC_DEBUG is not set
#
@@ -6498,7 +6576,7 @@ CONFIG_RTC_DRV_AB3100=m
#
CONFIG_RTC_DRV_PCAP=m
CONFIG_RTC_DRV_MC13XXX=m
-CONFIG_RTC_DRV_XGENE=m
+CONFIG_RTC_DRV_MT6397=m
#
# HID Sensor RTC drivers
@@ -6543,6 +6621,7 @@ CONFIG_UIO_AEC=m
CONFIG_UIO_SERCOS3=m
CONFIG_UIO_PCI_GENERIC=m
CONFIG_UIO_NETX=m
+CONFIG_UIO_PRUSS=m
CONFIG_UIO_MF624=m
CONFIG_VFIO_IOMMU_TYPE1=m
CONFIG_VFIO_VIRQFD=m
@@ -6728,6 +6807,7 @@ CONFIG_COMEDI_USBDUXSIGMA=m
CONFIG_COMEDI_VMK80XX=m
CONFIG_COMEDI_8254=m
CONFIG_COMEDI_8255=m
+CONFIG_COMEDI_8255_SA=m
CONFIG_COMEDI_KCOMEDILIB=m
CONFIG_COMEDI_AMPLC_DIO200=m
CONFIG_COMEDI_AMPLC_PC236=m
@@ -6883,9 +6963,6 @@ CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
CONFIG_STAGING_MEDIA=y
CONFIG_I2C_BCM2048=m
CONFIG_DVB_CXD2099=m
-CONFIG_VIDEO_DT3155=m
-# CONFIG_DT3155_CCIR is not set
-CONFIG_DT3155_STREAMING=y
CONFIG_DVB_MN88472=m
CONFIG_DVB_MN88473=m
CONFIG_LIRC_STAGING=y
@@ -6932,6 +7009,7 @@ CONFIG_FB_TFT_BD663474=m
CONFIG_FB_TFT_HX8340BN=m
CONFIG_FB_TFT_HX8347D=m
CONFIG_FB_TFT_HX8353D=m
+CONFIG_FB_TFT_HX8357D=m
CONFIG_FB_TFT_ILI9163=m
CONFIG_FB_TFT_ILI9320=m
CONFIG_FB_TFT_ILI9325=m
@@ -6955,16 +7033,6 @@ 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
@@ -6974,6 +7042,7 @@ CONFIG_DELL_LAPTOP=m
CONFIG_DELL_WMI=m
CONFIG_DELL_WMI_AIO=m
CONFIG_DELL_SMO8800=m
+CONFIG_DELL_RBTN=m
CONFIG_FUJITSU_LAPTOP=m
# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
CONFIG_FUJITSU_TABLET=m
@@ -7023,11 +7092,13 @@ CONFIG_APPLE_GMUX=m
CONFIG_INTEL_RST=m
CONFIG_INTEL_SMARTCONNECT=m
CONFIG_PVPANIC=m
+CONFIG_INTEL_PMC_IPC=m
CONFIG_CHROME_PLATFORMS=y
CONFIG_CHROMEOS_LAPTOP=m
CONFIG_CHROMEOS_PSTORE=m
CONFIG_CROS_EC_CHARDEV=m
CONFIG_CROS_EC_LPC=m
+CONFIG_CROS_EC_PROTO=y
CONFIG_CLKDEV_LOOKUP=y
CONFIG_HAVE_CLK_PREPARE=y
CONFIG_COMMON_CLK=y
@@ -7089,6 +7160,7 @@ CONFIG_STE_MODEM_RPROC=m
#
# SOC (System On Chip) specific Drivers
#
+# CONFIG_SUNXI_SRAM is not set
CONFIG_SOC_TI=y
CONFIG_PM_DEVFREQ=y
@@ -7111,6 +7183,7 @@ CONFIG_EXTCON=y
#
CONFIG_EXTCON_ADC_JACK=m
CONFIG_EXTCON_ARIZONA=m
+CONFIG_EXTCON_AXP288=m
CONFIG_EXTCON_GPIO=m
CONFIG_EXTCON_MAX14577=m
CONFIG_EXTCON_MAX77693=m
@@ -7144,6 +7217,8 @@ CONFIG_KXCJK1013=m
CONFIG_MMA9551_CORE=m
CONFIG_MMA9551=m
CONFIG_MMA9553=m
+CONFIG_STK8312=m
+CONFIG_STK8BA50=m
#
# Analog to digital converters
@@ -7213,6 +7288,7 @@ CONFIG_AD5755=m
CONFIG_AD5764=m
CONFIG_AD5791=m
CONFIG_AD7303=m
+CONFIG_M62332=m
CONFIG_MAX517=m
CONFIG_MCP4725=m
CONFIG_MCP4922=m
@@ -7266,9 +7342,11 @@ CONFIG_IIO_ADIS_LIB_BUFFER=y
#
# Light sensors
#
+CONFIG_ACPI_ALS=m
CONFIG_ADJD_S311=m
CONFIG_AL3320A=m
CONFIG_APDS9300=m
+CONFIG_BH1750=m
CONFIG_CM32181=m
CONFIG_CM3232=m
CONFIG_CM3323=m
@@ -7280,6 +7358,7 @@ CONFIG_HID_SENSOR_PROX=m
CONFIG_JSA1212=m
CONFIG_SENSORS_LM3533=m
CONFIG_LTR501=m
+CONFIG_STK3310=m
CONFIG_TCS3414=m
CONFIG_TCS3472=m
CONFIG_SENSORS_TSL2563=m
@@ -7293,9 +7372,11 @@ CONFIG_AK8975=m
CONFIG_AK09911=m
CONFIG_MAG3110=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
+CONFIG_MMC35240=m
CONFIG_IIO_ST_MAGN_3AXIS=m
CONFIG_IIO_ST_MAGN_I2C_3AXIS=m
CONFIG_IIO_ST_MAGN_SPI_3AXIS=m
+CONFIG_BMC150_MAGN=m
#
# Inclinometer sensors
@@ -7340,6 +7421,9 @@ CONFIG_SX9500=m
CONFIG_MLX90614=m
CONFIG_TMP006=m
CONFIG_NTB=m
+CONFIG_NTB_PINGPONG=m
+CONFIG_NTB_TOOL=m
+CONFIG_NTB_TRANSPORT=m
CONFIG_VME_BUS=y
#
@@ -7380,11 +7464,14 @@ CONFIG_FMC_CHARDEV=m
# PHY Subsystem
#
CONFIG_GENERIC_PHY=y
+CONFIG_PHY_PXA_28NM_HSIC=m
+CONFIG_PHY_PXA_28NM_USB2=m
CONFIG_BCM_KONA_USB2_PHY=m
CONFIG_PHY_SAMSUNG_USB2=m
# CONFIG_PHY_EXYNOS4210_USB2 is not set
# CONFIG_PHY_EXYNOS4X12_USB2 is not set
# CONFIG_PHY_EXYNOS5250_USB2 is not set
+CONFIG_PHY_TUSB1210=m
CONFIG_POWERCAP=y
CONFIG_INTEL_RAPL=m
CONFIG_MCB=m
@@ -7396,6 +7483,11 @@ CONFIG_THUNDERBOLT=m
# Android
#
# CONFIG_ANDROID is not set
+CONFIG_LIBNVDIMM=y
+CONFIG_BLK_DEV_PMEM=m
+CONFIG_ND_BLK=m
+CONFIG_ND_BTT=m
+CONFIG_BTT=y
#
# Firmware Drivers
@@ -7416,6 +7508,7 @@ CONFIG_ISCSI_IBFT=m
# EFI (Extensible Firmware Interface) Support
#
CONFIG_EFI_VARS=y
+CONFIG_EFI_ESRT=y
CONFIG_EFI_VARS_PSTORE=m
# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
CONFIG_EFI_RUNTIME_MAP=y
@@ -7476,6 +7569,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_F2FS_FS_ENCRYPTION=y
# CONFIG_F2FS_IO_TRACE is not set
CONFIG_FS_DAX=y
CONFIG_FS_POSIX_ACL=y
@@ -7540,6 +7634,7 @@ CONFIG_PROC_KCORE=y
CONFIG_PROC_VMCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_PROC_CHILDREN=y
CONFIG_KERNFS=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
@@ -7662,8 +7757,7 @@ CONFIG_SUNRPC_BACKCHANNEL=y
CONFIG_SUNRPC_SWAP=y
CONFIG_RPCSEC_GSS_KRB5=m
CONFIG_SUNRPC_DEBUG=y
-CONFIG_SUNRPC_XPRT_RDMA_CLIENT=m
-CONFIG_SUNRPC_XPRT_RDMA_SERVER=m
+CONFIG_SUNRPC_XPRT_RDMA=m
CONFIG_CEPH_FS=m
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -7679,6 +7773,7 @@ CONFIG_CIFS_DEBUG=y
# CONFIG_CIFS_DEBUG2 is not set
CONFIG_CIFS_DFS_UPCALL=y
CONFIG_CIFS_SMB2=y
+CONFIG_CIFS_SMB311=y
CONFIG_CIFS_FSCACHE=y
CONFIG_NCP_FS=m
CONFIG_NCPFS_PACKET_SIGNING=y
@@ -7824,6 +7919,7 @@ CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
CONFIG_PANIC_ON_OOPS_VALUE=0
CONFIG_PANIC_TIMEOUT=0
CONFIG_SCHED_DEBUG=y
+CONFIG_SCHED_INFO=y
CONFIG_SCHEDSTATS=y
CONFIG_SCHED_STACK_END_CHECK=y
# CONFIG_DEBUG_TIMEKEEPING is not set
@@ -7861,6 +7957,7 @@ CONFIG_TORTURE_TEST=m
CONFIG_RCU_CPU_STALL_TIMEOUT=60
# CONFIG_RCU_CPU_STALL_INFO is not set
# CONFIG_RCU_TRACE is not set
+# CONFIG_RCU_EQS_DEBUG is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
CONFIG_NOTIFIER_ERROR_INJECTION=m
CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
@@ -7978,8 +8075,11 @@ CONFIG_DEFAULT_IO_DELAY_TYPE=1
# CONFIG_DEBUG_BOOT_PARAMS is not set
# CONFIG_CPA_DEBUG is not set
CONFIG_OPTIMIZE_INLINING=y
+# CONFIG_DEBUG_ENTRY is not set
# CONFIG_DEBUG_NMI_SELFTEST is not set
# CONFIG_X86_DEBUG_STATIC_CPU_HAS is not set
+CONFIG_X86_DEBUG_FPU=y
+CONFIG_PUNIT_ATOM_DEBUG=m
#
# Security options
@@ -8069,8 +8169,12 @@ CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG=y
CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_RNG_DEFAULT=m
CONFIG_CRYPTO_PCOMP=m
CONFIG_CRYPTO_PCOMP2=y
+CONFIG_CRYPTO_AKCIPHER2=y
+CONFIG_CRYPTO_AKCIPHER=m
+CONFIG_CRYPTO_RSA=m
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
CONFIG_CRYPTO_USER=m
@@ -8091,7 +8195,9 @@ CONFIG_CRYPTO_GLUE_HELPER_X86=m
#
CONFIG_CRYPTO_CCM=m
CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_CHACHA20POLY1305=m
CONFIG_CRYPTO_SEQIV=m
+CONFIG_CRYPTO_ECHAINIV=m
#
# Block modes
@@ -8121,6 +8227,7 @@ CONFIG_CRYPTO_CRC32=m
CONFIG_CRYPTO_CRC32_PCLMUL=m
CONFIG_CRYPTO_CRCT10DIF=y
CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_POLY1305=m
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
@@ -8153,6 +8260,7 @@ CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_SALSA20=m
CONFIG_CRYPTO_SALSA20_586=m
+CONFIG_CRYPTO_CHACHA20=m
CONFIG_CRYPTO_SEED=m
CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_SERPENT_SSE2_586=m
@@ -8167,6 +8275,7 @@ CONFIG_CRYPTO_TWOFISH_586=m
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_ZLIB=m
CONFIG_CRYPTO_LZO=y
+CONFIG_CRYPTO_842=m
CONFIG_CRYPTO_LZ4=m
CONFIG_CRYPTO_LZ4HC=m
@@ -8179,10 +8288,12 @@ CONFIG_CRYPTO_DRBG_HMAC=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_DRBG=m
+CONFIG_CRYPTO_JITTERENTROPY=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_USER_API_AEAD=m
CONFIG_CRYPTO_HASH_INFO=y
CONFIG_CRYPTO_HW=y
CONFIG_CRYPTO_DEV_PADLOCK=y
@@ -8253,6 +8364,8 @@ CONFIG_CRC8=m
CONFIG_AUDIT_GENERIC=y
# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_842_COMPRESS=m
+CONFIG_842_DECOMPRESS=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_LZO_COMPRESS=y
@@ -8312,3 +8425,4 @@ CONFIG_FONT_SUPPORT=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_ARCH_HAS_SG_CHAIN=y
+CONFIG_ARCH_HAS_PMEM_API=y
diff --git a/gnu/packages/linux-libre-x86_64.conf b/gnu/packages/linux-libre-x86_64.conf
index 82c5824923..e22b651f37 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 4.1.0-gnu Kernel Configuration
+# Linux/x86 4.2.0-gnu Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
@@ -37,7 +37,6 @@ CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_HAVE_INTEL_TXT=y
CONFIG_X86_64_SMP=y
-CONFIG_X86_HT=y
CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11"
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_FIX_EARLYCON_MEM=y
@@ -86,11 +85,12 @@ CONFIG_AUDIT_TREE=y
#
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_IRQ_LEGACY_ALLOC_HWIRQ=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_GENERIC_IRQ_CHIP=y
CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_DOMAIN_HIERARCHY=y
CONFIG_GENERIC_MSI_IRQ=y
+CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
# CONFIG_IRQ_DOMAIN_DEBUG is not set
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
@@ -131,18 +131,11 @@ CONFIG_TASK_IO_ACCOUNTING=y
# RCU Subsystem
#
CONFIG_TREE_RCU=y
+# CONFIG_RCU_EXPERT is not set
CONFIG_SRCU=y
# CONFIG_TASKS_RCU is not set
CONFIG_RCU_STALL_COMMON=y
-CONFIG_CONTEXT_TRACKING=y
-CONFIG_RCU_USER_QS=y
-# CONFIG_CONTEXT_TRACKING_FORCE is not set
-CONFIG_RCU_FANOUT=64
-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
@@ -177,6 +170,7 @@ CONFIG_CFS_BANDWIDTH=y
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_BLK_CGROUP=y
# CONFIG_DEBUG_BLK_CGROUP is not set
+CONFIG_CGROUP_WRITEBACK=y
CONFIG_CHECKPOINT_RESTORE=y
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
@@ -266,6 +260,7 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_ATTRS=y
CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_CLK=y
CONFIG_HAVE_DMA_API_DEBUG=y
@@ -298,6 +293,7 @@ CONFIG_HAVE_ARCH_SOFT_DIRTY=y
CONFIG_MODULES_USE_ELF_RELA=y
CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_HAVE_COPY_THREAD_TLS=y
CONFIG_OLD_SIGSUSPEND3=y
CONFIG_COMPAT_OLD_SIGACTION=y
@@ -318,6 +314,7 @@ CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set
+CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
CONFIG_BLK_DEV_BSG=y
@@ -330,13 +327,7 @@ CONFIG_BLK_CMDLINE_PARSER=y
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
-CONFIG_ACORN_PARTITION=y
-CONFIG_ACORN_PARTITION_CUMANA=y
-CONFIG_ACORN_PARTITION_EESOX=y
-CONFIG_ACORN_PARTITION_ICS=y
-CONFIG_ACORN_PARTITION_ADFS=y
-CONFIG_ACORN_PARTITION_POWERTEC=y
-CONFIG_ACORN_PARTITION_RISCIX=y
+# CONFIG_ACORN_PARTITION is not set
CONFIG_AIX_PARTITION=y
CONFIG_OSF_PARTITION=y
CONFIG_AMIGA_PARTITION=y
@@ -372,7 +363,6 @@ CONFIG_DEFAULT_IOSCHED="deadline"
CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_PADATA=y
CONFIG_ASN1=y
-CONFIG_UNINLINE_SPIN_UNLOCK=y
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
CONFIG_INLINE_READ_UNLOCK=y
CONFIG_INLINE_READ_UNLOCK_IRQ=y
@@ -382,8 +372,10 @@ 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_ARCH_USE_QUEUED_SPINLOCKS=y
+CONFIG_QUEUED_SPINLOCKS=y
+CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
+CONFIG_QUEUED_RWLOCKS=y
CONFIG_FREEZER=y
#
@@ -542,7 +534,9 @@ CONFIG_ZSMALLOC=y
CONFIG_PGTABLE_MAPPING=y
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_GENERIC_EARLY_IOREMAP=y
-# CONFIG_X86_PMEM_LEGACY is not set
+CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y
+# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
+CONFIG_X86_PMEM_LEGACY=y
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
CONFIG_X86_RESERVE_LOW=64
@@ -618,6 +612,7 @@ CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
CONFIG_ACPI_SLEEP=y
# CONFIG_ACPI_PROCFS_POWER is not set
+CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
CONFIG_ACPI_EC_DEBUGFS=m
CONFIG_ACPI_AC=y
CONFIG_ACPI_BATTERY=y
@@ -645,6 +640,8 @@ CONFIG_ACPI_HED=y
# CONFIG_ACPI_CUSTOM_METHOD is not set
CONFIG_ACPI_BGRT=y
# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set
+CONFIG_ACPI_NFIT=m
+# CONFIG_ACPI_NFIT_DEBUG is not set
CONFIG_HAVE_ACPI_APEI=y
CONFIG_HAVE_ACPI_APEI_NMI=y
CONFIG_ACPI_APEI=y
@@ -727,7 +724,9 @@ CONFIG_PCIEASPM_DEFAULT=y
# CONFIG_PCIEASPM_POWERSAVE is not set
# CONFIG_PCIEASPM_PERFORMANCE is not set
CONFIG_PCIE_PME=y
+CONFIG_PCI_BUS_ADDR_T_64BIT=y
CONFIG_PCI_MSI=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
# CONFIG_PCI_DEBUG is not set
CONFIG_PCI_REALLOC_ENABLE_AUTO=y
CONFIG_PCI_STUB=m
@@ -806,6 +805,7 @@ CONFIG_X86_DEV_DMA_OPS=y
CONFIG_PMC_ATOM=y
CONFIG_NET=y
CONFIG_COMPAT_NETLINK_MESSAGES=y
+CONFIG_NET_INGRESS=y
#
# Networking options
@@ -849,7 +849,7 @@ CONFIG_NET_IPVTI=m
CONFIG_NET_UDP_TUNNEL=m
CONFIG_NET_FOU=m
CONFIG_NET_FOU_IP_TUNNELS=y
-CONFIG_GENEVE=m
+CONFIG_GENEVE_CORE=m
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
@@ -876,6 +876,7 @@ CONFIG_TCP_CONG_VENO=m
CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_CONG_ILLINOIS=m
CONFIG_TCP_CONG_DCTCP=m
+CONFIG_TCP_CONG_CDG=m
CONFIG_DEFAULT_CUBIC=y
# CONFIG_DEFAULT_RENO is not set
CONFIG_DEFAULT_TCP_CONG="cubic"
@@ -917,6 +918,7 @@ CONFIG_BRIDGE_NETFILTER=m
#
# Core Netfilter Configuration
#
+CONFIG_NETFILTER_INGRESS=y
CONFIG_NETFILTER_NETLINK=m
CONFIG_NETFILTER_NETLINK_ACCT=m
CONFIG_NETFILTER_NETLINK_QUEUE=m
@@ -964,6 +966,7 @@ CONFIG_NF_NAT_REDIRECT=m
CONFIG_NETFILTER_SYNPROXY=m
CONFIG_NF_TABLES=m
CONFIG_NF_TABLES_INET=m
+CONFIG_NF_TABLES_NETDEV=m
CONFIG_NFT_EXTHDR=m
CONFIG_NFT_META=m
CONFIG_NFT_CT=m
@@ -1358,6 +1361,7 @@ CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_FLOW=m
CONFIG_NET_CLS_CGROUP=m
CONFIG_NET_CLS_BPF=m
+CONFIG_NET_CLS_FLOWER=m
CONFIG_NET_EMATCH=y
CONFIG_NET_EMATCH_STACK=32
CONFIG_NET_EMATCH_CMP=m
@@ -1564,8 +1568,10 @@ CONFIG_BT_DEBUGFS=y
#
CONFIG_BT_INTEL=m
CONFIG_BT_BCM=m
+CONFIG_BT_RTL=m
CONFIG_BT_HCIBTUSB=m
CONFIG_BT_HCIBTUSB_BCM=y
+CONFIG_BT_HCIBTUSB_RTL=y
CONFIG_BT_HCIBTSDIO=m
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_H4=y
@@ -1624,6 +1630,7 @@ CONFIG_MAC80211_LEDS=y
CONFIG_MAC80211_DEBUGFS=y
CONFIG_MAC80211_MESSAGE_TRACING=y
# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
CONFIG_WIMAX=m
CONFIG_WIMAX_DEBUG_LEVEL=8
CONFIG_RFKILL=y
@@ -1646,6 +1653,7 @@ CONFIG_NFC=m
CONFIG_NFC_DIGITAL=m
CONFIG_NFC_NCI=m
CONFIG_NFC_NCI_SPI=y
+CONFIG_NFC_NCI_UART=m
CONFIG_NFC_HCI=m
CONFIG_NFC_SHDLC=y
@@ -1666,10 +1674,11 @@ CONFIG_NFC_MICROREAD_I2C=m
CONFIG_NFC_MICROREAD_MEI=m
CONFIG_NFC_MRVL=m
CONFIG_NFC_MRVL_USB=m
+CONFIG_NFC_MRVL_UART=m
CONFIG_NFC_ST21NFCA=m
CONFIG_NFC_ST21NFCA_I2C=m
-CONFIG_NFC_ST21NFCB=m
-CONFIG_NFC_ST21NFCB_I2C=m
+CONFIG_NFC_ST_NCI=m
+CONFIG_NFC_ST_NCI_I2C=m
CONFIG_NFC_NXP_NCI=m
CONFIG_NFC_NXP_NCI_I2C=m
CONFIG_HAVE_BPF_JIT=y
@@ -1854,6 +1863,7 @@ CONFIG_MTD_UBI_BEB_LIMIT=20
CONFIG_MTD_UBI_FASTMAP=y
CONFIG_MTD_UBI_GLUEBI=m
CONFIG_MTD_UBI_BLOCK=y
+# CONFIG_OF is not set
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
@@ -1907,7 +1917,6 @@ CONFIG_PARIDE_ON26=m
CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
CONFIG_ZRAM=m
CONFIG_ZRAM_LZ4_COMPRESS=y
-# CONFIG_ZRAM_DEBUG is not set
CONFIG_BLK_CPQ_CISS_DA=m
CONFIG_CISS_SCSI_TAPE=y
CONFIG_BLK_DEV_DAC960=m
@@ -1927,7 +1936,6 @@ CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=65536
CONFIG_BLK_DEV_RAM_DAX=y
-CONFIG_BLK_DEV_PMEM=m
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
@@ -2009,6 +2017,11 @@ CONFIG_VMWARE_VMCI=m
CONFIG_INTEL_MIC_BUS=m
#
+# SCIF Bus Driver
+#
+CONFIG_SCIF_BUS=m
+
+#
# Intel MIC Host Driver
#
CONFIG_INTEL_MIC_HOST=m
@@ -2017,10 +2030,16 @@ CONFIG_INTEL_MIC_HOST=m
# Intel MIC Card Driver
#
CONFIG_INTEL_MIC_CARD=m
+
+#
+# SCIF Driver
+#
+CONFIG_SCIF=m
CONFIG_GENWQE=m
CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=0
CONFIG_ECHO=m
# CONFIG_CXL_BASE is not set
+# CONFIG_CXL_KERNEL_API is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set
@@ -2121,6 +2140,8 @@ CONFIG_LIBFC=m
CONFIG_LIBFCOE=m
CONFIG_FCOE=m
CONFIG_FCOE_FNIC=m
+CONFIG_SCSI_SNIC=m
+# CONFIG_SCSI_SNIC_DEBUG_FS is not set
CONFIG_SCSI_DMX3191D=m
CONFIG_SCSI_EATA=m
CONFIG_SCSI_EATA_TAGGED_QUEUE=y
@@ -2294,6 +2315,7 @@ CONFIG_DM_SNAPSHOT=m
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_CACHE=m
CONFIG_DM_CACHE_MQ=m
+CONFIG_DM_CACHE_SMQ=m
CONFIG_DM_CACHE_CLEANER=m
CONFIG_DM_ERA=m
CONFIG_DM_MIRROR=m
@@ -2355,6 +2377,7 @@ CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
CONFIG_IPVLAN=m
CONFIG_VXLAN=m
+CONFIG_GENEVE=m
CONFIG_NETCONSOLE=m
CONFIG_NETCONSOLE_DYNAMIC=y
CONFIG_NETPOLL=y
@@ -2364,6 +2387,7 @@ CONFIG_RIONET=m
CONFIG_RIONET_TX_SIZE=128
CONFIG_RIONET_RX_SIZE=128
CONFIG_TUN=y
+# CONFIG_TUN_VNET_CROSS_LE is not set
CONFIG_VETH=m
CONFIG_VIRTIO_NET=y
CONFIG_NLMON=m
@@ -2422,6 +2446,7 @@ CONFIG_VHOST_NET=m
CONFIG_VHOST_SCSI=m
CONFIG_VHOST_RING=m
CONFIG_VHOST=m
+# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
#
# Distributed Switch Architecture drivers
@@ -2469,6 +2494,11 @@ CONFIG_BNX2X=m
CONFIG_BNX2X_SRIOV=y
CONFIG_NET_VENDOR_BROCADE=y
CONFIG_BNA=m
+CONFIG_NET_VENDOR_CAVIUM=m
+CONFIG_THUNDER_NIC_PF=m
+CONFIG_THUNDER_NIC_VF=m
+CONFIG_THUNDER_NIC_BGX=m
+CONFIG_LIQUIDIO=m
CONFIG_NET_VENDOR_CHELSIO=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T1_1G=y
@@ -2500,7 +2530,9 @@ CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_NET_VENDOR_EMULEX=y
CONFIG_BE2NET=m
+CONFIG_BE2NET_HWMON=y
CONFIG_BE2NET_VXLAN=y
+CONFIG_NET_VENDOR_EZCHIP=y
CONFIG_NET_VENDOR_EXAR=y
CONFIG_S2IO=m
CONFIG_VXGE=m
@@ -2548,6 +2580,7 @@ CONFIG_MLX4_EN_VXLAN=y
CONFIG_MLX4_CORE=m
CONFIG_MLX4_DEBUG=y
CONFIG_MLX5_CORE=m
+CONFIG_MLX5_CORE_EN=y
CONFIG_NET_VENDOR_MICREL=y
CONFIG_KS8842=m
CONFIG_KS8851=m
@@ -2593,6 +2626,7 @@ CONFIG_8139TOO_PIO=y
CONFIG_8139TOO_8129=y
# CONFIG_8139_OLD_RX_RESET is not set
CONFIG_R8169=m
+CONFIG_NET_VENDOR_RENESAS=y
CONFIG_NET_VENDOR_RDC=y
CONFIG_R6040=m
CONFIG_NET_VENDOR_ROCKER=y
@@ -2608,6 +2642,7 @@ CONFIG_SFC=m
CONFIG_SFC_MTD=y
CONFIG_SFC_MCDI_MON=y
CONFIG_SFC_SRIOV=y
+CONFIG_SFC_MCDI_LOGGING=y
CONFIG_NET_VENDOR_SMSC=y
CONFIG_PCMCIA_SMC91C92=m
CONFIG_EPIC100=m
@@ -2617,6 +2652,7 @@ CONFIG_SMSC9420=m
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_STMMAC_ETH=m
CONFIG_STMMAC_PLATFORM=m
+CONFIG_DWMAC_GENERIC=m
# CONFIG_STMMAC_PCI is not set
CONFIG_NET_VENDOR_SUN=y
CONFIG_HAPPYMEAL=m
@@ -2669,6 +2705,7 @@ CONFIG_NATIONAL_PHY=m
CONFIG_STE10XP=m
CONFIG_LSI_ET1011C_PHY=m
CONFIG_MICREL_PHY=m
+CONFIG_DP83867_PHY=m
CONFIG_FIXED_PHY=y
CONFIG_MDIO_BITBANG=m
CONFIG_MDIO_GPIO=m
@@ -2928,6 +2965,8 @@ CONFIG_RT2X00_LIB_CRYPTO=y
CONFIG_RT2X00_LIB_LEDS=y
# CONFIG_RT2X00_LIB_DEBUGFS is not set
# CONFIG_RT2X00_DEBUG is not set
+CONFIG_WL_MEDIATEK=y
+CONFIG_MT7601U=m
CONFIG_RTL_CARDS=m
CONFIG_RTL8192CE=m
CONFIG_RTL8192SE=m
@@ -3002,6 +3041,7 @@ CONFIG_IEEE802154_FAKELB=m
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_MRF24J40=m
CONFIG_IEEE802154_CC2520=m
+CONFIG_IEEE802154_ATUSB=m
CONFIG_XEN_NETDEV_FRONTEND=y
CONFIG_XEN_NETDEV_BACKEND=m
CONFIG_VMXNET3=m
@@ -3142,6 +3182,7 @@ CONFIG_ISDN_HDLC=m
# Input device support
#
CONFIG_INPUT=y
+CONFIG_INPUT_LEDS=m
CONFIG_INPUT_FF_MEMLESS=m
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_SPARSEKMAP=m
@@ -3292,6 +3333,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m
CONFIG_TOUCHSCREEN_UCB1400=m
CONFIG_TOUCHSCREEN_PIXCIR=m
+CONFIG_TOUCHSCREEN_WDT87XX_I2C=m
CONFIG_TOUCHSCREEN_WM831X=m
CONFIG_TOUCHSCREEN_WM97XX=m
CONFIG_TOUCHSCREEN_WM9705=y
@@ -3371,6 +3413,7 @@ CONFIG_INPUT_PWM_BEEPER=m
CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
CONFIG_INPUT_DA9052_ONKEY=m
CONFIG_INPUT_DA9055_ONKEY=m
+CONFIG_INPUT_DA9063_ONKEY=m
CONFIG_INPUT_WM831X_ON=m
CONFIG_INPUT_PCAP=m
CONFIG_INPUT_ADXL34X=m
@@ -3383,6 +3426,7 @@ CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
CONFIG_INPUT_SOC_BUTTON_ARRAY=m
CONFIG_INPUT_DRV260X_HAPTICS=m
+CONFIG_INPUT_DRV2665_HAPTICS=m
CONFIG_INPUT_DRV2667_HAPTICS=m
#
@@ -3472,7 +3516,10 @@ CONFIG_CONSOLE_POLL=y
CONFIG_SERIAL_JSM=m
CONFIG_SERIAL_SCCNXP=y
CONFIG_SERIAL_SCCNXP_CONSOLE=y
+CONFIG_SERIAL_SC16IS7XX_CORE=m
CONFIG_SERIAL_SC16IS7XX=m
+CONFIG_SERIAL_SC16IS7XX_I2C=y
+CONFIG_SERIAL_SC16IS7XX_SPI=y
CONFIG_SERIAL_ALTERA_JTAGUART=m
CONFIG_SERIAL_ALTERA_UART=m
CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
@@ -3653,6 +3700,7 @@ CONFIG_SPI_PXA2XX_PCI=m
CONFIG_SPI_SC18IS602=m
CONFIG_SPI_XCOMM=m
# CONFIG_SPI_XILINX is not set
+CONFIG_SPI_ZYNQMP_GQSPI=m
CONFIG_SPI_DESIGNWARE=m
CONFIG_SPI_DW_PCI=m
CONFIG_SPI_DW_MID_DMA=y
@@ -3843,6 +3891,7 @@ CONFIG_BATTERY_BQ27X00_PLATFORM=y
CONFIG_BATTERY_DA9030=m
CONFIG_BATTERY_DA9052=m
CONFIG_CHARGER_DA9150=m
+CONFIG_AXP288_CHARGER=m
CONFIG_AXP288_FUEL_GAUGE=m
CONFIG_BATTERY_MAX17040=m
CONFIG_BATTERY_MAX17042=m
@@ -3863,11 +3912,14 @@ CONFIG_CHARGER_MAX8997=m
CONFIG_CHARGER_MAX8998=m
CONFIG_CHARGER_BQ2415X=m
CONFIG_CHARGER_BQ24190=m
+CONFIG_CHARGER_BQ24257=m
CONFIG_CHARGER_BQ24735=m
+CONFIG_CHARGER_BQ25890=m
CONFIG_CHARGER_SMB347=m
CONFIG_CHARGER_TPS65090=m
CONFIG_BATTERY_GAUGE_LTC2941=m
CONFIG_BATTERY_RT5033=m
+CONFIG_CHARGER_RT9455=m
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_RESTART=y
CONFIG_POWER_AVS=y
@@ -3905,6 +3957,7 @@ CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_DS620=m
CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_DELL_SMM=m
CONFIG_SENSORS_DA9052_ADC=m
CONFIG_SENSORS_DA9055=m
CONFIG_SENSORS_I5K_AMB=m
@@ -4007,6 +4060,7 @@ CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
+CONFIG_SENSORS_TC74=m
CONFIG_SENSORS_THMC50=m
CONFIG_SENSORS_TMP102=m
CONFIG_SENSORS_TMP103=m
@@ -4037,16 +4091,20 @@ CONFIG_SENSORS_ACPI_POWER=m
CONFIG_SENSORS_ATK0110=m
CONFIG_THERMAL=y
CONFIG_THERMAL_HWMON=y
+CONFIG_THERMAL_WRITABLE_TRIPS=y
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set
CONFIG_THERMAL_GOV_FAIR_SHARE=y
CONFIG_THERMAL_GOV_STEP_WISE=y
CONFIG_THERMAL_GOV_BANG_BANG=y
CONFIG_THERMAL_GOV_USER_SPACE=y
+CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y
CONFIG_THERMAL_EMULATION=y
CONFIG_INTEL_POWERCLAMP=m
CONFIG_X86_PKG_TEMP_THERMAL=m
+CONFIG_INTEL_SOC_DTS_IOSF_CORE=m
CONFIG_INTEL_SOC_DTS_THERMAL=m
CONFIG_INT340X_THERMAL=m
CONFIG_ACPI_THERMAL_REL=m
@@ -4073,6 +4131,7 @@ CONFIG_CADENCE_WATCHDOG=m
CONFIG_DW_WATCHDOG=m
CONFIG_RN5T618_WATCHDOG=m
CONFIG_TWL4030_WATCHDOG=m
+CONFIG_MAX63XX_WATCHDOG=m
CONFIG_RETU_WATCHDOG=m
CONFIG_ACQUIRE_WDT=m
CONFIG_ADVANTECH_WDT=m
@@ -4166,6 +4225,7 @@ CONFIG_MFD_BCM590XX=m
CONFIG_MFD_AXP20X=y
CONFIG_MFD_CROS_EC=m
CONFIG_MFD_CROS_EC_I2C=m
+CONFIG_MFD_CROS_EC_SPI=m
CONFIG_PMIC_DA903X=y
CONFIG_PMIC_DA9052=y
CONFIG_MFD_DA9052_SPI=y
@@ -4309,6 +4369,7 @@ CONFIG_REGULATOR_PCAP=m
CONFIG_REGULATOR_PCF50633=m
CONFIG_REGULATOR_PFUZE100=m
CONFIG_REGULATOR_PWM=m
+CONFIG_REGULATOR_QCOM_SPMI=m
CONFIG_REGULATOR_RC5T583=m
CONFIG_REGULATOR_RN5T618=m
CONFIG_REGULATOR_RT5033=m
@@ -4352,6 +4413,7 @@ CONFIG_VIDEO_V4L2=m
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
CONFIG_VIDEO_TUNER=m
CONFIG_V4L2_MEM2MEM_DEV=m
+CONFIG_V4L2_FLASH_LED_CLASS=m
CONFIG_VIDEOBUF_GEN=m
CONFIG_VIDEOBUF_DMA_SG=m
CONFIG_VIDEOBUF_VMALLOC=m
@@ -4590,6 +4652,7 @@ CONFIG_VIDEO_HEXIUM_ORION=m
CONFIG_VIDEO_MXB=m
CONFIG_VIDEO_SOLO6X10=m
CONFIG_VIDEO_TW68=m
+CONFIG_VIDEO_DT3155=m
#
# Media capture/analog/hybrid TV support
@@ -4615,6 +4678,7 @@ CONFIG_VIDEO_SAA7134_RC=y
CONFIG_VIDEO_SAA7134_DVB=m
CONFIG_VIDEO_SAA7134_GO7007=m
CONFIG_VIDEO_SAA7164=m
+CONFIG_VIDEO_COBALT=m
#
# Media digital TV PCI Adapters
@@ -4735,6 +4799,8 @@ CONFIG_VIDEO_SAA6588=m
#
# Video decoders
#
+CONFIG_VIDEO_ADV7604=m
+CONFIG_VIDEO_ADV7842=m
CONFIG_VIDEO_BT819=m
CONFIG_VIDEO_BT856=m
CONFIG_VIDEO_BT866=m
@@ -4760,6 +4826,7 @@ CONFIG_VIDEO_SAA7127=m
CONFIG_VIDEO_SAA7185=m
CONFIG_VIDEO_ADV7170=m
CONFIG_VIDEO_ADV7175=m
+CONFIG_VIDEO_ADV7511=m
#
# Camera sensor devices
@@ -4886,6 +4953,7 @@ CONFIG_DVB_TDA826X=m
CONFIG_DVB_TUA6100=m
CONFIG_DVB_CX24116=m
CONFIG_DVB_CX24117=m
+CONFIG_DVB_CX24120=m
CONFIG_DVB_SI21XX=m
CONFIG_DVB_TS2020=m
CONFIG_DVB_DS3000=m
@@ -5022,6 +5090,9 @@ CONFIG_DRM_R128=m
CONFIG_DRM_RADEON=m
# CONFIG_DRM_RADEON_USERPTR is not set
# CONFIG_DRM_RADEON_UMS is not set
+CONFIG_DRM_AMDGPU=m
+CONFIG_DRM_AMDGPU_CIK=y
+CONFIG_DRM_AMDGPU_USERPTR=y
CONFIG_DRM_NOUVEAU=m
CONFIG_NOUVEAU_DEBUG=5
CONFIG_NOUVEAU_DEBUG_DEFAULT=3
@@ -5030,7 +5101,7 @@ CONFIG_DRM_I810=m
CONFIG_DRM_I915=m
CONFIG_DRM_I915_KMS=y
CONFIG_DRM_I915_FBDEV=y
-CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT=y
+# CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT is not set
CONFIG_DRM_MGA=m
CONFIG_DRM_SIS=m
CONFIG_DRM_VIA=m
@@ -5047,6 +5118,7 @@ CONFIG_DRM_AST=m
CONFIG_DRM_CIRRUS_QEMU=m
CONFIG_DRM_QXL=m
# CONFIG_DRM_BOCHS is not set
+CONFIG_DRM_VIRTIO_GPU=m
CONFIG_DRM_PANEL=y
#
@@ -5249,11 +5321,11 @@ CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
CONFIG_SND_DYNAMIC_MINORS=y
CONFIG_SND_MAX_CARDS=32
CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_PROC_FS=y
CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
CONFIG_SND_VMASTER=y
-CONFIG_SND_KCTL_JACK=y
CONFIG_SND_DMA_SGBUF=y
CONFIG_SND_RAWMIDI_SEQ=m
CONFIG_SND_OPL3_LIB_SEQ=m
@@ -5355,20 +5427,16 @@ CONFIG_SND_YMFPCI=m
#
CONFIG_SND_HDA=m
CONFIG_SND_HDA_INTEL=m
-CONFIG_SND_HDA_DSP_LOADER=y
-CONFIG_SND_HDA_PREALLOC_SIZE=64
CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDA_INPUT_BEEP=y
CONFIG_SND_HDA_INPUT_BEEP_MODE=0
-CONFIG_SND_HDA_INPUT_JACK=y
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_CODEC_REALTEK=m
CONFIG_SND_HDA_CODEC_ANALOG=m
CONFIG_SND_HDA_CODEC_SIGMATEL=m
CONFIG_SND_HDA_CODEC_VIA=m
CONFIG_SND_HDA_CODEC_HDMI=m
-CONFIG_SND_HDA_I915=y
CONFIG_SND_HDA_CODEC_CIRRUS=m
CONFIG_SND_HDA_CODEC_CONEXANT=m
CONFIG_SND_HDA_CODEC_CA0110=m
@@ -5379,6 +5447,9 @@ CONFIG_SND_HDA_CODEC_SI3054=m
CONFIG_SND_HDA_GENERIC=m
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
CONFIG_SND_HDA_CORE=m
+CONFIG_SND_HDA_DSP_LOADER=y
+CONFIG_SND_HDA_I915=y
+CONFIG_SND_HDA_PREALLOC_SIZE=64
CONFIG_SND_SPI=y
CONFIG_SND_USB=y
CONFIG_SND_USB_AUDIO=m
@@ -5407,6 +5478,7 @@ CONFIG_SND_PCMCIA=y
CONFIG_SND_VXPOCKET=m
CONFIG_SND_PDAUDIOCF=m
CONFIG_SND_SOC=m
+CONFIG_SND_SOC_AC97_BUS=y
CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
CONFIG_SND_ATMEL_SOC=m
CONFIG_SND_DESIGNWARE_I2S=m
@@ -5438,6 +5510,7 @@ 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_INTEL_CHT_BSW_MAX98090_TI_MACH=m
CONFIG_SND_SOC_QCOM=m
CONFIG_SND_SOC_XTFPGA_I2S=m
CONFIG_SND_SOC_I2C_AND_SPI=m
@@ -5445,6 +5518,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=m
#
# CODEC drivers
#
+CONFIG_SND_SOC_AC97_CODEC=m
CONFIG_SND_SOC_ADAU1701=m
CONFIG_SND_SOC_AK4104=m
CONFIG_SND_SOC_AK4554=m
@@ -5473,6 +5547,7 @@ CONFIG_SND_SOC_PCM512x=m
CONFIG_SND_SOC_PCM512x_I2C=m
CONFIG_SND_SOC_PCM512x_SPI=m
CONFIG_SND_SOC_RL6231=m
+CONFIG_SND_SOC_RL6347A=m
CONFIG_SND_SOC_RT286=m
CONFIG_SND_SOC_RT5631=m
CONFIG_SND_SOC_RT5640=m
@@ -5493,6 +5568,7 @@ CONFIG_SND_SOC_STA32X=m
CONFIG_SND_SOC_STA350=m
CONFIG_SND_SOC_TAS2552=m
CONFIG_SND_SOC_TAS5086=m
+CONFIG_SND_SOC_TAS571X=m
CONFIG_SND_SOC_TFA9879=m
CONFIG_SND_SOC_TLV320AIC23=m
CONFIG_SND_SOC_TLV320AIC23_I2C=m
@@ -5653,6 +5729,7 @@ CONFIG_USB_DYNAMIC_MINORS=y
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
# CONFIG_USB_OTG_FSM is not set
+CONFIG_USB_ULPI_BUS=m
CONFIG_USB_MON=m
CONFIG_USB_WUSB=m
CONFIG_USB_WUSB_CBAF=m
@@ -5743,6 +5820,7 @@ CONFIG_USB_MUSB_DUAL_ROLE=y
#
CONFIG_MUSB_PIO_ONLY=y
CONFIG_USB_DWC3=m
+CONFIG_USB_DWC3_ULPI=y
# CONFIG_USB_DWC3_HOST is not set
# CONFIG_USB_DWC3_GADGET is not set
CONFIG_USB_DWC3_DUAL_ROLE=y
@@ -5762,7 +5840,6 @@ CONFIG_USB_DWC2_HOST=y
#
# Gadget/Dual-role mode requires USB Gadget support to be enabled
#
-CONFIG_USB_DWC2_PLATFORM=y
CONFIG_USB_DWC2_PCI=y
# CONFIG_USB_DWC2_DEBUG is not set
# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
@@ -6027,6 +6104,7 @@ CONFIG_MMC_USDHI6ROL0=m
CONFIG_MMC_REALTEK_PCI=m
CONFIG_MMC_REALTEK_USB=m
CONFIG_MMC_TOSHIBA_PCI=m
+CONFIG_MMC_MTK=m
CONFIG_MEMSTICK=m
# CONFIG_MEMSTICK_DEBUG is not set
@@ -6060,11 +6138,10 @@ CONFIG_LEDS_PCA9532=m
CONFIG_LEDS_PCA9532_GPIO=y
CONFIG_LEDS_GPIO=m
CONFIG_LEDS_LP3944=m
-CONFIG_LEDS_LP55XX_COMMON=m
-CONFIG_LEDS_LP5521=m
-CONFIG_LEDS_LP5523=m
-CONFIG_LEDS_LP5562=m
-CONFIG_LEDS_LP8501=m
+# CONFIG_LEDS_LP5521 is not set
+# CONFIG_LEDS_LP5523 is not set
+# CONFIG_LEDS_LP5562 is not set
+# CONFIG_LEDS_LP8501 is not set
CONFIG_LEDS_LP8788=m
CONFIG_LEDS_LP8860=m
CONFIG_LEDS_CLEVO_MAIL=m
@@ -6084,6 +6161,7 @@ CONFIG_LEDS_ADP5520=m
CONFIG_LEDS_DELL_NETBOOKS=m
CONFIG_LEDS_MC13783=m
CONFIG_LEDS_TCA6507=m
+CONFIG_LEDS_TLC591XX=m
CONFIG_LEDS_MAX8997=m
CONFIG_LEDS_LM355x=m
CONFIG_LEDS_MENF21BMC=m
@@ -6141,6 +6219,8 @@ CONFIG_INFINIBAND_SRP=m
CONFIG_INFINIBAND_SRPT=m
CONFIG_INFINIBAND_ISER=m
CONFIG_INFINIBAND_ISERT=m
+CONFIG_EDAC_ATOMIC_SCRUB=y
+CONFIG_EDAC_SUPPORT=y
CONFIG_EDAC=y
# CONFIG_EDAC_LEGACY_SYSFS is not set
# CONFIG_EDAC_DEBUG is not set
@@ -6164,8 +6244,9 @@ CONFIG_EDAC_SBRIDGE=m
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_SYSTOHC=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+CONFIG_RTC_SYSTOHC=y
+CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
# CONFIG_RTC_DEBUG is not set
#
@@ -6277,7 +6358,7 @@ CONFIG_RTC_DRV_AB3100=m
#
CONFIG_RTC_DRV_PCAP=m
CONFIG_RTC_DRV_MC13XXX=m
-CONFIG_RTC_DRV_XGENE=y
+CONFIG_RTC_DRV_MT6397=m
#
# HID Sensor RTC drivers
@@ -6321,6 +6402,7 @@ CONFIG_UIO_AEC=m
CONFIG_UIO_SERCOS3=m
CONFIG_UIO_PCI_GENERIC=m
CONFIG_UIO_NETX=m
+CONFIG_UIO_PRUSS=m
CONFIG_UIO_MF624=m
CONFIG_VFIO_IOMMU_TYPE1=m
CONFIG_VFIO_VIRQFD=m
@@ -6507,6 +6589,7 @@ CONFIG_COMEDI_USBDUXSIGMA=m
CONFIG_COMEDI_VMK80XX=m
CONFIG_COMEDI_8254=m
CONFIG_COMEDI_8255=m
+CONFIG_COMEDI_8255_SA=m
CONFIG_COMEDI_KCOMEDILIB=m
CONFIG_COMEDI_AMPLC_DIO200=m
CONFIG_COMEDI_AMPLC_PC236=m
@@ -6658,9 +6741,6 @@ CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
CONFIG_STAGING_MEDIA=y
CONFIG_I2C_BCM2048=m
CONFIG_DVB_CXD2099=m
-CONFIG_VIDEO_DT3155=m
-# CONFIG_DT3155_CCIR is not set
-CONFIG_DT3155_STREAMING=y
CONFIG_DVB_MN88472=m
CONFIG_DVB_MN88473=m
CONFIG_LIRC_STAGING=y
@@ -6703,18 +6783,15 @@ CONFIG_DGAP=m
CONFIG_GS_FPGABOOT=m
CONFIG_CRYPTO_SKEIN=y
CONFIG_UNISYSSPAR=y
-CONFIG_UNISYS_VISORUTIL=m
-CONFIG_UNISYS_VISORCHANNEL=m
-CONFIG_UNISYS_VISORCHIPSET=m
-CONFIG_UNISYS_UISLIB=m
-CONFIG_UNISYS_VIRTPCI=m
-CONFIG_UNISYS_VIRTHBA=m
+CONFIG_UNISYS_VISORBUS=m
+CONFIG_UNISYS_VISORNIC=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_HX8357D=m
CONFIG_FB_TFT_ILI9163=m
CONFIG_FB_TFT_ILI9320=m
CONFIG_FB_TFT_ILI9325=m
@@ -6738,16 +6815,6 @@ 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
@@ -6757,6 +6824,7 @@ CONFIG_DELL_LAPTOP=m
CONFIG_DELL_WMI=m
CONFIG_DELL_WMI_AIO=m
CONFIG_DELL_SMO8800=m
+CONFIG_DELL_RBTN=m
CONFIG_FUJITSU_LAPTOP=m
# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
CONFIG_FUJITSU_TABLET=m
@@ -6800,11 +6868,13 @@ CONFIG_APPLE_GMUX=m
CONFIG_INTEL_RST=m
CONFIG_INTEL_SMARTCONNECT=m
CONFIG_PVPANIC=m
+CONFIG_INTEL_PMC_IPC=m
CONFIG_CHROME_PLATFORMS=y
CONFIG_CHROMEOS_LAPTOP=m
CONFIG_CHROMEOS_PSTORE=m
CONFIG_CROS_EC_CHARDEV=m
CONFIG_CROS_EC_LPC=m
+CONFIG_CROS_EC_PROTO=y
CONFIG_CLKDEV_LOOKUP=y
CONFIG_HAVE_CLK_PREPARE=y
CONFIG_COMMON_CLK=y
@@ -6868,6 +6938,7 @@ CONFIG_STE_MODEM_RPROC=m
#
# SOC (System On Chip) specific Drivers
#
+# CONFIG_SUNXI_SRAM is not set
CONFIG_SOC_TI=y
CONFIG_PM_DEVFREQ=y
@@ -6890,6 +6961,7 @@ CONFIG_EXTCON=y
#
CONFIG_EXTCON_ADC_JACK=m
CONFIG_EXTCON_ARIZONA=m
+CONFIG_EXTCON_AXP288=m
CONFIG_EXTCON_GPIO=m
CONFIG_EXTCON_MAX14577=m
CONFIG_EXTCON_MAX77693=m
@@ -6923,6 +6995,8 @@ CONFIG_KXCJK1013=m
CONFIG_MMA9551_CORE=m
CONFIG_MMA9551=m
CONFIG_MMA9553=m
+CONFIG_STK8312=m
+CONFIG_STK8BA50=m
#
# Analog to digital converters
@@ -6992,6 +7066,7 @@ CONFIG_AD5755=m
CONFIG_AD5764=m
CONFIG_AD5791=m
CONFIG_AD7303=m
+CONFIG_M62332=m
CONFIG_MAX517=m
CONFIG_MCP4725=m
CONFIG_MCP4922=m
@@ -7045,9 +7120,11 @@ CONFIG_IIO_ADIS_LIB_BUFFER=y
#
# Light sensors
#
+CONFIG_ACPI_ALS=m
CONFIG_ADJD_S311=m
CONFIG_AL3320A=m
CONFIG_APDS9300=m
+CONFIG_BH1750=m
CONFIG_CM32181=m
CONFIG_CM3232=m
CONFIG_CM3323=m
@@ -7059,6 +7136,7 @@ CONFIG_HID_SENSOR_PROX=m
CONFIG_JSA1212=m
CONFIG_SENSORS_LM3533=m
CONFIG_LTR501=m
+CONFIG_STK3310=m
CONFIG_TCS3414=m
CONFIG_TCS3472=m
CONFIG_SENSORS_TSL2563=m
@@ -7072,9 +7150,11 @@ CONFIG_AK8975=m
CONFIG_AK09911=m
CONFIG_MAG3110=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
+CONFIG_MMC35240=m
CONFIG_IIO_ST_MAGN_3AXIS=m
CONFIG_IIO_ST_MAGN_I2C_3AXIS=m
CONFIG_IIO_ST_MAGN_SPI_3AXIS=m
+CONFIG_BMC150_MAGN=m
#
# Inclinometer sensors
@@ -7119,6 +7199,10 @@ CONFIG_SX9500=m
CONFIG_MLX90614=m
CONFIG_TMP006=m
CONFIG_NTB=m
+CONFIG_NTB_INTEL=m
+CONFIG_NTB_PINGPONG=m
+CONFIG_NTB_TOOL=m
+CONFIG_NTB_TRANSPORT=m
CONFIG_VME_BUS=y
#
@@ -7159,11 +7243,14 @@ CONFIG_FMC_CHARDEV=m
# PHY Subsystem
#
CONFIG_GENERIC_PHY=y
+CONFIG_PHY_PXA_28NM_HSIC=m
+CONFIG_PHY_PXA_28NM_USB2=m
CONFIG_BCM_KONA_USB2_PHY=m
CONFIG_PHY_SAMSUNG_USB2=m
# CONFIG_PHY_EXYNOS4210_USB2 is not set
# CONFIG_PHY_EXYNOS4X12_USB2 is not set
# CONFIG_PHY_EXYNOS5250_USB2 is not set
+CONFIG_PHY_TUSB1210=m
CONFIG_POWERCAP=y
CONFIG_INTEL_RAPL=m
CONFIG_MCB=m
@@ -7175,6 +7262,11 @@ CONFIG_THUNDERBOLT=m
# Android
#
# CONFIG_ANDROID is not set
+CONFIG_LIBNVDIMM=y
+CONFIG_BLK_DEV_PMEM=m
+CONFIG_ND_BLK=m
+CONFIG_ND_BTT=m
+CONFIG_BTT=y
#
# Firmware Drivers
@@ -7195,6 +7287,7 @@ CONFIG_ISCSI_IBFT=m
# EFI (Extensible Firmware Interface) Support
#
CONFIG_EFI_VARS=y
+CONFIG_EFI_ESRT=y
CONFIG_EFI_VARS_PSTORE=m
# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
CONFIG_EFI_RUNTIME_MAP=y
@@ -7255,6 +7348,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_F2FS_FS_ENCRYPTION=y
# CONFIG_F2FS_IO_TRACE is not set
CONFIG_FS_DAX=y
CONFIG_FS_POSIX_ACL=y
@@ -7320,6 +7414,7 @@ CONFIG_PROC_KCORE=y
CONFIG_PROC_VMCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_PROC_CHILDREN=y
CONFIG_KERNFS=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
@@ -7442,8 +7537,7 @@ CONFIG_SUNRPC_BACKCHANNEL=y
CONFIG_SUNRPC_SWAP=y
CONFIG_RPCSEC_GSS_KRB5=m
CONFIG_SUNRPC_DEBUG=y
-CONFIG_SUNRPC_XPRT_RDMA_CLIENT=m
-CONFIG_SUNRPC_XPRT_RDMA_SERVER=m
+CONFIG_SUNRPC_XPRT_RDMA=m
CONFIG_CEPH_FS=m
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -7459,6 +7553,7 @@ CONFIG_CIFS_DEBUG=y
# CONFIG_CIFS_DEBUG2 is not set
CONFIG_CIFS_DFS_UPCALL=y
CONFIG_CIFS_SMB2=y
+CONFIG_CIFS_SMB311=y
CONFIG_CIFS_FSCACHE=y
CONFIG_NCP_FS=m
CONFIG_NCPFS_PACKET_SIGNING=y
@@ -7586,7 +7681,6 @@ CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
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
#
@@ -7606,6 +7700,7 @@ CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
CONFIG_PANIC_ON_OOPS_VALUE=0
CONFIG_PANIC_TIMEOUT=0
CONFIG_SCHED_DEBUG=y
+CONFIG_SCHED_INFO=y
CONFIG_SCHEDSTATS=y
CONFIG_SCHED_STACK_END_CHECK=y
# CONFIG_DEBUG_TIMEKEEPING is not set
@@ -7643,6 +7738,7 @@ CONFIG_TORTURE_TEST=m
CONFIG_RCU_CPU_STALL_TIMEOUT=60
# CONFIG_RCU_CPU_STALL_INFO is not set
# CONFIG_RCU_TRACE is not set
+# CONFIG_RCU_EQS_DEBUG is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
CONFIG_NOTIFIER_ERROR_INJECTION=m
CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
@@ -7762,8 +7858,11 @@ CONFIG_DEFAULT_IO_DELAY_TYPE=1
# CONFIG_DEBUG_BOOT_PARAMS is not set
# CONFIG_CPA_DEBUG is not set
CONFIG_OPTIMIZE_INLINING=y
+# CONFIG_DEBUG_ENTRY is not set
# CONFIG_DEBUG_NMI_SELFTEST is not set
# CONFIG_X86_DEBUG_STATIC_CPU_HAS is not set
+CONFIG_X86_DEBUG_FPU=y
+CONFIG_PUNIT_ATOM_DEBUG=m
#
# Security options
@@ -7853,8 +7952,12 @@ CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG=y
CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_RNG_DEFAULT=m
CONFIG_CRYPTO_PCOMP=m
CONFIG_CRYPTO_PCOMP2=y
+CONFIG_CRYPTO_AKCIPHER2=y
+CONFIG_CRYPTO_AKCIPHER=m
+CONFIG_CRYPTO_RSA=m
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
CONFIG_CRYPTO_USER=m
@@ -7875,7 +7978,9 @@ CONFIG_CRYPTO_GLUE_HELPER_X86=m
#
CONFIG_CRYPTO_CCM=m
CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_CHACHA20POLY1305=m
CONFIG_CRYPTO_SEQIV=m
+CONFIG_CRYPTO_ECHAINIV=m
#
# Block modes
@@ -7906,6 +8011,7 @@ CONFIG_CRYPTO_CRC32_PCLMUL=m
CONFIG_CRYPTO_CRCT10DIF=y
CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m
CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_POLY1305=m
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
@@ -7950,6 +8056,7 @@ CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_SALSA20=m
CONFIG_CRYPTO_SALSA20_X86_64=m
+CONFIG_CRYPTO_CHACHA20=m
CONFIG_CRYPTO_SEED=m
CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
@@ -7968,6 +8075,7 @@ CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_ZLIB=m
CONFIG_CRYPTO_LZO=y
+CONFIG_CRYPTO_842=m
CONFIG_CRYPTO_LZ4=m
CONFIG_CRYPTO_LZ4HC=m
@@ -7980,10 +8088,12 @@ CONFIG_CRYPTO_DRBG_HMAC=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_DRBG=m
+CONFIG_CRYPTO_JITTERENTROPY=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_USER_API_AEAD=m
CONFIG_CRYPTO_HASH_INFO=y
CONFIG_CRYPTO_HW=y
CONFIG_CRYPTO_DEV_PADLOCK=y
@@ -8053,6 +8163,8 @@ CONFIG_LIBCRC32C=m
CONFIG_CRC8=m
# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_842_COMPRESS=m
+CONFIG_842_DECOMPRESS=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_LZO_COMPRESS=y
@@ -8112,3 +8224,4 @@ CONFIG_FONT_SUPPORT=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_ARCH_HAS_SG_CHAIN=y
+CONFIG_ARCH_HAS_PMEM_API=y
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index c863592332..9da3a21427 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm