Re: POSIX shell; bash ash pdksh & /bin/sh
Santiago Vila said:
> 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.
I beg to differ. If that is indeed the case, then the policy manual
needs to be updated to reflect that.
The Policy Manual version 18.104.22.168 refers to the "Essential" flag a
number of times:
Section 2.3.4 (Dependencies) states that "It is not necessary for
other packages to declare any dependencies they have on other
packages which are marked `Essential'"
Section 2.3.6 (Base packages) states that many base packages will
be tagged essential.
Section 2.3.7 is all about essential packages, but I wish to discuss
this section separately below.
Section 3.3.4 (Scripts) states that scripts must declare dependencies
on the shell they use, unless that shell is flagged Essential. It
also -specifically- gives bash as an example of such a shell.
So all reference to essential packages (except for possibly sec.2.3.7)
only refer to the fact that other packages don't have to depend on them.
Section 2.3.7 is interesting in what it -doesn't- say:
2.3.7. Essential packages
Some packages are tagged `essential'. (They have `Essential: yes'
their package control record.) This flag is used for packages that
*essential* for a system.
Since these packages can not easily be removed (you'll have to
an extra *force option* to dpkg) this flag should only be used
absolutely necessary. A shared library package should not be tagged
*essential*--the dependencies will prevent its premature removal,
we need to be able to remove it when it has been superseded.
You must not tag any packages `essential' before this has been
discussed on the `debian-devel' mailing and a consensus about doing
that has been reached.
Please note that it doesn't define what is meant by "essential". In
essence, it uses a circular definition to define the use of the flag.
Operationally, all that I can see the policy manual saying about
essential packages is:
1) essential packages may be the target of undeclared dependencies.
2) thus, essential packages are very hard to delete.
3) because they are so hard to delete, shared libraries must
not be essential, since that would make replacing them too
4) because of these semantics, discuss it first on debian-devel.
Conversely, "required" packages have a much more concrete defintion:
`required' packages are necessary for the proper functioning
the system. You must not remove these packages or your system
become totally broken and you may probably not even be able to
use dpkg to put things back. Systems with only the `required'
packages are probably unusable, but they do have enough
functionality to allow the sysadmin to boot and install more
Some have been saying that it was OK to remove "required" packaged,
since they could always get it back with dpkg, but removing an
"essential" package could really trash the system. The definition of
"Essential" and "required" imply that the situation is really the
reverse. I would almost argue that the -names- should be reversed.
So if "essential" really means more than "will always be here, so don't
worry about dependencies", the policy manual should reflect that.
As it stands, many packages have undeclared dependencies on bash. That
seems to match perfectly with the semantics of an "essential" package.
If it's working, why change it?
Buddha Buck email@example.com
"Just as the strength of the Internet is chaos, so the strength of our
liberty depends upon the chaos and cacaphony of the unfettered speech
the First Amendment protects." -- A.L.A. v. U.S. Dept. of Justice
To UNSUBSCRIBE, email to firstname.lastname@example.org
with a subject of "unsubscribe". Trouble? Contact email@example.com