Bug#667599: dolfin-dev: fails to upgrade from squeeze - apt does not find an upgrade path

David Kalnischkies kalnischkies+debian at gmail.com
Thu Apr 5 22:09:14 UTC 2012


As it is to be expected, the two bugreports are completely unrelated,
but as the comment request goes to both lets answer to both…

Let me start that it would be helpful if package maintainers would
at least try to understand why apt does what it does instead of crying
instantly for a bug. It's completely impossible for us to debug dependencies
of more than 20k sourcepackages - especially if you don't have the field
knowledge in that area.
aka: We are a "crisis helpline", not an "information desk"…


And while it might be possible to upgrade apt in stable its a last resort
action we haven't used in at least the last two releases - mostly because
there are not that many bugs in apt if the dependencies are well-formed
and correct… (and yes, both of these bugs don't look like apt bugs…).


On Thu, Apr 5, 2012 at 17:38, Mehdi Dogguy <mehdi at dogguy.org> wrote:
> On  0, Andreas Beckmann <debian at abeckmann.de> wrote:
> Followed steps to reproduce:
> #0. cowbuilder-squeeze --login
> #1. apt-get install --no-install-recommends dolfin-dev
> #2. sed -i s/stable/wheezy/ /etc/apt/sources.list
> #3. apt-get update
> #4. note that `apt-get dis-upgrade` fails
> #5. and that `aptitude full-upgrade` works

Looking at the debug output of APT ( -o Debug::pkgProblemResolver=1 ) we
can see that APT decides to keep libhdf5-1.8 (or: libhdf5-openmpi-1.8.4 which
provides this) back instead of following the request from libhdf5-openmpi-7
to remove it. So (transitive) dependencies of dolfin-dev end up being
uninstallable.

I guess somewhere in this libhdf5* namespace someone tries to forcefully
cleanup after a package rename - which bits him back, but given the
confusing naming i will leave that to find for someone who is more awake
than I am currently.

My latest rambling regarding renames can be found in this thread [0].
In short: Transitional packages are your friend, conflicts are not…

[0] https://lists.debian.org/deity/2012/03/msg00131.html


Unrelated to the bug itself, but same category:
The Provides of libdolfin0-dev from libdolfin1.0-dev is useless.
As §7.5 defines versioned dependencies on Provides aren't allowed so this
has basically no effect as squeeze has only packages with versioned
dependencies on it. Using replaces+breaks (if at all) is more than enough
and less demanding for the installation order.


For mingw32-ocaml the reason is:
binutils-mingw-w64-i686 Conflicts on mingw32-binutils
The naming is again to confusing for me now to inspect it deeper now,
but i guess the "transition" from mingw32 to mingw64 is messed up.
Especially as both are still around in wheezy deciding seems hard.


aptitude chooses in both cases in these specific situations a different way.
But this can change anytime as conflict resolution is hard to predict if
you don't know exactly how the underlying system looks like.

I wouldn't go as far as saying that these are desired solutions btw -
looking at some of the removes more a pick your poison solution…


Best regards

David Kalnischkies





More information about the debian-science-maintainers mailing list