diff options
author | Robert Hensing <robert@roberthensing.nl> | 2018-04-05 16:58:50 +0200 |
---|---|---|
committer | Robert Hensing <robert@roberthensing.nl> | 2018-04-05 17:00:00 +0200 |
commit | 30bff42231ae088d7f567bda5b9af9a3905999bf (patch) | |
tree | 14669b9e7c940208f1bfbf7bda564a6bee072f1b | |
parent | 59ddb3ebfbe43625a36d4863739280cedf88c404 (diff) | |
download | nixpkgs-30bff42231ae088d7f567bda5b9af9a3905999bf.tar nixpkgs-30bff42231ae088d7f567bda5b9af9a3905999bf.tar.gz nixpkgs-30bff42231ae088d7f567bda5b9af9a3905999bf.tar.bz2 nixpkgs-30bff42231ae088d7f567bda5b9af9a3905999bf.tar.lz nixpkgs-30bff42231ae088d7f567bda5b9af9a3905999bf.tar.xz nixpkgs-30bff42231ae088d7f567bda5b9af9a3905999bf.tar.zst nixpkgs-30bff42231ae088d7f567bda5b9af9a3905999bf.zip |
linux module handling: support kernels without modules
-rw-r--r-- | pkgs/build-support/kernel/modules-closure.sh | 14 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kmod/aggregator.nix | 6 |
2 files changed, 20 insertions, 0 deletions
diff --git a/pkgs/build-support/kernel/modules-closure.sh b/pkgs/build-support/kernel/modules-closure.sh index 8287c1672d0..9a49d42cdc1 100644 --- a/pkgs/build-support/kernel/modules-closure.sh +++ b/pkgs/build-support/kernel/modules-closure.sh @@ -1,5 +1,19 @@ source $stdenv/setup +# When no modules are built, the $out/lib/modules directory will not +# exist. Because the rest of the script assumes it does exist, we +# handle this special case first. +if ! test -d "$out/lib/modules"; then + if test -z "$rootModules" || test -n "$allowMissing"; then + mkdir -p "$out" + exit 0 + else + echo "Required modules: $rootModules" + echo "Can not derive a closure of kernel modules because no modules were provided." + exit 1 + fi +fi + version=$(cd $kernel/lib/modules && ls -d *) echo "kernel version is $version" diff --git a/pkgs/os-specific/linux/kmod/aggregator.nix b/pkgs/os-specific/linux/kmod/aggregator.nix index 9bd7c8480c1..7d46a13f356 100644 --- a/pkgs/os-specific/linux/kmod/aggregator.nix +++ b/pkgs/os-specific/linux/kmod/aggregator.nix @@ -9,6 +9,12 @@ buildEnv { '' source ${stdenv}/setup + if ! test -d "$out/lib/modules"; then + echo "No modules found." + # To support a kernel without modules + exit 0 + fi + kernelVersion=$(cd $out/lib/modules && ls -d *) if test "$(echo $kernelVersion | wc -w)" != 1; then echo "inconsistent kernel versions: $kernelVersion" |