From fb6320d0c4f2d68df98b8710a4a037e08af402a4 Mon Sep 17 00:00:00 2001 From: Steve McIntyre <93sam@debian.org> Date: Fri, 10 Jun 2011 13:33:48 +0000 Subject: [PATCH] copy latest make-firmware-image script from trunk --- lenny/tools/make-firmware-image | 57 ++++++++++----------------------- 1 file changed, 17 insertions(+), 40 deletions(-) diff --git a/lenny/tools/make-firmware-image b/lenny/tools/make-firmware-image index 3852e3f7..951b06aa 100755 --- a/lenny/tools/make-firmware-image +++ b/lenny/tools/make-firmware-image @@ -1,62 +1,39 @@ #!/bin/sh +# Work out which firmware files to include in the image +# Several steps: +# +# 1. Look for packages which contain "firmware" or "microcode" in their package names +# 2. Check each of those packages to see if they contain files in /lib/firmware +# 3. For those that do, add them into the firmware temp tree +# 4. Make images (tar.gz, zip) of that tree + set -e MIRROR=$1 SUITE=$2 TMPDIR=$3 -BASEDIR=$4 export LC_ALL=C if [ "$MIRROR"x = ""x ] || \ [ "$SUITE"x = ""x ] || \ - [ "$TMPDIR"x = ""x ] || \ - [ "$BASEDIR"x = ""x ] ; then + [ "$TMPDIR"x = ""x ] ; then echo "$0: Need parameters" exit 1 fi -TASKFILE=$BASEDIR/tasks/firmware - rm -rf $TMPDIR/firmware mkdir -p $TMPDIR/firmware -FILES=`( cpp $TASKFILE | grep -v -e "^#" -e "^$" ; \ - echo DONE ; - zcat $MIRROR/dists/$SUITE/non-free/binary-*/Packages.gz ) | \ - awk ' - /DONE/ { - in_packages = 1 - matched = 0 - next - } - /.*/ { - if (!in_packages) { - firmware[$1] = num_fw - num_fw++ - next - } - } - /^Package: / { - matched = 0 - if (in_packages) { - for (fw in firmware) { - if (fw == $2) { - matched = 1 - } - } - next - } - } - /^Filename: / { - if (matched) { - print $2 - } - }' | sort -u` +FILES=`zcat ${MIRROR}/dists/${SUITE}/*/binary-*/Packages.gz | \ + grep-dctrl -Pe '.*(firmware|microcode).*' -s Filename | sort -u | awk '{print $2}'` -for file in $FILES; do - cp $MIRROR/$file $TMPDIR/firmware/ -done +for FILE in $FILES; do + # Don't use "grep -q" here, it causes errors from tar + if (dpkg --contents ${MIRROR}/${FILE} | grep " ./lib/firmware/" >/dev/null) ; then + cp ${MIRROR}/${FILE} $TMPDIR/firmware + fi +done cd $TMPDIR/firmware tar czf ../firmware.tar.gz .