Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.bugs.dist > #1201813

Bug#1073922: systemd-{container,cryptsetup,repart}: ineffective Replaces due to /usr-move (DEP17)

From Helmut Grohne <helmut@subdivi.de>
Newsgroups linux.debian.bugs.dist
Subject Bug#1073922: systemd-{container,cryptsetup,repart}: ineffective Replaces due to /usr-move (DEP17)
Date 2024-06-21 12:40 +0200
Message-ID <IRJQu-4uiN-27@gated-at.bofh.it> (permalink)
References <IRlXP-4ftq-1@gated-at.bofh.it> <IRlXP-4ftq-1@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


[Multipart message — attachments visible in raw view] - view raw

Control: reassign -1 systemd-container,systemd-cryptsetup,systemd-repart
Control: found -1 systemd/256.1-1
Control: tags -1 + patch

On Thu, Jun 20, 2024 at 10:58:23AM +0200, Helmut Grohne wrote:
> Package: systemd-container,systemd-cryptsetup,cryptsetup-repart

Fixed bad package cryptsetup-repart.

> Let me not go into details of this problem just yet and just install
> this bug as a temporary migration blocker. I shall have an update within
> three working days, ideally with a patch. Thanks for your patience.

The recurring theme is that systemd moved all of its files from / to
/usr (expected via DEP17) and now moves components from the main systemd
package into systemd-container, systemd-cryptsetup and systemd-repart.
In all of these cases, affected files may be lost in upgrades from
either bookworm or bookworm-backports to unstable and eventually trixie.
Users upgrading from trixie to sid, will likely not experience loss
unless they skip systemd versions.

There are multiple mitigation techniques available. Upgrading
Breaks+Replaces to Conflicts provides a relatively strong protection as
long as one uses an apt-based package management tool. However, the CTTE
advised that packages relevant to booting a system should also be safe
when installing packages directly with dpkg and in that scenario,
Conflicts are insufficient, because dpkg allows a conflicting package to
be unpacked before the conflicted package is removed to facilitate a
smooth handover. This is only exercised by apt when the relevant
packages employ a mutual conflict, which is not the case here. As such,
I also add temporary diversions that exist from preinst to postinst to
protect the relevant files from loss.

While I could have just written the maintainer scripts, I expect more
restructuring to happen until the trixie release and hence went for a
templating system. Affected files should be added (with their aliased
path) to debian/$PKG.usrmergemitigate. Then a debian/rules snippet will
construct relevant debian/*.preinst-usrmerge and
debian/*.postinst-usrmerge snippets that substitute
#USRMERGEMITIGATEPREINST# and #USRMERGEMITIGATEPOSTINST# in actual
debian/*.preinst and debian/*.postinst via dh_installdeb's substitution
mechanism. When adding a new debian/*.usrmergemitigate file, one also
has to add these substitutions to the relevant .preinst and .postinst.
I think this bears a good trade-off regarding complexity and repetition.
Let me know whether you disagree with this judgement.

Helmut

Back to linux.debian.bugs.dist | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Bug#1073922: systemd-{container,cryptsetup,repart}: ineffective Replaces due to /usr-move (DEP17) Helmut Grohne <helmut@subdivi.de> - 2024-06-20 11:10 +0200
  Bug#1073922: systemd-{container,cryptsetup,repart}: ineffective Replaces due to /usr-move (DEP17) Helmut Grohne <helmut@subdivi.de> - 2024-06-21 12:40 +0200
    Bug#1073922: systemd-{container,cryptsetup,repart}: ineffective Replaces due to /usr-move (DEP17) Luca Boccassi <bluca@debian.org> - 2024-06-23 14:40 +0200

csiph-web