···66 fi
67done
6869-mkdir -p $out/lib/firmware
70-for module in $(cat closure); do
71 # for builtin modules, modinfo will reply with a wrong output looking like:
72 # $ modinfo -F firmware unix
73 # name: unix
···78 #
79 # For now, the workaround is just to filter out the extraneous lines out
80 # of its output.
81- for i in $(modinfo -b $kernel --set-version "$version" -F firmware $module | grep -v '^name:'); do
82- mkdir -p "$out/lib/firmware/$(dirname "$i")"
83 echo "firmware for $module: $i"
84 for name in "$i" "$i.xz" ""; do
85 [ -z "$name" ] && echo "WARNING: missing firmware $i for module $module"
86- if cp "$firmware/lib/firmware/$name" "$out/lib/firmware/$name" 2>/dev/null; then
87 break
88 fi
89 done
90- done
91done
9293# copy module ordering hints for depmod
···66 fi
67done
6869+cd "$firmware"
70+for module in $(< ~-/closure); do
71 # for builtin modules, modinfo will reply with a wrong output looking like:
72 # $ modinfo -F firmware unix
73 # name: unix
···78 #
79 # For now, the workaround is just to filter out the extraneous lines out
80 # of its output.
81+ modinfo -b $kernel --set-version "$version" -F firmware $module | grep -v '^name:' | while read -r i; do
082 echo "firmware for $module: $i"
83 for name in "$i" "$i.xz" ""; do
84 [ -z "$name" ] && echo "WARNING: missing firmware $i for module $module"
85+ if cp -v --parents --no-preserve=mode lib/firmware/$name "$out" 2>/dev/null; then
86 break
87 fi
88 done
89+ done || :
90done
9192# copy module ordering hints for depmod