Hi Jonas, On Sun, Dec 01, 2024 at 11:57:52PM +0100, Jonas Smedegaard wrote: > Quoting Helmut Grohne (2024-12-01 22:02:27) > > Package: eye > > Version: 1:10.30.11~ds-1 > > Severity: serious > > User: debian...@lists.debian.org > > Usertags: fileconflict > > Control: affects -1 + ruby-eye > > > > eye has an undeclared file conflict. This may result in an unpack error > > from dpkg. > > Is it not adequate that eye declares a versioned Breaks?
I confirm. The Breaks directive prevents eye from being configured at the same time as ruby-eye. However, one may deconfigure an earlier installation of ruby-eye (without removing it) and then unpack eye without violating the Breaks relation. > > The file /usr/bin/eye is contained in the packages > > * eye/1:10.30.11~ds-1 as present in unstable > > * ruby-eye > > * 0.7-5 as present in bullseye > > * 0.7-5.1 as present in bookworm > > > > These packages can be unpacked concurrently, because there is no > > relevant Replaces or Conflicts relation. Attempting to unpack these > > packages concurrently results in an unpack error from dpkg, because none > > of the packages installs a diversion for the affected file. > > How would the collision happen, when ruby-eye does not exist in > unstable/testing where eye provides the conflicting file? This situation can arise in an upgrade scenario from bookworm to trixie eventually. Consider an upgrade that happens to install eye as a new dependency. Then, apt/dpkg could unpack eye after having deconfigured ruby-eye resulting in the aforementioned unpack error. You additionally need to declare Replaces here to be able to take over files. Helmut