#1091649 Cannot debootstrap sid after usrmerge removal: E: Couldn't find these debs: usr-is-merged

Package:
debootstrap
Source:
debootstrap
Submitter:
Andrey Rakhmatullin
Date:
2024-12-29 17:27:03 UTC
Severity:
normal
Tags:
#1091649#5
Date:
2024-12-29 09:06:29 UTC
From:
To:
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


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

#1091649#10
Date:
2024-12-29 11:23:40 UTC
From:
To:
Hi Andrey,

Andrey Rakhmatullin <wrar@debian.org> (2024-12-29):

Thanks, your bug report came in exactly when I hit the same kind of
issue while building an image via debian-cd, after some changes but
nothing even remotely related to debootstrap or usrmerge… and that
was quite baffling.


Cheers,

#1091649#15
Date:
2024-12-29 11:44:16 UTC
From:
To:
user helmutg@debian.org
usertags 1091649 + dep17p8
tags 1091649 + confirmed patch
found 1091649 1.0.128+nmu2+deb12u1
thanks

Thanks for the report. It is very unfortunate that this coincided with
the d-i alpha.

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

#1091649#24
Date:
2024-12-29 12:06:46 UTC
From:
To:
Hi Helmut,

Thanks for the background and proposed course of action.

Helmut Grohne <helmut@subdivi.de> (2024-12-29):

Yes, that's in progress. That's really a band-aid to avoid respinning
too many things on the d-i side, for this release specifically. I can
totally understand why folks want to get rid of a package that was only
meant to be transient.
they want to keep being able to debootstrap trixie/sid once the removal
happens (again), which can be surprising / a little point of friction,
but that's much better than previous situations (where debootstrap broke
and the fix was only available in proposed-updates). Indeed in that
case, the support side that's much easier (“just dist-upgrade your stable
system”) than what happened a while back (“add proposed-updates, install
stuff from there, maybe get other package updates, etc.”).

