Re: Moving bash from essential/required to important?
Steve Langasek <email@example.com> writes:
> On Mon, Apr 04, 2011 at 06:04:20PM +0200, Luk Claes wrote:
>> bash is not the default system shell anymore. It's now only the default
>> user shell. As such it is not required for a sysadmin to boot and
>> install software. Besides that some users would like to get rid of bash
>> in their environment which is obviously not easily done atm.
>> The most obvious reason to not degrade bash to Priority: important is
>> obviously that one needs to declare a dependency on bash when it's used
>> in a package. Which means quite some packages will need to be changed.
>> What do others think of moving bash to important (required and important
>> are part of the base system)?
> I think we should avoid doing this for quite a different reason from the
> other responders.
> Consider that 'base-passwd' and 'login' are also part of the essential set.
> Why? Because being able to log in as root is part of the "minimal set of
> functionality that must be available and usable on the system at all times".
> So if we drop bash from essential, how do we guarantee that root can log in?
> Do we set root's default shell to /bin/sh instead? I don't think anyone
> would be happy with that except those people who already change it to zsh
> anyway. :-)
So why not provide a system shell and a login shell? Both could be
provided by dash or bash (or other shells that proove to be compatible
like zsh as login shell). But the system shell would default to dash
while the login shell defaults to bash.
Both system shell and login shell would be essential but neither dash
nor bash needs to be. Like awk being essential but neither mawk nor gawk
Imediate use cases would be twofold:
1) embedded systems that can suffer through dash as login shell
2) users that want zsh instead of bash as login shell anyway
> If login worked consistently in the face of the configured shell going
> missing (automatically falling back to /bin/sh for root), then I think it
> would be worthwhile to do the work necessary to remove bash from the
> essential set. But until then, the primary purpose of Essential, to me, is
> the "minimal set guaranteed to be usable" aspect, not the "you don't have to
> depend on it" aspect.
So lets start with saying that things that use bash need to depend on it
so we will have the option to make bash not essential in the
future. This will take some time to do and a release cycle. Worst case
we get a bunch of depends on bash that aren't needed.