user helm...@debian.org usertags 1091649 + dep17p8 tags 1091649 + confirmed patch found 1091649 1.0.128+nmu2+deb12u1 thanks
On Sun, Dec 29, 2024 at 02:06:29PM +0500, Andrey Rakhmatullin wrote: > usrmerge was removed from unstable yesterday. debootstrap tries to install > usr- > is-merged and fails: > > I: Retrieving Packages > I: Validating Packages > I: Resolving dependencies of required packages... > I: Resolving dependencies of base packages... > I: Checking component main on http://deb.debian.org/debian... > E: Couldn't find these debs: usr-is-merged Thanks for the report. It is very unfortunate that this coincided with the d-i alpha. > The cause is in /usr/share/debootstrap/scripts/debian-common: > > > > # On suites >= bookworm, either we set up a merged-/usr system > # via merge_usr, or we deliberately avoid that migration by creating > # the flag file. This means there's no need for the live migration > # 'usrmerge' package and its extra dependencies: > # we can install the empty 'usr-is-merged' metapackage to indicate > # that the transition has been done. > case "$CODENAME" in > etch*|lenny|squeeze|wheezy|jessie*|stretch|buster|bullseye) > ;; > *) > required="$required usr-is-merged" > EXCLUDE_DEPENDENCY="$EXCLUDE_DEPENDENCY usrmerge" > ;; > esac Yes, exactly. Let me give some background on what happened here and why. A while ago, Marco approached me about removing the usrmerge package. At that time I searched for dependencies on it and identified dbus, which was relaxed. Then once that was gone, I failed to see what would break if usrmerge were to be removed. It did not feel like a priority to me, but I indicated that removing it sooner rather than later would be better as causing breakage in later stages of the freeze would be bad, so I recommended Marco to go ahead. He filed the removal request and also ensured that the package would stay in experimental to allow quick reintroduction in case something would unexpectedly break. This was all well before a d-i freeze was announced and none of us saw that looming problem. And then removal happened. This is where we are now. The obvious part is that we no longer technically need usr-is-merged to get installed. debootstrap should stop doing it. I am attaching a patch to that effect. Unfortunately, we also want to use bookworm's debootstrap to bootstrap trixie and that's not as easy. So at least for the time being, reintroducing usrmerge will be needed. Cyril indicated that he did a reintroducing NMU on #1088212, so I assume that this is being taken care of and needs no further action. Another way of approaching the debootstrap side would be supporting virtual packages. Then, debootstrap would notice that base-files provides usr-is-merged and we wouldn't be facing this issue. https://salsa.debian.org/installer-team/debootstrap/-/merge_requests/115 However, that MR is adding quite a bit more complexity. As we want to phase out the usr-is-merged package, the extra requirement should go away. So even though getting this done would be nice, I think the attached patch would still be needed in addition, so we may just disentangle these matters. Recommended course of action: 1. Revert the removal. (done by Cyril afaiui) 2. Apply the attached patch. 3. SPU the attached patch. 4. Wait for a stable point release. 5. Retry usrmerge removal (before the transition freeze or in forky). Hope this all makes sense and sorry for the inconvenience caused to d-i. Helmut
diff --minimal -Nru debootstrap-1.0.138/debian/changelog debootstrap-1.0.138+nmu1/debian/changelog --- debootstrap-1.0.138/debian/changelog 2024-11-27 23:08:03.000000000 +0100 +++ debootstrap-1.0.138+nmu1/debian/changelog 2024-12-29 12:21:33.000000000 +0100 @@ -1,3 +1,10 @@ +debootstrap (1.0.138+nmu1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Do not install usr-is-merged for trixie and later. (Closes: #1091649) + + -- Helmut Grohne <hel...@subdivi.de> Sun, 29 Dec 2024 12:21:33 +0100 + debootstrap (1.0.138) unstable; urgency=medium [ Benjamin Drung ] diff --minimal -Nru debootstrap-1.0.138/scripts/debian-common debootstrap-1.0.138+nmu1/scripts/debian-common --- debootstrap-1.0.138/scripts/debian-common 2024-11-27 16:01:53.000000000 +0100 +++ debootstrap-1.0.138+nmu1/scripts/debian-common 2024-12-29 12:21:24.000000000 +0100 @@ -61,20 +61,18 @@ ;; esac - # On suites >= bookworm, either we set up a merged-/usr system + # On bookworm, either we set up a merged-/usr system # via merge_usr, or we deliberately avoid that migration by creating # the flag file. This means there's no need for the live migration # 'usrmerge' package and its extra dependencies: # we can install the empty 'usr-is-merged' metapackage to indicate # that the transition has been done. - case "$CODENAME" in - etch*|lenny|squeeze|wheezy|jessie*|stretch|buster|bullseye) - ;; - *) - required="$required usr-is-merged" - EXCLUDE_DEPENDENCY="$EXCLUDE_DEPENDENCY usrmerge" - ;; - esac + if test "$CODENAME" = bookworm; then + required="$required usr-is-merged" + EXCLUDE_DEPENDENCY="$EXCLUDE_DEPENDENCY usrmerge" + fi + # Before bookworm, init-system-helpers did not depend on "usrmerge | + # usr-is-merged". After bookworm, base-files provides usr-is-merged. case $ARCH in hurd-*)