[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#592610: Issue with note [3] in Policy ch. 7: Replaces without Breaks



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


Reply to: