RFR: 8011350 : hgforesth.sh fails if sh is not bash

Mike Duigou mike.duigou at oracle.com
Wed Apr 3 23:12:40 UTC 2013


On Apr 3 2013, at 16:09 , David Holmes wrote:

> On 4/04/2013 1:56 AM, Mike Duigou wrote:
>> An alternative has been suggested: convert the hgforest.sh script to a bash script. I have tested this alternative on unbuntu linux 11.04, solaris 10u9, MacOS 10.7 and cygwin 1.7.17. This seems like less risk and there doesn't seem to be a compelling reason to stick with classic sh.
>> 
>> I have prepared an alternate webrev here:
>> 
>> http://cr.openjdk.java.net/~mduigou/JDK-8011350/1
> 
> Looks good to me.

Another version with feedback from David Kattleman coming momentarily.

> 
> Aside: your webrev doesn't include a patch file! Is this something the updated webrev has lost ???

It's now 'jdk.changeset' if it's a valid hg changeset. This was part of a fix by Jim Gish so that patches from webrevs could be directly applied and pushed.

Mike

> 
> David
> 
>> We could still consider the original webrev if using bash turns out to have unexpected issues.
>> 
>> Mike
>> 
>> On Apr 2 2013, at 20:03 , Mike Duigou wrote:
>> 
>>> Hello all;
>>> 
>>> Further testing on JDK-8011342 revealed that hgforest.sh can fail if the sh shell is not bash. The problem appears to be due to mixing of -o -a and ! in [] test expressions.
>>> 
>>> I have prepared a webrev here:
>>> 
>>> http://cr.openjdk.java.net/~mduigou/JDK-8011350/0/webrev/common/bin/hgforest.sh.udiff.html
>>> 
>>> This converts all of the potentially problematic [ expr -o expr ] [ expr -a expr ] and [ expr -{o|a} ! expr ] to use "test". My conversions are based on the advice of the autotools chapter on "Writing portable Bourne Shell" (http://sourceware.org/autobook/autobook/autobook_208.html#SEC208) for avoiding potential problems.
>>> 
>>> The other option is just to require bash which is already required by the new build process.
>>> 
>>> Mike
>> 




More information about the build-dev mailing list