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

Bug#50832: AMENDMENT] Clarify meaning of Essential: yes



On Tue, Nov 23, 1999 at 11:02:24PM +1000, Anthony Towns wrote:
> close 50832
> reopen 50832

Huh?!

> +    Since dpkg will upgrade other packages while an _essential_
> +    package is in an unconfigured state, all _essential_ packages must

I think "Since dpkg might upgrade ..." or "Since dpkg will not prevent
upgrading of ..." read a little better, and better convey the problem
at hand.  Also, you might want to be even more explicit and refer to
dpkg unpacking and/or configuring.

> +    supply all their core functionality even when unconfigured. If the
> +    package cannot satisfy this requirement it should not be tagged
> +    as essential, and any packages depending on this packages should
> +    instead have explicit Depends: or Pre-Depends: fields as appropriate.

"explicit dependency fields as appropriate."  The packaging manual is
where the Pre-Depends field is discussed in detail, and this should be
sufficient for the policy manual.

But: I just realised.  For bash (or whatever essential packages
provide /bin/sh and /bin/perl), the situation is far worse: what
happens if a package is *removed* when the symlink is not in place
(because the package is not properly configured)?  Then if the
{pre,post}rm use /bin/sh or /bin/perl, that will also fail.  And I do
not believe that dpkg pays any attention to dependencies for removing
packages, so the solution proposed above technically fails for /bin/sh
and /bin/perl.

I think that while this ammendment is appropriate, it does not solve
the problem it was (partially) trying to solve.  I think we need an
extra requirement:

There must be working /bin/sh and /bin/perl symlinks at all times.
Maintainer scripts responsible for updating one of these links
should try as hard as possible to ensure that even if they fail, a
meaningful link will still be left.

The alternative is to say that there must always be an essential
package providing /bin/sh and /bin/perl.  We can go further and say
that {pre,post}rm's must not depend on any non-"essential" package to
run, and that includes the interpreter used (if any).

Thoughts?

   Julian

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

  Julian Gilbey, Dept of Maths, QMW, Univ. of London. J.D.Gilbey@qmw.ac.uk
        Debian GNU/Linux Developer,  see http://www.debian.org/~jdg


Reply to: