Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package debootstrap for openSUSE:Factory 
checked in at 2022-12-15 19:25:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/debootstrap (Old)
 and      /work/SRC/openSUSE:Factory/.debootstrap.new.1835 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "debootstrap"

Thu Dec 15 19:25:30 2022 rev:24 rq:1043017 version:1.0.128

Changes:
--------
--- /work/SRC/openSUSE:Factory/debootstrap/debootstrap.changes  2021-06-07 
22:45:33.456693561 +0200
+++ /work/SRC/openSUSE:Factory/.debootstrap.new.1835/debootstrap.changes        
2022-12-15 19:25:59.780326380 +0100
@@ -1,0 +2,28 @@
+Wed Dec  7 22:28:32 UTC 2022 - Dirk Müller <dmuel...@suse.com>
+
+- update to 1.0.128:
+  * Make gbp tag produce the right tag format
+  * Add (PureOS) byzantium as a symlink to amber
+  * Add (PureOS) crimson as a symlink to amber
+  * Support Packages files which are not ordered alphabetically by Package 
field
+  * Apply "EXCLUDE_DEPENDENCY" during "resolve_deps"
+  * debootstrap: optionally exclude specific dependencies
+  * debian-common: exclude usrmerge when installing usr-is-merged
+  * Enable usrmerge on hurd-i386 too.
+  * add usrmerge support loongarch64.
+  * Avoid duplicate components in `sources.list`.
+  * Mount /dev/fd if the host is FreeBSD.
+  * Update renamed lintian tag names in lintian overrides.
+  * Update standards version to 4.6.0.1, no changes needed.
+  * setup_merged_usr: create skip flag when merged-usr is disabled on bookworm+
+  * Add usr-is-merged to the required set on testing/unstable
+  * Ensure bookworm+ suites are set up with merged-usr.
+  * functions (download_main): Let the loops try the different components and
+    suites when the checksum doesn't match. This is needed when several of
+    them contain the same package name.
+  * Fix auto proxy discovery
+  * Fix detection of docker container for cgroup v2
+  * functions: define link_dir before using it.
+  * Add (Debian) trixie as a symlink to sid.
+
+-------------------------------------------------------------------

Old:
----
  debootstrap-1.0.124.tar.bz2

New:
----
  debootstrap-1.0.128.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ debootstrap.spec ++++++
--- /var/tmp/diff_new_pack.UXrOoC/_old  2022-12-15 19:26:01.020333434 +0100
+++ /var/tmp/diff_new_pack.UXrOoC/_new  2022-12-15 19:26:01.028333480 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package debootstrap
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
 # Copyright (c) 2012 Frank Lichtenheld <fr...@lichtenheld.de>
 #
 # All modifications and additions to the file contributed by third parties
@@ -18,7 +18,7 @@
 
 
 Name:           debootstrap
-Version:        1.0.124
+Version:        1.0.128
 Release:        0
 Summary:        Bootstrap a basic Debian system
 License:        MIT

