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

Essentialness of awk



Hello.

Several years ago it was agreed that awk would be essential (which
is currently implemented by a "Depends: awk" in base-files).

I think this should be reflected in policy in some way, because a lot
of people still use "Depends: awk" in their control fields.

Or even worse "Depends: mawk | awk" due to a lintian warning against
dependencies on virtual packages which, in this case, is completely
misleading.

I was going to propose a patch against the current policy document,
but there is a little problem:

   Since dpkg will not prevent upgrading of other packages while an
   essential package is in an unconfigured state, all essential packages
   must supply all of their core functionality even when unconfigured. If
   the package cannot satisfy this requirement it must not be tagged as
   essential, and any packages depending on this package must instead
   have explicit dependency fields as appropriate.

This paragraph was added to fix Bug#50832 but if we follow it strictly
then all the awk packages are in violation, since they use the
alternative mechanism to update the awk symlink in /usr/awk and
therefore "do not provide their core functionality until they are
configured".

Consider the following example:

* mawk is installed and awk in /usr/bin points to mawk.

* gawk is unpacked, awk still points to mawk.

* gawk is configured, awk symlink is unchanged since the priority of
gawk (10) is lower than mawk (20).

* mawk is to be removed, its prerm is executed first, this is when
awk is changed to point to gawk, which was previously "configured".

* mawk is removed.

* awk was usable at all times.


I think policy should allow this to happen.

More to the point, I don't see why we should not be able to do the
same with /bin/sh and bash/dash. As of today, is it still true that
"dpkg will not prevent upgrading of other packages while an essential
package is in an unconfigured state"? Why should dpkg unconfigure an
essential package to begin with?



Reply to: