Re: File moved from one package to another - use Conflicts/Replaces or Breaks/Replaces?
On 2021-04-03 Otto Kekäläinen <firstname.lastname@example.org> wrote:
> In MariaDB we have over the years moved files around. A file that was first
> in e.g. mariadb-server-10.3 might have been moved to
> mariadb-server-core-10.3 and some years later to mariadb-client-core-10.5.
> The result is a massive debian/control file with a lot of
> Conflicts/Breaks/Replaces 
> While trying to clean up and simplify I started wondering, when should one
> use Conflicts/Replaces and when Breaks/Replaces?
The rough guideline is to use Breaks together with an earlier than (<<,
<=) condition. Which seems to be what mariadb does.
I do not think there is a lot to improve here. Did you you see David's
recent message, <20210331164012.gevwmagm63q2yc54@crossbow>?
| For me, this whole situation seems wrong though. Why do you have
| versioned package names (mariadb-server-*) when they are all mutually
| exclusive with one another due to all shipping the same binary?
| Either embrace versioned names like e.g. gcc/clang do or drop the
| pretense and ship an unversioned mariadb-server. Most packages aren't
| packaged versioned after all and that is (mostly) fine (same for client
| and co which only makes this more complicated and worse).
| Mixing the two causes your users to experience the worst of both worlds:
| The packages can not be co-installed forcing them through the change in
| one sitting and they are an upgrade nightmare as there will always be
| one more situation in which apt (or another resolver, or even a human)
| decides that (part of) an upgrade is not worth the perceived cost.
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'