Package: cryptsetup-nuke-password
Version: 4+nmu1
User: helm...@debian.org
Usertags: dep17m2 dep17p3
Control: clone -1 -2
Control: reassign -2 cryptsetup
Control: block -2 by -1

Hi,

for finalizing the /usr-merge via DEP17, we want to move all aliased
files to /usr. cryptsetup and cryptsetup-nuke-password are affected in
multiple ways. For one think /lib/cryptsetup/askpass is being diverted
and diversions need special attention (DEP17 P3), for another
libcryptsetup12 is part of the debootstrap set and needs to be done
soon.

I've done a similar conversion for molly-guard/systemd and have prepared
patches for cryptsetup-nuke-password and cryptsetup. Notably:
 * These patches move all the files to /usr. (DEP17 M2)
 * Therefore, cryptsetup declares versioned Conflicts for
   cryptsetup-nuke-password. Please check the version that actually will
   be uploaded before uploading cryptsetup.
 * cryptsetup-nuke-password actually uses the original askpass, but it
   only declares a dependency on cryptsetup-bin, which does not contain
   askpass. I consider this a bug and upgrade the dependency to
   cryptsetup. I hope this is fine.
 * Since cryptsetup-nuke-password depends on the package it diverts
   (after my previous change), I upgrade the dependency to the version
   that is expected to apply this patch in cryptsetup. Please coordinate
   this version with the cryptsetup maintainer.
 * The way I have implemented this (and which reduces complexity), the
   moved cryptsetup will be incompatible with the aliased
   cryptsetup-nuke-password and the moved cryptsetup-nuke-password will
   be incompatible with the moved cryptsetup. Hence these uploads need
   to happen concurrently. Otherwise, the packages will not migrate to
   testing.
 * There is a corner case when performing the upgrade with dpkg. If you
   schedule cryptsetup-nuke-password for removal (using dpkg
   --set-selections) and then unpack the updated cryptsetup, askpass
   will be lost. After consultation with debian-de...@lists.debian.org
   we consider this acceptable and do not mitigate it. If you want this
   mitigated, cryptsetup needs to ship a copy of askpass else where
   (.e.g. a hardlink in the same directory) and have its postinst
   restore the lost file in case it is missing. This loss cannot be
   experienced when working with apt. (In the sense that we couldn't
   trick apt into loosing it, but there is no proof that this cannot
   happen.)
 * Acceptance of this patch will make both packages un-backportatble.
   These patches must not be uploaded to bookworm-backports or earlier.
   Removing these patches in a backport would result in a high-versioned
   cryptsetup containing aliased files. That would break
   cryptsetup-nuke-password's assumption that a high enough version of
   cryptsetup is moved. Therefore cryptsetup must not be backported. If
   you want cryptsetup backportable, a more elaborate patch on the
   cryptsetup-nuke-password side is needed or the backported cryptsetup
   must declare an unversioned conflict for cryptsetup-nuke-password.
 * Please upload these changes to experimental first. That allows
   running them past QA systems such as piuparts, dumat and others and
   also lets us double check the version constraints.
 * If you later restructure (move files to a different binary package)
   any binary package, please go via experimental as you may need
   further mitigations for /usr-merged caused file loss (DEP17 P1).

I see that this may sound scary. We'll get past this mess together. If
things break, I'll keep the pieces and I've done so for molly-guard
already. Let me know if you have any questions.

Helmut

Reply via email to