[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Comments on the "Changing the default system shell" talk



Goswin von Brederlow wrote:
Hi,

Hi

in the talk you said you add a choice for /bin/sh and you add more
freedom.

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
period.

... 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 properly.

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
dressing.

A faster and smaller default system shell is important to a lot of our users.

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
non essential.

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.

Cheers

Luk

PS: Please be a bit more positive, we now that things are moving slowly, but at least they are moving.


Reply to: