Package: dpkg
Version: 1.22.11
Severity: normal

Dear maintainers,

It seems like dpkg does not allow for overwriting files when using the 
combination of package Replaces and Breaks that's described in Policy chapter 
7.6.1

https://www.debian.org/doc/debian-policy/ch-relationships.html#s-replaces

If I read the Policy correctly, if you split off package A 1.0 into package A 
2.0 and B 2.0, where B 2.0 contains some files that was previously in A 1.0, 
you can then declare the relationships in a way that you can install B 2.0 on 
top of A 1.0 and have dpkg replace the overlapping files and make B 2.0 the 
owner of them.

However, in my testing this does not happen. Rather, dpkg will throw an error 
as such.

==========
$ apt install netatalk
$ dpkg -i netatalk-tools_4.0.0~ds-4_arm64.deb

dpkg: regarding .../netatalk-tools_4.0.0~ds-4_arm64.deb containing 
netatalk-tools:
 netatalk-tools breaks netatalk (<< 4.0.0~ds-1)
  netatalk (version 3.2.10~ds-1) is present and installed.

dpkg: error processing archive ../netatalk-tools_4.0.0~ds-4_arm64.deb 
(--install):
 installing netatalk-tools would break netatalk, and
 deconfiguration is not permitted (--auto-deconfigure might help)
Errors were encountered while processing:
 ../netatalk-tools_4.0.0~ds-4_arm64.deb
==========

This commit represents the particular test case that I was using:

https://salsa.debian.org/netatalk-team/netatalk/-/commit/50d0f4b5522a366ce186d567dfa516b71c09d600

Am I missing something obvious here, or is there a discrepancy between what the 
Policy says and how dpkg behaves presently?

Your insights would be hugely appreciated!

Sincerely,

Daniel

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to