Le 19/08/2023 à 21:25, julien.pu...@gmail.com a écrit :
I'm sorry. Adding Breaks is necessary but insufficient. You also need
Replaces.

What is in libcoq-mathcomp-analysis << 0.6.4 is now in two packages:
- libcoq-mathcomp-classical (a small part) ;
- libcoq-mathcomp-analysis (the most part -- and that binary package
depends on libcoq-mathcomp-classical with a strong version constraint).

This situation is explicitly covered in Policy 7.3 and 7.6.1.

The problem you pointed was that a user with an old libcoq-mathcomp-
analysis asking to install libcoq-mathcomp-classical would lead dpkg to
a conflict of files.

  The breaks I added prevents that, and in fact a user with an old
licoq-mathcomp-analysis should have no issue in those situations:

(1) try to install a newer libcoq-mathcomp-classical -- with my Breaks
dpkg will refuse because of the conflict which is a sane answer :
system not broken, features not broken ;

(2) try to upgrade - dpkg will see the new libcoq-mathcomp-analysis
needs libcoq-mathcomp-classical and that it breaks the outgoing libcoq-
mathcomp-analysis, but it's able to handle the situation ;


If I declare libcoq-mathcomp-classical Replaces libcoq-mathcomp-
analysis << 0.6.4, then in situation (1), dpkg will install libcoq-
mathcomp-classical and drop that old libcoq-mathcomp-analysis. The
system is not broken, but the user just lost most of the functionality,
and that is bad.

So I think the change I made is sound.

Although it might be sound, my understanding is that it make upgrades unnecessarily difficult: without the Replaces, one has to completely deconfigure the old libcoq-mathcomp-analysis (and its reverse-dependencies) before installing the new one.

Do you have another problem in mind? Or a better fix?

The better fix is to add Breaks *and* Replaces, as instructed by Helmut and Policy.


Cheers,

--
Stéphane

Reply via email to