On 2021-04-03 Otto Kekäläinen <o...@debian.org> wrote: > Hello! > 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 [1]
> 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. cu Andreas -- `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'