Why Indiana uses bash
Thursday Nov 01, 2007
One the indiana-discuss and caiman-discuss lists a poster wrote:
> /bin/sh -c 'print ${.sh.version}'
> /bin/sh: bad substitution
>
> I hoped Indiana would improve things and deliver the ksh 93 as
> /bin/sh, but no, it is just the same bourne shell as in Solaris. No
> improvement. Indiana doesn't improve things for developers.
>
> The choice for /bin/bash as user shell for 'Jack' and 'root' is a SHAME.
As I think this is representative of a broader set of issues in OpenSolaris, I decided to post this as a blog entry rather than just email to the lists. Let me explain how this "choice" came to be...
When the OpenSolaris project opened a couple of years ago, Moinak Ghosh and friends built a distro called BeleniX, a very nice piece of work which I respect even more after what we've gone through in building this preview. One of the things they developed was the tools for building a live CD, and in that kit they'd made a number of choices, which included that bash was the shell for root. Sensible, since ksh93 wasn't ported at that time.
A bit later, I started collaborating with Moinak on bringing the live CD technology to the Solaris base, in the OpenSolaris Live Media project. We worked in the background on it for a year or so, tweaking it and updating it for later Nevada builds as I worked on the political end of getting Solaris management to buy into this as our future approach. I was doing this project in my spare time, as was Moinak, and we didn't really have any other particularly active contributors other than Anil Gulecha (who did the original USB work) and a couple of patches I got from others. For our purposes, bash was fine, it worked, and I didn't need to bother changing it, so I didn't.
When Ian came along and got Sun management to buy into doing Indiana with a preview in October and including the new installer, live CD, new packaging system, we were already working in that direction, but by the time we got staffing freed up from other things, we had about 10 weeks to get to this preview release. You don't do that by making lots of random changes and creating lots of new code (IPS is an exception to the latter) so we used what we had, cobbling things together, and that meant we borrowed from Live Media to create the Distribution Constructor, which used bash. And in the last 4 weeks of 14 hour days, this wasn't a priority to change, so it didn't.
The moral of the story above is that if you get involved and contribute code to projects, you *will* make decisions in that code which will show up in distributions; Live Media would have welcomed contributions along the way. We need coders, not managers, as Sun pays plenty enough of them already. If you're going to pass final judgment on this distro based on this preview, then that's unfortunate; we've done some good work, I think, but we've also cut a *lot* of corners to get to where we are, by focusing on the things we knew we had to do and leaving the other things for later. That won't be quite so necessary going along, but my years of delivering projects tells me we're going to postpone something from every milestone, and make someone unhappy every single time, so I'm disappointed by the tone of some of these comments, but not surprised. The code for much of this is out there now, between the Distribution Constructor and IPS repositories, and now is the time to start offering patches. We'll welcome them.











You and the others did a really good work in ...
"The moral of the story above is that if...
I like having the bash as root-shell especially on...
Milan, were this project at a stage where it was r...
You don't articulate the reason that bash is a sha...
if you want to make opensolaris/indiana/whateveryo...
Bash is indeed the most popular shell in the ...