[openstack-dev] [tripleo] /bin/bash vs. /bin/sh

Chris Jones cmsj at tenshu.net
Mon Apr 14 18:24:57 UTC 2014


Hi

Apart from special cases like the ramdisk's /init, which is a script that
needs to run in busybox's shell, everything should be using bash. There's
no point us tying ourselves in knots trying to achieve POSIX compliance for
the sake of it, when bashisms are super useful.

Cheers,

Chris


On 14 April 2014 17:26, Ben Nemec <openstack at nemebean.com> wrote:

> tldr: I propose we use bash explicitly for all diskimage-builder scripts
> (at least for the short-term - see details below).
>
> This is something that was raised on my linting changes to enable set -o
> pipefail.  That is a bash-ism, so it could break in the diskimage-builder
> scripts that are run using /bin/sh.  Two possible fixes for that: switch to
> /bin/bash, or don't use -o pipefail
>
> But I think this raises a bigger question - does diskimage-builder require
> bash?  If so, I think we should just add a rule to enforce that /bin/bash
> is the shell used for everything.  I know we have a bunch of bash-isms in
> the code already, so at least in the short-term I think this is probably
> the way to go, so we can get the benefits of things like -o pipefail and
> lose the ambiguity we have right now.  For reference, a quick grep of the
> diskimage-builder source shows we have 150 scripts using bash explicitly
> and only 24 that are plain sh, so making the code truly shell-agnostic is
> likely to be a significant amount of work.
>
> In the long run it might be nice to have cross-shell compatibility, but if
> we're going to do that I think we need a couple of things: 1) Someone to do
> the work (I don't have a particular need to run dib in not-bash, so I'm not
> signing up for that :-) 2) Testing in other shells - obviously just
> changing /bin/bash to /bin/sh doesn't mean we actually support anything but
> bash.  We really need to be gating on other shells if we're going to make a
> significant effort to support them.  It's not good to ask reviewers to try
> to catch every bash-ism proposed in a change.  This also relates to some of
> the unit testing work that is going on right now too - if we had better
> unit test coverage of the scripts we would be able to do this more easily.
>
> Thoughts?
>
> Thanks.
>
> -Ben
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>



-- 
Cheers,

Chris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20140414/bd97f132/attachment.html>


More information about the OpenStack-dev mailing list