This enables the use of the subdirs.el feature of Emacs, where specifying a
directory in EMACSLOADPATH translates into a `load-path' variable containing
the directory and all its sub-directories.
* gnu/packages/aux-files/emacs/guix-emacs.el (guix-emacs-autoload-packages):
Use `load-path' directly instead of parsing EMACSLOADPATH.
Reported-by: Leo Prikler <leo.prikler@student.tugraz.at>
Signed-off-by: Clément Lassieur <clement@lassieur.org>
The Elisp directories to scan for autoloads are now taken from EMACSLOADPATH
instead of from the user profile, environment profile or system profile.
Manually adding the Elisp directories to the `load-path' is no longer
necessary, as this is covered by Emacs when they are in EMACSLOADPATH. The
caching logic is also removed, as this code is not typically run often and the
gain is marginal (loading autoloads files is cheap).
* gnu/packages/aux-files/emacs/guix-emacs.el (guix-emacs-directory)
(guix-emacs-subdirs, guix-emacs-directories): Remove procedures.
(guix-emacs-find-autoloads): Filter the directory entries by passing the
regexp to `directory-files' directly, which is ten times faster. Remove
deduplication.
(guix-emacs-autoloads-regexp): Remove the group, which used to filter out the
file extension; it no longer works this way due to passing the regexp to the
`directory-files' procedure directly, which doesn't care about groups.
(guix-emacs-autoload-packages): Update doc. Search package directories from
EMACSLOADPATH. Do not populate the load-path. Remove cache.
* gnu/packages/aux-files/linux-libre/4.19-arm.conf,
gnu/packages/aux-files/linux-libre/4.19-arm64.conf,
gnu/packages/aux-files/linux-libre/4.19-i686.conf,
gnu/packages/aux-files/linux-libre/4.19-x86_64.conf,
gnu/packages/aux-files/linux-libre/5.2-arm.conf,
gnu/packages/aux-files/linux-libre/5.2-arm64.conf,
gnu/packages/aux-files/linux-libre/5.2-i686.conf,
gnu/packages/aux-files/linux-libre/5.2-x86_64.conf: Set CONFIG_NF_TABLES_INET,
CONFIG_NF_TABLES_NETDEV, CONFIG_NF_TABLES_IPV4, CONFIG_NF_TABLES_IPV6 and
CONFIG_NF_TABLES_BRIDGE to 'y', and related options to 'm'.
When running qemu-img from (gnu system vm) with an aarch64 kernel, mounting
ext4 partitions fails because no modprobe of ext4 module is made. Like for
other kernel configs, provide built-in support for ext4 partitions.
* gnu/packages/aux-files/linux-libre/5.2-arm64.conf: Enable built-in ext4,
like in intel and armhf configs.
* gnu/packages/aux-files/run-in-namespace.c (exec_with_proot): New
function.
(main): When 'clone' fails, call 'rm_rf'.
[PROOT_PROGRAM]: When 'clone' fails, call 'exec_with_proot'.
* guix/scripts/pack.scm (wrapped-package): Add #:proot?.
[proot]: New procedure.
[build]: Compile with -DPROOT_PROGRAM when PROOT? is true.
* guix/scripts/pack.scm (%options): Set the 'relocatable?' value to
'proot when "-R" is passed several times.
(guix-pack): Pass #:proot? to 'wrapped-package'.
* tests/guix-pack-relocatable.sh: Use "-RR" on Intel systems that lack
user namespace support.
* doc/guix.texi (Invoking guix pack): Document -RR.
Fixes <https://bugs.gnu.org/34162>
Reported by Vagrant Cascadian <vagrant@debian.org>
Note that CRYPTO_CRC32C was already a built-in in our default
configurations for other systems.
* gnu/packages/aux-files/linux-libre/4.20-arm64.conf,
gnu/packages/aux-files/linux-libre/4.19-arm64.conf
(CONFIG_CRYPTO_CRC32C): Change from 'm' to 'y'.
* gnu/packages/aux-files/linux-libre/4.19-x86_64.conf: Build DRM BOCHS support
as a module. It adds DRM support for BOCHS dispi vga interface used by
qemu (-vga std option). It will also be useful for QEMU 3.0 to enable the new
"bochs-display" display device.
* gnu/packages/aux-files/linux-libre/4.19-i686.conf: Ditto.
Fixes <https://bugs.gnu.org/32840>.
* gnu/packages/aux-files/linux-libre/4.18-x86_64.conf,
gnu/packages/aux-files/linux-libre/4.18-i686.conf: Add
CONFIG_HOTPLUG_PCI_SHPC=y, plus updates made by 'make oldconfig'.
* gnu/packages/aux-files/run-in-namespace.c (write_id_map)
(disallow_setgroups): New functions.
(main): Use 'clone' via 'syscall' instead of 'fork' followed by
'unshare'. Add calls to 'disallow_setgroups' and 'write_id_map' in the
parent process.
* gnu/packages/aux-files/run-in-namespace.c: New file.
* Makefile.am (AUX_FILES): Add it.
* guix/scripts/pack.scm (<c-compiler>): New record type.
(c-compiler, bootstrap-c-compiler, c-compiler-compiler): New procedures.
(self-contained-tarball): Use
'relative-file-name' for the SOURCE -> TARGET symlink.
(docker-image): Add 'defmod' to please Geiser.
(wrapped-package, map-manifest-entries): New procedures.
(%options, show-help): Add --relocatable.
(guix-pack): Honor it.
* gnu/packages/aux-files/linux-libre/4.14-i686.conf,
gnu/packages/aux-files/linux-libre/4.14-x86_64.conf,
gnu/packages/aux-files/linux-libre/4.9-i686.conf,
gnu/packages/aux-files/linux-libre/4.9-x86_64.conf,
gnu/packages/aux-files/linux-libre/4.4-i686.conf,
gnu/packages/aux-files/linux-libre/4.4-x86_64.conf,
gnu/packages/aux-files/linux-libre/4.1-i686.conf,
gnu/packages/aux-files/linux-libre/4.1-x86_64.conf: Update using
"make oldconfig" on the latest point releases.
This is a followup to commit 95b969bc9c.
* gnu/packages/aux-files/linux-libre/4.14-x86_64.conf,
gnu/packages/aux-files/linux-libre/4.14-i686.conf: Adapt to the configuration
options being renamed from CONFIG_*_UNWINDER to CONFIG_UNWINDER_* in version
4.14.9.
* gnu/packages/aux-files/linux-libre/4.14-arm.conf: GuixSD base-initrd expects
ext4 and fat filesystem to be built-in. Adapt configuration
accordingly. Also set devtmpfs_mount to yes.
The code fails to compile on armhf using our configuration.
See <https://patchwork.kernel.org/patch/9688615/> for details.
* gnu/packages/aux-files/linux-libre/4.14-arm.conf: Remove Tegra DRM support.
* Makefile.am (AUX_FILES): Add arm config file.
* gnu/packages/aux-files/linux-libre/4.13-arm.conf: New file.
* gnu/packages/linux.scm (%intel-compatible-systems): Rename to
%linux-compatible-systems and add "armhf-linux".
(linux-libre): Adapt consequently.
The config file for arm is taken from debian armmp kernel. It's a generic
firmware for ARMv7 multiplatform compatible SoCs.
Check the environment profile so that we autoload packages that are given as
arguments to "guix environment" but are not in the system or user profile.
Note that the union of Emacs packages in the system, user, and environment
profiles will be autoloaded even when --pure was passed to "guix environment",
because it's not clear how to detect that --pure was given.
* gnu/packages/aux-files/emacs/guix-emacs.el (guix-emacs-autoload-packages):
Add Emacs packages from GUIX_ENVIRONMENT profile.
Signed-off-by: Alex Kost <alezost@gmail.com>
This removes support for the "shared memory communications over RDMA" (SMC-R)
networking protocol, which was added in 4.11 without the knowledge of the RDMA
maintainers, and which is thought to contain significant security flaws. For
details, see <https://lwn.net/Articles/723081> and
<https://lwn.net/Articles/723070>.
* gnu/packages/aux-files/linux-libre/4.11-x86_64.conf,
gnu/packages/aux-files/linux-libre/4.11-i686.conf: Disable CONFIG_SMC.
723# 0001-gnu-libevent-2.0-Add-fix-from-upstream.patch
* gnu/packages/aux-files/emacs/guix-emacs.el: Do not try to require
'guix-profiles'. Do not call 'guix-emacs-autoload-packages' in the top
level.
(guix-package-enable-at-startup): Remove. This variable can't be set by
a user since this file is loaded before user config.
(guix-emacs-autoload-packages): Use 'guix-read-package-profile' instead
of 'guix-profile-prompt' in interactive clause (it was renamed in
Emacs-Guix).
* gnu/packages/emacs.scm (emacs)[arguments]: Call
'guix-emacs-autoload-packages' in "site-start.el" after requiring
'guix-emacs'.