X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=deblob-check;h=58af8535174620256fc689c8f83214cb8603c3fe;hb=0d3c0a07aaae93163e5ce2e115964988afa2026e;hp=44ae2cd9d74ec6c76a1e8a73c02ff004de3f1afc;hpb=b73db109a0ec396ddad6d1ce0f6a7d4e0a5fb78b;p=releases.git diff --git a/deblob-check b/deblob-check index 44ae2cd9d74e..58af85351746 100755 --- a/deblob-check +++ b/deblob-check @@ -1,6 +1,6 @@ #! /bin/sh -# deblob-check version 2009-03-19 +# deblob-check version 2009-03-24 # Inspired in gNewSense's find-firmware script. # Written by Alexandre Oliva @@ -226,6 +226,25 @@ case ${LANG+set} in set) LANG=C; export LANG;; esac rm="rm -f" + +for echo in 'echo' 'printf %s\n'; do + case `$echo '\nx'` in + '\nx') break;; + esac +done +case `$echo '\nx'` in +'\nx') ;; *) echo Cannot find out what echo to use >&2; exit 1;; +esac + +for echo_n in "echo -n" "printf %s"; do + case `$echo_n '\na'; $echo_n '\nb'` in + '\na\nb') break;; + esac +done +case `$echo_n a; $echo_n b` in +'ab') ;; *) echo Cannot find out an echo -n equivalent to use >&2; exit 1;; +esac + case $1 in --save-scripts | -S) shift @@ -847,6 +866,7 @@ set_except () { accept 'There is an USB interface for downloading[/]uploading.*request_firmware interface\.' Documentation/video4linux/si470x.txt accept '[\t]- move firmware loading to request_firmware()' drivers/staging/slicoss/README accept 'config FIRMWARE_IN_KERNEL.*let firmware be loaded from userspace\.' drivers/base/Kconfig + accept '[ ]*and request_firmware() in the source' drivers/base/Kconfig accept 'static int[\n]_request_firmware(const struct firmware \*\*firmware_p, const char \*name,[^{]*[\n]{[\n]\([^}]\|[^\n}]}*\)*[\n]}[\n]' drivers/base/firmware_class.c accept 'static int[\n]request_firmware_work_func(void \*arg)[\n]{[\n]\([^}]\|[^\n}]}*\)*ret = _request_firmware(\([^}]\|[^\n}]}*\)*[\n]}[\n]' drivers/base/firmware_class.c accept '[/][*][*][\n] [*] request_firmware: - send firmware [^{]*[\n]{[\n]\([^}]\|[^\n}]}*\)*[\n]}[\n]' drivers/base/firmware_class.c @@ -1001,7 +1021,7 @@ set_except () { blob 'static const u8 microcode\[\] = {[^}]*} *;' drivers/net/tokenring/3c359_microcode.h blob '#include "3c359_microcode\.h"' drivers/net/tokenring/3c359.c - blobna '[/][*][ \n*]* Now to write the microcode\([^/]\|[^*/][/]*\)*[*][/][\n ]*start = (0xFFFF - (mc_size)[^;]*;[\n ]*[/][*]\([^/]\|[^*/][/]*\)*[*][/][\n ]*printk(KERN_INFO "3C359: Uploading Microcode: ");[\n ]*for ([^{]*\(mc_size[^{]*) {[^}]*writeb(microcode\[\|) {[^}]*writeb(microcode\[mc_size\)[^}]*}\([\n][ ]*printk[^\n]*;[\n ]*for ([^{]*\(mc_size[^{]*) {[^}]*writeb(microcode\[\|) {[^}]*writeb(microcode\[mc_size\)[^}]*}\)*' drivers/net/tokenring/3c359.c + blobna 'start = (0xFFFF - (mc_size)[^;]*;[\n ]*[/][*]\([^/]\|[^*/][/]*\)*[*][/][\n ]*printk(KERN_INFO "3C359: Uploading Microcode: ");[\n ]*for ([^{]*\(mc_size[^{]*) {[^}]*writeb(microcode\[\|) {[^}]*writeb(microcode\[mc_size\)[^}]*}\([\n][ ]*printk[^\n]*;[\n ]*for ([^{]*\(mc_size[^{]*) {[^}]*writeb(microcode\[\|) {[^}]*writeb(microcode\[mc_size\)[^}]*}\)*' drivers/net/tokenring/3c359.c blobname 'tr_smctr\.bin' drivers/net/tokenring/smctr.c @@ -1120,13 +1140,16 @@ set_except () { blobname 'atmel_at76c50\(2\([de]\|_3com\)\?\|4a\?\(_2958\)\?\|6\)\(\.bin\)\?' drivers/net/wireless/atmel.c accept ' *priv->firmware = \(NULL\|new_firmware\);' drivers/net/wireless/atmel.c - blobname 'b43[^/]*[/]\(%s\|ucode\(5\|1[13]\)\|pcm5\|[abn]0g[01]initvals\(5\|1[13]\)\)\.fw' 'drivers/net/wireless/b43\(legacy\)\?/main.c' + blobname 'b43\(legacy\)\?\(%s\)\?[/]\(%s\|ucode\(5\|1[13]\)\|pcm5\|[abn]0g[01]initvals\(5\|1[13]\)\)\.fw' 'drivers/net/wireless/b43\(legacy\)\?/main.c' + blobna 'b43legacyerr([^;]*must go to http[^;]*b43#devicefirmware[^;]*);' drivers/net/wireless/b43legacy/main.c - blob '#define IPW2100_FW_\(\(MINOR_\)\?VERSION\|\(MAJOR\|MINOR\)(x)\)\([^\n]*\\[\n]\)*[^\n]*\([\n][\n]*#define IPW2100_FW_\(\(MINOR_\)\?VERSION\|\(MAJOR\|MINOR\)(x)\)\([^\n]*\\[\n]\)*[^\n]*\)*' drivers/net/wireless/ipw2100.c + blob '#define IPW2100_FW_\(\(\(MAJOR\|MINOR\)_VERSION\|\(MAJOR\|MINOR\)(x)\)\|VERSION\)\([^\n]*\\[\n]\)*[^\n]*\([\n][\n]*#define IPW2100_FW_\(\(\(MAJOR\|MINOR\)_VERSION\|\(MAJOR\|MINOR\)(x)\)\|VERSION\)\([^\n]*\\[\n]\)*[^\n]*\)*' drivers/net/wireless/ipw2100.c blobname 'ipw2100-\("\([^"\n]\|[\\][\n]\)*"\([^"]\|[\\]["]\)*\)\+' drivers/net/wireless/ipw2100.c blobname '__stringify(IPW2100_FW_MINOR_VERSION)' drivers/net/wireless/ipw2100.c accept ' *Portions of ipw2100_\(do_\)\?mod_firmware_load[, ]*\(ipw2100_\(do_\)\?mod_firmware_load[, and\n]*\)*' drivers/net/wireless/ipw2100.c - accept '\(static int \| \)ipw2100_mod_firmware_load(' drivers/net/wireless/ipw2100.c + accept ' ipw2100_mod_firmware_load(fw);' drivers/net/wireless/ipw2100.c + accept 'static int ipw2100_mod_firmware_load(' drivers/net/wireless/ipw2100.c + blobna 'if (IPW2100_FW_MAJOR[^{]*{[^}]* }' drivers/net/wireless/ipw2100.c accept '[/][*] Call this function from process context\([^/]\|[^*/][/]*\)*request_firmware' drivers/net/wireless/ipw2200.c blobname 'ipw2200-\(i\?bss\|sniffer\)\.fw' drivers/net/wireless/ipw2200.c @@ -1137,7 +1160,9 @@ set_except () { blobname 'libertas_cs\(_helper\)\?\.fw' drivers/net/wireless/libertas/if_cs.c blobname 'sd\(8385\|8686\)\(_helper\)\?\.bin' drivers/net/wireless/libertas/if_sdio.c + accept ' *card->firmware = \(if_sdio\|lbs_fw\)' drivers/net/wireless/libertas/if_sdio.c blobname 'usb8388\(-5\.126\.0\.p5\)\?\.bin' drivers/net/wireless/libertas/if_usb.c + blob '[/][*]\([^/]\|[^*/][/]*\)*usb8388\(-5\.126\.0\.p5\)\?\.bin\([^/]\|[^*/][/]*\)*[*][/]' drivers/net/wireless/libertas/if_usb.c accept ' lbs_pr_err("request_firmware() failed' drivers/net/wireless/if_usb.c blobna 'o\. Copy the firmware image[^\n]*usb8388\([^\n]\|[\n][ ]*[^ \n]\)*' drivers/net/wireless/libertas/README blobna '\[fw_name=usb8388[^]]*\]' drivers/net/wireless/libertas/README @@ -1252,18 +1277,23 @@ set_except () { blobname '\([/]etc[/]sound[/]\)\?msnd\(init\|perm\)\.bin' sound/oss/msnd_classic.h blobna '\(Important Notes - Read Before Using\|Obtaining and Creating Firmware Files\)[\n]# ~*\([^\n]\|[\n]# *\([\n]# *\([\n]# *For the[^\n]*[\n]# *~*[\n]\)\?\)\?[^\n ]\)*\.' Documentation/sound/oss/MultiSound - accept ' len = mod_firmware_load(fn, [&]data);[\n] if [^{]* {[\n] printk(KERN_ERR "sscape:' sound/oss/sscape.c + accept ' len = mod_firmware_load(fn, [&]data);[\n] if [^{]* {[\n] [ ]*printk(KERN_ERR "sscape:' sound/oss/sscape.c blobname '[/]sndscape[/]scope\.co[dx]' sound/oss/sscape.c accept ' trix_boot_len = mod_firmware_load(' sound/oss/trix.c blobname '\([/]etc[/]sound[/]\)\?trxpro\.bin' sound/oss/trix.c - accept ' smw_ucodeLen = mod_firwmare_load(' sound/oss/sb_common.c - blobname '\([/]etc[/]sound[/]\)\?msnd\(init\|perm\)\.bin' sound/oss/sb_common.c + accept ' smw_ucodeLen = mod_firmware_load(' sound/oss/sb_common.c + blobname '\([/]etc[/]sound[/]\)\?midi0001\.bin' sound/oss/sb_common.c + blobname '\([/]etc[/]sound[/]\)\?msnd\(init\|perm\)\.bin' sound/oss/Kconfig blob 'When the module is loaded\([^\n]\|[\n][^\n]\)*[/]pss_synth\([^\n]\|[\n][^\n]\)*' Documentation/sound/oss/PSS blob 'pss_firmware[ \n ]*This parameter\([^\n]\|[\n][^\n]\)*[/]pss_synth\([^\n]\|[\n][^\n]\)*' Documentation/sound/oss/PSS-updates - accept ' pss_synthLen = mod_firmware_load(pss_firmware' sound/oss/pss.c + accept ' pss_synthLen = mod_firmware_load(pss_firmware, (void [*]) [&]pss_synth);' sound/oss/pss.c + accept ' *if \?(\(!\|fw_load [&][&] \)\?pss_synth' sound/oss/pss.c + accept ' *if (!pss_download_boot(devc, pss_synth, pss_synthLen,' sound/oss/pss.c + accept ' *vfree(pss_synth);' sound/oss/pss.c + blob 'to allow the user \([^/"]\|[^*"][/]*\)*fir[em]ware file\([^/"]\|[^*"][/]*\)*"[^"]*"' sound/oss/pss.c blobname '\([/]etc[/]sound[/]\)\?pss_synth' sound/oss/pss.c accept ' \$(obj)[/]bin2hex pss_synth' sound/oss/Makefile accept ' *echo '"'"'static \(unsigned char [*] *\|int \)pss_synth\(Len\)\? = \(NULL\|0\);' sound/oss/Makefile @@ -2178,7 +2208,7 @@ g; sedmain=" /^$/N; -/^[\n]\?;[/][*]\\(end .*\\)\\?[*][/];$/{ +/^[\\n]\\?;[/][*]\\(end .*\\)\\?[*][/];$/{ $4; d; } @@ -2206,7 +2236,7 @@ H; g; $4 $v:read all -s/^\\(;[/][*]begin [^\n]*[\\n]\\)*//; +s/^\\(;[/][*]begin [^\\n]*[\\n]\\)*//; s/\\($bol[\n]\?;[/][*]\\(end [^\\n]*\\)\\?[*][/];\\)*$//; $v:???!blobfast /$blobfast/!b clean; @@ -2737,7 +2767,7 @@ check () { # falsepos matches to files that match it. addx () { if test -n "$1"; then - echo -n "\\|$1" >> $falsepos_name + $echo_n "\\|$1" >> $falsepos_name fi } @@ -2746,7 +2776,7 @@ check () { # the falseneg matches to files that match it. badx () { if test -n "$1"; then - echo -n "\\|$1" >> $falseneg_name + $echo_n "\\|$1" >> $falseneg_name fi } @@ -2814,10 +2844,10 @@ check () { esac # Then run through the selected action. - if test "$rm" != "rm -f" || test ! `echo "$sedmain" | wc -c` -lt 1024; then + if test "$rm" != "rm -f" || test ! `$echo "$sedmain" | wc -c` -lt 1024; then scriptname=`mktemp -t deblob-check-sedmain-XXXXXX` tempfiles="$tempfiles $scriptname" - echo "$sedmain" > $scriptname + $echo "$sedmain" > $scriptname cmd="sed -n -f \"$scriptname\"" else cmd='sed -n "$sedmain"'