]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
2 weeks agonetwork/dhcp-server: several cleanups for setting domain to DHCP server 39380/head
Yu Watanabe [Mon, 20 Oct 2025 03:16:31 +0000 (12:16 +0900)] 
network/dhcp-server: several cleanups for setting domain to DHCP server

- use dns_name_parent(),
- only ignore errors when the current hostname does not have domain
  part, but make other errors like ENOMEM critical.

Follow-ups for 3eb7b881bd7e5ebe54910fe343d0ee0963879aab.

2 weeks agotest: add unit test for dns_name_parent()
Yu Watanabe [Mon, 20 Oct 2025 03:01:22 +0000 (12:01 +0900)] 
test: add unit test for dns_name_parent()

2 weeks agoman: fix typo
Yu Watanabe [Mon, 20 Oct 2025 02:25:41 +0000 (11:25 +0900)] 
man: fix typo

Follow-up for 938f7fea7c953e5f5e9e199a5fcd22ac84fd1240.

2 weeks agodocs: fix conversion / calculation errors
Marien Zwart [Sun, 19 Oct 2025 13:41:08 +0000 (00:41 +1100)] 
docs: fix conversion / calculation errors

0x1770 is 6000, not 60000. It looks like 60000 is intended (the next
range starts at 60000 in both decimal and hex), so use that.

1000 to 60000 is 59001 users, as the range is inclusive on both sides.
Similar off-by-one for one of the "unused" ranges. After these changes,
the sizes of the ranges up to and including the "-1" ID sum up to 65536,
as expected.

I'm not sure where the size of the unused range after the container UID
range came from, but it is not correct (the "Container UID" and this
reserved range combined would be larger than the "HIC SVNT LEONES" 2^31
to 2^32-2 range...). Fix it.

It is unfortunate that the first half of this table makes more sense in
decimal while the second half makes more sense in hex (which would also
make the size in 65536 chunks easy to obtain): I'm tempted to add a
"sizes in hex" column...

2 weeks agoci: add bpftool workaround to coverity too
Luca Boccassi [Sat, 18 Oct 2025 13:23:59 +0000 (14:23 +0100)] 
ci: add bpftool workaround to coverity too

2 weeks agoci: fix workaround about bpftool for codeql
Yu Watanabe [Sat, 18 Oct 2025 01:39:13 +0000 (10:39 +0900)] 
ci: fix workaround about bpftool for codeql

Follow-up for e9fd2bbfffc5c2c7cd1ea0a288d5435fc15e387f.

