1.2.0 (2022-09-05) ------------------ - remove proot mode - error out if stdout is an interactive terminal - replace taridshift by tarfilter --idshift - tarfilter: add --transform option - multiple --skip options can be separated by comma or whitespace - also cleanup the contents of /run - support apt patterns and paths with commas and whitespace in --include - hooks: store the values of the --include option in MMDEBSTRAP_INCLUDE - add new --skip options: chroot/start-stop-daemon, chroot/policy-rc.d chroot/mount, chroot/mount/dev, chroot/mount/proc, chroot/mount/sys, cleanup/run 1.1.0 (2022-07-26) ---------------- - mount a new /dev/pts instance into the chroot to make posix_openpt work - adjust merged-/usr hook to work the same way as debootstrap - add no-merged-usr hook 1.0.1 (2022-05-29) ------------------ - bugfix release 1.0.0 (2022-05-28) ------------------ - all documented interfaces are now considered stable - allow file:// mirrors - /var/cache/apt/archives/ is now allowed to contain *.deb packages - add file-mirror-automount hook-dir - set $MMDEBSTRAP_VERBOSITY in hooks - rewrite coverage with multiple individual and skippable shell scripts 0.8.6 (2022-03-25) ------------------ - allow running root mode inside unshare mode 0.8.5 (2022-03-07) ------------------ - improve documentation 0.8.4 (2022-02-11) ------------------ - tarfilter: add --strip-components option - don't install essential packages in run_install() - remove /var/lib/dbus/machine-id 0.8.3 (2022-01-08) ------------------ - allow codenames with apt patterns (requires apt >= 2.3.14) - don't overwrite existing files in setup code - don't copy in qemu-user-static binary if it's not needed 0.8.2 (2021-12-14) ------------------ - use apt patterns to select priority variants (requires apt >= 2.3.10) 0.8.1 (2021-10-07) ------------------ - enforce dpkg >= 1.20.0 and apt >= 2.3.7 - allow working directory be not world readable - do not run xz and zstd with --threads=0 since this is a bad default for machines with more than 100 cores - bit-by-bit identical chrootless mode 0.8.0 (2021-09-21) ------------------ - allow running inside chroot in root mode - allow running without /dev, /sys or /proc - new --format=null which gets automatically selected if the output is /dev/null and doesn't produce a tarball or other permanent output - allow ASCII-armored keyrings (requires gnupg >= 2.2.8) - run zstd with --threads=0 - tarfilter: add --pax-exclude and --pax-include to strip extended attributes - add --skip=setup, --skip=update and --skip=cleanup - add --skip=cleanup/apt/lists and --skip=cleanup/apt/cache - pass extended attributes (excluding system) to tar2sqfs - use apt-get update -error-on=any (requires apt >= 2.1.16) - support Debian 11 Buster - use apt from outside using DPkg::Chroot-Directory (requires apt >= 2.3.7) * build chroots without apt (for example from buildinfo files) * no need to install additional packages like apt-transport-* or ca-certificates inside the chroot * no need for additional key material inside the chroot * possible use of file:// and copy:// - use apt pattern to select essential set - write 'uninitialized' to /etc/machine-id - allow running in root mode without mount working, either because of missing CAP_SYS_ADMIN or missing /usr/bin/mount - make /etc/ld.so.cache under fakechroot mode bit-by-bit identical to root and unshare mode - move hooks/setup00-merged-usr.sh to hooks/merged-usr/setup00.sh - add gpgvnoexpkeysig script for very old snapshot.d.o timestamps with expired signature 0.7.5 (2021-02-06) ------------------ - skip emulation check for extract variant - add new suite name trixie - unset TMPDIR in hooks because there is no value that works inside as well as outside the chroot - expose hook name to hooks via MMDEBSTRAP_HOOK environment variable 0.7.4 (2021-01-16) ------------------ - Optimize mmtarfilter to handle many path exclusions - Set MMDEBSTRAP_APT_CONFIG, MMDEBSTRAP_MODE and MMDEBSTRAP_HOOKSOCK for hook scripts - Do not run an additional env command inside the chroot - Allow unshare mode as root user - Additional checks whether root has the necessary privileges to mount - Make most features work on Debian 10 Buster 0.7.3 (2020-12-02) ------------------ - bugfix release 0.7.2 (2020-11-28) ------------------ - check whether tools like dpkg and apt are installed at startup - make it possible to seed /var/cache/apt/archives with deb packages - if a suite name was specified, use the matching apt index to figure out the package set to install - use Debian::DistroInfo or /usr/share/distro-info/debian.csv (if available) to figure out the security mirror for bullseye and beyond - use argparse in tarfilter and taridshift for proper --help output 0.7.1 (2020-09-18) ------------------ - bugfix release 0.7.0 (2020-08-27) ----------------- - the hook system (setup, extract, essential, customize and hook-dir) is made public and is now a documented interface - tarball is also created if the output is a named pipe or character special - add --format option to control the output format independent of the output filename or in cases where output is directed to stdout - generate ext2 filesystems if output file ends with .ext2 or --format=ext2 - add --skip option to prevent some automatic actions from being carried out - implement dpkg-realpath in perl so that we don't need to run tar inside the chroot anymore for modes other than fakechroot and proot - add ready-to-use hook scripts for eatmydata, merged-usr and busybox - add tarfilter tool - use distro-info-data and debootstrap to help with suite name and keyring discovery - no longer needs to install twice when --depkgopt=path-exclude is given - variant=custom and hooks can be used as a debootstrap wrapper - use File::Find instead of "du" to avoid different results on different filesystems - many, many bugfixes and documentation enhancements 0.6.1 (2020-03-08) ------------------ - replace /etc/machine-id with an empty file - fix deterministic tar with pax and xattr support - support deb822-style format apt sources - mount /sys and /proc as read-only in root mode - unset TMPDIR environment variable for everything running inside the chroot 0.6.0 (2020-01-16) ------------------ - allow multiple --architecture options - allow multiple --include options - enable parallel compression with xz by default - add --man option - add --keyring option overwriting apt's default keyring - preserve extended attributes in tarball - allow running tests on non-amd64 systems - generate squashfs images if output file ends in .sqfs or .squashfs - add --dry-run/--simulate options - add taridshift tool 0.5.1 (2019-10-19) ------------------ - minor bugfixes and documentation clarification - the --components option now takes component names as a comma or whitespace separated list or as multiple --components options - make_mirror.sh now has to be invoked manually before calling coverage.sh 0.5.0 (2019-10-05) ------------------ - do not unconditionally read sources.list stdin anymore * if mmdebstrap is used via ssh without a pseudo-terminal, it will stall forever * as this is unexpected, one now has to explicitly request reading sources.list from stdin in situations where it's ambiguous whether that is requested * thus, the following modes of operation don't work anymore: $ mmdebstrap unstable /output/dir < sources.list $ mmdebstrap unstable /output/dir http://mirror < sources.list * instead, one now has to write: $ mmdebstrap unstable /output/dir - < sources.list $ mmdebstrap unstable /output/dir http://mirror - < sources.list - fix binfmt_misc support on docker - do not use qemu for architectures unequal the native architecture that can be used without it - do not copy /etc/resolv.conf or /etc/hostname if the host system doesn't have them - add --force-check-gpg dummy option - allow hooks to remove start-stop-daemon - add /var/lib/dpkg/arch in chrootless mode when chroot architecture differs - create /var/lib/dpkg/cmethopt for dselect - do not skip package installation in 'custom' variant - fix EDSP output for external solvers so that apt doesn't mark itself as Essential:yes - also re-exec under fakechroot if fakechroot is picked in 'auto' mode - chdir() before 'apt-get update' to accomodate for apt << 1.5 - add Dir::State::Status to apt config for apt << 1.3 - chmod 0755 on qemu-user-static binary - select the right mirror for ubuntu, kali and tanglu 0.4.1 (2019-03-01) ------------------ - re-enable fakechroot mode testing - disable apt sandboxing if necessary - keep apt and dpkg lock files 0.4.0 (2019-02-23) ------------------ - disable merged-usr - add --verbose option that prints apt and dpkg output instead of progress bars - add --quiet/--silent options which print nothing on stderr - add --debug option for even more output than with --verbose - add some no-op options to make mmdebstrap a drop-in replacement for certain debootstrap wrappers like sbuild-createchroot - add --logfile option which outputs to a file what would otherwise be written to stderr - add --version option 0.3.0 (2018-11-21) ------------------ - add chrootless mode - add extract and custom variants - make testsuite unprivileged through qemu and guestfish - allow empty lost+found directory in target - add 54 testcases and fix lots of bugs as a result 0.2.0 (2018-10-03) ------------------ - if no MIRROR was specified but there was data on standard input, then use that data as the sources.list instead of falling back to the default mirror - lots of bug fixes 0.1.0 (2018-09-24) ------------------ - initial release