On Thu, 2014-10-02 at 11:48 +0200, Thorsten Glaser wrote: > This is wrong. Every script starting with #!/bin/sh must work with a > POSIX shell that supports “local” and “echo -n” (Policy §10.4).
Solid, working software is hard enough to produce. A policy requiring something you can't test for makes it near impossible. IMO, if Debian has decided the in the default case /bin/sh ==> dash, then the policy should say "#!/bin/sh scripts" must work with dash. It then becomes trivial for Developers to test their code conforms with policy. If we allow /bin/sh to be linked to other shells, policy should say those shells must implement all the features /bin/dash implements so that any script that works with dash must also work with them. As is stands, the one thing you can guarantee we will get from our policy saying "#!/bin/sh" scripts work with a shell that does not exist and can't be tested against is scripts that have never been tested against that policy. If Debian really wants to implement the policy as described, then it should do the work required to produce robust software that conforms with it. In this case that would mean producing a shell that behaves as described, which we make /bin/sh by default. Perhaps a flag to dash stripping all of the features not described in SUSv3 features would suffice.
signature.asc
Description: This is a digitally signed message part