On Sun, Feb 10, 2008 at 02:34:37PM -0500, Thomas Bushnell BSG wrote:
On Sun, 2008-02-10 at 10:57 -0800, Russ Allbery wrote:Thomas Bushnell BSG <email@example.com> writes: > Dash has a serious bug which is causing grief. > > The problem is that it overrides the system's "test" command (in > Debian, /usr/bin/test and /usr/bin/[) and does so in a way which is > inconsistent with the Debian versions.
As far as I can tell, /usr/bin/test and /usr/bin/[ are completely useless, because none of bash, dash, posh, or zsh use them. Maybe pdksh does, but that's pretty much the list of shells that could be coerced into being /bin/sh. I propose we remove those executables from coreutils if it turns out that they are never executed.
The only builtin which we identified needed to be on that list was test itself, and the problem here was that the deviations in posh's implementation of test would pose serious problems.
The standard posh follows is Debian Policy. If you change Policy, I am pretty sure that posh will follow. Policy currently specifies a set of features that are required above and beyond minimal POSIX standards (echo -n).
Note that people often like to use local, so if that's something that people think should be implemented, then you might want to add that to the list as well. IMHO, all five of the shells listed above should be able to be used successfully as /bin/sh.
That could be solved by saying something like "test may be builtin in inconsistent ways, provided that X, Y, and Z features still are supported." That could be written (by careful choice of X, Y, and Z) to enable bash and dash to pass muster and still avoid the problems thatsupposedly are raised with posh.
If you do not like posh's behavior, then please propose an amendment to policy to add additional features required by shells implementing /bin/sh. I am certain posh will implement those features.
The other solution--which may be an acceptible short-term one, is to specify explicitly that shell scripts must work with Debian bash and Debian dash. I have no objection to that, and continue to think it is the simplest approach.
I think this is ridiculous. One of the benefits of Debian is the huge amount of choice. We provide at least 10 window managers, 6 desktop environments, and some insanely large amount of music players. People should be free to choose the shell that best fits their needs, and providing an API (a list of required features) is far superior to mandating an implementation.
I don't see what your problem is with posh. It serves a legitimate purpose: providing the bare minimum required by Policy. It's useful as a test of Policy-compliance, and not much more, which is fine.
 I believe that Clint Adams said as much himself. I have no opinion on this, other than that I want udev to work with posh.
-- brian m. carlson / brian with sandals: Houston, Texas, US +1 713 440 7475 | http://crustytoothpaste.ath.cx/~bmc | My opinion only troff on top of XML: http://crustytoothpaste.ath.cx/~bmc/code/thwack OpenPGP: RSA v4 4096b 88AC E9B2 9196 305B A994 7552 F1BA 225C 0223 B187
Description: Digital signature