[Bug 2020530] Re: The debootstrap SRU to end all debootstrap SRUs

Steve Langasek 2020530 at bugs.launchpad.net
Sat May 27 04:46:58 UTC 2023


lunar passes.  After amending the test case to clean up the output of
the diff, here is the remaining manageable delta which I think is not
worth further test case refinement on as it can be hand-reviewed for
sanity.

diff -ur bionic-old/etc/console-setup/cached_setup_keyboard.sh bionic-new/etc/console-setup/cached_setup_keyboard.sh
--- bionic-old/etc/console-setup/cached_setup_keyboard.sh	2023-05-27 02:40:01.972144149 +0000
+++ bionic-new/etc/console-setup/cached_setup_keyboard.sh	2023-05-27 03:46:59.789488446 +0000
@@ -5,4 +5,4 @@
     exit 0
 fi
 kbd_mode '-u' 
-loadkeys '/tmp/tmpkbd.0HDubT' > '/dev/null' 
+loadkeys '/tmp/tmpkbd.Ds1StA' > '/dev/null' 
Binary files bionic-old/var/lib/systemd/catalog/database and bionic-new/var/lib/systemd/catalog/database differ
Binary files trusty-old/etc/console-setup/cached.kmap.gz and trusty-new/etc/console-setup/cached.kmap.gz differ
Binary files xenial-old/etc/console-setup/cached.kmap.gz and xenial-new/etc/console-setup/cached.kmap.gz differ
diff -ur xenial-old/etc/init.d/.depend.boot xenial-new/etc/init.d/.depend.boot
--- xenial-old/etc/init.d/.depend.boot	2023-05-27 02:58:16.630479975 +0000
+++ xenial-new/etc/init.d/.depend.boot	2023-05-27 04:09:02.805597475 +0000
@@ -1,4 +1,4 @@
-TARGETS = console-setup mountkernfs.sh hostname.sh resolvconf udev networking hwclock.sh mountdevsubfs.sh checkroot.sh urandom checkfs.sh checkroot-bootclean.sh bootmisc.sh mountnfs-bootclean.sh mountnfs.sh mountall-bootclean.sh mountall.sh kmod procps
+TARGETS = console-setup mountkernfs.sh hostname.sh resolvconf udev networking hwclock.sh mountdevsubfs.sh checkroot.sh urandom mountnfs.sh mountall.sh checkfs.sh checkroot-bootclean.sh bootmisc.sh procps kmod mountnfs-bootclean.sh mountall-bootclean.sh
 INTERACTIVE = console-setup udev checkroot.sh checkfs.sh
 udev: mountkernfs.sh
 networking: mountkernfs.sh urandom procps resolvconf
@@ -6,12 +6,12 @@
 mountdevsubfs.sh: mountkernfs.sh udev
 checkroot.sh: hwclock.sh mountdevsubfs.sh hostname.sh
 urandom: hwclock.sh
+mountnfs.sh: networking
+mountall.sh: checkfs.sh checkroot-bootclean.sh
 checkfs.sh: checkroot.sh
 checkroot-bootclean.sh: checkroot.sh
-bootmisc.sh: checkroot-bootclean.sh mountnfs-bootclean.sh mountall-bootclean.sh udev
+bootmisc.sh: udev checkroot-bootclean.sh mountnfs-bootclean.sh mountall-bootclean.sh
+procps: mountkernfs.sh udev
+kmod: checkroot.sh
 mountnfs-bootclean.sh: mountnfs.sh
-mountnfs.sh: networking
 mountall-bootclean.sh: mountall.sh
-mountall.sh: checkfs.sh checkroot-bootclean.sh
-kmod: checkroot.sh
-procps: mountkernfs.sh udev
diff -ur xenial-old/etc/init.d/.depend.stop xenial-new/etc/init.d/.depend.stop
--- xenial-old/etc/init.d/.depend.stop	2023-05-27 02:58:16.630479975 +0000
+++ xenial-new/etc/init.d/.depend.stop	2023-05-27 04:09:02.805597475 +0000
@@ -1,9 +1,9 @@
 TARGETS = sendsigs resolvconf urandom rsyslog umountnfs.sh hwclock.sh networking umountfs umountroot halt reboot
 rsyslog: sendsigs
-umountnfs.sh: sendsigs rsyslog
+umountnfs.sh: rsyslog sendsigs
 hwclock.sh: rsyslog
 networking: umountnfs.sh
-umountfs: umountnfs.sh hwclock.sh urandom networking resolvconf
+umountfs: umountnfs.sh hwclock.sh networking urandom resolvconf
 umountroot: umountfs
 halt: umountroot
 reboot: umountroot
Binary files xenial-old/var/lib/systemd/catalog/database and xenial-new/var/lib/systemd/catalog/database differ


** Description changed:

  [Impact]
  Today, debootstrap requires a sourceful change to know about every target name.  This means that every 6 months, we have to do an upload of debootstrap as part of the archive opening so that it can build chroots for the new release.
  
  We have done this 30 times.
  
  It causes development drag, because the upload of debootstrap to the
  devel series is not instantaneous, usually gets hung up on failing
  autopkgtests of reverse-dependencies related to other aspects of the
  archive opening, and is slow to get SRUed back to stable series.
  
  And the only code change required in debootstrap is a symlink to the
  'gutsy' script which has not changed in 15 years.
  
  In mantic, I have changed the code to detect when the target series is
  one known to distro-info, and if it is, to default to the common Ubuntu
  bootstrap script.  This removes the need for any further uploads of
  debootstrap to inform it of new Ubuntu release names (and lets us remove
  30 symlinks from the source package).
  
  [Test case]
  sudo apt install distro-info debootstrap
  series=$((distro-info --supported; distro-info --supported-esm)| sort -u)
  for s in $series; do
      if [ "$s" = mantic ]; then continue; fi
      sudo debootstrap $s ${s}-old
  done
  install debootstrap from -proposed
  for s in $series; do
      sudo debootstrap $s ${s}-new
  done
  for s in $series; do
      if [ "$s" = mantic ]; then continue; fi
      sudo diff -uNr ${s}-old ${s}-new
- done
+ done 2>&1 \
+ | grep -vE 'No such file or directory|is a character special file|Binary files .*\.pyc differ' \
+ |filterdiff -x '*/etc/machine-id' -x '*/var/lib/dbus/machine-id' -x '*/var/log/**' -x '*/var/lib/dpkg/status*'
+ (exclude from the diff: dangling (wide) symlinks; device files; compiled pyc files that will differ on each generation; and other text files that are randomly generated or contain timestamp or ordering differences)
  
  [Where problems could occur]
  Because this adds a new dependency, there could be problems as a result of pulling it in.  However, distro-info is part of ubuntu-minimal, so is present on any supported Ubuntu system.
  
  [Original description]
  (on Jammy)
  # sg sbuild -c mk-sbuild --skip-proposed mantic
  Specified release (mantic) not known to debootstrap
  
  Without this update users cannot generate mantic chroots for
  development.

** Description changed:

  [Impact]
  Today, debootstrap requires a sourceful change to know about every target name.  This means that every 6 months, we have to do an upload of debootstrap as part of the archive opening so that it can build chroots for the new release.
  
  We have done this 30 times.
  
  It causes development drag, because the upload of debootstrap to the
  devel series is not instantaneous, usually gets hung up on failing
  autopkgtests of reverse-dependencies related to other aspects of the
  archive opening, and is slow to get SRUed back to stable series.
  
  And the only code change required in debootstrap is a symlink to the
  'gutsy' script which has not changed in 15 years.
  
  In mantic, I have changed the code to detect when the target series is
  one known to distro-info, and if it is, to default to the common Ubuntu
  bootstrap script.  This removes the need for any further uploads of
  debootstrap to inform it of new Ubuntu release names (and lets us remove
  30 symlinks from the source package).
  
  [Test case]
  sudo apt install distro-info debootstrap
  series=$((distro-info --supported; distro-info --supported-esm)| sort -u)
  for s in $series; do
      if [ "$s" = mantic ]; then continue; fi
      sudo debootstrap $s ${s}-old
  done
  install debootstrap from -proposed
  for s in $series; do
      sudo debootstrap $s ${s}-new
  done
  for s in $series; do
      if [ "$s" = mantic ]; then continue; fi
      sudo diff -uNr ${s}-old ${s}-new
  done 2>&1 \
- | grep -vE 'No such file or directory|is a character special file|Binary files .*\.pyc differ' \
+ | grep -vE 'No such file or directory|is a (character|block) special file|Binary files .*\.pyc differ' \
  |filterdiff -x '*/etc/machine-id' -x '*/var/lib/dbus/machine-id' -x '*/var/log/**' -x '*/var/lib/dpkg/status*'
  (exclude from the diff: dangling (wide) symlinks; device files; compiled pyc files that will differ on each generation; and other text files that are randomly generated or contain timestamp or ordering differences)
  
  [Where problems could occur]
  Because this adds a new dependency, there could be problems as a result of pulling it in.  However, distro-info is part of ubuntu-minimal, so is present on any supported Ubuntu system.
  
  [Original description]
  (on Jammy)
  # sg sbuild -c mk-sbuild --skip-proposed mantic
  Specified release (mantic) not known to debootstrap
  
  Without this update users cannot generate mantic chroots for
  development.

** Description changed:

  [Impact]
  Today, debootstrap requires a sourceful change to know about every target name.  This means that every 6 months, we have to do an upload of debootstrap as part of the archive opening so that it can build chroots for the new release.
  
  We have done this 30 times.
  
  It causes development drag, because the upload of debootstrap to the
  devel series is not instantaneous, usually gets hung up on failing
  autopkgtests of reverse-dependencies related to other aspects of the
  archive opening, and is slow to get SRUed back to stable series.
  
  And the only code change required in debootstrap is a symlink to the
  'gutsy' script which has not changed in 15 years.
  
  In mantic, I have changed the code to detect when the target series is
  one known to distro-info, and if it is, to default to the common Ubuntu
  bootstrap script.  This removes the need for any further uploads of
  debootstrap to inform it of new Ubuntu release names (and lets us remove
  30 symlinks from the source package).
  
  [Test case]
  sudo apt install distro-info debootstrap
  series=$((distro-info --supported; distro-info --supported-esm)| sort -u)
  for s in $series; do
      if [ "$s" = mantic ]; then continue; fi
      sudo debootstrap $s ${s}-old
  done
  install debootstrap from -proposed
  for s in $series; do
      sudo debootstrap $s ${s}-new
  done
  for s in $series; do
      if [ "$s" = mantic ]; then continue; fi
      sudo diff -uNr ${s}-old ${s}-new
  done 2>&1 \
  | grep -vE 'No such file or directory|is a (character|block) special file|Binary files .*\.pyc differ' \
- |filterdiff -x '*/etc/machine-id' -x '*/var/lib/dbus/machine-id' -x '*/var/log/**' -x '*/var/lib/dpkg/status*'
+ |filterdiff -x '*/etc/machine-id' -x '*/var/lib/dbus/machine-id' -x '*/var/log/**' -x '*/var/lib/dpkg/status*' -x '*/var/cache/**'
  (exclude from the diff: dangling (wide) symlinks; device files; compiled pyc files that will differ on each generation; and other text files that are randomly generated or contain timestamp or ordering differences)
  
  [Where problems could occur]
  Because this adds a new dependency, there could be problems as a result of pulling it in.  However, distro-info is part of ubuntu-minimal, so is present on any supported Ubuntu system.
  
  [Original description]
  (on Jammy)
  # sg sbuild -c mk-sbuild --skip-proposed mantic
  Specified release (mantic) not known to debootstrap
  
  Without this update users cannot generate mantic chroots for
  development.

** Description changed:

  [Impact]
  Today, debootstrap requires a sourceful change to know about every target name.  This means that every 6 months, we have to do an upload of debootstrap as part of the archive opening so that it can build chroots for the new release.
  
  We have done this 30 times.
  
  It causes development drag, because the upload of debootstrap to the
  devel series is not instantaneous, usually gets hung up on failing
  autopkgtests of reverse-dependencies related to other aspects of the
  archive opening, and is slow to get SRUed back to stable series.
  
  And the only code change required in debootstrap is a symlink to the
  'gutsy' script which has not changed in 15 years.
  
  In mantic, I have changed the code to detect when the target series is
  one known to distro-info, and if it is, to default to the common Ubuntu
  bootstrap script.  This removes the need for any further uploads of
  debootstrap to inform it of new Ubuntu release names (and lets us remove
  30 symlinks from the source package).
  
  [Test case]
  sudo apt install distro-info debootstrap
  series=$((distro-info --supported; distro-info --supported-esm)| sort -u)
  for s in $series; do
      if [ "$s" = mantic ]; then continue; fi
      sudo debootstrap $s ${s}-old
  done
  install debootstrap from -proposed
  for s in $series; do
      sudo debootstrap $s ${s}-new
  done
  for s in $series; do
      if [ "$s" = mantic ]; then continue; fi
      sudo diff -uNr ${s}-old ${s}-new
  done 2>&1 \
- | grep -vE 'No such file or directory|is a (character|block) special file|Binary files .*\.pyc differ' \
+ | grep -vE 'No such file or directory|is a (character|block) special file|Binary files .*(\.pyc|/var/cache/.*) differ' \
  |filterdiff -x '*/etc/machine-id' -x '*/var/lib/dbus/machine-id' -x '*/var/log/**' -x '*/var/lib/dpkg/status*' -x '*/var/cache/**'
  (exclude from the diff: dangling (wide) symlinks; device files; compiled pyc files that will differ on each generation; and other text files that are randomly generated or contain timestamp or ordering differences)
  
  [Where problems could occur]
  Because this adds a new dependency, there could be problems as a result of pulling it in.  However, distro-info is part of ubuntu-minimal, so is present on any supported Ubuntu system.
  
  [Original description]
  (on Jammy)
  # sg sbuild -c mk-sbuild --skip-proposed mantic
  Specified release (mantic) not known to debootstrap
  
  Without this update users cannot generate mantic chroots for
  development.

** Tags removed: verification-needed-lunar
** Tags added: verification-done-lunar

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to debootstrap in Ubuntu.
https://bugs.launchpad.net/bugs/2020530

Title:
  The debootstrap SRU to end all debootstrap SRUs

Status in debootstrap package in Ubuntu:
  Fix Released
Status in debootstrap source package in Bionic:
  In Progress
Status in debootstrap source package in Focal:
  Fix Committed
Status in debootstrap source package in Jammy:
  Fix Committed
Status in debootstrap source package in Kinetic:
  Fix Committed
Status in debootstrap source package in Lunar:
  Fix Committed

Bug description:
  [Impact]
  Today, debootstrap requires a sourceful change to know about every target name.  This means that every 6 months, we have to do an upload of debootstrap as part of the archive opening so that it can build chroots for the new release.

  We have done this 30 times.

  It causes development drag, because the upload of debootstrap to the
  devel series is not instantaneous, usually gets hung up on failing
  autopkgtests of reverse-dependencies related to other aspects of the
  archive opening, and is slow to get SRUed back to stable series.

  And the only code change required in debootstrap is a symlink to the
  'gutsy' script which has not changed in 15 years.

  In mantic, I have changed the code to detect when the target series is
  one known to distro-info, and if it is, to default to the common
  Ubuntu bootstrap script.  This removes the need for any further
  uploads of debootstrap to inform it of new Ubuntu release names (and
  lets us remove 30 symlinks from the source package).

  [Test case]
  sudo apt install distro-info debootstrap
  series=$((distro-info --supported; distro-info --supported-esm)| sort -u)
  for s in $series; do
      if [ "$s" = mantic ]; then continue; fi
      sudo debootstrap $s ${s}-old
  done
  install debootstrap from -proposed
  for s in $series; do
      sudo debootstrap $s ${s}-new
  done
  for s in $series; do
      if [ "$s" = mantic ]; then continue; fi
      sudo diff -uNr ${s}-old ${s}-new
  done 2>&1 \
  | grep -vE 'No such file or directory|is a (character|block) special file|Binary files .*(\.pyc|/var/cache/.*) differ' \
  |filterdiff -x '*/etc/machine-id' -x '*/var/lib/dbus/machine-id' -x '*/var/log/**' -x '*/var/lib/dpkg/status*' -x '*/var/cache/**'
  (exclude from the diff: dangling (wide) symlinks; device files; compiled pyc files that will differ on each generation; and other text files that are randomly generated or contain timestamp or ordering differences)

  [Where problems could occur]
  Because this adds a new dependency, there could be problems as a result of pulling it in.  However, distro-info is part of ubuntu-minimal, so is present on any supported Ubuntu system.

  [Original description]
  (on Jammy)
  # sg sbuild -c mk-sbuild --skip-proposed mantic
  Specified release (mantic) not known to debootstrap

  Without this update users cannot generate mantic chroots for
  development.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/debootstrap/+bug/2020530/+subscriptions




More information about the foundations-bugs mailing list