#! /bin/sh
-# deblob-check version 2011-07-20
+# deblob-check version 2011-07-24
# Inspired in gNewSense's find-firmware script.
# Written by Alexandre Oliva <lxoliva@fsfla.org>
defsnc 'static[ ]DDR_SET_NODE[ ]asT3\(LP\)\?B\?_DDRSetting\(80\|100\|133\|160\)MHz\[\][ ]\?=' drivers/staging/bcm/DDRInit.c
blobname '\([/]lib[/]firmware[/]\)\?macxvi200\.bin' drivers/staging/bcm/Macros.h
accept '-[ ]On-chip[ ]firmware[ ]loaded[ ]using[ ]standard[ ]request_firmware[(][)]' 'drivers/staging/brcm80211\(/brcmfmac\)\?/README'
- blobname 'brcm[/]bcm43xx\(_hdr\)-0[-0-9]*\.fw' drivers/staging/brcm80211/README
- blobname 'brcm[/]bcm4329-fullmac-4[-0-9]*\.bin' drivers/staging/brcm80211/brcmfmac/README
+ blobname 'brcm[/]bcm43xx\(_hdr\)\?-0[-0-9]*\.fw' drivers/staging/brcm80211/README
+ blobname 'brcm[/]bcm4329-fullmac-4[-0-9]*\.\(bin\|txt\)' drivers/staging/brcm80211/brcmfmac/README
blob 'Firmware[ ]installation[\n]=\+\([\n]\+[^\n=][^\n]*\)\+\([/]lib[/]firmware[/]brcm\|\.fw\)[^\n]*\([\n][^\n=][^\n]*\)*\([\n][\n][^=\n][^\n]*[\n][^=\n][^\n]*\([\n][^\n=][^\n]*\)*\)*' 'drivers/staging/brcm80211\(/brcmfmac\)\?/README'
defsnc '[ ]u16[ ]nrate_list\[4\]\[8\][ ]=' drivers/staging/brcm80211/brcmfmac/wl_iw.c
defsnc 'static[ ]chan_info_basic_t[ ]chan_info_all\[\][ ]=' drivers/staging/brcm80211/phy/wlc_phy_cmn.c
blobname 'wm8958_\(enh_eq\|mbc\(_vss\)\?\)\.wfw' sound/soc/codecs/wm8958-dsp2.c
blobname 'htc_\(7010\|9271\)\.fw' drivers/net/wireless/ath/ath9k/hif_usb.c
blobname 'rtl_nic[/]rtl8168e-[12]\.fw' drivers/net/r8169.c
+ defsnc '[ ]static[ ]const[ ]struct[ ]ephy_info[ ]e_info_8168e\[\][ ]=' drivers/net/r8169.c
blobname 'ti-connectivity[/]wl128x-fw\(-ap\)\?\.bin' drivers/net/wireless/wl12xx/wl12xx.h
defsnc 'static[ ]const[ ]u8[ ]tg3_tso_header\[\][ ]=' drivers/net/tg3.c
blobname 'ath6k[/]AR6003[/]hw2\.1\.1[/]\(otp\|athwlan\|athtcmd_ram\|device\|data\.patch\|endpointping\|bdata\.\(SD3[12]\|WB31\|CUSTOM\)\)\.bin' drivers/staging/ath6kl/os/linux/include/ar6000_drv.h
accept '[ ]nvc0_graph_destroy_fw[(]&priv->fuc4\(09\|1a\)[cd][)][;]' drivers/gpu/drm/nouveau/nvc0_graph.c
accept '[ ]\(if[ ][(]\|[ ][ ][ ][ ]\)nvc0_graph_create_fw[(]dev[,][ ]["]fuc4\(09\|1a\)[cd]["][,][ ][&]priv->fuc4\(09\|1a\)[cd][)]' drivers/gpu/drm/nouveau/nvc0_graph.c
blobname 'nouveau[/]\(nv%02x_\)\?%s' drivers/gpu/drm/nouveau/nvc0_graph.c
+ blobname 'radeon[/]SUMO2\?_\(pfp\|me\)\.bin' drivers/gpu/drm/radeon/r600.c
+ blobname 'iwlwifi-\(105\|20[03]0\)-' drivers/net/iwlwifi/iwl-2000.c
+ blobname '__stringify[(]api[)][ ]["]\.ucode["]' 'drivers/net/iwlwifi/iwl-\(3945.h\|\(4965\|[1256]000\)\.c\)'
;;
*/*freedo*.patch | */*logo*.patch)
continue
if verbose:
- print 'looking for matches'
+ print('looking for matches')
sfilenames = filenames
while filenames != None:
if filenames[1] is None:
- print filenames[0]
+ print(filenames[0])
else:
- print filenames[0] + ' within'
+ print(filenames[0] + ' within')
filenames = filenames[1]
filenames = sfilenames
blobs = falses = 0
while 1:
if verbose:
- print 'found match'
+ print('found match')
what = match.lastgroup
if what == 'cblob':
- if verbose: print 'match is a blob context'
+ if verbose: print('match is a blob context')
pend = s.find ('\n', match.end()) + 1
if pend == 0:
pend = len(s)
p = match.start() + 1
- blob_p = 2
+ blob_p = 2
else:
blob_p = what == 'blob'
assert blob_p or what == 'falsepos'
if blob_p:
- if verbose: print 'match is a blob'
+ if verbose: print('match is a blob')
blobs += 1
else:
- if verbose: print 'match is a false positive'
+ if verbose: print('match is a false positive')
falses += 1
if blob_p and replace_blob or not blob_p and replace_falsepos:
if not print_nomatch:
sfilenames = filenames
while filenames != None:
- print '::: ' + filenames[0] + ' :::'
+ print('::: ' + filenames[0] + ' :::')
filenames = filenames[1]
filenames = sfilenames
sys.stdout.write (s[pp:pend])
if list_blob and blobs or list_falsepos and falses:
while filenames != None:
if filenames[1] is None:
- print filenames[0]
+ print(filenames[0])
else:
- print filenames[0] + ' within'
+ print (filenames[0] + ' within')
filenames = filenames[1]
exit (1)
sys.stdout.write(s[pp:])
if verbose:
- print 'no further matches'
+ print('no further matches')
s = '\n'
filenames = nextfilenames