[Debian-ha-maintainers] Bug#581132: pacemaker: bashism in /bin/sh script

Raphael Geissert atomo64 at gmail.com
Tue May 11 05:57:22 UTC 2010


Package: pacemaker
Severity: important
Version: 1.0.8+hg15494-4
User: debian-release at lists.debian.org
Usertags: goal-dash

Hello maintainer,

While performing an archive wide checkbashisms (from the 'devscripts' package)
check I've found your package containing a /bin/sh script making use
of a bashism.

checkbashisms' output:
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/HealthSMART line 119
> (let ...):
>     let lower_yellow_limit=${OCF_RESKEY_temp_lower_limit}+5
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/HealthSMART line 127
> (let ...):
>     let upper_yellow_limit=${OCF_RESKEY_temp_upper_limit}-5
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/HealthSMART line 205
> (alternative test command ([[ foo ]] should be [ foo ])):
>	    if [[ ${TEMP} -lt ${lower_red_limit} ]] ; then
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/HealthSMART line 211
> (alternative test command ([[ foo ]] should be [ foo ])):
>	    if [[ $TEMP -gt ${upper_red_limit} ]] ; then
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/HealthSMART line 217
> (alternative test command ([[ foo ]] should be [ foo ])):
>	    if [[ $TEMP -lt ${lower_yellow_limit} ]] ; then
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/HealthSMART line 223
> (alternative test command ([[ foo ]] should be [ foo ])):
>	    if [[ $TEMP -gt ${upper_yellow_limit} ]] ; then
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 110
> (echo -e):
>     echo -e "$name:\t$value"
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 127
> (${parm/?/pat[/str]}):
>	      cpu_type=${cpu_type/*: /}
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 130
> (${parm/?/pat[/str]}):
>	      cpu_cores=${cpu_cores/*: /}
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 135
> (${parm/?/pat[/str]}):
>		  cpu_type=${cpu_type/*: /}
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 137
> (${parm/?/pat[/str]}):
>		  cpu_speed=${cpu_speed/*: /}
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 199
> (${parm/?/pat[/str]}):
>	  if [ $mem != ${mem/./} ]; then
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 200
> (${parm/?/pat[/str]}):
>	      mem_before=${mem/.*/}
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 201
> (${parm/?/pat[/str]}):
>	      mem_after=${mem/*./}
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 202
> ('$[' should be '$(('):
>	      mem=$[mem_before*1024]
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 206
> ('$[' should be '$(('):
>		  mem=$[mem+100*$mem_after]
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 208
> ('$[' should be '$(('):
>		  mem=$[mem+10*$mem_after]
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 210
> ('$[' should be '$(('):
>		  mem=$[mem+$mem_after]
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 212
> (${foo:3[:1]}):
>		  mem_after=${mem_after:0:3}
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 213
> ('$[' should be '$(('):
>		  mem=$[mem+$mem_after]
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 217
> (${parm/?/pat[/str]}):
>	  mem=${mem/.*/}
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 221
> (${parm/?/pat[/str]}):
>	  mem=${mem/.*/}
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 225
> (${parm/?/pat[/str]}):
>	  mem=${mem/.*/}
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 229
> (${parm/?/pat[/str]}):
>	  mem=${mem/.*/}
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 232
> (${parm/?/pat[/str]}):
>	  mem=${mem/.*/}
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 243
> ('$[' should be '$(('):
>	  mem=$[mem+50]
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 244
> ('$[' should be '$(('):
>	  mem=$[mem-$mem_round]
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 247
> ('$[' should be '$(('):
>	  mem=$[mem+100]
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 248
> ('$[' should be '$(('):
>	  mem=$[mem-$mem_round]
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 261
> (${parm/?/pat[/str]}):
>	  disk=${disk/.*/}
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 265
> (${parm/?/pat[/str]}):
>	  disk=${disk/.*/}
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 269
> (${parm/?/pat[/str]}):
>	  disk=${disk/.*/}
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 273
> (${parm/?/pat[/str]}):
>	  disk=${disk/.*/}
> possible bashism in ./usr/lib/ocf/resource.d/pacemaker/SysInfo line 277
> (${parm/?/pat[/str]}):
>	  disk=${disk/.*/}
> possible bashism in ./usr/lib/heartbeat/hb2openais.sh line 387 (let ...):
>	  let sw=sw+1
> possible bashism in ./usr/lib/heartbeat/hb2openais.sh line 390 (let ...):
>	  let sw=sw-1
> possible bashism in ./usr/lib/heartbeat/hb2openais.sh line 444 (let ...):
>			  let local_mcastport=$local_mcastport+1
> possible bashism in ./usr/lib/heartbeat/hb2openais.sh line 529 (let ...):
>	  let ring=$ring+1
> possible bashism in ./usr/lib/heartbeat/hb2openais.sh line 794 (let ...):
>		  let rc=$rc+$?


Not using bash (or a Debian Policy compliant shell interpreter that doesn't
provide such an extra feature) as /bin/sh is likely to lead to errors or
unexpected behaviours. Please be aware that dash is now the default /bin/sh.

Hints about how to fix bashisms can be found at:
https://wiki.ubuntu.com/DashAsBinSh

If you still don't know how to fix the bashisms don't hesitate to reply to
this email, or tag the bug as 'help'.

Thank you,
Raphael Geissert





More information about the Debian-ha-maintainers mailing list