[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



Hi,
>>"Herbert" == Herbert Xu <herbert@gondor.apana.org.au> writes:

Herbert> Manoj Srivastava wrote:
>> Hi, "Herbert" == Herbert Xu <herbert@gondor.apana.org.au> writes:
>> 
Herbert> cvs-inject and cvs-upgrade seems to work with ash (though I
Herbert> didn't test them thoroughly) so they probably should switch
Herbert> to #!/bin/sh.
>>  Yes, but as bin/bash is essential, and they do have the magic
>> bytes at the start (#!/bin/bash), I do not think there is a serious
>> problem. The code is still under development, and I do not want to
>> be worried about when it stops working.

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. Nothhing
 says I have to use /bin/sh. In fact, it sauys, if in doubt, use
 /bin/bash. I shall do so, since I do not want to worry about whether
 my changes tomorrow shall fail when /bin/sh is not bash!


	I have no idea why you are on this crusade; but leave my
 packages out of the /bin/sh politics. Or change policy.

>> The point is, as /bin/bash scripts they shall work on all Debian
>> systems; /bin/sh that would depend on how compatible /bin/sh is to
>> bash. Why add in another potential point of failure?

Herbert> BTW, #!/bin/bash is not really posix compliant unless you do
Herbert> set -o posix.

	Who cares?

	I code with /bin/bash. It is essential. Unless you can point
 me to the line in policy where it says theat one must use /bin/sh as
 the shell; this is not going to change.

	I am again closing this bug. Change policy if you want to see
 this changed.

	manoj
-- 
 "Hey Ivan, check your six." Sidewinder missile jacket patch, showing
 a Sidewinder driving up the tail of a Russian Su-27
Manoj Srivastava  <srivasta@acm.org> <http://www.datasync.com/%7Esrivasta/>
Key C7261095 fingerprint = CB D9 F4 12 68 07 E4 05  CC 2D 27 12 1D F5 E8 6E



Reply to: