Re: Bug#19048: cvs-buildpackage: they should use /bin/sh and not bash
-----BEGIN PGP SIGNED MESSAGE-----
On 6 Mar 1998, Manoj Srivastava wrote:
> Herbert> Yes but unless you actually require any non-POSIX features,
> Herbert> you should use /bin/sh (this is specified by the policy).
> Herbert> And currently I don't see anything like that in your scripts.
>
> Where? I do not see this in policy.
> ______________________________________________________________________
> The standard shell interpreter ``/bin/sh'' may be a symbolic link to
> any POSIX compatible shell. Thus, shell scripts specifying ``/bin/sh''
> as interpreter may only use POSIX features. If a script requires
> non-POSIX features from the shell interpreter, the appropriate shell
> has to be specified in the first line of the script (e.g.,
> ``#!/bin/bash'') and the package has to depend on the package
> providing the shell (unless the shell package is marked `Essential',
> e.g., in the case of bash).
>
> Restrict your script to POSIX features when possible so that it may
> use `/bin/sh' as its interpreter. If your script works with ash, it's
> probably POSIX compliant, but if you are in doubt, use `/bin/bash'.
> ______________________________________________________________________
>
> Where does it say I *have* to use /bin/sh? It tells me to
> stick to POSIX features so it _could_ be used with /bin/sh. Nothing
> says I have to use /bin/sh.
As far as I know, "Restrict" in the above paragraph is a verb in
imperative form.
There is no point in trying to make a script POSIX compliant "so that it
may use `/bin/sh' as its interpreter" if you do not end up actually
setting /bin/sh as its interpreter when it is possible to do so.
I think the policy is very clear about this, since it says at the very
beginning: "The *standard* shell interpreter ``/bin/sh'' ..."
This means /bin/sh is the rule and /bin/bash should be the exception. The
policy also says when you have to use the exception: Only when the script
uses non-POSIX features. It is true that policy says "in doubt, use
/bin/bash", but if somebody tells you it works with ash, I think you
should believe him at least.
> I have no idea why you are on this crusade; but leave my
> packages out of the /bin/sh politics. Or change policy.
The policy have already been changed to encourage /bin/sh over /bin/bash.
-----BEGIN PGP SIGNATURE-----
Version: 2.6.3ia
Charset: latin1
iQCVAgUBNQEzBSqK7IlOjMLFAQFA1wQApHqjHDmkxtjJTHzcsJMpBXImasklweN/
6iUPP0MIICFkTuYzdVneQwSTmg3Jlc7AL35zmB2Glk0jhZ5h4T1xi0cv7ucJfja7
7QrngAf92gCYV/VASbeyBiVJ2Wh9P933qjt4XmyhUdYIxLMcuE1+k0f4VkYthIyV
EBAI1UnaE0c=
=IPbN
-----END PGP SIGNATURE-----
Reply to: