Control: tags -1 = bullseye d-i

[ Reason ]
The same changes proposed for bookworm in #1050868, but for bullseye.
Because official buildds that build trixie/sid are not yet all running
bookworm, we'll need this change in bullseye too.

I also included the changes that Luca previously proposed on this bug,
which are backports from bookworm's debootstrap:

- no longer including usrmerge and its dependencies in the installed
  system if usr-is-merged would be sufficient, saving ~ 50MB on a minbase
  image and effectively fixing a regression caused by making
  usrmerge|usr-is-merged transitively Essential in bookworm (#1025657)
- enabling merged-/usr on Hurd

These are technically a behaviour change for bullseye, but we're making
a larger behaviour change here already, and it aligns the behaviour
with what we have in bookworm. We could revert those if required, but
they're really small changes and seem desirable to me: in particular,
they make the whole merged-/usr code path into the same tested code
that's in trixie and proposed for bookworm.

[ Impact ]
If not accepted, trixie will continue to be stuck in a
mostly-but-not-entirely merged-/usr limbo, with the moratorium from #1035831
remaining in place (until all buildds can be upgraded to bookworm).

[ Tests ]
I did the same testing as for bookworm's #1050868, summarized on
<https://salsa.debian.org/installer-team/debootstrap/-/merge_requests/105>.
As with #1050868, all differences between the output of a reference
version (from Debian 12.1) and the output of this version were expected
or ignorable. In addition to the ignorable differences noted in #1050868,
/etc/apt/apt.conf.d/01autoremove-kernels reflected the use of a bullseye
rather than bookworm kernel.

The autopkgtest passes, as in #1050868.

[ Risks ]
Same as in #1050868.

Additionally, I suppose someone could conceivably be relying on debootstrap
of bookworm|trixie|sid from a bullseye host installing a non-minimal system
with Perl and various libraries? But that seems tenuous.

[ Checklist ]
  [x] *all* changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in (old)stable
  [x] the issue is verified as fixed in unstable (and trixie)

[ Changes ]

The addition of EXCLUDE_DEPENDENCY in ./debootstrap, and the logic that
uses it (last hunk in ./functions and second hunk in scripts/debian-common),
are for #1025657.

setup_merged_usr() in ./functions now allows merged-/usr to continue on
Hurd too.

In copying setup_merged_usr() from trixie (via bookworm), it seems we've
accidentally enabled correct merged-/usr handling for loongarch64, which
wasn't exactly intentional but seems harmless!

scripts/trixie now exists (it's a symlink, the same as for every other
Debian suite).

The rest is the same as in bookworm's #1050868.

[ Other info ]
To keep bookworm's debootstrap "better" than bullseye's, this update
should not be accepted until after #1050868 is.

    smcv
diffstat for debootstrap-1.0.123+deb11u1 debootstrap-1.0.123+deb11u2

 debian/.gitignore                  |    6 +
 debian/changelog                   |   44 +++++++++++++
 debian/gbp.conf                    |    3 
 debian/salsa-ci.yml                |    1 
 debian/tests/debian-testing        |   27 +++++++
 debian/tests/fake/schroot-1.6.10-3 |    2 
 debootstrap                        |    4 +
 debootstrap.8                      |    5 -
 functions                          |  125 +++++++++++++++++++++++++++++++++----
 scripts/amber                      |    2 
 scripts/artful                     |    2 
 scripts/bionic                     |    2 
 scripts/cosmic                     |    2 
 scripts/debian-common              |    9 +-
 scripts/disco                      |    2 
 scripts/eoan                       |    2 
 scripts/focal                      |    2 
 scripts/gutsy                      |    2 
 scripts/hardy                      |    2 
 scripts/intrepid                   |    2 
 scripts/jaunty                     |    2 
 scripts/karmic                     |    2 
 scripts/lucid                      |    2 
 scripts/maverick                   |    2 
 scripts/natty                      |    2 
 scripts/oneiric                    |    2 
 scripts/precise                    |    2 
 scripts/quantal                    |    2 
 scripts/raring                     |    2 
 scripts/saucy                      |    2 
 scripts/trixie                     |   16 ++++
 scripts/trusty                     |    2 
 scripts/utopic                     |    2 
 scripts/vivid                      |    2 
 scripts/wily                       |    2 
 scripts/xenial                     |    2 
 scripts/yakkety                    |    2 
 scripts/zesty                      |    2 
 38 files changed, 246 insertions(+), 50 deletions(-)

diff -Nru debootstrap-1.0.123+deb11u1/debian/changelog debootstrap-1.0.123+deb11u2/debian/changelog
--- debootstrap-1.0.123+deb11u1/debian/changelog	2022-07-28 12:04:03.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/debian/changelog	2023-08-30 22:34:37.000000000 +0100
@@ -1,3 +1,47 @@
+debootstrap (1.0.123+deb11u2) bullseye; urgency=medium
+
+  * Non-maintainer upload targeting Debian 11, with maintainer approval
+    from Luca Boccassi.
+
+  [ Samuel Thibault ]
+  * Enable usrmerge on hurd-i386 too
+
+  [ Ansgar, Tianon Gravi ]
+  * debian-common: exclude usrmerge and its dependencies when installing
+    usr-is-merged. These are not needed on systems where /usr is already
+    merged, and avoiding them saves around 50M in a minbase installation.
+    (Closes: #1025657)
+
+  [ Hideki Yamane ]
+  * Add support for bootstrapping trixie
+
+  [ Simon McVittie, Luca Boccassi ]
+  * Backport merged-/usr support changes from trixie:
+    - Implement merged-/usr by post-merging.
+      This changes the bootstrap order so that it will be possible for a
+      future version of base-files in trixie/sid to take responsibility for
+      creating the /bin, /sbin, /lib* symlinks, and is a prerequisite for
+      lifting the moratorium imposed by #1035831.
+      (Closes: #1049898; implementation by Helmut Grohne)
+    - functions: Reinstate setup_merged_usr() as it existed before
+      fixing #1049898, for backwards-compatibility with older versions of
+      mmdebstrap.
+    - functions: Default to merged-/usr for suites newer than bookworm,
+      even for the buildd profile. This allows packages targeting trixie
+      to assume that merged-/usr is the only layout possible, and is a
+      prerequisite for lifting the moratorium imposed by #1035831.
+    - Mention --merged-usr in --help output. (Closes: #1031828)
+  * Backport autopkgtest regression fixes from trixie:
+    - Revert fake/schroot-1.6.10-3 to an accurate emulation of the
+      behaviour of schroot 1.6.10-3 (Closes: #983311)
+    - Document schroot 1.6.10-3 with the default profile as expected to
+      fail to use /dev/pts in a lxc >= 3 or Docker container; this is a
+      schroot bug (#983423) and not a debootstrap bug
+    - With these changes, the autopkgtest is confirmed to pass in
+      autopkgtest-virt-qemu (Closes: #983197)
+
+ -- Simon McVittie <s...@debian.org>  Wed, 30 Aug 2023 22:34:37 +0100
+
 debootstrap (1.0.123+deb11u1) bullseye; urgency=medium
 
   * Non-maintainer upload.
diff -Nru debootstrap-1.0.123+deb11u1/debian/gbp.conf debootstrap-1.0.123+deb11u2/debian/gbp.conf
--- debootstrap-1.0.123+deb11u1/debian/gbp.conf	2022-07-13 23:17:17.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/debian/gbp.conf	2023-08-30 22:34:37.000000000 +0100
@@ -1,2 +1,3 @@
-[buildpackage]
+[DEFAULT]
 debian-tag = %(version)s
+debian-branch = bullseye
diff -Nru debootstrap-1.0.123+deb11u1/debian/.gitignore debootstrap-1.0.123+deb11u2/debian/.gitignore
--- debootstrap-1.0.123+deb11u1/debian/.gitignore	1970-01-01 01:00:00.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/debian/.gitignore	2023-08-30 22:34:37.000000000 +0100
@@ -0,0 +1,6 @@
+debootstrap
+debootstrap-udeb
+files
+*.debhelper.log
+*.substvars
+
diff -Nru debootstrap-1.0.123+deb11u1/debian/salsa-ci.yml debootstrap-1.0.123+deb11u2/debian/salsa-ci.yml
--- debootstrap-1.0.123+deb11u1/debian/salsa-ci.yml	2022-07-13 23:17:17.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/debian/salsa-ci.yml	2023-08-30 22:34:37.000000000 +0100
@@ -6,3 +6,4 @@
 variables:
   SALSA_CI_DISABLE_BLHC: 1
   SALSA_CI_DISABLE_BUILD_PACKAGE_ANY: 1
+  RELEASE: 'bullseye'
diff -Nru debootstrap-1.0.123+deb11u1/debian/tests/debian-testing debootstrap-1.0.123+deb11u2/debian/tests/debian-testing
--- debootstrap-1.0.123+deb11u1/debian/tests/debian-testing	2022-07-13 23:17:17.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/debian/tests/debian-testing	2023-08-30 22:34:37.000000000 +0100
@@ -132,12 +132,31 @@
                 cat /etc/debian_version)]),
         $reference);
 
-    check_fake_schroot(%params, reference => $reference);
+    # The schroot behaviour proposed to fix #856877 and #983423 works,
+    # even inside (privileged) lxc.
     check_fake_schroot(%params, reference => $reference, version => 'proposed');
     check_fake_schroot(%params, reference => $reference, version => 'proposed',
         extra_argv => ['--sbuild']);
 
-    # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=817236
+    # As of 1.6.10-3, or equivalently 1.6.10-11, the default profile
+    # certainly doesn't work in lxc >= 3 or in Docker:
+    # https://bugs.debian.org/983423
+    # It probably won't work in other container managers either, for
+    # similar reasons.
+    if (defined $params{container}) {
+        TODO: {
+            local $TODO = "schroot default profile doesn't work in lxc >= 3 or Docker";
+            check_fake_schroot(%params, reference => $reference,
+                version => '1.6.10-3');
+        }
+    }
+    else {
+        check_fake_schroot(%params, reference => $reference,
+            version => '1.6.10-3');
+    }
+
+    # schroot 1.6.10-3's sbuild profile does work in lxc, but only on newer
+    # kernels: https://bugs.debian.org/856877
     if (Dpkg::Version->new($params{kernel}) < Dpkg::Version->new('4.7') &&
             defined $params{container} && $params{container} eq 'lxc') {
         TODO: {
@@ -160,10 +179,12 @@
             extra_argv => ['--sbuild']);
     }
 
+    # pbuilder >= 0.228.6 works fine
     check_fake_pbuilder(%params, reference => $reference,
         version => 'proposed');
 
-    # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=817236
+    # Older pbuilder doesn't work if we are in a container where we can't
+    # create the /dev/ptmx device node: https://bugs.debian.org/841935
     if (! $params{can_mknod_ptmx}) {
         TODO: {
             local $TODO = "schroot --sbuild doesn't work when /dev/ptmx is ".
diff -Nru debootstrap-1.0.123+deb11u1/debian/tests/fake/schroot-1.6.10-3 debootstrap-1.0.123+deb11u2/debian/tests/fake/schroot-1.6.10-3
--- debootstrap-1.0.123+deb11u1/debian/tests/fake/schroot-1.6.10-3	2022-07-13 23:17:17.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/debian/tests/fake/schroot-1.6.10-3	2023-08-30 22:34:37.000000000 +0100
@@ -34,7 +34,6 @@
 
 [ "$bind_dev" = no ] || mount --bind /dev "$chroot/dev"
 mount --bind /dev/pts "$chroot/dev/pts"
-mount --bind /dev/ptmx "$chroot/dev/ptmx"
 
 ls -l "$chroot/dev/ptmx" | sed -e 's/^/# fake-schroot: /' >&2
 ls -l "$chroot/dev/pts/ptmx" | sed -e 's/^/# fake-schroot: /' >&2
@@ -43,7 +42,6 @@
 chroot "$chroot" "$@" || e=$?
 
 umount "$chroot/dev/pts"
-umount "$chroot/dev/ptmx"
 [ "$bind_dev" = no ] || umount "$chroot/dev"
 
 exit "$e"
diff -Nru debootstrap-1.0.123+deb11u1/debootstrap debootstrap-1.0.123+deb11u2/debootstrap
--- debootstrap-1.0.123+deb11u1/debootstrap	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/debootstrap	2023-08-30 22:34:37.000000000 +0100
@@ -41,6 +41,7 @@
 UNPACK_TARBALL=""
 ADDITIONAL=""
 EXCLUDE=""
+EXCLUDE_DEPENDENCY=""
 VERBOSE=""
 CERTIFICATE=""
 CHECKCERTIF=""
@@ -107,7 +108,10 @@
       --variant=X            use variant X of the bootstrap scripts
                              (currently supported variants: buildd, fakechroot,
                               minbase)
+      --merged-usr           make /{bin,sbin,lib}/ symlinks to /usr/
+                             (default for newer Debian suites)
       --no-merged-usr        do not make /{bin,sbin,lib}/ symlinks to /usr/
+                             (default for older Debian suites)
       --keyring=K            check Release files against keyring K
       --no-check-gpg         avoid checking Release file signatures
       --force-check-gpg      force checking Release file signatures
diff -Nru debootstrap-1.0.123+deb11u1/debootstrap.8 debootstrap-1.0.123+deb11u2/debootstrap.8
--- debootstrap-1.0.123+deb11u1/debootstrap.8	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/debootstrap.8	2023-08-30 22:34:37.000000000 +0100
@@ -89,11 +89,12 @@
 .IP
 .IP "\fB\-\-merged-usr\fP"
 Create /{bin,sbin,lib}/ symlinks pointing to their counterparts in /usr/.
-(Default for most variants.)
+(Default for most variants and suites.)
 .IP
 .IP "\fB\-\-no-merged-usr\fP"
 Do not create /{bin,sbin,lib}/ symlinks pointing to their counterparts in /usr/.
-(Default for the buildd variant.)
+(Default for the buildd variant of Debian 12 'bookworm' or older, and all
+variants of Debian 9 'stretch' or older.)
 .IP
 .IP "\fB\-\-keyring=KEYRING\fP"
 Override the default keyring for the distribution being bootstrapped,
diff -Nru debootstrap-1.0.123+deb11u1/functions debootstrap-1.0.123+deb11u2/functions
--- debootstrap-1.0.123+deb11u1/functions	2022-07-28 11:55:40.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/functions	2023-08-30 22:34:37.000000000 +0100
@@ -1328,17 +1328,116 @@
 	esac
 }
 
-# Find out where the runtime dynamic linker and the shared libraries
-# can be installed on each architecture: native, multilib and multiarch.
-# This data can be verified by checking the files in the debian/sysdeps/
-# directory of the glibc package.
-#
-# This function must be updated to support any new architecture which
-# either installs the RTLD in a directory different from /lib or builds
-# multilib library packages.
+can_usrmerge_symlink() {
+	# Absolute symlinks can be relocated without problems.
+	test "${2#/}" = "$2" || return 0
+	while :; do
+		if test "${2#/}" != "$2"; then
+			# Handle double-slashes.
+			set -- "$1" "${2#/}"
+		elif test "${2#./}" != "$2"; then
+			# Handle ./ inside a link target.
+			set -- "$1" "${2#./}"
+		elif test "$2" = ..; then
+			# A parent directory symlink is ok if it does not
+			# cross the top level directory.
+			test "${1%/*/*}" != "$1" -a -n "${1%/*/*}"
+			return $?
+		elif test "${2#../}" != "$2"; then
+			# Symbolic link crossing / cannot be moved safely.
+			# This is prohibited by Debian Policy 10.5.
+			test "${1%/*/*}" = "$1" -o -z "${1%/*/*}" && return 1
+			set -- "${1%/*}" "${2#../}"
+		else
+			# Consider the symlink ok if its target does not
+			# contain a parent directory. When we fail here,
+			# the link target is non-minimal and doesn't happen
+			# in the archive.
+			test "${2#*/../}" = "$2"
+			return $?
+		fi
+	done
+}
+
+merge_usr_entry() {
+	local entry canon
+	canon="$TARGET/usr/${1#"$TARGET/"}"
+	test -h "$canon" &&
+		error 1 USRMERGEFAIL "cannot move %s as its destination exists as a symlink" "${1#"$TARGET"}"
+	if ! test -e "$canon"; then
+		mv "$1" "$canon"
+		return 0
+	fi
+	test -d "$1" ||
+		error 1 USRMERGEFAIL "cannot move non-directory %s as its destination exists" "${1#"$TARGET"}"
+	test -d "$canon" ||
+		error 1 USRMERGEFAIL "cannot move directory %s as its destination is not a directory" "${1#"$TARGET"}"
+	for entry in "$1/"* "$1/."*; do
+		# Some shells return . and .. on dot globs.
+		test "${entry%/.}" != "${entry%/..}" && continue
+		if test -h "$entry" && ! can_usrmerge_symlink "${entry#"$TARGET"}" "$(readlink "$entry")"; then
+			error 1 USRMERGEFAIL "cannot move relative symlink crossing top-level directory" "${entry#"$TARGET"}"
+		fi
+		# Ignore glob match failures
+		if test "${entry%'/*'}" != "${entry%'/.*'}" && ! test -e "$entry"; then
+			continue
+		fi
+		merge_usr_entry "$entry"
+	done
+	rmdir "$1"
+}
+
+merge_usr() {
+	if doing_variant buildd && [ -z "$MERGED_USR" ]; then
+	    case "$CODENAME" in
+		etch*|lenny|squeeze|wheezy|jessie*|stretch|buster|bullseye|bookworm)
+		    MERGED_USR="no"
+		    ;;
+	    esac
+	fi
+
+	if [ "$MERGED_USR" = "no" ]; then
+	    # With the usrmerge becoming pseudo-essential we need to use this flag
+	    # to ensure that even if it gets installed the buildd is not converted
+	    # when debootstrap needs to create an unmerged-usr installation.
+	    case "$CODENAME" in
+		etch*|lenny|squeeze|wheezy|jessie*|stretch|buster|bullseye)
+		    ;;
+		*)
+		    mkdir -p "$TARGET/etc"
+		    echo "this system will not be supported in the future" > "$TARGET/etc/unsupported-skip-usrmerge-conversion"
+		    if ! doing_variant buildd; then
+			warning SANITYCHECK "Upgrading non-merged-/usr environments post-bookworm is unsupported. Only do this for CI/QA infrastructure that will be re-bootstrapped rather than upgraded."
+		    fi
+		    ;;
+	    esac
+	    return 0;
+	fi
+
+	local dir
+	# This is list includes all possible multilib directories. It must be
+	# updated when new multilib directories are being added. Hopefully,
+	# all new architectures use multiarch instead, so we never get to
+	# update this.
+	for dir in bin lib lib32 lib64 libo32 libx32 sbin; do
+		test -h "$TARGET/$dir" && continue
+		test -e "$TARGET/$dir" || continue
+		merge_usr_entry "$TARGET/$dir"
+		ln -s "usr/$dir" "$TARGET/$dir"
+	done
+}
+
+# Previous implementation of merged /usr: not used within debootstrap,
+# but used by mmdebstrap's hooks/merged-usr/setup00.sh, mainly to get
+# the correct per-architecture $link_dir list of non-default multilib
+# directories.
 setup_merged_usr() {
 	if doing_variant buildd && [ -z "$MERGED_USR" ]; then
-		MERGED_USR="no"
+	    case "$CODENAME" in
+		etch*|lenny|squeeze|wheezy|jessie*|stretch|buster|bullseye|bookworm)
+		    MERGED_USR="no"
+		    ;;
+	    esac
 	fi
 
 	if [ "$MERGED_USR" = "no" ]; then
@@ -1359,15 +1458,16 @@
 	    return 0;
 	fi
 
-	local link_dir
+	local link_dir=""
 	case $ARCH in
-	    hurd-*)	return 0 ;;
 	    amd64)	link_dir="lib32 lib64 libx32" ;;
 	    i386)	link_dir="lib64 libx32" ;;
 	    mips|mipsel)
 			link_dir="lib32 lib64" ;;
 	    mips64*|mipsn32*)
 			link_dir="lib32 lib64 libo32" ;;
+	    loongarch64*)
+			link_dir="lib32 lib64" ;;
 	    powerpc)	link_dir="lib64" ;;
 	    ppc64)	link_dir="lib32 lib64" ;;
 	    ppc64el)	link_dir="lib64" ;;
@@ -1555,6 +1655,9 @@
 				NEWPKGS="$NEWPKGS $("$PKGDETAILS" GETDEPS "$pkgdest" $PKGS)"
 			done
 		done
+		if [ -n "${EXCLUDE_DEPENDENCY:-}" ]; then
+			NEWPKGS="$(without "$NEWPKGS" "$EXCLUDE_DEPENDENCY")"
+		fi
 		PKGS=$(echo "$PKGS $NEWPKGS" | tr ' ' '\n' | sort | uniq)
 		local REALPKGS=""
 		for s in $SUITE $EXTRA_SUITES; do
diff -Nru debootstrap-1.0.123+deb11u1/scripts/amber debootstrap-1.0.123+deb11u2/scripts/amber
--- debootstrap-1.0.123+deb11u1/scripts/amber	2022-07-13 23:17:17.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/amber	2023-08-30 22:34:37.000000000 +0100
@@ -53,8 +53,8 @@
 	MERGED_USR="yes"
 	EXTRACT_DEB_TAR_OPTIONS="$EXTRACT_DEB_TAR_OPTIONS -k"
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/artful debootstrap-1.0.123+deb11u2/scripts/artful
--- debootstrap-1.0.123+deb11u1/scripts/artful	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/artful	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/bionic debootstrap-1.0.123+deb11u2/scripts/bionic
--- debootstrap-1.0.123+deb11u1/scripts/bionic	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/bionic	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/cosmic debootstrap-1.0.123+deb11u2/scripts/cosmic
--- debootstrap-1.0.123+deb11u1/scripts/cosmic	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/cosmic	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/debian-common debootstrap-1.0.123+deb11u2/scripts/debian-common
--- debootstrap-1.0.123+deb11u1/scripts/debian-common	2022-07-28 11:55:40.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/debian-common	2023-08-30 22:34:37.000000000 +0100
@@ -42,9 +42,9 @@
 	esac
 
 	# On suites >= bookworm, either we set up a merged-/usr system
-	# via setup_merged_usr, or we deliberately avoided that migration
-	# by creating the flag file. This means there's no need for the
-	# live migration 'usrmerge' package and its extra dependencies:
+	# 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
@@ -52,6 +52,7 @@
 			;;
 		*)
 			required="$required usr-is-merged"
+			EXCLUDE_DEPENDENCY="$EXCLUDE_DEPENDENCY usrmerge"
 			;;
 	esac
 }
@@ -72,8 +73,8 @@
 		MERGED_USR="no"
 	fi
 		
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/disco debootstrap-1.0.123+deb11u2/scripts/disco
--- debootstrap-1.0.123+deb11u1/scripts/disco	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/disco	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/eoan debootstrap-1.0.123+deb11u2/scripts/eoan
--- debootstrap-1.0.123+deb11u1/scripts/eoan	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/eoan	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/focal debootstrap-1.0.123+deb11u2/scripts/focal
--- debootstrap-1.0.123+deb11u1/scripts/focal	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/focal	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/gutsy debootstrap-1.0.123+deb11u2/scripts/gutsy
--- debootstrap-1.0.123+deb11u1/scripts/gutsy	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/gutsy	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/hardy debootstrap-1.0.123+deb11u2/scripts/hardy
--- debootstrap-1.0.123+deb11u1/scripts/hardy	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/hardy	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/intrepid debootstrap-1.0.123+deb11u2/scripts/intrepid
--- debootstrap-1.0.123+deb11u1/scripts/intrepid	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/intrepid	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/jaunty debootstrap-1.0.123+deb11u2/scripts/jaunty
--- debootstrap-1.0.123+deb11u1/scripts/jaunty	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/jaunty	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/karmic debootstrap-1.0.123+deb11u2/scripts/karmic
--- debootstrap-1.0.123+deb11u1/scripts/karmic	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/karmic	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/lucid debootstrap-1.0.123+deb11u2/scripts/lucid
--- debootstrap-1.0.123+deb11u1/scripts/lucid	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/lucid	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/maverick debootstrap-1.0.123+deb11u2/scripts/maverick
--- debootstrap-1.0.123+deb11u1/scripts/maverick	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/maverick	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/natty debootstrap-1.0.123+deb11u2/scripts/natty
--- debootstrap-1.0.123+deb11u1/scripts/natty	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/natty	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/oneiric debootstrap-1.0.123+deb11u2/scripts/oneiric
--- debootstrap-1.0.123+deb11u1/scripts/oneiric	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/oneiric	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/precise debootstrap-1.0.123+deb11u2/scripts/precise
--- debootstrap-1.0.123+deb11u1/scripts/precise	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/precise	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/quantal debootstrap-1.0.123+deb11u2/scripts/quantal
--- debootstrap-1.0.123+deb11u1/scripts/quantal	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/quantal	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/raring debootstrap-1.0.123+deb11u2/scripts/raring
--- debootstrap-1.0.123+deb11u1/scripts/raring	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/raring	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/saucy debootstrap-1.0.123+deb11u2/scripts/saucy
--- debootstrap-1.0.123+deb11u1/scripts/saucy	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/saucy	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/trixie debootstrap-1.0.123+deb11u2/scripts/trixie
--- debootstrap-1.0.123+deb11u1/scripts/trixie	1970-01-01 01:00:00.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/trixie	2023-08-30 22:34:37.000000000 +0100
@@ -0,0 +1,16 @@
+mirror_style release
+download_style apt
+finddebs_style from-indices
+variants - buildd fakechroot minbase
+keyring /usr/share/keyrings/debian-archive-keyring.gpg
+
+# include common settings
+if [ -e "$DEBOOTSTRAP_DIR/scripts/debian-common" ]; then
+ . "$DEBOOTSTRAP_DIR/scripts/debian-common"
+elif [ -e /debootstrap/debian-common ]; then
+ . /debootstrap/debian-common
+elif [ -e "$DEBOOTSTRAP_DIR/debian-common" ]; then
+ . "$DEBOOTSTRAP_DIR/debian-common"
+else
+ error 1 NOCOMMON "File not found: debian-common"
+fi
diff -Nru debootstrap-1.0.123+deb11u1/scripts/trusty debootstrap-1.0.123+deb11u2/scripts/trusty
--- debootstrap-1.0.123+deb11u1/scripts/trusty	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/trusty	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/utopic debootstrap-1.0.123+deb11u2/scripts/utopic
--- debootstrap-1.0.123+deb11u1/scripts/utopic	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/utopic	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/vivid debootstrap-1.0.123+deb11u2/scripts/vivid
--- debootstrap-1.0.123+deb11u1/scripts/vivid	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/vivid	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/wily debootstrap-1.0.123+deb11u2/scripts/wily
--- debootstrap-1.0.123+deb11u1/scripts/wily	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/wily	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/xenial debootstrap-1.0.123+deb11u2/scripts/xenial
--- debootstrap-1.0.123+deb11u1/scripts/xenial	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/xenial	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/yakkety debootstrap-1.0.123+deb11u2/scripts/yakkety
--- debootstrap-1.0.123+deb11u1/scripts/yakkety	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/yakkety	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"
diff -Nru debootstrap-1.0.123+deb11u1/scripts/zesty debootstrap-1.0.123+deb11u2/scripts/zesty
--- debootstrap-1.0.123+deb11u1/scripts/zesty	2022-07-28 11:55:11.000000000 +0100
+++ debootstrap-1.0.123+deb11u2/scripts/zesty	2023-08-30 22:34:37.000000000 +0100
@@ -84,8 +84,8 @@
 			;;
 	esac
 
-	setup_merged_usr
 	extract $required
+	merge_usr
 
 	mkdir -p "$TARGET/var/lib/dpkg"
 	: >"$TARGET/var/lib/dpkg/status"

Reply via email to