summary refs log tree commit diff
path: root/pkgs/build-support
diff options
context:
space:
mode:
authorArthur Gautier <baloo@superbaloo.net>2020-08-22 09:53:29 -0700
committerArthur Gautier <baloo@superbaloo.net>2020-08-27 10:45:23 -0700
commitee8572d6b31b8188f9d500a1a3036316f2aa21c0 (patch)
tree62719bc60a3da4cd81bd55cd21d4ef4402728745 /pkgs/build-support
parent6eae50cca8014a2eb773d73bbe10552c60841217 (diff)
downloadnixpkgs-ee8572d6b31b8188f9d500a1a3036316f2aa21c0.tar
nixpkgs-ee8572d6b31b8188f9d500a1a3036316f2aa21c0.tar.gz
nixpkgs-ee8572d6b31b8188f9d500a1a3036316f2aa21c0.tar.bz2
nixpkgs-ee8572d6b31b8188f9d500a1a3036316f2aa21c0.tar.lz
nixpkgs-ee8572d6b31b8188f9d500a1a3036316f2aa21c0.tar.xz
nixpkgs-ee8572d6b31b8188f9d500a1a3036316f2aa21c0.tar.zst
nixpkgs-ee8572d6b31b8188f9d500a1a3036316f2aa21c0.zip
makeModulesClosure: fixup firmware extraction
After a recent upgrade of modinfo, its output is now incorrect for
builtin modules. This commit filters out the output until a fix is made
available upstream
Diffstat (limited to 'pkgs/build-support')
-rw-r--r--pkgs/build-support/kernel/modules-closure.sh12
1 files changed, 11 insertions, 1 deletions
diff --git a/pkgs/build-support/kernel/modules-closure.sh b/pkgs/build-support/kernel/modules-closure.sh
index 68d840f1614..2e3d3e25a09 100644
--- a/pkgs/build-support/kernel/modules-closure.sh
+++ b/pkgs/build-support/kernel/modules-closure.sh
@@ -68,7 +68,17 @@ done
 
 mkdir -p $out/lib/firmware
 for module in $(cat closure); do
-    for i in $(modinfo -F firmware $module); do
+    # for builtin modules, modinfo will reply with a wrong output looking like:
+    #   $ modinfo -F firmware unix
+    #   name:           unix
+    #
+    # There is a pending attempt to fix this:
+    #   https://github.com/NixOS/nixpkgs/pull/96153
+    #   https://lore.kernel.org/linux-modules/20200823215433.j5gc5rnsmahpf43v@blumerang/T/#u
+    #
+    # For now, the workaround is just to filter out the extraneous lines out
+    # of its output.
+    for i in $(modinfo -F firmware $module | grep -v '^name:'); do
         mkdir -p "$out/lib/firmware/$(dirname "$i")"
         echo "firmware for $module: $i"
         cp "$firmware/lib/firmware/$i" "$out/lib/firmware/$i" 2>/dev/null || if test -z "$allowMissing"; then exit 1; fi