Le mardi 22 août 2023 à 08:34 +0200, Stéphane Glondu a écrit : > > This situation is explicitly covered in Policy 7.3 and 7.6.1.
Section 7.3 explains why the Breaks is needed when there are file conflicts ; we agree on that point and hence 0.6.4-2 got it. Section 7.6 is about partial and complete replacement according to its very first paragraph ("two distinct purposes"), but doesn't make the difference afterwards and I think that's the source of our disagreement. The whole section 7.6 is in fact only about Breaks+Replaces -- but that makes only one use, and clearly the "complete replacement" one where's the "partial replacement" use? Section 7.6.1 does explain why a Replaces calls for a Breaks (a single sentence and a footnote -- I just filed bug #1050221 to make those a paragraph since it seems pretty important), so this should clearly not happen. As I interpret Breaks+Replaces as meaning complete replacement, and since libcoq-mathcomp-classical isn't a complete replacement, I am reluctant to add Replaces - that's why 0.6.4-2 doesn't have it. But indeed subsection 7.6.1's example looks exactly like what we want and says Breaks+Replace... but where is it made clear it's only a *partial* replacement? If we have a system with foo 1.2-2 installed and we ask for foo-data's 1.2-3's installation, what happens? As I understand it, the Breaks means dpkg will know about the file conflicts so foo-data 1.2-3 and foo 1.2-2 won't both end up on the system. But the Replaces tells it that foo-data 1.2-3 can overtake foo 1.2-2. So it should remove foo 1.2-2 and install foo-data 1.2-3 as requested. No more foo on the system! And that's wrong... Here is a table summarizing what I understood of the use of Breaks and Replaces : | Breaks | no Breaks | |-------------+----------------------+------------| | Replaces | complete replacement | 7.6.1: no! | | no Replaces | partial replacement | very usual | Whatever this discussion gives, I think debian-policy will need a clarification... Cheers, J.Puydt