diff options
author | Takashi Iwai <tiwai@suse.de> | 2019-07-31 18:17:44 +0200 |
---|---|---|
committer | Josh Boyer <jwboyer@kernel.org> | 2019-08-15 07:46:53 -0400 |
commit | 07b925b450bfb4cf3e141c612ec5b104658cd020 (patch) | |
tree | 9448872864af259f4b5333cc16fabfbb7ce8753d | |
parent | 5621bfcde3676bfe5b48c2cc7325eabec999a8be (diff) | |
download | linux-firmware-07b925b450bfb4cf3e141c612ec5b104658cd020.tar.gz |
Install only listed firmware files20190815
The current make-install procedure leaves lots of garbage files that
aren't really firmware files in /lib/firmware.
Instead of copy-all-and-prune approach, copy only the listed files and
links in WHENCE by make-install for assuring only the proper firmware
files.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Josh Boyer <jwboyer@kernel.org>
-rw-r--r-- | Makefile | 5 | ||||
-rwxr-xr-x | copy-firmware.sh | 30 |
2 files changed, 31 insertions, 4 deletions
@@ -10,7 +10,4 @@ check: install: mkdir -p $(DESTDIR)$(FIRMWAREDIR) - cp -r * $(DESTDIR)$(FIRMWAREDIR) - rm -rf $(DESTDIR)$(FIRMWAREDIR)/usbdux - find $(DESTDIR)$(FIRMWAREDIR) \( -name 'WHENCE' -or -name 'LICENSE.*' -or \ - -name 'LICENCE.*' \) -exec rm -- {} \; + ./copy-firmware.sh $(DESTDIR)$(FIRMWAREDIR) diff --git a/copy-firmware.sh b/copy-firmware.sh new file mode 100755 index 0000000..7b276e2 --- /dev/null +++ b/copy-firmware.sh @@ -0,0 +1,30 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0 +# +# Copy firmware files based on WHENCE list +# + +verbose=: +if [ x"$1" = x"-v" ]; then + verbose=echo + shift +fi + +destdir="$1" + +grep '^File:' WHENCE | sed -e's/^File: *//g' -e's/"//g' | while read f; do + test -f "$f" || continue + $verbose "copying file $f" + mkdir -p $destdir/$(dirname "$f") + cp -d "$f" $destdir/"$f" +done + +grep -E '^Link:' WHENCE | sed -e's/^Link: *//g' -e's/-> //g' | while read f d; do + test -L "$f" || continue + test -f "$destdir/$f" && continue + $verbose "copying link $f" + mkdir -p $destdir/$(dirname "$f") + cp -d "$f" $destdir/"$f" +done + +exit 0 |