++++++ debootstrap-1.0.124.tar.bz2 -> debootstrap-1.0.128.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/debootstrap-1.0.124/debian/changelog 
new/debootstrap-1.0.128/debian/changelog
--- old/debootstrap-1.0.124/debian/changelog    2021-04-26 16:02:48.000000000 
+0200
+++ new/debootstrap-1.0.128/debian/changelog    2022-10-14 13:31:10.000000000 
+0200
@@ -1,3 +1,98 @@
+debootstrap (1.0.128) unstable; urgency=low
+
+  [ Samuel Thibault ]
+  * Make gbp tag produce the right tag format
+
+  [ Carsten Schoenert ]
+  * Add (PureOS) byzantium as a symlink to amber
+  * Add (PureOS) crimson as a symlink to amber
+
+  [ Daniel Watkins ]
+  * Support Packages files which are not ordered alphabetically by Package 
field
+    (LP: #1990856)
+
+  [ Dimitri John Ledkov ]
+  * d/tests/unsorted-packages-files: cleanup temp files and daemon
+
+  [ Tianon Gravi ]
+  * Apply "EXCLUDE_DEPENDENCY" during "resolve_deps"
+
+ -- Dimitri John Ledkov <dimitri.led...@canonical.com>  Fri, 14 Oct 2022 
12:31:04 +0100
+
+debootstrap (1.0.127+nmu1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+
+  [ Ansgar ]
+  * debootstrap: optionally exclude specific dependencies
+  * debian-common: exclude usrmerge when installing usr-is-merged
+
+  [ Samuel Thibault ]
+  * Enable usrmerge on hurd-i386 too.
+
+ -- Luca Boccassi <bl...@debian.org>  Sat, 24 Sep 2022 14:07:46 +0100
+
+debootstrap (1.0.127) unstable; urgency=medium
+
+  [ Heysion Yuan ]
+  * add usrmerge support loongarch64.
+
+  [ Paul Menzel ]
+  * Avoid duplicate components in `sources.list`.
+
+  [ Edward Tomasz Napierala ]
+  * Mount /dev/fd if the host is FreeBSD.
+
+  [ Debian Janitor ]
+  * Bump debhelper from old 12 to 13.
+  * Update renamed lintian tag names in lintian overrides.
+
+  [ Luca Falavigna ]
+  * Add (Ubuntu) kinetic as a symlink to gutsy.
+  * Update standards version to 4.6.0.1, no changes needed.
+
+  [ Luca Boccassi ]
+  * setup_merged_usr: create skip flag when merged-usr is disabled on bookworm+
+  * Add usr-is-merged to the required set on testing/unstable
+
+ -- Dimitri John Ledkov <dimitri.led...@canonical.com>  Mon, 25 Jul 2022 
13:25:39 +0100
+
+debootstrap (1.0.126+nmu1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Undo the changes of the last upload. (Closes: #998867)
+
+ -- Johannes Schauer Marin Rodrigues <jo...@debian.org>  Sun, 28 Nov 2021 
12:38:15 +0100
+
+debootstrap (1.0.126) unstable; urgency=low
+
+  * Ensure bookworm+ suites are set up with merged-usr. (Closes: #978636)
+
+ -- Dimitri John Ledkov <dimitri.led...@canonical.com>  Mon, 08 Nov 2021 
14:40:06 +0000
+
+debootstrap (1.0.125) unstable; urgency=medium
+
+  [ Samuel Thibault ]
+  * functions (download_main): Let the loops try the different components and
+    suites when the checksum doesn't match. This is needed when several of
+    them contain the same package name.
+
+  [ Arnaud Rebillout ]
+  * Fix auto proxy discovery (Closes: #985811)
+  * Fix detection of docker container for cgroup v2 (Closes: #985481)
+
+  [ Johannes 'josch' Schauer ]
+  * functions: define link_dir before using it.
+
+  [ Hideki Yamane ]
+  * Add (Debian) trixie as a symlink to sid.
+
+  [ Dimitri John Ledkov ]
+  * Add (Ubuntu) jammy as a symlink to gutsy.
+  * Upload to unstable.
+
+ -- Dimitri John Ledkov <dimitri.led...@canonical.com>  Tue, 02 Nov 2021 
11:35:00 +0000
+
 debootstrap (1.0.124) experimental; urgency=medium
 
   [ Colin Watson ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/debootstrap-1.0.124/debian/control 
new/debootstrap-1.0.128/debian/control
--- old/debootstrap-1.0.124/debian/control      2021-04-26 16:02:48.000000000 
+0200
+++ new/debootstrap-1.0.128/debian/control      2022-10-14 13:31:10.000000000 
+0200
@@ -4,8 +4,8 @@
 Maintainer: Debian Install System Team <debian-b...@lists.debian.org>
 Uploaders: Colin Watson <cjwat...@debian.org>, Steve McIntyre 
<93...@debian.org>,
            Hideki Yamane <henr...@debian.org>,
-Build-Depends: debhelper-compat (= 12)
-Standards-Version: 4.5.0
+Build-Depends: debhelper-compat (= 13)
+Standards-Version: 4.6.0.1
 Vcs-Browser: https://salsa.debian.org/installer-team/debootstrap
 Vcs-Git: https://salsa.debian.org/installer-team/debootstrap.git
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/debootstrap-1.0.124/debian/gbp.conf 
new/debootstrap-1.0.128/debian/gbp.conf
--- old/debootstrap-1.0.124/debian/gbp.conf     2021-04-26 16:02:48.000000000 
+0200
+++ new/debootstrap-1.0.128/debian/gbp.conf     2022-10-14 13:31:10.000000000 
+0200
@@ -1,2 +1,2 @@
-[buildpackage]
+[DEFAULT]
 debian-tag = %(version)s
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/debootstrap-1.0.124/debian/source/lintian-overrides 
new/debootstrap-1.0.128/debian/source/lintian-overrides
--- old/debootstrap-1.0.124/debian/source/lintian-overrides     2021-04-26 
16:02:48.000000000 +0200
+++ new/debootstrap-1.0.128/debian/source/lintian-overrides     2022-10-14 
13:31:10.000000000 +0200
@@ -1,3 +1,3 @@
-debootstrap source: debian-source-options-has-custom-compression-settings 
compression = gzip (line *)
-debootstrap source: debian-rules-should-not-use-custom-compression-settings 
dh_builddeb -pdebootstrap * -- -Zgzip (line *)
-debootstrap source: debian-rules-should-not-use-custom-compression-settings 
dh_builddeb -pdebootstrap-udeb -- -Zxz (line *)
+debootstrap source: custom-compression-in-debian-source-options compression = 
gzip (line *)
+debootstrap source: custom-compression-in-debian-rules dh_builddeb 
-pdebootstrap * -- -Zgzip (line *)
+debootstrap source: custom-compression-in-debian-rules dh_builddeb 
-pdebootstrap-udeb -- -Zxz (line *)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/debootstrap-1.0.124/debian/tests/control 
new/debootstrap-1.0.128/debian/tests/control
--- old/debootstrap-1.0.124/debian/tests/control        2021-04-26 
16:02:48.000000000 +0200
+++ new/debootstrap-1.0.128/debian/tests/control        2022-10-14 
13:31:10.000000000 +0200
@@ -9,3 +9,11 @@
  systemd-container [linux-any],
  ca-certificates,
 Restrictions: allow-stderr, needs-root
+
+Tests: unsorted-packages-files
+Depends:
+ debootstrap,
+ python3-debian,
+ python3-flask,
+ python3-requests,
+Restrictions: allow-stderr
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/debootstrap-1.0.124/debian/tests/mitm.py 
new/debootstrap-1.0.128/debian/tests/mitm.py
--- old/debootstrap-1.0.124/debian/tests/mitm.py        1970-01-01 
01:00:00.000000000 +0100
+++ new/debootstrap-1.0.128/debian/tests/mitm.py        2022-10-14 
13:31:10.000000000 +0200
@@ -0,0 +1,92 @@
+"""Flask app which MITM's an archive to generate out-of-order apt lists.
+
+Specifically, it prepends an additional Packages file stanza for a non-existent
+lower version of apt: a fixed version of debootstrap will find the second
+(correct) apt stanza and succeed; a broken version of debootstrap will find
+only the first (non-existent) apt stanza and fail.
+"""
+import functools
+import gzip
+import hashlib
+import os
+
+import requests
+from debian.deb822 import Packages
+from flask import Flask, redirect
+
+app = Flask(__name__)
+
+ARCH = os.environ.get("FLASK_ARCH", "amd64")
+DIST = os.environ.get("FLASK_DIST", "bookworm")
+DISTRO = os.environ.get("FLASK_DISTRO", "debian")
+MIRROR = os.environ.get("FLASK_MIRROR", "http://deb.debian.org";)
+
+
+if DISTRO == "debian":
+    hash_funcs = [hashlib.md5, hashlib.sha256]
+else:
+    # Ubuntu includes SHA1 still
+    hash_funcs = [hashlib.md5, hashlib.sha1, hashlib.sha256]
+
+
+def _munge_release_file(url: str) -> bytes:
+    """Given a Release file URL, rewrite it for our modified Packages 
content."""
+    original = requests.get(MIRROR + "/" + url).content
+    packages_content = _packages_content(
+        f"{DISTRO}/dists/{DIST}/main/binary-{ARCH}/Packages"
+    )
+    size = bytes(str(len(packages_content)), "ascii")
+    sums = [
+        bytes(hash_func(packages_content).hexdigest(), "ascii")
+        for hash_func in hash_funcs
+    ]
+    new_lines = []
+    filename = f"main/binary-{ARCH}/Packages".encode("ascii")
+    for line in original.splitlines():
+        if not line.endswith(filename):
+            new_lines.append(line)
+            continue
+        new_lines.append(b" ".join([b"", sums.pop(0), size, filename]))
+    return b"\n".join(new_lines)
+
+
+@functools.lru_cache
+def _packages_content(url: str) -> bytes:
+    """Given a Packages URL, fetch it and prepend a broken apt stanza."""
+    resp = requests.get(MIRROR + "/" + url + ".gz")
+    upstream_content = gzip.decompress(resp.content)
+
+    # Find the first `apt` stanza
+    for stanza in Packages.iter_paragraphs(upstream_content):
+        if stanza["Package"] == "apt":
+            break
+
+    # Generate the broken stanza
+    new_version = stanza["Version"] + "~test"
+    stanza["Filename"] = stanza["Filename"].replace(stanza["Version"], 
new_version)
+    stanza["Version"] = new_version
+
+    # Prepend the stanza to the upstream content
+    return bytes(stanza) + b"\n" + upstream_content
+
+
+@app.route("/<path:url>", methods=["GET", "POST"])
+def root(url):
+    """Handler for all requests."""
+    if (
+        url == f"{DISTRO}/dists/{DIST}/InRelease"
+        or "by-hash" in url
+        or "Packages.xz" in url
+        or "Packages.gz" in url
+    ):
+        # 404 these URLs to force clients to fetch by path and without 
compression, to
+        # make MITM easier
+        return "", 404
+    if url == f"{DISTRO}/dists/{DIST}/Release":
+        # If Release is being fetched, return our modified version
+        return _munge_release_file(url)
+    if url == f"{DISTRO}/dists/{DIST}/main/binary-{ARCH}/Packages":
+        # If Packages is being fetched, return our modified version
+        return _packages_content(url)
+    # For anything we don't need to modify, redirect clients to upstream mirror
+    return redirect(f"{MIRROR}/{url}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/debootstrap-1.0.124/debian/tests/unsorted-packages-files 
new/debootstrap-1.0.128/debian/tests/unsorted-packages-files
--- old/debootstrap-1.0.124/debian/tests/unsorted-packages-files        
1970-01-01 01:00:00.000000000 +0100
+++ new/debootstrap-1.0.128/debian/tests/unsorted-packages-files        
2022-10-14 13:31:10.000000000 +0200
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+# This test runs the mitm.py Flask app which debootstrap is then pointed at.
+# mitm.py will return a Packages file which has an additional `apt` stanza
+# prepended, with the Version and Filename adjusted to point at a lower,
+# non-existent version.  Versions of debootstrap which process _all_ Packages
+# files entries will find the original stanza later in the file (and
+# succesfully fetch the corresponding package file): versions that don't will
+# find the prepended stanza and fail (with a 404 of the nonexistent package
+# file).
+
+export FLASK_ARCH=amd64
+export FLASK_DIST=bookworm
+export FLASK_DISTRO=debian
+export FLASK_MIRROR=http://deb.debian.org
+
+# Launch our MitM "mirror" server, ensure that request logging is sent to 
stdout
+PYTHONDONTWRITEBYTECODE=true FLASK_APP=debian/tests/mitm.py flask run 2>&1 &
+flask_pid=$!
+
+# Give Flask time to come up
+sleep 2
+
+tempdir=$(mktemp -d)
+# Run debootstrap against our MitM "mirror", ignoring the inevitable GPG errors
+debootstrap --download-only --variant minbase --no-check-gpg ${FLASK_DIST} 
$tempdir http://127.0.0.1:5000/${FLASK_DISTRO}/
+rc=$?
+
+rm -rf $tempdir
+kill $flask_pid
+
+exit $rc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/debootstrap-1.0.124/debootstrap 
new/debootstrap-1.0.128/debootstrap
--- old/debootstrap-1.0.124/debootstrap 2021-04-26 16:02:48.000000000 +0200
+++ new/debootstrap-1.0.128/debootstrap 2022-10-14 13:31:10.000000000 +0200
@@ -41,6 +41,7 @@
 UNPACK_TARBALL=""
 ADDITIONAL=""
 EXCLUDE=""
+EXCLUDE_DEPENDENCY=""
 VERBOSE=""
 CERTIFICATE=""
 CHECKCERTIF=""
@@ -453,7 +454,10 @@
 # do auto proxy discovery
 AUTOPROXY=""
 if ! doing_variant fakechroot && command -v apt-config >/dev/null; then
-    eval "$(apt-config shell AUTOPROXY Acquire::http::ProxyAutoDetect)"
+    eval "$(apt-config shell AUTOPROXY Acquire::http::Proxy-Auto-Detect)"
+    if [ -z "$AUTOPROXY" ]; then
+        eval "$(apt-config shell AUTOPROXY Acquire::http::ProxyAutoDetect)"
+    fi
     if [ -z "$http_proxy" ] && [ -x "$AUTOPROXY" ]; then
         http_proxy="$($AUTOPROXY)"
         if [ -n "$http_proxy" ]; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/debootstrap-1.0.124/functions 
new/debootstrap-1.0.128/functions
--- old/debootstrap-1.0.124/functions   2021-04-26 16:02:48.000000000 +0200
+++ new/debootstrap-1.0.128/functions   2022-10-14 13:31:10.000000000 +0200
@@ -237,7 +237,7 @@
                CONTAINER="lxc-libvirt"
        elif grep -qs ^systemd-nspawn$ /run/systemd/container || grep -qs 
systemd-nspawn /proc/1/environ || [ "$container" = "systemd-nspawn" ]; then
                CONTAINER="systemd-nspawn"
-       elif grep -qs '[[:space:]]/docker/.*/sys/fs/cgroup' /proc/1/mountinfo; 
then
+       elif grep -qs '[[:space:]]/docker/.*/sys/fs/cgroup' /proc/1/mountinfo 
|| [ -e "/.dockerenv" ]; then
                CONTAINER="docker"
        else
                CONTAINER=""
@@ -538,6 +538,10 @@
        local reldest="$1"; shift
        TMPCOMPONENTS="$(sed -n 's/Components: *//p' "$reldest")"
        for c in $TMPCOMPONENTS ; do
+               case " $COMPONENTS " in
+                       *" $c "*) continue ;;
+               esac;
+
                eval "
                case \"\$c\" in
                    $USE_COMPONENTS)
@@ -922,6 +926,8 @@
                                                echo 
>>"$TARGET/debootstrap/debpaths" "$p $debdest"
                                                details="done"
                                                break
+                                       else
+                                               details=""
                                        fi
                                done
                                if [ "$details" != "" ]; then
@@ -1125,6 +1131,7 @@
        for m in "$@"; do
                for s in $SUITE $EXTRA_SUITES; do
                        local cs c path pkgdest
+                       cs=""
                        for c in ${COMPONENTS:-$USE_COMPONENTS}; do
                                path="dists/$s/$c/binary-$ARCH/Packages"
                                pkgdest="$TARGET/$($DLDEST pkg "$s" "$c" 
"$ARCH" "$m" "$path")"
@@ -1172,6 +1179,7 @@
        case "$HOST_OS" in
            *freebsd*)
                umount_on_exit /dev
+               umount_on_exit /dev/fd
                umount_on_exit /proc
                umount "$TARGET/proc" 2>/dev/null || true
                if [ "$HOST_OS" = kfreebsd ]; then
@@ -1262,7 +1270,8 @@
            kfreebsd*)
                in_target mount -t devfs devfs /dev ;;
            freebsd)
-               mount -t devfs devfs "$TARGET/dev" ;;
+               mount -t devfs devfs "$TARGET/dev"
+               mount -t fdescfs -o linrdlnk fdescfs "$TARGET/dev/fd" ;;
            hurd*)
                # Use the setup-translators of the hurd package
                in_target /usr/lib/hurd/setup-translators -k ;;
@@ -1362,17 +1371,34 @@
                MERGED_USR="no"
        fi
 
-       if [ "$MERGED_USR" = "no" ]; then return 0; 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 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" ;;
@@ -1413,26 +1439,31 @@
                # uniq field mirror Packages values...
                perl -le '
 $unique = shift @ARGV; $field = lc(shift @ARGV); $mirror = shift @ARGV;
-%fields = map { $_, 0 } @ARGV;
+%expected = map { $_, 0 } @ARGV;
+%outputs;
 $prevpkg = "";
 $chksumfield = lc($ENV{DEBOOTSTRAP_CHECKSUM_FIELD}).":";
+
+sub emit_or_store_pkg {
+       if ($unique && defined $output_val) {
+               # Store the output for deduplicated emission later
+               $outputs{$output_val} = $output;
+       } else {
+               print $output if defined $output;
+       }
+}
+
 while (<STDIN>) {
        if (/^([^:]*:)\s*(.*)$/) {
                $f = lc($1); $v = $2;
                if ($f eq "package:") {
-                       $last = 0;
                        $pkg = $v;
                        if ($pkg ne $prevpkg) {
-                               print $output if defined $output;
-                               if ($unique && defined $output_val) {
-                                       delete $fields{$output_val};
-                                       $last = 1 unless keys %fields;
-                               }
+                               emit_or_store_pkg;
                                $prevpkg = $pkg;
                        }
                        undef $output;
                        undef $output_val;
-                       last if $last;
                }
                $ver = $v if ($f eq "version:");
                $arc = $v if ($f eq "architecture:");
@@ -1441,7 +1472,7 @@
                $siz = $v if ($f eq "size:");
                $val = $v if ($f eq $field);
        } elsif (/^$/) {
-               if (defined $val && defined $fields{$val}) {
+               if (defined $val && defined $expected{$val}) {
                        $output = sprintf "%s %s %s %s %s %s %s",
                         $pkg, $ver, $arc, $mirror, $fil, $chk, $siz;
                        $output_val = $val;
@@ -1449,10 +1480,15 @@
                undef $val;
        }
 }
-print $output if defined $output;
-delete $fields{$output_val} if $unique && defined $output_val;
-for $v (keys %fields) {
-       printf ("%s -\n", $v) if ($unique);
+emit_or_store_pkg;
+
+if ($unique) {
+       # Emit all of our deduplicated values
+       map { print } sort values %outputs;
+       # And emit any expected packages that were not found
+       foreach my $v (keys %expected) {
+               printf ("%s -\n", $v) if !defined $outputs{$v};
+       }
 }
 ' "$@"
        }
@@ -1561,6 +1597,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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/debootstrap-1.0.124/scripts/byzantium 
new/debootstrap-1.0.128/scripts/byzantium
--- old/debootstrap-1.0.124/scripts/byzantium   1970-01-01 01:00:00.000000000 
+0100
+++ new/debootstrap-1.0.128/scripts/byzantium   2022-12-15 19:26:02.272340558 
+0100
@@ -0,0 +1 @@
+symbolic link to amber
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/debootstrap-1.0.124/scripts/crimson 
new/debootstrap-1.0.128/scripts/crimson
--- old/debootstrap-1.0.124/scripts/crimson     1970-01-01 01:00:00.000000000 
+0100
+++ new/debootstrap-1.0.128/scripts/crimson     2022-12-15 19:26:01.836338077 
+0100
@@ -0,0 +1 @@
+symbolic link to amber
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/debootstrap-1.0.124/scripts/debian-common 
new/debootstrap-1.0.128/scripts/debian-common
--- old/debootstrap-1.0.124/scripts/debian-common       2021-04-26 
16:02:48.000000000 +0200
+++ new/debootstrap-1.0.128/scripts/debian-common       2022-10-14 
13:31:10.000000000 +0200
@@ -40,6 +40,21 @@
                esac
                ;;
        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:
+       # 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
 }
 
 first_stage_install () {
@@ -57,7 +72,7 @@
        if [ "$CODENAME" = "stretch" ] && [ -z "$MERGED_USR" ]; then
                MERGED_USR="no"
        fi
-               
+
        setup_merged_usr
        extract $required
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/debootstrap-1.0.124/scripts/jammy 
new/debootstrap-1.0.128/scripts/jammy
--- old/debootstrap-1.0.124/scripts/jammy       1970-01-01 01:00:00.000000000 
+0100
+++ new/debootstrap-1.0.128/scripts/jammy       2022-12-15 19:26:02.072339420 
+0100
@@ -0,0 +1 @@
+symbolic link to gutsy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/debootstrap-1.0.124/scripts/kinetic 
new/debootstrap-1.0.128/scripts/kinetic
--- old/debootstrap-1.0.124/scripts/kinetic     1970-01-01 01:00:00.000000000 
+0100
+++ new/debootstrap-1.0.128/scripts/kinetic     2022-12-15 19:26:02.188340080 
+0100
@@ -0,0 +1 @@
+symbolic link to gutsy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/debootstrap-1.0.124/scripts/trixie 
new/debootstrap-1.0.128/scripts/trixie
--- old/debootstrap-1.0.124/scripts/trixie      1970-01-01 01:00:00.000000000 
+0100
+++ new/debootstrap-1.0.128/scripts/trixie      2022-12-15 19:26:01.808337918 
+0100
@@ -0,0 +1 @@
+symbolic link to sid

Reply via email to