[Bug 2020530] Re: The debootstrap SRU to end all debootstrap SRUs
Dimitri John Ledkov
2020530 at bugs.launchpad.net
Tue May 30 14:31:46 UTC 2023
$ mk-sbuild jammy
Specified release (jammy) not known to debootstrap
$ dpkg-query -W debootstrap ubuntu-dev-tools
debootstrap 1.0.126+nmu1ubuntu0.3
ubuntu-dev-tools 0.189
Verification failed on Jammy.
this update to debootstrap breaks ubuntu-dev-tools mk-sbuild tool, when
trying to create any old/supported/new releases.
Note in kinetic ubuntu-dev-tools was fixed to hard-coded use gutsy
symlink, but this change is not in Jammy and earlier releases.
See https://git.launchpad.net/ubuntu-dev-
tools/commit/?id=1f3e4a5ad75cc639a320ead8ef2771ed2a4172ed
Updating debootstrap in jammy and lower, will break all users of mk-
sbuild.
** Also affects: ubuntu-dev-tools (Ubuntu)
Importance: Undecided
Status: New
** Changed in: ubuntu-dev-tools (Ubuntu Kinetic)
Status: New => Fix Released
** Changed in: ubuntu-dev-tools (Ubuntu Lunar)
Status: New => Fix Released
** Changed in: ubuntu-dev-tools (Ubuntu Jammy)
Status: New => Confirmed
** Changed in: ubuntu-dev-tools (Ubuntu Focal)
Status: New => Confirmed
** Changed in: ubuntu-dev-tools (Ubuntu Bionic)
Status: New => Confirmed
** Changed in: ubuntu-dev-tools (Ubuntu)
Status: New => Fix Released
** Description changed:
+ NB! verification failed on jammy and lower see
+ https://bugs.launchpad.net/ubuntu/+source/debootstrap/+bug/2020530/comments/16
+
[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.
** Tags removed: verification-done-bionic verification-done-focal verification-done-jammy
** Tags added: verification-failed-bionic verification-failed-focal verification-failed-jammy
--
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 ubuntu-dev-tools package in Ubuntu:
Fix Released
Status in debootstrap source package in Bionic:
Fix Committed
Status in ubuntu-dev-tools source package in Bionic:
Confirmed
Status in debootstrap source package in Focal:
Fix Committed
Status in ubuntu-dev-tools source package in Focal:
Confirmed
Status in debootstrap source package in Jammy:
Fix Committed
Status in ubuntu-dev-tools source package in Jammy:
Confirmed
Status in debootstrap source package in Kinetic:
Fix Committed
Status in ubuntu-dev-tools source package in Kinetic:
Fix Released
Status in debootstrap source package in Lunar:
Fix Committed
Status in ubuntu-dev-tools source package in Lunar:
Fix Released
Bug description:
NB! verification failed on jammy and lower see
https://bugs.launchpad.net/ubuntu/+source/debootstrap/+bug/2020530/comments/16
[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