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

Bug#820860: Apt sees versioned suggestions as recommends or soft depends



Control: retitle -1 apt: deal better with non-co-installable essentials
Control: severity -1 minor

On Thu, Apr 14, 2016 at 11:06:58AM +0100, Klaus Ethgen wrote:
> Investigating (0) dash-mksh [ amd64 ] < none -> 7 > ( shells )
> Broken dash-mksh:amd64 Kollidiert mit on dash [ amd64 ] < 0.5.8-2.2 > ( shells )
>   Considering dash:amd64 5212 as a solution to dash-mksh:amd64 5206
>   MarkKeep dash-mksh [ amd64 ] < none -> 7 > ( shells ) FU=0
>   Holding Back dash-mksh:amd64 rather than change dash:amd64

This dash-mksh package is from a third-party repository (tg's mirbsd)
and is tagged as essential – as such apt is trying to install this new
essential package (as everything in this repository implicitly depends
on it, so it must be installed on your system to use this repository),
but later decides that it isn't going to anyhow (as it collides with
another essential package: dash and keeping dash is deemed more
important than installing dash-mksh [and therefore removing dash]).

At this point apt will have marked mksh (which is a dependency of
dash-mksh) for installation already through and reverting decisions
isn't easy…

So we deploy a little trick: We rely on the autoremover to clean up the
mess at the end by removing the unneeded packages again from the
solution. That works good enough usually but in your case the Suggests
makes the autoremover consider this package as needed (as it satisfies
a suggests and the autoremover isn't allowed to break suggests by
default).

As a solution for you, you might want to change your preferences file to
pin dash-mksh instead of mksh as it is the real culpit (assuming you
have a deeper reason to use that repository in the first place of
course).

The real "solution" here is to teach apt to not try to install dash-mksh
as it isn't co-installable with an already installed essential, but that
deludes the meaning of essential slightly and is hard to get right as
you don't want to forbid essential-transitions downright… anyhow,
a minor problem at best as conflicting essentials are far from common.

(well, the super real solution is to write a better resolver, which has
an easier time reverting its own decisions)


Best regards

David Kalnischkies

Attachment: signature.asc
Description: PGP signature


Reply to: