Re: Comments on the "Changing the default system shell" talk
Goswin von Brederlow wrote:
in the talk you said you add a choice for /bin/sh and you add more
The choice being that the admin may dpkg-divert /bin/sh to whatever
shell he wants and he then can fix whatever breaks. Great. We already
have exactly that now. There is nothing added. No mechanism and no
assurances that things won't break.
By fixing most of the bashisms, there is a bigger assurance that nothing
will break when you do that.
You say that dash is configurable as /bin/sh via debconf but in the
next sentence you say you want dash to ship a /bin/sh link to dash. So
the deconf thing is purely a temporary thing and goes away. There
won't be a choice left. Users will just get /bin/sh pointing to dash
... by default, they can change it later on if they want to.
You say that the default /bin/sh must be an essential package as only
way to make sure it is always present. That is clearly wrong and we
have mawk/gawk as a real life example of having something always
installed (awk) while still keeping the choice open.
It must be essential as you want to make sure that /bin/sh always
exists, which is not guaranteed when another shell does not divert it
Overall I take 2 things from your talk:
1) You are removing bashisms from scripts using /bin/sh
That is a good thing and your work there is verry welcome. Thanks for
investing time there. This is actually where all the benefits really
come from. Kudos there. Everything else seems to be just window
A faster and smaller default system shell is important to a lot of our
2) You are bloating the system and essential packages list
You are simply replacing A with B. You are not adding any choice
mechanism or garanties that a /bin/sh other than dash will work. If
admins dpkg-divert /bin/sh and use another shell they will be totaly
left out in the cold with fixing any problems. Some maintainer will
just close bugreports saying the only /bin/sh is dash.
Sure, we did not solve the universe, but hey people that are really
interested in doing that, now have more chance of getting there eventually.
You say you give admins a choice to divert /bin/sh to whatever (posix)
shell they like. But you only give them a choice of adding yet another
shell. Not a choice of replacing dash. Only a choice of adding even
more. After diverting /bin/sh instead of having one useless shell we
now have 2 useless shells on the system. At least until bash becomes
The last thing we want is that people break their systems by not being
careful enough. We made sure it will be easier to get rid of bash in the
future while not going for the jump in the deep...
Will it eventually be policy that essential/required/standard packages
must not depend on bash? Because as long as something in the core
packages depends on bash it will remain non removable.
Eventually it will very probably be policy that required packages should
try to avoid depending on bash features. Currently the one in shadow is
already being taken care of and the one in libpam0g is being considered.
PS: Please be a bit more positive, we now that things are moving slowly,
but at least they are moving.