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

