Merge pull request #107703 from Atemu/kernel-use-zstd

kernel: use zstd
This commit is contained in:
Linus Heckemann 2020-12-30 00:17:59 +01:00 committed by GitHub
commit 44864fd0f4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 5 deletions

View File

@ -513,7 +513,12 @@ in
}; };
boot.initrd.compressor = mkOption { boot.initrd.compressor = mkOption {
default = "gzip"; default = (
if lib.versionAtLeast config.boot.kernelPackages.kernel.version "5.9"
then "zstd"
else "gzip"
);
defaultText = "zstd if the kernel supports it (5.9+), gzip if not.";
type = types.unspecified; # We don't have a function type... type = types.unspecified; # We don't have a function type...
description = '' description = ''
The compressor to use on the initrd image. May be any of: The compressor to use on the initrd image. May be any of:

View File

@ -654,7 +654,10 @@ let
MODULE_COMPRESS = yes; MODULE_COMPRESS = yes;
MODULE_COMPRESS_XZ = yes; MODULE_COMPRESS_XZ = yes;
KERNEL_XZ = yes;
# use zstd for kernel compression if newer than 5.9, else xz.
KERNEL_XZ = whenOlder "5.9" yes;
KERNEL_ZSTD = whenAtLeast "5.9" yes;
SYSVIPC = yes; # System-V IPC SYSVIPC = yes; # System-V IPC

View File

@ -1,5 +1,5 @@
{ buildPackages, runCommand, nettools, bc, bison, flex, perl, rsync, gmp, libmpc, mpfr, openssl { buildPackages, runCommand, nettools, bc, bison, flex, perl, rsync, gmp, libmpc, mpfr, openssl
, libelf, cpio, elfutils , libelf, cpio, elfutils, zstd, gawk
, writeTextFile , writeTextFile
}: }:
@ -120,7 +120,7 @@ let
# See also https://kernelnewbies.org/BuildId # See also https://kernelnewbies.org/BuildId
sed -i Makefile -e 's|--build-id|--build-id=none|' sed -i Makefile -e 's|--build-id|--build-id=none|'
sed -i scripts/ld-version.sh -e "s|/usr/bin/awk|${buildPackages.gawk}/bin/awk|" patchShebangs scripts/ld-version.sh
''; '';
postPatch = '' postPatch = ''
@ -306,7 +306,7 @@ stdenv.mkDerivation ((drvAttrs config stdenv.hostPlatform.platform kernelPatches
enableParallelBuilding = true; enableParallelBuilding = true;
depsBuildBuild = [ buildPackages.stdenv.cc ]; depsBuildBuild = [ buildPackages.stdenv.cc ];
nativeBuildInputs = [ perl bc nettools openssl rsync gmp libmpc mpfr ] nativeBuildInputs = [ perl bc nettools openssl rsync gmp libmpc mpfr gawk zstd ]
++ optional (stdenv.hostPlatform.platform.kernelTarget == "uImage") buildPackages.ubootTools ++ optional (stdenv.hostPlatform.platform.kernelTarget == "uImage") buildPackages.ubootTools
++ optional (stdenv.lib.versionAtLeast version "4.14" && stdenv.lib.versionOlder version "5.8") libelf ++ optional (stdenv.lib.versionAtLeast version "4.14" && stdenv.lib.versionOlder version "5.8") libelf
# Removed util-linuxMinimal since it should not be a dependency. # Removed util-linuxMinimal since it should not be a dependency.