Hello community, here is the log from the commit of package kernel-firmware for openSUSE:Factory checked in at Sat May 15 00:34:44 CEST 2010. -------- --- kernel-firmware/kernel-firmware.changes 2010-04-23 16:11:34.000000000 +0200 +++ /mounts/work_src_done/STABLE/kernel-firmware/kernel-firmware.changes 2010-05-14 22:24:34.000000000 +0200 @@ -1,0 +2,17 @@ +Fri May 14 22:22:46 CEST 2010 - mmarek@suse.cz + +- Do not install files already installed by the kernel (bnc#598624). + +------------------------------------------------------------------- +Fri May 14 16:34:22 CEST 2010 - mmarek@suse.cz + +- firmware-supplements.sh: Fallback to the last installed kernel. + +------------------------------------------------------------------- +Wed May 12 16:06:43 CEST 2010 - mmarek@suse.cz + +- Run firmware-supplements.sh at build time. It's not a perfect + solution, because kernel-default has a different set of modules + among architectures, but better than a manually updated file. + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- firmware-supplements.sh firmware-supplements.txt New: ---- firmware.sh ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kernel-firmware.spec ++++++ --- /var/tmp/diff_new_pack.lR5TGy/_old 2010-05-15 00:34:37.000000000 +0200 +++ /var/tmp/diff_new_pack.lR5TGy/_new 2010-05-15 00:34:37.000000000 +0200 @@ -18,18 +18,16 @@ Name: kernel-firmware -BuildRequires: fdupes +BuildRequires: fdupes kernel-default Version: 20100227 -Release: 2 +Release: 3 Summary: Linux kernel firmware files License: NON-OSI-COMPLIANT(no modification) ; GPLv2 ; GPLv2+ ; MIT License (or similar) Group: System/Kernel Url: ftp://ftp.kernel.org/pub/linux/kernel/people/dwmw2/firmware/ Source0: linux-firmware-%{version}.tar.bz2 -# remember to run this after each update and after each major kernel update -Source1: firmware-supplements.sh -Source2: firmware-supplements.txt -%define __find_supplements bash -c 'cat > /dev/null; cat %_sourcedir/firmware-supplements.txt' +Source1: firmware.sh +%define __find_supplements bash %_sourcedir/firmware.sh --find-supplements BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildArch: noarch Provides: qlogic-firmware @@ -59,8 +57,6 @@ %prep %setup -q -n linux-firmware-%{version} -## remove unwanted source files -#rm -f dsp56k/bootstrap.asm keyspan_pda/*.S %build # nothing to do @@ -69,6 +65,7 @@ mkdir -p %{buildroot}/lib/firmware cp -avf * %{buildroot}/lib/firmware rm -f %{buildroot}/lib/firmware/WHENCE +bash %_sourcedir/firmware.sh --kill-duplicates %buildroot/lib/firmware/ %fdupes %{buildroot} %clean ++++++ firmware-supplements.sh -> firmware.sh ++++++ --- kernel-firmware/firmware-supplements.sh 2010-04-23 16:09:56.000000000 +0200 +++ /mounts/work_src_done/STABLE/kernel-firmware/firmware.sh 2010-05-14 22:24:33.000000000 +0200 @@ -1,44 +1,36 @@ -#!/bin/sh +#!/bin/bash # # Generate Supplements: lines for the kernel-firmware package, by looking at -# the firmware: and alias: fields of kernel modules. Ideally, this script -# should be run automatically during each build, the problem is that -# kernel-firmware is a noarch package, but the kernel packages differ among -# architectures, so the results could change randomly. For now, run this -# script manually against the i586 desktop kernel, like this -# -# $ tar xf linux-firmware-$version.tar.bz2 -# $ ./firmware-supplements.sh linux-firmware-$version \ -# kernel-desktop-*.i586.rpm >firmware-supplements.txt +# the firmware: and alias: fields of kernel modules. -USAGE="$0 <firmware directory> [kernel directory] -$0 <firmware directory> kernel.rpm" +USAGE="find <firmware directory> | $0 --find-supplements [kernel directory | kernel.rpm] +$0 --kill-duplicates <firmware directory> [kernel directory | kernel.rpm]" usage() { - echo "$USAGE" >&2 + echo "Usage: $USAGE" >&2 exit 1 } -fw_dir="$1" -kernel="$2" - -if ! test -d "$fw_dir"; then - usage -fi - -trap 'rm -rf "$tmp"' EXIT -tmp=$(mktemp -d) - get_kernel_dir() { - # default + # default to the running or last installed kernel if test -z "$kernel"; then - kernel="/lib/modules/$(uname -r)/kernel" - if ! test -d "$kernel"; then - echo "No kernel found below /lib/modules/$(uname -r)" >&2 - usage + if test -d "/lib/modules/$(uname -r)/kernel"; then + kernel="$_" + return fi - return + local pkg=$(rpm -q --qf '%{buildtime} %{n}-%{v}-%{r}\n' \ + kernel-default kernel-desktop kernel-pae | sort -rn | + head -n1 | cut -d' ' -f 2) + if test -n "$pkg"; then + kernel=$(rpm -ql "$pkg" | \ + grep -m1 '^/lib/modules/2\.6\.[^/]*/kernel$') + fi + if test -d "$kernel"; then + return + fi + echo "No kernel found" >&2 + usage fi # /lib/modules/$version ? if test -d "$kernel/kernel"; then @@ -55,21 +47,51 @@ *.rpm) mkdir "$tmp/kernel" rpm2cpio "$kernel" | (cd "$tmp/kernel"; cpio -id --quiet) - kernel="$tmp/kernel" + kernel=($tmp/kernel/lib/modules/*/kernel) + kernel=${kernel[0]} return esac usage } -get_kernel_dir +trap 'rm -rf "$tmp"' EXIT +tmp=$(mktemp -d) -find "$kernel" -name '*.ko' -type f | while read ko; do - firmware=$(/sbin/modinfo -F firmware "$ko") - for fw in $firmware; do - if test -f "$fw_dir/$fw"; then +case "$1" in +--find-supplements) + kernel=$2 + cat >"$tmp/filelist" + if test ! -s "$tmp/filelist"; then + usage + fi + get_kernel_dir + echo "Using $kernel" >&2 + find "$kernel" -name '*.ko' -type f | while read ko; do + if grep -qFf <(/sbin/modinfo -F firmware "$ko") \ + "$tmp/filelist"; then echo "$ko" - break + fi + done | sort | \ + RPMBUILD_SPECFILE=/dev/null /usr/lib/rpm/find-supplements.ksyms | \ + sed 's/^modalias(kernel-[^:]*:/modalias(/' # strip the kernel-$flavor: prefix + ;; +--kill-duplicates) + firmware=$2 + kernel=$3 + get_kernel_dir + kernel=${kernel/\/lib\/modules\//\/lib\/firmware\/} + kernel=${kernel%/kernel} + echo "Using $kernel" >&2 + find "$firmware" -type f -printf '%P\n' | while read f; do + if cmp -s "$kernel/$f" "$firmware/$f"; then + rm -v "$_" fi done -done | sort | RPMBUILD_SPECFILE=/dev/null /usr/lib/rpm/find-supplements.ksyms \ -| sed 's/^modalias(kernel-[^:]*:/modalias(/' # strip the kernel-$flavor: prefix + ;; +*) + usage +esac + + + + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org