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

Re: POSIX shell; bash ash pdksh & /bin/sh


On 4 Aug 1998, Manoj Srivastava wrote:

> Hi,
> >>"Santiago" == Santiago Vila <sanvila@unex.es> writes:
>  Santiago> I don't know what you mean here, but I would ask you to be
>  Santiago> consistent.  If you think we have broken a promise with
>  Santiago> procps, please start another thread about restoring procps
>  Santiago> his essential flag.
> 	I shall not oppose that. However, I am too drained to get into
>  a project of that magnitude. Feel free.

No, you are the one that would have to feel free, I am not in favour of
restoring the essential flag to procps, since I do not think we have
broken any promise.

We can not promise that the complete set of Depends: Pre-Depends:
essential flags, Priorities, etc. will always be the same through
sucessive Debian releases. Did anyone notice that upgrading to Debian 2.0
and removing all the oldlibs afterwards breaks third-party libc5-based
software not packaged in .deb format? Did we break any promise for that?
I don't think so. We assume that the users know what they are doing, and
we want to give them as much freedom as possible, as long as the integrity
of the system does not break.

The role of the essential flag is not to avoid breaking promises, it is to
avoid the user to break their system, leaving it in an unrecoverable
state. The "Priority: required" is a better way to say "such and such is
likely to be in the system". For example, do you think it is "safe" for
third-party software to assume that a Linux system has m4 installed?
I think so, but this does not mean m4 has to be essential, because I can
dpkg -i m4.deb very easily if I ever remove it by mistake (i.e. without
realizing that I could have third-party software which needs it). For
packages which belong to the system and that we package, the Depends:
field on packages that depend on m4 do already ensure that I will not
break the system if I try to remove it.

If the essentialness of bash is replaced by a lot of Depends: lines in
packages using /bin/bash, removing bash from the system would be *exactly*
as safe or as dangerous as it is now. The only difference is that now,
bash can not be removed because it has simply the essential flag, which
means that we have an *unknown* number of packages using /bin/bash
without a Depends: line.

If we make bash non-essential, and add the required Depends: lines, then
you will be surely also unable to remove bash from your system (as
difficult as removing libc6, which is not essential either ;-), since you
will still have (the same) packages that depend on /bin/bash, but at least
you will know *exactly* why you can't do it, or what exactly you would
break if you --force-depends. Considering that someone that wants to
remove bash will do it anyway with or without --force-remove-essential, it
would be much better (safer) to know exactly what would break than not to
know it.

I'm sure that making bash non-essential would encourage many people to
write POSIX-compliant shell scripts, as policy recommends, since people do
not usually want to add Depends: lines that, with a little or no work at
all, could be avoided, so it would be a step in the right direction
(avoiding the gratuitous use of /bin/bash).

And no, it would not be such a difficult task, in short it would be just a
matter of adding a few Depends: lines here and there (the detailed
roadmap is in a recent post by Raul).

Version: 2.6.3ia
Charset: latin1


To UNSUBSCRIBE, email to debian-devel-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

Reply to: