On Fri, Jan 31, 2014 at 11:12:26AM -0700, Bob Proulx wrote: > # apt-get -o Debug::pkgProblemResolver=yes dist-upgrade > Reading package lists... Done > Building dependency tree > Reading state information... Done > Calculating upgrade... Starting pkgProblemResolver with broken count: 2 > Starting 2 pkgProblemResolver with broken count: 2 I like to imagine that in the "problem resolver" two packages are put into a cage and do a simple and clean fight to decide who can rule over the other. On hell of a way to resolve your problems, isn't it? > Investigating (0) libdb-dev [ amd64 ] < 5.1.7 -> 5.3.0 > ( libdevel ) > Broken libdb-dev:amd64 Conflicts on libdb5.1-dev [ amd64 ] < 5.1.29-7 > ( libdevel ) > Considering libdb5.1-dev:amd64 -1 as a solution to libdb-dev:amd64 -1 > Holding Back libdb-dev:amd64 rather than change libdb5.1-dev:amd64 Two contenders: In the left corner: "libdb-dev" (the challenger) and in the other "libdb5.1-dev". The "-1" next to each name signal the points they got in their fight (Looks like they are not good fighters…). As usual, in the case of a draw the challenger looses, so he has to hold back with his wish to remove libdb5.1-dev. First case settled. > Investigating (0) libdb5.3-dev [ amd64 ] < none -> 5.3.28-3 > ( libdevel ) > Broken libdb5.3-dev:amd64 Conflicts on libdb5.1-dev [ amd64 ] < 5.1.29-7 > ( libdevel ) > Considering libdb5.1-dev:amd64 -1 as a solution to libdb5.3-dev:amd64 -1 > Holding Back libdb5.3-dev:amd64 rather than change libdb5.1-dev:amd64 Next one up: "libdb5.3-dev" against "libdb5.1-dev". Again, not a good fight, but "libdb5.1-dev" remains undefeated and "libdb5.3-dev" can't do what it would have liked to: Remove libdb5.1-dev. Second case settled. (don't think that libdb5.1-dev should have lost based on the fact that two packages wanted it to be gone. Point-calculation is complicated, but this is e.g. considered, so its a fair "win"). > Try to Re-Instate (1) libdb-dev:amd64 If case 2 had a different autocome, the autocome of case 1 can be changed maybe to reflect new reality, but it didn't so it isn't. Nothing else to resolve, "Done". > The following packages have been kept back: > libdb-dev So in the end, APT decides against upgrading "libdb-dev" as it would mean that a package you have installed (libdb5.1-dev) is removed with dubious benefits. Read: none at best as libdb5.3-dev can provide the same features or at worst loosing features – like in this case the potential that your mission critical compilation doesn't work anymore, because 5.3 isn't 5.1. So, in other word: aptitude is a bit more relaxed (in its default configuration) regarding breakage. You can like that or you don't… I personally prefer apt logic, clean and simple to follow if you understand the general idea. libdb is a bit special in that it provides versioned -dev packages which can't be co-installed as well as an unversioned one. Why that is the case, you are better of asking the maintainers… Anyway, either the maintainers will change this (somehow I doubt it), the situation will fix itself at the moment libdb5.1 leaves the archive as this means it gets (even less) points or someday around the end of this year a release critical bug will be opened against apt asking for an explanation why apt "clearly does the wrong thing here"™. (I am writing this mail mainly so I can point to it then, claiming to be a big prophet. Wish me luck - or better don't.) Best regards David Kalnischkies
Attachment:
signature.asc
Description: Digital signature