Suppose there is a package foobar that depends on a library libfoo. AIUI, whenever the SONAME changes, the library name should change, so I expect this to evolve as libfoo1, libfoo2, etc. What are the proper control fields (Depends, Conflicts, Replaces, Provides) for these packages? If I understand correctly, the idea of having different package names for libfoo when the SONAME changes is so that libfoo1 and libfoo2 can coexist. So, does that mean they should not conflict, and that there should be no Replaces or Provides fields in the libfoo2 refering to libfoo1? I am particularly interested in the case where foobar and libfoo1 are installed, and a new version of foobar is released that depends upon libfoo2. Should upgrading foobar cause libfoo2 to be installed, but also leave libfoo1 installed, since some other package might depend upon it?
-- Neil Roeth