On Fri, Nov 14, 2014 at 11:14:02AM +0100, Cyril Brulebois wrote: > I can reproduce this in testing: > | # apt-get install sugar-moon-activity > … > | The following packages have unmet dependencies: > | sugar-moon-activity : Depends: python-sugar-0.86 but it is not installable > or > | python-sugar-0.88 but it is not going to be > installed > | Depends: python-sugar-toolkit-0.86 but it is not > installable or > | python-sugar-toolkit-0.88 but it is not > going to be installed > | E: Unable to correct problems, you have held broken packages. > > but specifying python-sugar-0.88 and python-sugar-toolkit-0.88 on the > apt-get install command line makes apt find a solution: > | # apt-get install python-sugar-0.88 python-sugar-toolkit-0.88 > sugar-moon-activity > … > | 0 upgraded, 410 newly installed, 0 to remove and 0 not upgraded.
With some additional debug options you can see the reason: $ apt-get install sugar-moon-activity -so Debug::pkgProblemResolver=1 \ -o Debug::pkgDepCache::Marker=1 -o Debug::pkgDepCache::AutoInstall=1 # ^ the first is responsible for the Mark* lines, the later for the rest, # which means either could be used to see it, I just like verbosity [… apt start bla bla …] MarkInstall sugar-moon-activity [ amd64 ] < none -> 11-1.1 > ( x11 ) FU=1 Installing python-sugar-0.88 as Depends of sugar-moon-activity MarkInstall python-sugar-0.88 [ amd64 ] < none -> 0.88.0-4 > ( python ) FU=0 [… other dependencies …] Installing sugar-session-0.98 as Recommends of sugar-moon-activity MarkInstall sugar-session-0.98 [ amd64 ] < none -> 0.98.8-1 > ( x11 ) FU=0 Installing python-sugar-0.98 as Depends of sugar-session-0.98 MarkInstall python-sugar-0.98 [ amd64 ] < none -> 0.98.0-1 > ( python ) FU=0 Removing: python-sugar-0.88 MarkDelete python-sugar-0.88 [ amd64 ] < none -> 0.88.0-4 > ( python ) FU=0 [… which happens to the other -0.88 packages as well …] [… now to what was already visible with the resolver debug …] Broken python-sugar-0.98:amd64 Conflicts on python-sugar [ amd64 ] < none > ( none ) Conflicts//Breaks against version 0.96.0-1 for python-sugar-0.96 but that is not InstVer, ignoring Considering python-sugar-0.88:amd64 2 as a solution to python-sugar-0.98:amd64 11 Added python-sugar-0.88:amd64 to the remove list Conflicts//Breaks against version 0.84.2-4 for python-sugar-0.84 but that is not InstVer, ignoring Fixing python-sugar-0.98:amd64 via keep of python-sugar-0.88:amd64 MarkKeep python-sugar-0.88 [ amd64 ] < none -> 0.88.0-4 > ( python ) FU=0 # ^ keep means keep at current version – so no version in that case [… apt going boom …] The last part is apts strange way of saying: I have multiple providers of python-sugar in the solution, but thanks to conflicts, I am not allowed to keep them all and have to choose one. What it does now is deciding to keep the "wrong" provider as sugar-moon-activity depends explicitly on -0.88, but just recommends the -0.98 stuff – but I have some sympathy here for it as a lot of stuff (score 11) depends on the -0.98 toolbag compared to -0.88 (score 2) so the decision it made is a good one as it prevents breaking lots of stuff (which here means not installing recommends even if we really should), which just ultimately prevents the installation as a whole… So, in closing, I would say this is a bug in packaging as it can't be that a simple "install" commands makes the system "unusual" (as the policy puts not installing recommends) and not so much in apt for not solving it even if a (bad) solution exists. Best regards David Kalnischkies
signature.asc
Description: Digital signature