On 03/03/2021 07.37, Yadd wrote:
OK for Breaks, but why "Replaces" ? cyrus-common still exists, or is
there something I didn't understand?
Look at it the other way around:
You are taking over a file owned by cyrus-common. That needs a Replaces,
otherwise you get the file owerwrite issue I observed.
If you have taken away the file, the old version of cyrus-common is
incomplete and thus you need the Breaks to ensure it does not serve as a
correctly installed package satisfying other packages dependencies. **)
A Breaks alone would still allow apt/dpkg to
- deconfigure old cyrus-common
- unpack new cyrus-imapd => clash
- unpack new cyrus-common
Andreas
(The versioned dependency on cyrus-common you mentioned solves some
issues by requiring that cyrus-common gets upgraded as well, so you
can't end up with a broken cyrus-common where dpkg thinks it's correctly
installed.)
**) Think of two theoretical packages foo and bar both shipping
/bin/foobar, where bar has Replaces: foo (but no Breaks/Conflicts or
other relationships). Then install foo, install bar, remove bar. foo is
still installed. Where is /bin/foobar?