Hello, Note 3 says To see why Breaks is normally needed in addition to Replaces, consider the case of a file in the package foo being taken over by the package foo-data. Replaces will allow foo-data to be installed and take over that file. However, without Breaks, nothing requires foo to be upgraded to a newer version that knows it does not include that file and instead depends on foo-data. Nothing would prevent the new foo-data package from being installed and then removed, removing the file that it took over from foo. After that operation, the package manager would think the system was in a consistent state, but the foo package would be missing one of its files. This works for the foo/foo-data example in the text because these are implied to be tightly coupled packages. But sometimes you do want Replaces without Breaks, because the cost of Breaks is high. bin:git-debpush is taking over /usr/bin/git-deborig from devscripts. So devscripts is getting a "Recommends: git-debpush (>= 13.12)" and git-debpush is getting a "Replaces: devscripts (<< 2.25.18)". If we also add a Breaks, git-debpush won't be installable on older Debian releases. Currently dgit and git-debpush are installable and work all the way back to buster. devscripts doesn't hard-depend on the functionality in git-deborig. You can't even use it without installing some of devscript's Recommends, like with other things in devscripts. Therefore it wouldn't make sense to give up the high installability of git-debpush and trivial backportability of src:dgit just so that if someone decides to install devscripts and then install and remove git-debpush, they will be left without git-deborig. Ideally the text would reflect this but it's a significant task to work it in without adding too much length. I think many people in Debian mistakenly think you can't ever use Replaces without Breaks; there is a Salsa CI 'missing-breaks' check that enforces it that we are now having to disable for src:dgit. -- Sean Whitton
Attachment:
signature.asc
Description: PGP signature