Browse Source

Install only listed firmware files

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>
main 20190815
Takashi Iwai 5 years ago committed by Josh Boyer
parent
commit
07b925b450
No known key found for this signature in database
GPG Key ID: A31B6BD72486CFD6
  1. 5
      Makefile
  2. 30
      copy-firmware.sh

5
Makefile

@ -10,7 +10,4 @@ check: @@ -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)

30
copy-firmware.sh

@ -0,0 +1,30 @@ @@ -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
Loading…
Cancel
Save