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

Reply via email to