]> git.saurik.com Git - apt.git/commit - apt-private/private-install.cc
don't install new deps of candidates for kept back pkgs
authorDavid Kalnischkies <david@kalnischkies.de>
Sat, 10 Sep 2016 17:52:11 +0000 (19:52 +0200)
committerDavid Kalnischkies <david@kalnischkies.de>
Wed, 2 Nov 2016 08:36:49 +0000 (09:36 +0100)
commit952171787a0b865c17d5c9476e272106383ae93a
tree6625a911979a1dee2e1f73731e6898b21ae18f02
parent800bb9b8842e6651baa71f017d9d59e35c9312bb
don't install new deps of candidates for kept back pkgs

In effect this is an extension of the 6 years old commit
a8dfff90aa740889eb99d00fde5d70908d9fd88a which uses the autoremover to
remove packages again from the solution which are no longer needed to be
there. Commonly these are dependencies of packages we end up not
installed due to problem resolver decisions. Slightly less common is
the situation we deal with here: a package which we wanted to upgrade
sporting a new dependency, but ended up holding back.

The problem is that all versions of an installed reverse dependencies can
bring back a "garbage" package – we need to do this as there is
nothing inherently wrong in having garbage packages installed or upgrade
them, which itself would have garbage dependencies, so just blindly
killing all new garbage packages would prevent the upgrade (and actually
generate errors). What we should be doing is looking only at the version
we will have on the system, disregarding all old/new reverse dependencies.

Reported-By: Stuart Prescott (themill) on IRC
apt-private/private-install.cc
test/integration/Packages-bug-604222-new-and-autoremove [deleted file]
test/integration/status-bug-604222-new-and-autoremove [deleted file]
test/integration/test-bug-604222-new-and-autoremove