2 weeks agoAssorted coverity fixes (#39355)
Luca Boccassi [Fri, 17 Oct 2025 19:30:09 +0000 (20:30 +0100)] 
Assorted coverity fixes (#39355)

2 weeks agomkosi: install new knot-keymgr in Fedora rawhide
Luca Boccassi [Fri, 17 Oct 2025 12:30:37 +0000 (13:30 +0100)] 
mkosi: install new knot-keymgr in Fedora rawhide

https://src.fedoraproject.org/rpms/knot/c/52aa1c6b27ca981abe9960c0a4161be7204be75e

TEST-75-RESOLVED.sh[116]: + keymgr . generate algorithm=ECDSAP256SHA256 ksk=yes zsk=yes
TEST-75-RESOLVED.sh[454]: /usr/lib/systemd/tests/testdata/units/TEST-75-RESOLVED.sh: line 153: keymgr: command not found

2 weeks agolog: add underflow assert guard
Luca Boccassi [Fri, 17 Oct 2025 10:27:55 +0000 (11:27 +0100)] 
log: add underflow assert guard

We often use ssize_t in log_error macros, but typically return int
which confuses coverity, as technically there is no guarantee that
int and ssize_t have the same range. Add an assert to enforce it.

2 weeks agoci: add bpftool workaround to codeql job too
Luca Boccassi [Fri, 17 Oct 2025 14:39:09 +0000 (15:39 +0100)] 
ci: add bpftool workaround to codeql job too

2 weeks agotest: avoid divide-by-zero coverity warning 39355/head
Luca Boccassi [Fri, 17 Oct 2025 10:42:20 +0000 (11:42 +0100)] 
test: avoid divide-by-zero coverity warning

CID#1587762

2 weeks agobpf: do not leak dlopen object
Luca Boccassi [Fri, 17 Oct 2025 10:13:00 +0000 (11:13 +0100)] 
bpf: do not leak dlopen object

CID#1609833

2 weeks agoefivars: fix potential memory leak
Luca Boccassi [Fri, 17 Oct 2025 09:23:28 +0000 (10:23 +0100)] 
efivars: fix potential memory leak

If 'ret' is not passed, 'x' is leaked

Follow-up for c8d60ae79d1763c6ef16fdb306b65d909a769de8

CID#1621673

2 weeks agoblockdev-list: add overflow check assert
Luca Boccassi [Fri, 17 Oct 2025 09:19:49 +0000 (10:19 +0100)] 
blockdev-list: add overflow check assert

Fixes coverity warning

CID#1630794

2 weeks agodissect: drop leftover assert
Luca Boccassi [Fri, 17 Oct 2025 09:15:24 +0000 (10:15 +0100)] 
dissect: drop leftover assert

This was refactored, and the assert is now wrongly placed. Drop
it to fix coverity warning.

Follow-up for dfdeb0b1cbb05a213f0965eedfe0e7ef06cd39d3

CID#1639975

2 weeks agoci: re-enable bpf-framework option for build and unit test jobs
Luca Boccassi [Fri, 17 Oct 2025 13:00:23 +0000 (14:00 +0100)] 
ci: re-enable bpf-framework option for build and unit test jobs

Use the same trickery we do in the package build and search for
the actual bpftool binary. For the CI job any one we find is
good enough.
When we switch all jobs to 26.04 we can drop all of this.

This reverts commit cc814110af7a453db898ea2990a0281616d5ceff.

2 weeks agotest: let kernel OOM-kill a child process instead of the main one
Frantisek Sumsal [Thu, 16 Oct 2025 11:06:51 +0000 (13:06 +0200)] 
test: let kernel OOM-kill a child process instead of the main one

This test occasionally fails due to a race where systemd processes
kernel's SIGKILL before the OOM notification, so the test service dies
with Result=signal instead of the expected Result=oom-kill:

[   51.008765] TEST-55-OOMD.sh[906]: + systemd-run --wait --unit oom-kill -p OOMPolicy=kill -p Delegate=yes -p DelegateSubgroup=init.scope /tmp/script.sh
[   51.048747] TEST-55-OOMD.sh[907]: Running as unit: oom-kill.service; invocation ID: 456645347d554ea2878463404b181bd8
[   51.066296] sysrq: Manual OOM execution
[   51.066596] kworker/1:0 invoked oom-killer: gfp_mask=0xcc0(GFP_KERNEL), order=-1, oom_score_adj=0
[   51.066915] CPU: 1 UID: 0 PID: 27 Comm: kworker/1:0 Not tainted 6.17.1-arch1-1 #1 PREEMPT(full)  d2b229857b2eb4001337041f41d3c4f131433540
[   51.066919] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS Arch Linux 1.17.0-2-2 04/01/2014
[   51.066921] Workqueue: events moom_callback
[   51.066928] Call Trace:
[   51.066931]  <TASK>
[   51.066936]  dump_stack_lvl+0x5d/0x80
[   51.066942]  dump_header+0x43/0x1aa
<...snip...>
[   51.087814] 47583 pages reserved
[   51.087969] 0 pages cma reserved
[   51.088208] 0 pages hwpoisoned
[   51.088519] Out of memory: Killed process 908 (sleep) total-vm:3264kB, anon-rss:256kB, file-rss:1916kB, shmem-rss:0kB, UID:0 pgtables:44kB oom_score_adj:1000
[   51.090263] TEST-55-OOMD.sh[907]:           Finished with result: signal
[   51.094416] TEST-55-OOMD.sh[907]: Main processes terminated with: code=killed, status=9/KILL
[   51.094898] TEST-55-OOMD.sh[907]:                Service runtime: 58ms
[   51.095436] TEST-55-OOMD.sh[907]:              CPU time consumed: 22ms
[   51.095854] TEST-55-OOMD.sh[907]:                    Memory peak: 1.6M (swap: 0B)
[   51.096722] TEST-55-OOMD.sh[912]: ++ systemctl show oom-kill -P Result
[   51.106549] TEST-55-OOMD.sh[879]: + assert_eq signal oom-kill
[   51.107394] TEST-55-OOMD.sh[913]: + set +ex
[   51.108256] TEST-55-OOMD.sh[913]: FAIL: expected: 'oom-kill' actual: 'signal'
[FAILED] Failed to start TEST-55-OOMD.service.

To mitigate this, let's spawn a child process and move it to the
subcgroup to get killed instead of the main process, so systemd has more
time to react to the OOM notification and terminate the service with the
expected oom-kill result.

2 weeks agotree-wide: Various forward header cleanups
Daan De Meyer [Fri, 17 Oct 2025 08:49:53 +0000 (10:49 +0200)] 
tree-wide: Various forward header cleanups

- Make sure forward headers have the iwyu pragma to always keep them
- Make sure we always include the daemon specific forward header
  instead of shared-forward.h
- Remove shared-forward.h include where the daemon specific forward
  header is already included

2 weeks agoci: Disable bpf-framework option for build and unit test jobs
Daan De Meyer [Fri, 17 Oct 2025 09:53:48 +0000 (11:53 +0200)] 
ci: Disable bpf-framework option for build and unit test jobs

/usr/sbin/bpftool is completely broken inside containers on
Ubuntu which makes meson blow up so disable the bpf-framework
stuff to avoid the issue.

TODO: Drop when we move off Ubuntu Noble as this will be fixed
in the next Ubuntu LTS release.

3 weeks agocore/mount: properly handle REMOUNTING_* states in mount_stop() (#39269)
Mike Yuan [Thu, 16 Oct 2025 18:50:03 +0000 (20:50 +0200)] 
core/mount: properly handle REMOUNTING_* states in mount_stop() (#39269)

3 weeks agocore: fix build error due to merge conflict in varlink-execute.h
Matteo Croce [Thu, 16 Oct 2025 18:47:40 +0000 (20:47 +0200)] 
core: fix build error due to merge conflict in varlink-execute.h

During last refactor, an include wasn't changed and led to a build
error.

Follow-up for fdb2c0dd6f02f63f6d398ab6729aa59c023e57b6

3 weeks agodissect: add support for verity-protected bare filesystems via mountfsd (#39325)
Luca Boccassi [Thu, 16 Oct 2025 18:43:45 +0000 (19:43 +0100)] 
dissect: add support for verity-protected bare filesystems via mountfsd (#39325)

Needed to implement support for RootHashSignature=/RootVerity=/RootHash=
and friends when going through mountfsd, for example with user units,
so that system and user units provide the same features at the same
level

3 weeks agotest/parse_hwdb: wrap Or inside an And in a Group
Zbigniew Jędrzejewski-Szmek [Thu, 16 Oct 2025 12:45:20 +0000 (14:45 +0200)] 
test/parse_hwdb: wrap Or inside an And in a Group

I now get a warning like this with python3-pyparsing-3.1.2-8.fc42:

hwdb.d/parse_hwdb.py:208: UserWarning: warn_multiple_tokens_in_named_alternation:
  setting results name 'VALUE' on Or expression will return a list of all parsed
  tokens in an And alternative, in prior versions only the first token was returned;
  enclose contained argument in Group
('!' ^ (Optional('!') - Word(alphanums + '_')))('VALUE')

3 weeks agoimplement ExecContext for io.systemd.Unit.List (#38212)
Daan De Meyer [Thu, 16 Oct 2025 17:06:46 +0000 (19:06 +0200)] 
implement ExecContext for io.systemd.Unit.List (#38212)

3 weeks agotwo small varlink additions (#39323)
Lennart Poettering [Thu, 16 Oct 2025 15:42:57 +0000 (17:42 +0200)] 
two small varlink additions (#39323)

Split out of #39293, but make a ton of sense on their own.

3 weeks agokmod-setup: don't load unix.ko as a module anymore
Lennart Poettering [Thu, 16 Oct 2025 14:07:36 +0000 (16:07 +0200)] 
kmod-setup: don't load unix.ko as a module anymore

Building unix.ko as a module always has been a really bad idea, from day
1. Debian used to do this, but has long been fixed. Kernel developers
saw the light too, and removed support for it in 6.5
(97154bcf4d1b7cabefec8a72cff5fbb91d5afb7b). Let's hence drop support for
this here too, and delete some old cruft. AF_UNIX is simply our most
basic IPC system and supporting systems without it being around is just
not realistic.

3 weeks agotest: add coverage for image policy and bare filesystems with verity 39325/head
Luca Boccassi [Thu, 16 Oct 2025 14:07:54 +0000 (15:07 +0100)] 
test: add coverage for image policy and bare filesystems with verity

3 weeks agodissect: add support for verity-protected bare filesystems via mountfsd
Luca Boccassi [Tue, 14 Oct 2025 22:32:54 +0000 (23:32 +0100)] 
dissect: add support for verity-protected bare filesystems via mountfsd

Needed to implement support for RootHashSignature=/RootVerity=/RootHash=
and friends when going through mountfsd, for example with user units,
so that system and user units provide the same features at the same
level

3 weeks agomountfsd: add support for verity-protected bare filesystems
Luca Boccassi [Tue, 14 Oct 2025 22:30:51 +0000 (23:30 +0100)] 
mountfsd: add support for verity-protected bare filesystems

Add optional varlink parameters to pass in verity data/roothash/sig

3 weeks agojson: add json_dispatch_unhex_iovec helper
Luca Boccassi [Thu, 16 Oct 2025 15:21:57 +0000 (16:21 +0100)] 
json: add json_dispatch_unhex_iovec helper

3 weeks agovarlink: omit empty parameters field in JSON messages (#38922)
Govind Venugopal [Thu, 16 Oct 2025 15:06:17 +0000 (08:06 -0700)] 
varlink: omit empty parameters field in JSON messages (#38922)

When varlink parameters are empty, omit the "parameters" field entirely
rather than sending "parameters":{}. This reduces message size and
follows varlink specification which allows parameters to be omitted.

The implementation supports three equivalent representations for empty
parameters: field omission, JSON null, and empty object {}. All three
are accepted on input for backward compatibility.

Fixes: #38474
3 weeks agotree-wide: Introduce sd-forward.h and shared-forward.h headers
Daan De Meyer [Thu, 16 Oct 2025 13:20:36 +0000 (15:20 +0200)] 
tree-wide: Introduce sd-forward.h and shared-forward.h headers

Let's not leak details from src/shared and src/libsystemd into
src/basic, even though you can't actually do anything useful with
just forward declarations from src/shared.

The sd-forward.h header is put in src/libsystemd/sd-common as we
don't have a directory for shared internal headers for libsystemd
yet.

Let's also rename forward.h to basic-forward.h to keep things
self-explanatory.

3 weeks agodissect: fix image policy check for bare dm-verity filesystem
Luca Boccassi [Thu, 16 Oct 2025 13:59:50 +0000 (14:59 +0100)] 
dissect: fix image policy check for bare dm-verity filesystem

The root_hash_sig pointer might be set, but to an empty iovec. Check
that the length is > 0 instead.

Follow-up for cd22d8562dd085f5c234cf26b4dd773029418833

3 weeks agomkosi: provide detached verity signatures too for minimal images
Luca Boccassi [Thu, 16 Oct 2025 13:59:04 +0000 (14:59 +0100)] 
mkosi: provide detached verity signatures too for minimal images

Useful for manual testing in the VM

3 weeks agoSupport ExtensionImages=/MountImages= in user services via mountfsd and PrivateUsers...
Luca Boccassi [Thu, 16 Oct 2025 14:49:46 +0000 (15:49 +0100)] 
Support ExtensionImages=/MountImages= in user services via mountfsd and PrivateUsers=yes (#39341)

3 weeks agovarlink: move definition of varlink_hash_ops into common code 39323/head
Lennart Poettering [Thu, 9 Oct 2025 19:59:48 +0000 (21:59 +0200)] 
varlink: move definition of varlink_hash_ops into common code

This is truly useful whenever we have to deal with multiple varlink
connections.

3 weeks agosd-varlink: add sd_varlink_is_connected()
Lennart Poettering [Thu, 9 Oct 2025 08:57:25 +0000 (10:57 +0200)] 
sd-varlink: add sd_varlink_is_connected()

3 weeks agocore: also enable PrivateUsers= for user services when using images via mountfsd 39341/head
Luca Boccassi [Wed, 15 Oct 2025 19:05:03 +0000 (20:05 +0100)] 
core: also enable PrivateUsers= for user services when using images via mountfsd

RootDirectory= and other options already implicitly enable PrivateUsers=
since 6ef721cbc7dadee4ae878ecf0076d87e57233908 if they are set in user
units, so that they can work out of the box.
Now with mountfsd support we can do the same for the images settings,
so enable them and document them.

3 weeks agoSupport ExtensionImages=/MountImages= in user services via mountfsd
Luca Boccassi [Wed, 15 Oct 2025 17:49:16 +0000 (18:49 +0100)] 
Support ExtensionImages=/MountImages= in user services via mountfsd

Support for RootImage= was added by 046a1487db00ca1a98b8cc3f5bcecb8b1f1a214b
but it was not wired in for ExtensionImages=/MountImages=

3 weeks agotest: add coverage for RootImage= in user units
Luca Boccassi [Thu, 16 Oct 2025 11:58:06 +0000 (12:58 +0100)] 
test: add coverage for RootImage= in user units

Follow-up for 046a1487db00ca1a98b8cc3f5bcecb8b1f1a214b

3 weeks agocore: Don't use TTYPath= for PAM unless StandardInput=tty
Daan De Meyer [Thu, 16 Oct 2025 06:42:03 +0000 (08:42 +0200)] 
core: Don't use TTYPath= for PAM unless StandardInput=tty

Fixes #39334

3 weeks agocore/cgroup: two follow-ups for recent OOMKills PR (#39215)
Zbigniew Jędrzejewski-Szmek [Thu, 16 Oct 2025 11:38:01 +0000 (13:38 +0200)] 
core/cgroup: two follow-ups for recent OOMKills PR (#39215)

Follow-ups for #38906.

3 weeks agocore: add comments in varlink-io.systemd.Unit.c 38212/head
Ivan Kruglov [Mon, 14 Jul 2025 13:51:54 +0000 (06:51 -0700)] 
core: add comments in varlink-io.systemd.Unit.c

3 weeks agocore: ExecContext for io.systemd.Unit.List method
Ivan Kruglov [Thu, 3 Jul 2025 15:08:25 +0000 (08:08 -0700)] 
core: ExecContext for io.systemd.Unit.List method

3 weeks agocore: exec_log_level_max_with_exec_params()
Ivan Kruglov [Mon, 14 Jul 2025 09:46:28 +0000 (02:46 -0700)] 
core: exec_log_level_max_with_exec_params()

3 weeks agocore: move cpuset_build_json() to varlink-common
Ivan Kruglov [Mon, 7 Jul 2025 08:41:55 +0000 (01:41 -0700)] 
core: move cpuset_build_json() to varlink-common

3 weeks agotest: wait for signed.test's zone DS records to get pushed to the parent zone
Frantisek Sumsal [Wed, 15 Oct 2025 11:26:44 +0000 (13:26 +0200)] 
test: wait for signed.test's zone DS records to get pushed to the parent zone

It looks like the 4 second sleep might not be enough on some slower
machines (like the ARM GH Actions nodes) which can lead to the DS RRs
propagation to clash with the manual test zone edit, and the
signed.test zone then might end up not properly signed:

TEST-75-RESOLVED.sh[749]: + : '--- ZONE: signed.test (static DNSSEC) ---'
TEST-75-RESOLVED.sh[749]: + run_delv @ns1.unsigned.test signed.test
TEST-75-RESOLVED.sh[749]: + run delv -a /etc/bind.keys @ns1.unsigned.test signed.test
TEST-75-RESOLVED.sh[778]: + delv -a /etc/bind.keys @ns1.unsigned.test signed.test
TEST-75-RESOLVED.sh[779]: + tee /tmp/tmp.2KOIiyrgth
TEST-75-RESOLVED.sh[779]: ;; /etc/bind.keys:1: option 'managed-keys' is deprecated
TEST-75-RESOLVED.sh[779]: ;; validating signed.test/DS: no valid signature found
TEST-75-RESOLVED.sh[779]: ;; validating signed.test/A: no valid signature found
TEST-75-RESOLVED.sh[779]: ; unsigned answer
TEST-75-RESOLVED.sh[779]: signed.test. 86400 IN A 10.0.0.10
TEST-75-RESOLVED.sh[779]: signed.test. 86400 IN RRSIG A 13 2 86400 20251028114356 20251014101356 39330 signed.test. oo3ca8WPusbBPRhzsEKw3bsBBqFtI8i4bckoMVNzt7lY+udGW6PlaSYj OjpQGgY9oglowVM9bteNtwJKHUbvtw==
TEST-75-RESOLVED.sh[749]: + grep -qF '; fully validated' /tmp/tmp.2KOIiyrgth
[FAILED] Failed to start TEST-75-RESOLVED.service - TEST-75-RESOLVED.

Let's explicitly wait for the DS records propagation to finish before we
start editing the test zone to avoid this.

I'm still not completely sure if this is the root cause, but it's the
best shot I currently have, so I'll let the CIs decide.

3 weeks agomeson: fix HAVE_LIBARCHIVE_* conditions
Antonio Alvarez Feijoo [Thu, 16 Oct 2025 09:10:04 +0000 (11:10 +0200)] 
meson: fix HAVE_LIBARCHIVE_* conditions

Follow-up for a7c8f92d1f937113a279adbe62399f6f0773473f

3 weeks agobasic: secure_bits_to_strv()
Ivan Kruglov [Thu, 9 Oct 2025 13:42:35 +0000 (06:42 -0700)] 
basic: secure_bits_to_strv()

3 weeks agonsflags: namespace_flags_to_strv()
Ivan Kruglov [Mon, 7 Jul 2025 15:06:58 +0000 (08:06 -0700)] 
nsflags: namespace_flags_to_strv()

3 weeks agotest: minor fixlets for TEST-50-DISSECT (#39328)
Zbigniew Jędrzejewski-Szmek [Thu, 16 Oct 2025 10:25:41 +0000 (12:25 +0200)] 
test: minor fixlets for TEST-50-DISSECT (#39328)

3 weeks agocore: Make sure we don't clobber return argument on failure
Daan De Meyer [Thu, 16 Oct 2025 07:32:44 +0000 (09:32 +0200)] 
core: Make sure we don't clobber return argument on failure

As documented in the coding style, let's make sure we follow it.

3 weeks agotest: fixes for debian unstable and TEST-50-DISSECT (#39331)
Daan De Meyer [Thu, 16 Oct 2025 06:45:46 +0000 (08:45 +0200)] 
test: fixes for debian unstable and TEST-50-DISSECT (#39331)

Test failed in a weird way, turns out we don't use pipefail and an
intermediate command was moved to a different package so it wasn't in
the minimal image anymore. Add it, and use pipefail so in the future
it's easier to spot.

3 weeks agotest-tar-extract: add a binary wrapping tar_x() for manual testing
Zbigniew Jędrzejewski-Szmek [Wed, 15 Oct 2025 09:42:41 +0000 (11:42 +0200)] 
test-tar-extract: add a binary wrapping tar_x() for manual testing

We'll probably want to turn this into a test in the integration tests.

3 weeks agotest: call bash with -o pipefail when piping commands in TEST-50-DISSECT 39331/head
Luca Boccassi [Wed, 15 Oct 2025 21:58:18 +0000 (22:58 +0100)] 
test: call bash with -o pipefail when piping commands in TEST-50-DISSECT

We want the tests to fail if one of the intermediate commands fails,
otherwise it is hard to spot failures

3 weeks agotest: install bsdextrautils in debian minimal img
Luca Boccassi [Wed, 15 Oct 2025 21:54:14 +0000 (22:54 +0100)] 
test: install bsdextrautils in debian minimal img

'rev' moved to bsdextrautils and TEST-50-DISSECT uses it, so it now
fails:

[   83.534905] bash[3581]: +++ grep '^now' /proc/timer_list
[   83.535479] bash[3582]: +++ cut '-d ' -f3
[   83.535774] bash[3583]: +++ rev
[   83.535774] bash[3583]: bash: line 1: rev: command not found

3 weeks agotest: sign extension images used by TEST-50-DISSECT 39328/head
Luca Boccassi [Wed, 15 Oct 2025 17:46:26 +0000 (18:46 +0100)] 
test: sign extension images used by TEST-50-DISSECT

3 weeks agotest: also test verity signatures on debian testing/unstable
Luca Boccassi [Wed, 15 Oct 2025 17:46:00 +0000 (18:46 +0100)] 
test: also test verity signatures on debian testing/unstable

debian testing/unstable do not set VERSION_ID, so if missing, assume
it's testing/unstable which are new enough

3 weeks agojson: helper macro JSON_BUILD_PAIR_YES_NO()
Ivan Kruglov [Fri, 10 Oct 2025 10:11:47 +0000 (03:11 -0700)] 
json: helper macro JSON_BUILD_PAIR_YES_NO()

3 weeks agojson: helper macros JSON_BUILD_PAIR_CONDITION_*()
Ivan Kruglov [Fri, 4 Jul 2025 12:22:33 +0000 (05:22 -0700)] 
json: helper macros JSON_BUILD_PAIR_CONDITION_*()

3 weeks agocore: Delete redundant log_parse_environment(), v2 (#39278)
Zbigniew Jędrzejewski-Szmek [Wed, 15 Oct 2025 15:50:59 +0000 (17:50 +0200)] 
core: Delete redundant log_parse_environment(), v2 (#39278)

Reworked version of #39175.

3 weeks agotest: move checks around in TEST-50-DISSECT so that they can be used from multiple...
Luca Boccassi [Wed, 15 Oct 2025 14:27:54 +0000 (15:27 +0100)] 
test: move checks around in TEST-50-DISSECT so that they can be used from multiple subtests

Also set it up so that unprivileged tests can be done

3 weeks agocore: delete redundant log_parse_environment() 39278/head
huyubiao [Tue, 30 Sep 2025 07:26:43 +0000 (15:26 +0800)] 
core: delete redundant log_parse_environment()

Fixes https://github.com/systemd/systemd/issues/38895.

Fix the confusing behavior where when an incorrect configuration item such as
'ManagerEnvironment=SYSTEMD_LOG_LEVEL=' is set, the first daemon-reload uses
old environment variables while the second daemon-reload uses LogLevel=.

Co-authored-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
The difference in behaviour is that the operations that were done between the
first log_parse_environment() and the second one might not be logged now, e.g.
if the environment enabled debug logging. That is unfortunate, but parsing the
environment twice and not having the explicit configuration take effect until a
second daemon-reload is confusing. We will always have some window where the
configuration for logging does not apply, in particular this must be true when
parsing the logging configuration. To make that window smaller, move operations
that could log after the call to log_parse_environment() as far as possible.

3 weeks agoman/systemd-systemd.conf: describe DefaultEnvironment= and ManagerEnvironment= better
Zbigniew Jędrzejewski-Szmek [Fri, 10 Oct 2025 16:28:09 +0000 (18:28 +0200)] 
man/systemd-systemd.conf: describe DefaultEnvironment= and ManagerEnvironment= better

The description of ME= said "see above", but it was actually above the other
one. So change the order. But while reading this, I found it very hard to
understand. So reword things, hopefully in a way that is easier to understand.
The current behaviour is rather complex and unintuitive, but this description
just tries to describe it truthfully.

3 weeks agoRevert "machine: restrict register-machine action again"
Luca Boccassi [Tue, 14 Oct 2025 17:07:50 +0000 (18:07 +0100)] 
Revert "machine: restrict register-machine action again"

Now that we have landed several fixes, this should be safe to do
again, so allow logged in users to register machines without
authentication prompts

This reverts commit 65badde82e0c77875a23f084cf3251c052e042e2.

3 weeks agoUse verity sharing for user services and nspawn too (#39313)
Luca Boccassi [Wed, 15 Oct 2025 10:01:57 +0000 (11:01 +0100)] 
Use verity sharing for user services and nspawn too (#39313)

https://github.com/systemd/systemd/pull/39168 made verity sharing
opt-in, and enabled it for system services.
Also enable it for user services for RootImage/etc, and for nspawn, for
the same reasons.

3 weeks agonetwork: add DHCP server domain name option support (#39260)
Govind Venugopal [Wed, 15 Oct 2025 09:20:41 +0000 (02:20 -0700)] 
network: add DHCP server domain name option support (#39260)

Implements DHCP option 15 (Domain Name) for systemd-networkd's DHCP
server, allowing administrators to configure the DNS default domain that
clients should use.

This addresses the feature request in issue #37077, where users needed
to manually configure domain names using
SendOption=15:string:example.com as a workaround.

This adds two new configuration options to the [DHCPServer] section:
- EmitDomain= (boolean): whether to send domain name to clients
- Domain= (string): the domain name to send (e.g., "example.com")

Example configuration:
  [DHCPServer] EmitDomain=yes Domain=example.com

This eliminates the need for manual workarounds using
SendOption=15:string:...

Fixes #37077

3 weeks agoimportd: change untar logic to be based on libarchive rather than shelling out to...
Lennart Poettering [Wed, 15 Oct 2025 09:12:23 +0000 (11:12 +0200)] 
importd: change untar logic to be based on libarchive rather than shelling out to gnu tar (#39143)

Let's use libarchive consistently everywhere, both for tarring and
untarring.

Note that there's an existing test case that validates untarring. Now,
it will validate libarchive rather than gnu tar.

Split out of #38728

3 weeks agomountfsd: make MountDirectory() work with systemd-homed
Lennart Poettering [Sat, 23 Aug 2025 06:15:01 +0000 (08:15 +0200)] 
mountfsd: make MountDirectory() work with systemd-homed

systemd-homed already applies an idmap to its mounts, hence we need to
undo it before we can create our own.

3 weeks agonsresource: fix varlink method dispatch table
Yu Watanabe [Wed, 15 Oct 2025 01:25:11 +0000 (10:25 +0900)] 
nsresource: fix varlink method dispatch table

Follow-up for 716bf93c4bde07c1870b9b0837f2ec33f36686f1 (v258).

3 weeks agodissect-image: when autoprobing insist on vfat for XBOOTLDR
Lennart Poettering [Thu, 9 Oct 2025 09:01:48 +0000 (11:01 +0200)] 
dissect-image: when autoprobing insist on vfat for XBOOTLDR

Let's reduce our attack surface by insisting that XBOOTLDR is vfat when
auto-probing, just like we do for the ESP. Given neither can
realistically be integrity protected (because firmware needs to access
them) let's insist on a vfat which has a much smaller attack surface,
and one we have to accept (for now) anyway, given that the ESP must be
VFAT.

This only applies to auto-probing of course. If people mount things
explicitly via fstab none of this matters. But we really shouldn't
automount a btrfs/xfs/ext4 partition as XBOOTLDR just because it looks
like one, as that would really defeat our otherwise possibly very strict
image policies.

This also introduces a new env var $SYSTEMD_DISSECT_FSTYPE_<DESIGNATOR>
environment variable that may override this hardcoding. This is in
particular useful in our testcases, since various actually do use ext4
as XBOOTLDR case. The tests are updated to make use of the new env var,
both as a mechanism to test this and to keep the tests working.

3 weeks agonspawn: enable verity sharing 39313/head
Luca Boccassi [Tue, 14 Oct 2025 17:46:08 +0000 (18:46 +0100)] 
nspawn: enable verity sharing

Just like RootImage=, ExtensionImages= etc, nspawn can make use of
this to save a lot of time when starting containers that use an already
open image, since the default was changed to disabled.

Follow-up for 57d1ceffb3d98f69c2da511ed59a420a1cfa7e40

3 weeks agodissect-image: pass through DISSECT_IMAGE_VERITY_SHARE to mountfsd via varlink if set
Luca Boccassi [Tue, 14 Oct 2025 17:44:32 +0000 (18:44 +0100)] 
dissect-image: pass through DISSECT_IMAGE_VERITY_SHARE to mountfsd via varlink if set

This ensures user services using RootImage=, ExtensionImages= etc. also
try to reuse existing verity devices, like system services.

Follow-up for 57d1ceffb3d98f69c2da511ed59a420a1cfa7e40

3 weeks agomountfsd: add boolean parameter to let callers enable verity sharing
Luca Boccassi [Tue, 14 Oct 2025 17:37:30 +0000 (18:37 +0100)] 
mountfsd: add boolean parameter to let callers enable verity sharing

3 weeks agomountfsd: json format unsigned types as unsigned
Luca Boccassi [Tue, 14 Oct 2025 19:14:39 +0000 (20:14 +0100)] 
mountfsd: json format unsigned types as unsigned

sizes/offsets are unsigned ints, so use the appropriate macros
to build the json messages, otherwise UINT64T_MAX is sent as -1

3 weeks agotest: enable TEST-06-SELINUX in openSUSE
Antonio Alvarez Feijoo [Tue, 14 Oct 2025 14:57:57 +0000 (16:57 +0200)] 
test: enable TEST-06-SELINUX in openSUSE

openSUSE switched to SELinux by default for quite some time now, so this test is
also successful.

3 weeks agoudev: create symlinks for s390 PTP devices
Miroslav Lichvar [Tue, 14 Oct 2025 09:03:01 +0000 (11:03 +0200)] 
udev: create symlinks for s390 PTP devices

Similarly to the udev rules handling KVM and Hyper-V PTP devices, create
symlinks for the s390-specific STCKE and Physical clocks (supported
since Linux 6.13) to have some stable names that can be specified in
default configurations of PTP/NTP applications.

3 weeks agotimer: rebase the next elapse timestamp only if timer didn't already run (#39296)
Lennart Poettering [Tue, 14 Oct 2025 16:30:23 +0000 (18:30 +0200)] 
timer: rebase the next elapse timestamp only if timer didn't already run (#39296)

3 weeks agocore: allow split /usr/local/s?sbin with merged /usr/s?bin
Zbigniew Jędrzejewski-Szmek [Fri, 10 Oct 2025 12:29:50 +0000 (14:29 +0200)] 
core: allow split /usr/local/s?sbin with merged /usr/s?bin

Previously, we used either the fully split path or the fully merged path,
treating "split sbin" as a boolean condition. The idea was that conversion to
to merged bin would be a single event, so we don't need to care about the
details of the transition. But it turns out that some systems may be converted
in disparate steps. In https://bugzilla.redhat.com/show_bug.cgi?id=2400220,
there was a lengthy discussion about a coreos system where
/usr/local/{bin,sbin} were created as separate directories. Since /usr/local is
not part of the packaged system, it might remain split for a longer time. So
check /usr/local/s?bin separately and stop adding /usr/sbin to $PATH if only
/usr/local/s?bin is split. (I don't think it makes sense to handle the reverse
case, i.e. only /usr/s?bin being split, since that should be much rarer.)

Inspired by https://bugzilla.redhat.com/show_bug.cgi?id=2400220.

3 weeks agomkosi: explicitly pull in libz1 on OpenSUSE
Frantisek Sumsal [Tue, 14 Oct 2025 12:23:55 +0000 (14:23 +0200)] 
mkosi: explicitly pull in libz1 on OpenSUSE

Otherwise it pulls in libz-ng-compat1 which isn't 100% compatible with
libz1, and more importantly it requires an ldconfig drop-in in /etc/
(/etc/ld.so.conf.d/zlib-ng-compat-x86_64.conf) which breaks hermetic-usr
and TEST-07-PID1:

systemd[5582]: /usr/lib/systemd/systemd: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory

3 weeks agotimer: rebase the next elapse timestamp only if timer didn't already run 39296/head
Frantisek Sumsal [Mon, 13 Oct 2025 15:36:55 +0000 (17:36 +0200)] 
timer: rebase the next elapse timestamp only if timer didn't already run

The test added in f4c3c107d9be4e922a080fc292ed3889c4e0f4a5 uncovered a
corner case while recalculating the next elapse timestamp of a timer unit
that uses RandomizedDelaySec= during deserialization.

If the scheduled time (without RandomizedDelaySec=) already elapsed,
systemd "rebases" the next elapse timestamp to the time when systemd
first started, to make the RandomizedDelaySec= feature work even at
boot. However, since it was done unconditionally, it always overrode the
next elapse timestamp, which could then cause the final next elapse
timestamp to fall out of the expected window.

With a couple of additional debug logs one of the test fail looks like
this:

[  132.129815] TEST-53-TIMER.sh[384]: + : 'Next elapse timestamp after daemon-reload, try #328'
[  132.129815] TEST-53-TIMER.sh[384]: + systemctl daemon-reload
[  132.136352] systemd[1]: Reload requested from client PID 16399 ('systemctl') (unit TEST-53-TIMER.service)...
[  132.136636] systemd[1]: Reloading...
[  132.446160] systemd[1]: Rebasing next elapse timestamp
[  132.446168] systemd[1]: v->next_elapse: Tue 2025-10-14 00:10:00 CEST
[  132.446170] systemd[1]: rebased: Tue 2025-10-14 00:10:56 CEST
[  132.446172] systemd[1]: v->next_elapse after rebase: Tue 2025-10-14 00:10:56 CEST
[  132.447361] systemd[1]: Reloading finished in 310 ms.
[  132.484041] TEST-53-TIMER.sh[384]: + check_elapse_timestamp
[  132.484041] TEST-53-TIMER.sh[384]: + systemctl status timer-RandomizedDelaySec-16377.timer
[  132.533657] TEST-53-TIMER.sh[16440]: ● timer-RandomizedDelaySec-16377.timer
[  132.533657] TEST-53-TIMER.sh[16440]:      Loaded: loaded (/run/systemd/system/timer-RandomizedDelaySec-16377.timer; static)
[  132.533657] TEST-53-TIMER.sh[16440]:      Active: active (waiting) since Mon 2025-10-13 23:00:00 CEST; 1h 13min ago
[  132.533657] TEST-53-TIMER.sh[16440]:  Invocation: 5555d4f060114a5493ff228013830d17
[  132.533657] TEST-53-TIMER.sh[16440]:     Trigger: Tue 2025-10-14 22:10:04 CEST; 21h left
[  132.533657] TEST-53-TIMER.sh[16440]:    Triggers: ● timer-RandomizedDelaySec-16377.service
[  132.533657] TEST-53-TIMER.sh[16440]: Oct 14 00:13:07 H systemd[1]: timer-RandomizedDelaySec-16377.timer: Changed dead -> waiting
[  132.533657] TEST-53-TIMER.sh[16440]: Oct 14 00:13:07 H systemd[1]: timer-RandomizedDelaySec-16377.timer: Adding 15h 35min 1.230173s random time.
[  132.533657] TEST-53-TIMER.sh[16440]: Oct 14 00:13:07 H systemd[1]: timer-RandomizedDelaySec-16377.timer: Realtime timer elapses at Tue 2025-10-14 15:45:58 CEST.
[  132.533657] TEST-53-TIMER.sh[16440]: Oct 14 00:13:07 H systemd[1]: timer-RandomizedDelaySec-16377.timer: Changed dead -> waiting
[  132.533657] TEST-53-TIMER.sh[16440]: Oct 14 00:13:08 H systemd[1]: timer-RandomizedDelaySec-16377.timer: Adding 16h 29min 44.084409s random time.
[  132.533657] TEST-53-TIMER.sh[16440]: Oct 14 00:13:08 H systemd[1]: timer-RandomizedDelaySec-16377.timer: Realtime timer elapses at Tue 2025-10-14 16:40:41 CEST.
[  132.533657] TEST-53-TIMER.sh[16440]: Oct 14 00:13:08 H systemd[1]: timer-RandomizedDelaySec-16377.timer: Changed dead -> waiting
[  132.533657] TEST-53-TIMER.sh[16440]: Oct 14 00:13:08 H systemd[1]: timer-RandomizedDelaySec-16377.timer: Adding 21h 59min 7.955828s random time.
[  132.533657] TEST-53-TIMER.sh[16440]: Oct 14 00:13:08 H systemd[1]: timer-RandomizedDelaySec-16377.timer: Realtime timer elapses at Tue 2025-10-14 22:10:04 CEST.
[  132.533657] TEST-53-TIMER.sh[16440]: Oct 14 00:13:08 H systemd[1]: timer-RandomizedDelaySec-16377.timer: Changed dead -> waiting
[  132.535386] TEST-53-TIMER.sh[384]: + systemctl show -p InactiveExitTimestamp timer-RandomizedDelaySec-16377.timer
[  132.537727] TEST-53-TIMER.sh[16442]: InactiveExitTimestamp=Mon 2025-10-13 23:00:00 CEST
[  132.540317] TEST-53-TIMER.sh[16444]: ++ systemctl show -P NextElapseUSecRealtime timer-RandomizedDelaySec-16377.timer
[  132.547745] TEST-53-TIMER.sh[384]: + NEXT_ELAPSE_REALTIME='Tue 2025-10-14 22:10:04 CEST'
[  132.548020] TEST-53-TIMER.sh[16445]: ++ date '--date=Tue 2025-10-14 22:10:04 CEST' +%s
[  132.550218] TEST-53-TIMER.sh[384]: + NEXT_ELAPSE_REALTIME_S=1760472604
[  132.550218] TEST-53-TIMER.sh[384]: + : 'Next elapse timestamp should be Tue 2025-10-14 00:10:00 CEST <= Tue 2025-10-14 22:10:04 CEST <= Tue 2025-10-14 22:10:00 CEST'
[  132.550218] TEST-53-TIMER.sh[384]: + assert_ge 1760472604 1760393400
[  132.550555] TEST-53-TIMER.sh[16446]: + set +ex
[  132.550702] TEST-53-TIMER.sh[384]: + assert_le 1760472604 1760472600
[  132.550832] TEST-53-TIMER.sh[16447]: + set +ex
[  132.551091] TEST-53-TIMER.sh[16447]: FAIL: '1760472604' > '1760472600'

Here the original next elapse timestamp was Tue 2025-10-14 00:10:00 CEST
as expected, but it was overridden by the rebased timestamp:
Tue 2025-10-14 00:10:56 CEST. And when a new randomized delay was added
to it (21h 59min 7.955828s) the final next elapse timestamp fell out of
the expected window, i.e. Tue 2025-10-14 00:10:00 (scheduled time) <
Tue 2025-10-14 22:10:04 CEST (rebased elapse timestamp + randomized
delay) < Tue 2025-10-14 22:10:00 CEST (scheduled time + maximum from
RandomizedDelaySec=, i.e. 22h).

By limiting the timestamp rebase only the case where the unit hasn't
already run should prevent this from happening during daemon-reload.

3 weeks agovmspawn: Use virtio-blk-pci for extra drives
Nick Labich [Wed, 8 Oct 2025 23:35:25 +0000 (19:35 -0400)] 
vmspawn: Use virtio-blk-pci for extra drives

Fixes #39262

3 weeks agoRevert "meson: fail build when encountering unused variables"
Zbigniew Jędrzejewski-Szmek [Fri, 10 Oct 2025 08:02:49 +0000 (10:02 +0200)] 
Revert "meson: fail build when encountering unused variables"

This reverts commit e1e1ef09f9bc7d2ca1f6876f4f4d13268be5a50d.

This change was misguided. The warning is enough during development and will
get fixed, but turning this into a hard failure just makes WIP harder. Also, a
hard error increases the likelyhood of a build failure in scenarios where
somebody is disabling components (as seen e.g. in
ba8801a07640205778c5a62539597c68d7bdb211). We already are not very good at
keeping our codebase compile correctly as it ages, because of changes in
compilers and dependencies, and we should not go out of our way to increase the
probability of failure. Such scenarios are painful for downstream builds.

3 weeks agomeson: stop probing for paths of programs in /usr/sbin
Zbigniew Jędrzejewski-Szmek [Thu, 9 Oct 2025 12:53:22 +0000 (14:53 +0200)] 
meson: stop probing for paths of programs in /usr/sbin

We dropped support for split-usr a while ago, which means that the programs
will be in /usr/sbin, which actually may be the same as /usr/bin on merged-bin
systems. So the whole checking is mostly pointless in the usual case. OTOH, on
Nix the paths will be totally different and need to be set through the option
anyway. So save time during builds by using the "fallback" path unless the
option is specified.

This avoid some busywork during the slow serial build phase.

3 weeks agovarlink: Always link to documentation for current version
Daan De Meyer [Tue, 14 Oct 2025 07:18:11 +0000 (09:18 +0200)] 
varlink: Always link to documentation for current version

3 weeks agolibsystemd: drop "const" decorators on public inline functions
Lennart Poettering [Tue, 14 Oct 2025 09:17:27 +0000 (11:17 +0200)] 
libsystemd: drop "const" decorators on public inline functions

The point of the "const" attribute is to give the compiler hints about
behaviour of functions if it only has the function prototype but no body
around. But inline functions are the ones where the compiler *always*
has the body around, hence the "const" decorator is really just noise:
the compuler can determine the constness on its own, just by looking at
the code.

Hence, drop the decorators, it's just noise. And a source of errors, as
675fa49f69943b0f009c973ed3d1e90afc1d88b1 has shown.

Follow-up for: #39289

3 weeks agonspawn: register containers in both user and system machined if applicable (#39145)
Lennart Poettering [Tue, 14 Oct 2025 09:58:29 +0000 (11:58 +0200)] 
nspawn: register containers in both user and system machined if applicable (#39145)

3 weeks agoimportd: port untarring logic over to libarchive 39143/head
Lennart Poettering [Thu, 17 Jul 2025 06:27:21 +0000 (08:27 +0200)] 
importd: port untarring logic over to libarchive

This way we have can expose identical behaviour everywhere, can make use
of our atomic replacement calls, and openat() logic, and later apply
additional tracks while unpacking, such as putting limits on UID ranges
and similar.

3 weeks agostat-util: add fd_verify_symlink() helper
Lennart Poettering [Thu, 17 Jul 2025 05:56:57 +0000 (07:56 +0200)] 
stat-util: add fd_verify_symlink() helper

3 weeks agostat-util: add helper inode_type_can_hardlink()
Lennart Poettering [Thu, 21 Aug 2025 12:27:05 +0000 (14:27 +0200)] 
stat-util: add helper inode_type_can_hardlink()

3 weeks agoxattr: add helper that detect special purpose xattrs
Lennart Poettering [Thu, 21 Aug 2025 11:36:12 +0000 (13:36 +0200)] 
xattr: add helper that detect special purpose xattrs

3 weeks agodissect image policy tweaks (#39168)
Lennart Poettering [Tue, 14 Oct 2025 08:25:34 +0000 (10:25 +0200)] 
dissect image policy tweaks (#39168)

3 weeks agocore/service: properly handle freezer action -> watchdog propagation (#39222)
Mike Yuan [Mon, 13 Oct 2025 22:49:12 +0000 (00:49 +0200)] 
core/service: properly handle freezer action -> watchdog propagation (#39222)

3 weeks agotest: make sure TEST-50-DISSECT.mountfsd.sh can run standalone 39168/head
Lennart Poettering [Mon, 29 Sep 2025 08:45:14 +0000 (10:45 +0200)] 
test: make sure TEST-50-DISSECT.mountfsd.sh can run standalone

3 weeks agodissect-image: take policy into consideration when unlocking verity, too
Lennart Poettering [Fri, 19 Sep 2025 16:12:55 +0000 (18:12 +0200)] 
dissect-image: take policy into consideration when unlocking verity, too

Previously, we'd take the image policy only into consideration when
dissecting the mage, but for the unlock/verity step we'd go via best
effort. Change that. This means we can now enforce policies such as
activating by root hash only even if a signature exists and similar.

Also, introduce a separate error code if we try to unlock a Verity
volume but have no root hash. Previously we'd return ENOKEY for that,
exactly like we do for encrypted volumes where we have no passparse. The
interctive unlock loop dissected_image_decrypt_interactively() is
otherwise very confused and will ask for a root hash, which makes no
sense. Hence use two distinct errors for this.

3 weeks agodissect-image: turn verity device sharing into opt-in
Lennart Poettering [Fri, 19 Sep 2025 15:57:37 +0000 (17:57 +0200)] 
dissect-image: turn verity device sharing into opt-in

Sharing verity volumes is problematic for a veriety of reasons, for
example because it might pin the wrong backing device at the wrong time.

Let's hence turn this around: unless verity sharing is enabled, leave it
off, and turn $SYSTEMD_VERITY_SHARING into a true boolean that can be
set both ways.

The primary usecase for verity sharing is RootImage=, where it probably
makes sense to leave on, hence set the flag there.

This is crucial when putting together installers which install an OS on
a second disk: if verity sharing is always on we might mount the wrong
of the two disks at the wrong time.

3 weeks agotest: format the min/max timestamps in "systemd" style
Frantisek Sumsal [Mon, 13 Oct 2025 15:35:02 +0000 (17:35 +0200)] 
test: format the min/max timestamps in "systemd" style

Before:
  Next elapse timestamp should be Sun Oct 12 00:10:00 UTC 2025 <= Sun 2025-10-12 05:43:04 UTC <= Sun Oct 12 22:10:00 UTC

After:
  Next elapse timestamp should be Tue 2025-10-14 00:10:00 CEST <= Tue 2025-10-14 19:39:11 CEST <= Tue 2025-10-14 22:10:00 CEST

3 weeks agosd-id128: Drop _sd_const_ from sd_id128_in_setv()
Daan De Meyer [Mon, 13 Oct 2025 08:43:16 +0000 (10:43 +0200)] 
sd-id128: Drop _sd_const_ from sd_id128_in_setv()

Both the const and pure attributes disallow modifying input arguments
but sd_id128_in_setv() clearly modifies its ap input argument by iterating
over it with va_arg() so drop the _sd_const_ attribute from
sd_id128_in_setv().

3 weeks agotest-kernel-install: support the case when custom default locale is specified
Yu Watanabe [Sat, 27 Sep 2025 18:54:00 +0000 (03:54 +0900)] 
test-kernel-install: support the case when custom default locale is specified

This also makes 'diff' command output to stderr, otherwise the
difference is eaten by meson by default, so hard to debug.

3 weeks agomkosi: avoid infinite reboot on failure
Yu Watanabe [Mon, 29 Sep 2025 12:58:36 +0000 (21:58 +0900)] 
mkosi: avoid infinite reboot on failure

If systemd-pcrphase-initrd.service and friends failed for some reasons,
the test VM will reboot infinitely and the test will timeout. Let's
propagate the failure to the host and fail the test earlier in that case.