- only download Release files once and not by apt as well as with curl
and thus avoid a mirror push happening between both downloads
- no heuristic needed to place the file in their correct mirror
location
- no manual checksum checking
- only throttle download speed when actually downloading and not when
retrieving files from the cache
- no translation of filenames between how the epoch colon is stored in
files in /var/cache/apt/archives versus how it is stored in files on
the mirrors
- no special handling of stable update and security mirrors
- implemented in Python instead of shell and thus an order of magnitude
faster
The proot mode was broken from the start because in contrast to
fakechroot, no ownership information can be retained across multiple
invocations of proot. Since mmdebstrap started using apt from the
outside by setting DPkg::Chroot-Directory in mmdebstrap 0.8.0 proot mode
was finally completely broken because proot cannot wrap the chroot call
done by apt. Users of proot are recommended to run mmdebstrap in
fakechroot mode and then use proot with the resulting directory.
- implements the same as debootstrap in
https://salsa.debian.org/installer-team/debootstrap/-/merge_requests/71
- builds a temporary usr-is-merged package and upgrades to the real one
- create merged-/usr chroots for unstable and testing (which will
become Debian 12 Bookworm)
- add a dedicated merged-/usr section to the manual page
Before, we bind-mounted /dev/ptmx and /dev/pts from the host into the
chroot. This will make posix_openpt() fail with 'No such file or
directory'. The ability to create pseudo terminals is important for apt
(which will throw a warning otherwise) or running script(1) or source
package testsuites like for src:util-linux. This functionality is
restored by mounting a new devpts instance to /dev/pts and making
/dev/ptmx a symlink to /dev/pts/ptmx. Mounting with ptmxmode=666 is
required such that also non-root users in unshare mode are able to
create pseudo terminals. See also:
https://www.kernel.org/doc/Documentation/filesystems/devpts.txthttps://salsa.debian.org/debian/schroot/-/merge_requests/2https://bugs.debian.org/856877https://bugs.debian.org/817236
Since 1:7.0+dfsg-3, binfmt.d from systemd is used as preferred
alternative to binfmt-support. And systemd does not provide an official
way to trigger binfmt (de)registration besides a reboot.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1012163
Since we also have binfmt-support installed, systemd and binfmt-support
work in parallel so this test becomes flaky and sometimes removing the
qemu packages would have the desired effect and sometimes not.
To make the test deterministic again, we explicitly disable emulation by
writing a 0 to /proc/sys/fs/binfmt_misc/qemu-aarch64
If FAKECHROOT_CMD_SUBST sets up wrong substitutions, then binaries
cannot be found. For example if /usr/bin/chroot is listed in
FAKECHROOT_CMD_SUBST but /usr/sbin (the actual location of the chroot
binary) is not in PATH, the command fails
- multiple individual shell scripts instead of one 3.5k line monster
- tests driven by Python script allowing:
* declarative test description in coverage.txt
* collecting errors instead of aborting on first error
* skipping tests
* running specific tests