bash4 breaks firmware update scripts (buildVer.sh: file not found)

Dominik L. Borkowski dom at vbi.vt.edu
Wed Mar 3 09:18:49 CST 2010


Hello,

It seems that bash4 breaks most of the scripts used by SUU, and I was 
wondering if anybody has suggestions on how to fix permanently.

Behavior:

* extract any firmware bin, for example NETW_FRMW_LX_R246418.BIN
* run spsetup.sh:
./spsetup.sh 
./spsetup.sh: line 124: source: buildVer.sh: file not found
./spsetup.sh: line 1471: source: PIEConfig.sh: file not found

another example:

./spsetup.sh
Collecting inventory...
./PV2XX: line 4: source: loadpath.sh: file not found
./PV2XX: line 5: source: MAKEDEV.sh: file not found


It seems that with bash 4, 'source' no longer searches current directory. 
There are a couple of dirty hacks that seem to work:

1) change !/bin/sh to !/bin/bash in spsetup.sh
2) provide './' path for all the sourced scripts in spsetup.sh
typeset -r _BUILDVER="./buildVer.sh"

I'm not sure whether there is a better way, other than trying to downgrade to 
bash3. Considering that eventually other distributions will move to bash4, I 
was wondering if this ought to be fixed upstream.


Here's a relevant post regarding bash4 on their mailing list:

http://www.mail-archive.com/bug-bash@gnu.org/msg05840.html

Unfortunately, setting $PATH to include '.' doesn't seem to work.

Cheers!
-- 
Dominik L. Borkowski - Senior Systems Administrator
Virginia Bioinformatics Institute - www.vbi.vt.edu



More information about the Linux-PowerEdge mailing list