Out of curiosity (and I'm not advocating for or requesting that): how
much of a hassle would it be to just ship the package in trixie?

Except for the little digression above, I'll stay focused on trying to
get Trixie Alpha 1 out (I'd like to stick to at most a few days of
partial freeze each time, to minimize the impact on other developers,
esp. with the real freeze getting closer), and let others comment on
the stable vs. testing/unstable aspects.

(I'll probably get looped in anyway, when the proposed-updates request
reaches the release team…)


Cheers,

#1091649#29
Date:
2024-12-29 12:49:24 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
debootstrap, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1091649@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Luca Boccassi <bluca@debian.org> (supplier of updated debootstrap package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Sun, 29 Dec 2024 12:24:52 +0000
Source: debootstrap
Architecture: source
Version: 1.0.139
Distribution: unstable
Urgency: high
Maintainer: Debian Install System Team <debian-boot@lists.debian.org>
Changed-By: Luca Boccassi <bluca@debian.org>
Closes: 1091588 1091649
Changes:
 debootstrap (1.0.139) unstable; urgency=high
 .
   [ Dan Bungert ]
   * Ubuntu: fix intended reference to SUITE
 .
   [ Kasper Kantz ]
   * Make distro-info script portable
 .
   [ keve-guest ]
   * Add support for running on MacOS
 .
   [ Guillem Jover ]
   * Add debian/debhelper-build-stamp to debian/.gitignore
   * Add new --no-check-sig and --force-check-sig
   * Recommend gpgv instead of gnupg
   * Use «in_path» instead of executing «gpgv --version»
   * Add sopv support
   * Add sqv support (Closes: #1091588)
 .
   [ Luca Boccassi ]
   * Prefer gpgv if all signature verification tools are installed
   * Do not pull in usr-is-merged in trixie/sid (Closes: #1091649)
Checksums-Sha1:
 57f6ff3be09599e60163de5b23be40ad73e317ee 2052 debootstrap_1.0.139.dsc
 daa888b8d666817c042fa66971c3f68faf0edc93 96989 debootstrap_1.0.139.tar.gz
 27bcb03025adddf0b53d7ba187105ec38fab7cd0 8694 debootstrap_1.0.139_source.buildinfo
Checksums-Sha256:
 90b2e6f228f1f9f8ec76fa6da30f6f6c2330a0062f6a09c9aba63b2ce92871da 2052 debootstrap_1.0.139.dsc
 446533a0d1758b4618ee535de0d6327597b5935d84734d8c65d1edbbe32ff992 96989 debootstrap_1.0.139.tar.gz
 f3bb74f14568d2562696624d7641bf26a92f323c4fbf5937dadd314cc86c1b74 8694 debootstrap_1.0.139_source.buildinfo
Files:
 5396d8d43e40c28ad8a1b0f7d79d50ef 2052 admin optional debootstrap_1.0.139.dsc
 ace77b972d7caf99db9a4f923bbf0b68 96989 admin optional debootstrap_1.0.139.tar.gz
 b460a9b16b388cbd5df49719593ee0a7 8694 admin optional debootstrap_1.0.139_source.buildinfo
-----BEGIN PGP SIGNATURE-----

iQJFBAEBCgAvFiEErCSqx93EIPGOymuRKGv37813JB4FAmdxQH8RHGJsdWNhQGRl
Ymlhbi5vcmcACgkQKGv37813JB75VBAAxbmbWRvBM3V/RIY10l4aTI16/MTtqGlU
6ZRLiBc65tPyk2lQVPHgRkaruHRPfGkR7i+EAw+n7QZ0u+rc3VapOLDr2z946nMt
WCxFSHYSvlKFnVBw89WlGmKK9ho6bLCWUBo7LNY42uIqIMAVx7vGN0eLOr/Yy7X0
fmRb8GgKhm5YimhA5YZxuePKg/oUelBC41/BX49Lug4kLFR1IQvQOFhwQ74N8/QP
ItC0uS25DAYBIkN9sRD7waDMnMMXz/G83RkrRXHxSqTjX1kIy98kzCSF7HN3V5Lb
K8d6XBAkU2JDIHX3GCyGN5LPpRSYB8uXg4QTgnqbL2oQlAdooT+52NB5hAN6MIUA
ImXJjVqp6LDeeAtZ5brnZ8NhDJSYldpIg5vPhnvi0/cen1F8Z1QxB5IGS0PNeVR0
HzwHN48/8i8eg4x/T9B/ULMXFH63mq4NWTxMoBMNkXyF4kj2zR43Z4aPVzd96TwG
GyN0rcaY5miuh41nzgPlBEJeNZZHdXjU0FrxLLl8v9VfQhztF9iZTfMmBO18qn+E
D1IJSi8zd0ePy3e/xY/v9MYbq0L1nORJ6MZ8/pqshECgkNwBIHg1pY4jDfvtCvBK
Y1ssbuCA9KGrv4SHpp55jY/rnGkbGQBIr5oGyWqU1Lv78/AUZDMdNYb2Of2lm0SW
nju37izFNsA=
=p2CS
-----END PGP SIGNATURE-----

#1091649#34
Date:
2024-12-29 16:24:28 UTC
From:
To:
Hallo wieder,

Helmut Grohne <helmut@subdivi.de> (2024-12-29):

Just out of curiosity, did your initial assessment include autopkgtest
references? Checking the excuses page (to see if I had all hints lined
up for a speedy come back into testing), I see the following packages
are in “Test in progress” mode:
 - bubblewrap
 - dbus
 - init-system-helpers
 - mmdebstrap

Possibly that only matters if and when usrmerge exists/gets updated? Or
is that going to be a problem when those packages get updated in turn?


Cheers,

#1091649#39
Date:
2024-12-29 17:14:14 UTC
From:
To:
Hi Cyril,

I appreciate your attention to detail. My analysis did not exhaustively
cover autopkgtests. Unfortunately, the words usrmerge and usr-is-merged
are used quite widely now, so codesearching them is no longer useful.

bubblewrap has a test dependency on usrmerge and requires an update
indeed.

I think dbus is triggered, because it has an dependency alternative on
usr-is-merged. This should be fine.

init-system-helpers lost its dependency today.

mmdebstrap has a test trigger on usrmerge. I'm pretty confident that
Johannes will discard it as soon as usrmerge is gone for good and wants
to keep it for the time being.

I'll look into bubblewrap in more detail and do something about it.

Helmut

#1091649#44
Date:
2024-12-29 12:38:17 UTC
From:
To:
Hi Cyril,

It also is where we are already. The original bookworm debootstrap would
do "pre-merging" (i.e. set up symbolic links before unpacking .debs) and
using that to bootstrap trixie has been broken by changes to base-files.
So we already are in the situation where we require users of debootstrap
to upgrade to the latest stable point release.

I'm not fond of that situation, but I attribute it to excessive,
uncoordinated debootstrap NMUs and consider what I am doing here being a
cleanup of the mess left behind. The harm has been done before bookworm.
I am merely the one trying to contain it. The whole design of containing
the symlink creation in base-files had the goal of removing complexity
from debootstrap. The road is bumpy (despite being tested extensively)
and I think we need another debootstrap patch, but the end result should
make debootstrap more maintainable in the long run.

The answer to that question depends on whom you ask. I think it would
mostly defer cleanup. In particular, I am not objecting to shipping
trixie with a usr-is-merged package. Having attempted removing it now
and seen what breaks is what really helped me figure out what needs
doing.

Helmut