[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: