snippets: Drop custom conffile transfer logic
This logic was introduced with the intent to smoothly transfer
conffiles between binary packages. It was initially used in just
a few scenarios, but with last year's big rework its use was
significantly expanded.
More recently, two important flaws have been identified with
this approach:
* since our logic requires maintscripts to be called in a
very specific order, we have added several Depends and
Recommends relationships between packages specifically to
enforce that. However, dpkg can sometimes reorder
operations in ways that break our assumptions while still
being entirely compliant with Policy;
* conffiles that have been modified by the local admin are
always preserved as is, even when the file shipped in the
package has been modified between the two versions
involved in the upgrade. The expectation is that the user
will be prompted so that they can decide how to handle
the situation instead.
Luckily, it turns out that dpkg already does a very good job
at coping with conffiles moving between packages, so we can
just rip out our custom logic completely and that will solve
both issues at once.
There are a couple of minor drawbacks:
* depending on the order in which packages are unpacked,
which we have no control over, the package which used to
own the conffile might end up still having a record of
that, though it will be marked as "obsolete". This is
primarily a cosmetic issue, and it can for the most part
be addressed by simply reinstalling the package. We are
likely going to inform users about this in the trixie
release notes;
* conffiles that had been deleted might get recreated.
This is a bit annoying and there is no convenient way
to prevent it from happening, but there's no actual
functional impact as libvirt behaves the same way
whether the conffile doesn't exist or only contains
comments, as is the default.
The benefits very clearly outweigh the drawbacks, so we're
making the switch.
Closes: #1094583
Loading
Please register or sign in to comment