dpkg does not respect virtual dependencies when upgrading.
I have the following problem with one of my packages :
ocaml-base provides ocaml-base-3.06
liblablgl-ocaml depends on ocaml-base-3.06
both of these are installed.
Now i modified ocaml-base, and changed the provide to ocaml-base-3.06-1.
if i install ocaml-base on a clean box, and try to install
liblablgl-ocaml it will complain that ocaml-base-3.06 is not installed
and refuse to install.
Now if i use a box with ocaml-base and liblablgl-ocaml already
installed, and install the new ocaml-base (upgrading it), i was
expecting dpkg to complain that the old ocaml-base provided
ocaml-base-3.06 which is needed by liblablgl-ocaml, and the new
ocaml-base is no more providing it.
This did not happen, the new ocaml-base installed cleanly, and broke all
existing ocaml bytecode packages as well as my ocaml building