Daan De Meyer [Tue, 7 May 2024 07:33:10 +0000 (09:33 +0200)]
mkosi: Switch to fedora 40
Enable updates-testing and use the most recent mirror to make sure
we get util-linux 2.40.1 which contains a crucial fix to make sure
the serial terminal in virtual machines works properly.
This commit fixes two instances of a miscount. As the number is not important in either case, and seemingly subject to changes, it was removed entirely.
Another sentence was reworded to improve readability.
Moritz Sanft [Mon, 29 Apr 2024 11:03:40 +0000 (13:03 +0200)]
repart: respect `SOURCE_DATE_EPOCH` on `mkdir_p_root`
This let's systemd-repart respect the `SOURCE_DATE_EPOCH` environment
variable when creating directories in the local tree through `CopyFiles`
or `MakeDirectories`.
To do this, we pass a timestamp `ts` to `mkdir_p_root`, which it will
use to fix up `mtime` and `atime` of the directory it creates as
well as the `mtime` of the directory it creates the other directory *in*,
as the `mtime` of the latter is modified when creating a directory in it.
For the same reason, it also needs to fixup the `mtime` of the upper
directory when copying a file into it through `CopyFiles`.
If `SOURCE_DATE_EPOCH`, times are left as is. (`UTIME_OMIT`)
Jörg M. Sigle contriutes configuration ROM image for Tascam IF-FW/DM mkII,
which includes a quirk that the values of model fields in both root and
unit directory entries are different. In device attributes, it appears
that the value of model attribute in unit device is different from the one
in node device.
Daan De Meyer [Mon, 6 May 2024 14:21:53 +0000 (16:21 +0200)]
mkosi: Install python3-psutil
Required to run systemd-networkd-tests.py. Already a dependency of
systemd-tests on Fedora so we don't add it there as it'll be pulled
in via the prepare script.
As for the other fields let's check if the actual variable we serialize
is set before serializing it.
This shouldn't make any difference, since the pubkey and the PCR mask
should always be set together or neither, but I think it's easier to
grok this way, and makes the function nicely "dumb": it serializes what
is specified, without trying to be smart by suppressng specified fields.
cryptenroll: do not combine pcrlock and signed PCR policies in TPM mode
We currently do not support pcrlock policies and signed PCR policies in
combination. Hence, when we auto-discover both, let's disable signed PCR
policies if pcrlock is available too (simple because that covers more
ground).
Daan De Meyer [Fri, 3 May 2024 08:57:22 +0000 (10:57 +0200)]
ci: Reduce the number of integration tests we run concurrently
Since there's a bunch of CPU hungry systemd-journal-remote processes
running on the host to received the forwarded logs, by running as many
test as the VM has cores we overload the available resources. Let's leave
use the number of cores - 1 to reduce resource contention.
Daan De Meyer [Sun, 5 May 2024 16:14:44 +0000 (18:14 +0200)]
test: Default to linux qemu firmware
Direct kernel boot results in much faster boot times so let's use
it by default.
We disable it for tests that need to reboot because +-50% of the
time, doing a reboot when using direct kernel boot causes qemu to
hang on reboot. Until we figure that out, let's use UEFI for the
tests that need to reboot.
Daan De Meyer [Mon, 6 May 2024 09:47:34 +0000 (11:47 +0200)]
TEST-46-HOMED: Skip barely fits test on ext4
For some reason this fails on ext4 with "No space left on device".
Until we figure out why, let's skip the test on ext4 (which is reported
as ext2/ext3 by stat).
Daan De Meyer [Sat, 4 May 2024 14:32:57 +0000 (16:32 +0200)]
TEST-04-JOURNAL: Make more robust
Avoid hitting https://github.com/systemd/systemd/issues/2913 by adding
some more sleeps. This is required to make the test pass when executed
with mkosi on my machine.
Daan De Meyer [Fri, 3 May 2024 13:56:52 +0000 (15:56 +0200)]
TEST-74-AUX-UTILS: Drop usage of loop module
This module is builtin on ubuntu causing the test to fail. Let's
use just dummy instead. I tried replacing it with scsi_debug but
that caused issues with modprobe complaining it could not remove
scsi_debug because it was in use.
Richard Maw [Thu, 22 Feb 2024 13:01:13 +0000 (13:01 +0000)]
TEST-74-AUX-UTILS: Support credential-provided root SSH public key
When root authorized keys are provided by mkosi they are not
newline-terminated so appending a public key to the file results
in a corrupt key, so just to be safe we add an empty line.
Daan De Meyer [Sat, 4 May 2024 10:20:24 +0000 (12:20 +0200)]
TEST-75-RESOLVED: Ignore resource record ifindex field
Depending on host configuration this may or may not be included (e.g.
on mkosi we get a result without an ifindex field). Let's strip it from
the resolved reply to avoid failing the test.
Daan De Meyer [Sun, 5 May 2024 09:38:09 +0000 (11:38 +0200)]
test: Always shutdown on test success in mkosi
When we want to get an interactive shell in a test that fails because
of a race condition, we might need to run the test a few times with
--repeat before it fails. However, currently, when -i is used, the VM
needs to be shut down manually each time before the next run can start.
Let's always shut down the VM if the test succeeds so that --repeat can
be used with -i to run the test until it fails and then get an interactive
shell in the VM.
Daan De Meyer [Fri, 3 May 2024 08:57:50 +0000 (10:57 +0200)]
test: Use MESON_TEST_ITERATION if available
This allows running the same test multiple times concurrently with
meson's --repeat option. Proposed upstream but not yet merged:
https://github.com/mesonbuild/meson/pull/13177.
Daan De Meyer [Thu, 2 May 2024 18:21:29 +0000 (20:21 +0200)]
test: Only set environment variable if integration tests are enabled.
If we set it to '0' if integration tests are not enabled then we can't
enable them from the command line since environment from meson takes
priority over environment variables from the command line.
We also rename the related variables to avoid conflicts with the
existing integration_tests variable.
Daan De Meyer [Sun, 5 May 2024 13:03:37 +0000 (15:03 +0200)]
mkosi: Make sure tmp.mount is not messed with on Debian/Ubuntu
We want /tmp to be a tmpfs so let's hack the debian packaging to
make sure that's the case until the debian packaging is fixed to
make /tmp a tmpfs for UPSTREAM=1 builds.
Daan De Meyer [Fri, 3 May 2024 10:56:50 +0000 (12:56 +0200)]
mkosi: Disable ext4's orphan_file feature for centos images
Not supported by e2fsck from centos. We also disable building repart
from source in CI as running it from the build directory means repart
will run mkfs.ext4 from the host which doesn't know about the orphan_file
feature causing it to fail.
Daan De Meyer [Fri, 3 May 2024 12:15:55 +0000 (14:15 +0200)]
mkosi: Insist on KVM, VSOCK and TPM by default
By default mkosi will not run VMs with these features if they're not
available, but since various stuff in systemd makes use of these, let's
fail loudly if any of these are not available by default in systemd.
Users can still override these defaults locally if they wish.
Kai Lueke [Mon, 6 May 2024 04:06:51 +0000 (13:06 +0900)]
man: Remove OSConfig project mentioning for systemd-confext
The systemd-confext use case description was mentioning an OSConfig
project which won't say much to users. Also, it's good to call out that
systemd-confext provides a reliable way to manage configuration because
in contrast to other tools it will remove all old configuration files.
The Xiaomi Mipad2 tablet has 3 capacitive buttons at the bottom.
These 3 buttons are handled by the touchsceen (the touchscreen extends
downwards to cover the bottom bezel).
By default these send Windows specific shortcuts which do not work
with Linux desktop environments:
Menu: LeftMeta + S
Home: LeftCtrl + Esc
Back: Backspace
Map these to menu / leftmeta (Windows key / Win 8 tablet home button key) /
back.
Daan De Meyer [Sat, 4 May 2024 13:08:02 +0000 (15:08 +0200)]
meson: Test installation fixes
Let's use the new follow_symlinks flag instead on newer meson to.
We also switch back to copying symlinks instead of following them
and add an exclude for 25-default.link which becomes dangling when
installed and recreate it manually instead.
Daan De Meyer [Sat, 4 May 2024 14:54:41 +0000 (16:54 +0200)]
core: Record ExecMainStartTimestamp before forking
Otherwise there's a chance the handover timestamp is less than the
start timestamp depending on the whims of the scheduler.
For non-forking services, we also propagate the start timestamp into
Service->main_exec_status to make sure it starts earlier than the
handoff timestamp.