The debootstrap SRU to end all debootstrap SRUs
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
debootstrap (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Bionic |
Won't Fix
|
Undecided
|
Unassigned | ||
Focal |
Fix Committed
|
Undecided
|
Unassigned | ||
Jammy |
Fix Committed
|
Undecided
|
Unassigned | ||
Kinetic |
Fix Released
|
Undecided
|
Unassigned | ||
Lunar |
Fix Released
|
Undecided
|
Unassigned | ||
ubuntu-dev-tools (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Bionic |
Won't Fix
|
Undecided
|
Unassigned | ||
Focal |
Fix Committed
|
Undecided
|
Unassigned | ||
Jammy |
Fix Committed
|
Undecided
|
Unassigned | ||
Kinetic |
Fix Committed
|
Undecided
|
Unassigned | ||
Lunar |
Fix Committed
|
Undecided
|
Unassigned |
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-
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=
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|
|filterdiff -x '*/etc/machine-id' -x '*/var/
(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)
sudo apt install ubuntu-dev-tools
sg sbuild -c 'mk-sbuild --skip-proposed mantic'
[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: | updated |
summary: |
- Add Ubuntu Mantic as a known release + The debootstrap SRU to end all debootstrap SRUs |
description: | updated |
description: | updated |
description: | updated |
Changed in debootstrap (Ubuntu): | |
status: | New → Fix Released |
Changed in debootstrap (Ubuntu Lunar): | |
status: | New → In Progress |
Changed in debootstrap (Ubuntu Kinetic): | |
status: | New → In Progress |
Changed in debootstrap (Ubuntu Kinetic): | |
status: | In Progress → Fix Committed |
Changed in debootstrap (Ubuntu Jammy): | |
status: | New → In Progress |
Changed in debootstrap (Ubuntu Focal): | |
status: | New → In Progress |
Changed in debootstrap (Ubuntu Bionic): | |
status: | New → In Progress |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
Changed in ubuntu-dev-tools (Ubuntu Bionic): | |
status: | Confirmed → In Progress |
Changed in ubuntu-dev-tools (Ubuntu Focal): | |
status: | Confirmed → In Progress |
description: | updated |
Changed in ubuntu-dev-tools (Ubuntu Jammy): | |
status: | Confirmed → In Progress |
description: | updated |
piuparts seems to be hitting this in autopkgtest runs on jammy, e.g.:
https:/ /autopkgtest. ubuntu. com/packages/ p/piuparts/ jammy/amd64 /autopkgtest. ubuntu. com/results/ autopkgtest- jammy/jammy/ amd64/p/ piuparts/ 20230525_ 155217_ 00e90@/ log.gz
https:/
0m0.0s DEBUG: Starting command: ['dpkg', '--info', 't.deb'] minbase' , '--keyring= /usr/share/ keyrings/ ubuntu- archive- keyring. gpg', '--include= eatmydata' , '--no-merged-usr', '--components= main,restricted ,universe, multiverse' , 'mantic', '/tmp/tmp2s1lk6a4', 'http:// ftpmaster. internal/ ubuntu/ '] debootstrap/ scripts/ mantic minbase' , '--keyring= /usr/share/ keyrings/ ubuntu- archive- keyring. gpg', '--include= eatmydata' , '--no-merged-usr', '--components= main,restricted ,universe, multiverse' , 'mantic', '/tmp/tmp2s1lk6a4', 'http:// ftpmaster. internal/ ubuntu/ '] debootstrap/ scripts/ mantic
0m0.0s DUMP:
new Debian package, version 2.0.
size 576 bytes: control archive=272 bytes.
231 bytes, 8 lines control
Package: t
Version: 4
Maintainer: Piu Parts <email address hidden>
Priority: optional
Architecture: all
Installed-Size: 0
Description: Auto Package Test Dummy
Extremely simple binary package for piuparts testing
0m0.0s DEBUG: Command ok: ['dpkg', '--info', 't.deb']
0m0.0s DEBUG: Created temporary directory /tmp/tmp2s1lk6a4
0m0.0s DEBUG: Setting up minimal chroot for mantic at /tmp/tmp2s1lk6a4.
0m0.0s DEBUG: Starting command: ['eatmydata', 'debootstrap', '--variant=
0m0.0s DUMP:
E: No such script: /usr/share/
0m0.0s ERROR: Command failed (status=1): ['eatmydata', 'debootstrap', '--variant=
E: No such script: /usr/share/
Guessing debootstrap needs an SRU fix such as was done in https:/ /launchpad. net/bugs/ 1995612 ?