diff options
author | Robert Hensing <robert@roberthensing.nl> | 2018-03-23 10:08:06 +0100 |
---|---|---|
committer | Austin Seipp <aseipp@pobox.com> | 2018-04-07 16:40:25 -0500 |
commit | 7f25b26511aef36fdad4fb3999af8ce7c2dfea72 (patch) | |
tree | 8a17862245c0d2e3654f57cfb9fd16e97196528c | |
parent | e1dee4efcbffc72260025078bf8297a3b732509c (diff) | |
download | nixlib-7f25b26511aef36fdad4fb3999af8ce7c2dfea72.tar nixlib-7f25b26511aef36fdad4fb3999af8ce7c2dfea72.tar.gz nixlib-7f25b26511aef36fdad4fb3999af8ce7c2dfea72.tar.bz2 nixlib-7f25b26511aef36fdad4fb3999af8ce7c2dfea72.tar.lz nixlib-7f25b26511aef36fdad4fb3999af8ce7c2dfea72.tar.xz nixlib-7f25b26511aef36fdad4fb3999af8ce7c2dfea72.tar.zst nixlib-7f25b26511aef36fdad4fb3999af8ce7c2dfea72.zip |
linuxPackages_custom: fix missing argument and add test
The required argument 'hostPlatform' was missing from linuxPackages_custom's call to linuxManualConfig. In order to prevent this in the future, this commit adds linuxPackages_custom_tinyconfig_kernel so linuxPackages_custom gets tested. This also adds linuxConfig, to derivate default linux configurations via make defconfig, make tinyconfig, etc. Closes #38034. Signed-off-by: Austin Seipp <aseipp@pobox.com>
-rw-r--r-- | pkgs/os-specific/linux/kernel/manual-config.nix | 2 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 33 |
2 files changed, 32 insertions, 3 deletions
diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix index 60fb00645139..9833bb57bafb 100644 --- a/pkgs/os-specific/linux/kernel/manual-config.nix +++ b/pkgs/os-specific/linux/kernel/manual-config.nix @@ -35,6 +35,8 @@ in { extraMeta ? {}, # Whether to utilize the controversial import-from-derivation feature to parse the config allowImportFromDerivation ? false, + # ignored + features ? null, hostPlatform }: diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1480b906403b..3debf1a9489e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13605,12 +13605,25 @@ with pkgs; # Intentionally lacks recurseIntoAttrs, as -rc kernels will quite likely break out-of-tree modules and cause failed Hydra builds. linuxPackages_testing = linuxPackagesFor pkgs.linux_testing; - linuxPackages_custom = { version, src, configfile }: + linuxPackages_custom = { version, src, configfile, allowImportFromDerivation ? true }: recurseIntoAttrs (linuxPackagesFor (pkgs.linuxManualConfig { - inherit version src configfile stdenv; - allowImportFromDerivation = true; + inherit version src configfile stdenv allowImportFromDerivation; + inherit (stdenv) hostPlatform; })); + # This serves as a test for linuxPackages_custom + linuxPackages_custom_tinyconfig_kernel = let + base = pkgs.linuxPackages.kernel; + tinyLinuxPackages = pkgs.linuxPackages_custom { + inherit (base) version src; + allowImportFromDerivation = false; + configfile = pkgs.linuxConfig { + makeTarget = "tinyconfig"; + src = base.src; + }; + }; + in tinyLinuxPackages.kernel; + # Build a kernel with bcachefs module linuxPackages_testing_bcachefs = recurseIntoAttrs (linuxPackagesFor pkgs.linux_testing_bcachefs); @@ -13648,6 +13661,20 @@ with pkgs; # A function to build a manually-configured kernel linuxManualConfig = makeOverridable (callPackage ../os-specific/linux/kernel/manual-config.nix {}); + + # Derive one of the default .config files + linuxConfig = { src, makeTarget ? "defconfig", name ? "kernel.config" }: + stdenv.mkDerivation { + inherit name src; + buildPhase = '' + set -x + make ${makeTarget} + ''; + installPhase = '' + cp .config $out + ''; + }; + buildLinux = attrs: callPackage ../os-specific/linux/kernel/generic.nix attrs; keyutils = callPackage ../os-specific/linux/keyutils { }; |