Subject: Re: Bug#216768: apt: Confirmed under Lenny with several sources and pinning

From: David Kalnischkies <[email-masked]>
Date: Mon, 2 Nov 2009 16:40:00 +0100

Hi all,

On Tue, 1 Sep 2009, Santiago Vila wrote:
> Thanks, Raphael. This is clearly a problem in apt.
Funny, i think it is a feature and i will try to describe why now. :)
(I want to do it earlier, but i somehow managed to forget it...)

2009/11/2 Ivan Vilata i Balaguer <[email-masked]>:
> I have ``apticron`` installed and since I made the
> mixed setup with pinning, it reports that ``dash`` and ``diffutils``
> are pending an upgrade, when neither of them are installed.
> It happens that both packages are essential in Squeeze,
> but not in Lenny.
A user who mixed sources very likely mixes also packages.
As a package doesn't need to depend on essential packages,
apt tries to install in a dist(ribution)-upgrade ALL essential
packages it can find in all sources to protect the user from
dependency hell and as a bonus protect the user from doing something
stupid: Removing a package which is/was/will be essential as it is
maybe required by package on this system (who know how far your
mixing goes, so better save than sorry as Ivan Vilata i Balaguer also
said indirectly in his second message).

On Tue, 1 Sep 2009, Vincent Lefevre wrote:
> I thought that the problem was more serious that it was: inconsistent
> database (since this is what it really appears to be). If the warning
> message were more detailed, one would not need to guess anything.
The message says:
"This should NOT be done unless you know exactly what you are doing!"
So it is already open to the fact that it is maybe wrong to consider
the package essential and that it is really safe to remove it,
but APT thinks it is a lot better to require the user to use special forces
(long confirm message, holds on uninstalled packages) in some cases
instead of let the user destroy his system in many more cases.
I don't see why a user could think of a "inconsistent database" after
read this message, maybe APT could say that this package
was/is/will _maybe_ an essential, but i guess this would be even more
confusing to a user. Suggestions for a better wording?
(I can't think of a better one)

The "real" bug here showed by diff (and a few other before)
is therefore something like this:
New essential package A replaces old essential package B.
(Package B is now a transitional package to A.)
The user (with mixed sources) tries to deinstall package B and
apt refuses that as it thinks B is essential - it doesn't take into
account that A provides the same functionality as B.

Could we agree on that it is a (very) minor bug?

(btw: It is questionable if A really provides the absolutely exact
functionality as B and is therefore really a full replacement but
this is nothing i want to argue about now)

Best regards / Mit freundlichen Grüßen,

David "DonKult" Kalnischkies