Age | Commit message (Collapse) | Author |
|
|
|
Reported-by: Johannes Schauer Marin Rodrigues <josch@mister-muffin.de>
|
|
With the change from genext2fs to mkfs.ext4, we no longer create an
intermediate tar archive and thus no longer create device nodes if using
unshare. Thus our output is slightly unreproducible. At the same time,
we never need devices, because /dev is mounted as devtmpfs. Hence, we
unconditionally skip them and thus improve reproducibility.
Reported-by: Johannes Schauer Marin Rodrigues <josch@mister-muffin.de>
|
|
We were truncating the output file after generating it. Instead, split
the logic and create the file prior to running mmdebstrap to make
permission failures fail early.
|
|
In a CI-environment such as salsa-ci, we tend to run as root and want
--mode=root rather than --mode=unshare.
|
|
Why?
genext2fs is slow. It has O(n^2) behaviour, which becomes annoying with
larger filesystems. It also creates an ext2 image and we have to upgrade
it to ext4 in multiple steps. Even then, the image has an inode size of
128, which is incompatible with 2038 and does not allow storing
sub-second precision time stamps.
How?
We use mkfs.ext4 from e2fsprogs (which is required anyway) instead.
Running this from within a --customize-hook does not work, because the
user namespace used for the hook often has no privileges to write to the
output image. Instead, we now ask mmdebstrap to output to a directory
and create the filesystem separately. We construct a special namespace
that has both access to the tree and to the output image and perform the
mkfs.ext4 there. As a consequence, we no longer support any mode but
unshare and since mkfs.ext4 consumes the size parameter, the size syntax
is reduced a bit.
|
|
|
|
|
|
When kvm works, passing "max" will get us "host" as before. When it does
not, "host" doesn't work at all, but "max" will somewhat.
Suggested-by: Michael Tokarev <mjt@tls.msk.ru>
|
|
Since recent qemu, a non-lpae kernel cannot boot a highmem-enabled
virtual machine. A typical failure is:
pci-host-generic 4010000000.pcie: can't claim ECAM area [mem 0x10000000-0x1fffffff]: address conflict with pcie@10000000 [mem 0x10000000-0x3efeffff]
Since the default kernel image is non-lpae, we disable highmem by
default.
Link: https://lists.nongnu.org/archive/html/qemu-devel/2024-01/msg01444.html
Thanks: Michael Tokarev <mjt@tls.msk.ru>
|
|
Reported-by: Johannes Schauer Marin Rodrigues <josch@mister-muffin.de>
|
|
Suggested-by: Paul Gevers <elbrus@debian.org>
|
|
There was a bug that would cause setterm to randomly enable O_ASYNC on
the console due to the use of uninitialized memory. As a consequence,
any keystroke would raise SIGIO and kill the shell. Since setterm is a
convenience feature and killing the shell is bad, disable it for earlier
versions.
Reported-by: Emanuele Rocca <ema@debian.org>
Thanks: Chris Hofstaedtler <zeha@debian.org>
|
|
|
|
When mmdebstrap fails, it kills its child processes by killing its
process group. This is harmless in many cases. For instance, when run
from an interactive shell, the shell creates a process group. When run
with user namespaces as non-root, not being root limits the possible
damage. But when run as root from autopkgtest, mmdebstrap runs in the
initial process group and takes down the entire lxc container. Using
setsid, we can isolate the container from this killpg call.
|
|
When passing an empty release to ./tests/create-and-run.sh, we now use
the host's apt sources and pinning. This is an additional gitlab-ci test
and replaces the previous autopkgtest involving unstable, which thus
becomes non-flaky.
|
|
Fixes: e2e003c4415f ("tests/create-and-run.sh: choose ports mirror automatically")
|
|
bin/debvm-waitssh: make --timeout=N work
See merge request helmutg/debvm!38
|
|
|
|
|
|
Fixes: d1e2c48b9b39 ("Fix ports mirror (tested on riscv64)")
|
|
|
|
* mipsel is removed from unstable
* riscv64 is added to unstable
* also test trixie
|
|
Fix resolv.conf in stretch
See merge request helmutg/debvm!37
|
|
stub-resolv.conf was introduced in systemd 236 (e6b2d948f8).
Regression of c751e22.
|
|
bin/debvm-run: if the image filename contains a comma, then that comma must be...
See merge request helmutg/debvm!35
|
|
|
|
add test dep on debian-archive-keyring
See merge request helmutg/debvm!34
|
|
|
|
|
|
bin/debvm-run: allow being run in environments without TERM set
See merge request helmutg/debvm!33
|
|
|
|
Fix a syntax error in control.
Fixes: 1c98a5b3b36f ("bin/debvm-run: qemu (>> 1:8.0) provides symlinks for qemu-system-${debarch} as well as qemu-system-any")
|
|
|
|
|
|
When issuing multiple --sshport options, the last one should win.
Fixes: a2db07766257 ("debvm-run: add a --netopt option to customize the -netdev")
|
|
|
|
|
|
|
|
|
|
As with debvm-create, this option allows skipping default configuration
to let a user override things in their way.
Link: https://bugs.debian.org/1036918
|
|
Should be using stderr.
Fixes: 7d0b160531d6 ("debvm-run: replace shell process with qemu process")
|
|
bin/debvm-run: qemu provides symlinks for qemu-system- starting with 1:8.0~rc4+dfsg-2
See merge request helmutg/debvm!31
|
|
This way we loose unnecessary detail such as libc, kernel and abi. For
one thing this simplifies the arm* match. For another, this makes us
stop think about arm64ilp32 or x32.
|
|
Fixes: 1c98a5b3b36f ("bin/debvm-run: qemu (>> 1:8.0) provides symlinks for qemu-system-${debarch} as well as qemu-system-any")
|
|
Fixes: 1c98a5b3b36f ("bin/debvm-run: qemu (>> 1:8.0) provides symlinks for qemu-system-${debarch} as well as qemu-system-any")
|
|
as well as qemu-system-any
|
|
qemu makes heavy use of fd passing, so we better avoid user-passed fds.
|
|
We need the intermediate shell process to clean the temporary files with
the kernel and the initrd - unless we delete them before running qemu.
This method should help with killing a qemu e.g. using a timeout.
|
|
|