summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2019-07-31 18:17:44 +0200
committerJosh Boyer <jwboyer@kernel.org>2019-08-15 07:46:53 -0400
commit07b925b450bfb4cf3e141c612ec5b104658cd020 (patch)
tree9448872864af259f4b5333cc16fabfbb7ce8753d
parent5621bfcde3676bfe5b48c2cc7325eabec999a8be (diff)
downloadlinux-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--Makefile5
-rwxr-xr-xcopy-firmware.sh30
2 files changed, 31 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index d1163b8..16b5b1a 100644
--- a/Makefile
+++ b/Makefile
@@ -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