(Note to Austin folks: I'm cc'ing this to the LSB list since they are working on a standard for Linux which will mandate things like the location and properties of /bin/sh.)
(Note to LSB folks: The Austin Common Standards Revision Group (CSRG) is a joint technical working group established to consider the matter of a common revision of ISO/IEC 9945-1, ISO/IEC 9945-2, IEEE Std 1003.1, IEEE Std 1003.2 and the appropriate parts of the Single UNIX Specification.) Donn Terry wrote in [EMAIL PROTECTED]: > When I first saw the proposal to restore #!, I thought > it was a good idea. I'm now caught up in a discussion > about the path to the shell in the gcc list (the key > elements are attached). #! is closely tied to the path > to the shell (or rather its lack). I recognize that > the "system configuration" discussion addresses the > problem, if a bit obliquely. However, as you can > infer from the mail discussion, the very bright (if > sometimes opinionated, but aren't we all) folks in > gcc land are having problems finding the POSIX shell, > and thus aren't using it. > ... > I believe that #! as it currently stands will only help > make this situation worse: building the pathname to a > shell into scripts will tend to lock in particular pathnames, > and very much in particular, the minimal Bourne shell. > > I see two solutions to this, neither of which I really like: > 1) Change #! so it in some way honors some sort of user-controlled > path analog. (Don't ask me how... I can imagine all sorts of > things but they all give me the twitches.) > 2) Require that all systems claiming conformance to the standard > provide one command in ALL environments that lets the user bootstrap > into a conforming environment. Musing on this problem, I guessed that '/bin/posixsh' was a reasonable name for the posix-compliant shell, and did a web search for posixsh. http://www.debian.org/Lists-Archives/lsb-spec-9812/msg00003.html is a related thread. One message in that thread, http://www.debian.org/Lists-Archives/lsb-spec-9812/msg00022.html says: > > If we decide that /bin/sh is an XPG3 shell, then we need to decide > > where the POSIX confirming shell will be placed. The options include: > > > > /bin/posixsh (or another name, would be ugly if used for more programs) > > /usr/xpg4/bin/sh (Solaris) > > /usr/posix/bin/sh > > /opt/posix/bin/sh > > I'd favour /usr/posix/bin/sh > since there may be other utilities where there is a clash > with existing behaviour that we deem serious enough to > support two different versions. Alan Cox seemed to favor /bin/posixsh in http://www.debian.org/Lists-Archives/lsb-spec-9812/msg00012.html Following Solaris's lead with xpg4, /usr/posix/bin/sh seems like a reasonable proposal. What do the LSB folks think about this? Is it beyond the scope of the Austin group to suggest this practice? - Dan p.s. Oddly enough, it looks like Windows might support #! somehow, see http://sourceware.cygnus.com/ml/cygwin/1999-05/msg00389.html p.p.s. For reference, http://www.freestandards.org/ has a link to the relevant Linux standards that will specify location of shells. -- Entia non sunt multiplicanda praeter necessitatem.
