Hi Jérôme,

On Fri, Nov 06, 2026 at 08:46:22AM -0500, Jérôme Charaoui wrote:
> Le 2026-11-06 à 06 h 06, Helmut Grohne a écrit :
> > openvox-doc has a filetype conflict.  This may result in an unpack
> > error, order-dependent placement of files or overwriting of packaged
> > files.
> > 
> > The file /usr/share/doc/puppet is contained in the packages
> >   * openvox-doc/9.3.0-1 as present in unstable
> >   * puppet
> >     * 8.10.0-5 as present in trixie
> >     * 8.10.0-5+deb13u1 as present in trixie-proposed-updates|trixie-security
> > 
> > These packages can be unpacked concurrently, because there is no
> > relevant Replaces or Conflicts relation.  Attempting to unpack these
> > packages concurrently may result in an unpack error, order-dependent
> > placement of files or overwriting of packaged files.
> 
> Thank you for the report.
> 
> Would adding "Replaces: puppet" to openvox-doc be an appropriate fix here?
> Note that openvox-agent also has "Replaces: puppet".

Thanks for asking. If this were a regular file conflict, Breaks+Replaces
were the right tool. However, /usr/share/doc/puppet is a directory in
puppet and a symbolic link in openvox-doc. What happens here is
dependent on the unpack order. Even if you declare Breaks and Replaces,
dpkg may still unpack openvox-doc after having merely deconfigured
puppet. When that happens, the symbolic link is swallowed. A later
deinstallation of puppet would then delete the directory. We even found
cases where Conflicts is too weak, but those are non-trivial to
encounter when using apt (as opposed to using dpkg directly). So my
recommendation is to declare Conflicts: puppet here. The DEP17 document
has a lot more detail on the difficulties of such a conversion.

Helmut

Reply via email to