]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
30 hours agocgroup-util: drop unused SYSTEMD_CGROUP_CONTROLLER_{LEGACY,HYBRID}
Yu Watanabe [Sat, 30 Aug 2025 13:28:33 +0000 (22:28 +0900)] 
cgroup-util: drop unused SYSTEMD_CGROUP_CONTROLLER_{LEGACY,HYBRID}

30 hours agocgroup-util: do not check validity of controller in cg_split_spec()
Yu Watanabe [Sat, 30 Aug 2025 13:25:22 +0000 (22:25 +0900)] 
cgroup-util: do not check validity of controller in cg_split_spec()

Now the controller part is always ignored, hence let's skip check for
the controller part of the spec. This also make it acceppt unnormalized
path. Previously paths were checked by path_is_normalized(), but now
checked by path_is_safe(). Also, now this mapps an empty path to NULL.

30 hours agocgroup-show: drop unnecessary call of cg_mangle_path()
Yu Watanabe [Sat, 30 Aug 2025 00:52:14 +0000 (09:52 +0900)] 
cgroup-show: drop unnecessary call of cg_mangle_path()

As the caller already dropped controller part.

30 hours agocgroup-util: drop 'controller' argument from cg_get_path()
Yu Watanabe [Fri, 29 Aug 2025 23:38:59 +0000 (08:38 +0900)] 
cgroup-util: drop 'controller' argument from cg_get_path()

The argument is not used anymore. Let's drop it.

30 hours agocgroup-util: drop 'controller' argument from cg_get_keyed_attribute() and cg_is_empty()
Yu Watanabe [Fri, 29 Aug 2025 23:29:37 +0000 (08:29 +0900)] 
cgroup-util: drop 'controller' argument from cg_get_keyed_attribute() and cg_is_empty()

The argument is completely unused. Let's drop it.

30 hours agocgroup-util: drop unused cg_unified() and friends
Yu Watanabe [Fri, 29 Aug 2025 22:54:19 +0000 (07:54 +0900)] 
cgroup-util: drop unused cg_unified() and friends

30 hours agocgls: drop cgroup v1 support and warn when cgroup v1 controller is specified
Yu Watanabe [Fri, 29 Aug 2025 22:51:06 +0000 (07:51 +0900)] 
cgls: drop cgroup v1 support and warn when cgroup v1 controller is specified

30 hours agolimits-util: drop cgroup v1 support from physical_memory()
Yu Watanabe [Fri, 29 Aug 2025 22:16:09 +0000 (07:16 +0900)] 
limits-util: drop cgroup v1 support from physical_memory()

30 hours agocgroup-util: drop cgroup v1 support in cg_get_path()
Yu Watanabe [Fri, 29 Aug 2025 22:03:03 +0000 (07:03 +0900)] 
cgroup-util: drop cgroup v1 support in cg_get_path()

We have dropped cgroup v1 support in v258. Let's assume we are running
on cgroup v2 and drop unused legacy code.

30 hours agocgroup-util: use cg_is_available() in cg_kill_supported()
Yu Watanabe [Fri, 29 Aug 2025 21:59:58 +0000 (06:59 +0900)] 
cgroup-util: use cg_is_available() in cg_kill_supported()

30 hours agocgroup-util: drop cgroup v1 support from cg_mask_supported_subtree()
Yu Watanabe [Fri, 29 Aug 2025 21:57:13 +0000 (06:57 +0900)] 
cgroup-util: drop cgroup v1 support from cg_mask_supported_subtree()

We have dropped cgroup v1 support in v258. Let's drop unused legacy code.

30 hours agotree-wide: replace cg_get_path_and_check() with cg_get_path()
Yu Watanabe [Fri, 29 Aug 2025 21:38:14 +0000 (06:38 +0900)] 
tree-wide: replace cg_get_path_and_check() with cg_get_path()

We have dropped cgroup v1 support in v258. When running on cgroup v2,
cg_get_path_and_check() with SYSTEMD_CGROUP_CONTROLLER as controller is
equivalent with checking if we are running on cgroup v2 and then
cg_get_path(). As we can assume we are running on cgroup v2, then the
check is not necessary anymore, thus we can replace
cg_get_path_and_check() with cg_get_path().

30 hours agocgroup-util: drop cgroup v1 support from cg_pid_get_path()
Yu Watanabe [Fri, 29 Aug 2025 21:32:56 +0000 (06:32 +0900)] 
cgroup-util: drop cgroup v1 support from cg_pid_get_path()

We have dropped cgroup v1 support in v258. Let's drop legacy code.
Then, we can drop 'controller' argument from cg_pid_get_path() and
cg_pidref_get_path().

30 hours agocgroup-util: drop 'controller' argument from cg_path_open()
Yu Watanabe [Fri, 29 Aug 2025 20:43:31 +0000 (05:43 +0900)] 
cgroup-util: drop 'controller' argument from cg_path_open()

Nowadays it always takes SYSTEMD_CGROUP_CONTROLLER as controller.
Let's drop it.

No functional change, just refactoring.

30 hours agocgroup-util: drop 'controller' argument from cg_set_attribute(), cg_get_attribute...
Yu Watanabe [Fri, 29 Aug 2025 20:36:21 +0000 (05:36 +0900)] 
cgroup-util: drop 'controller' argument from cg_set_attribute(), cg_get_attribute() and friends

Non-null controller arguments are always ignored when running on cgroup v2.
Let's drop the argument.

No functional change, just refactoring.

30 hours agocgroup-util: drop 'controller' argument from cg_enumerate_subgroups()
Yu Watanabe [Fri, 29 Aug 2025 20:22:21 +0000 (05:22 +0900)] 
cgroup-util: drop 'controller' argument from cg_enumerate_subgroups()

Nowadays it always takes SYSTEMD_CGROUP_CONTROLLER as controller.
Let's drop it.

No functional change, just refactoring.

30 hours agocgroup-util: drop 'controller' argument from cg_enumerate_processes()
Yu Watanabe [Fri, 29 Aug 2025 20:18:55 +0000 (05:18 +0900)] 
cgroup-util: drop 'controller' argument from cg_enumerate_processes()

Nowadays it always takes SYSTEMD_CGROUP_CONTROLLER as controller.
Let's drop it.

No functional change, just refactoring.

30 hours agocgroup-show: drop 'controller' argument from show_cgroup() and show_cgroup_and_extra()
Yu Watanabe [Fri, 29 Aug 2025 20:06:28 +0000 (05:06 +0900)] 
cgroup-show: drop 'controller' argument from show_cgroup() and show_cgroup_and_extra()

Nowadays these always take SYSTEMD_CGROUP_CONTROLLER as controller.
Let's drop it.

No functional change, just refactoring.

30 hours agocgroup-util: introduce cg_is_available() and check it in tests
Yu Watanabe [Fri, 29 Aug 2025 22:32:49 +0000 (07:32 +0900)] 
cgroup-util: introduce cg_is_available() and check it in tests

Now most of our code does not support cgroup v1. Let's skip test cases
if we are running on cgroup v1.

30 hours agotest: skip TEST-64-UDEV-STORAGE-simultaneous_events on Debian
Luca Boccassi [Mon, 17 Nov 2025 11:10:27 +0000 (11:10 +0000)] 
test: skip TEST-64-UDEV-STORAGE-simultaneous_events on Debian

It consistently fails with the new 6.17 kernel and nobody can
figure out why, so just disable it for now as it's just noise

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

31 hours agoNEWS: first prep for v259
Lennart Poettering [Mon, 17 Nov 2025 11:56:42 +0000 (12:56 +0100)] 
NEWS: first prep for v259

32 hours agoChores for RC1 (#39757)
Luca Boccassi [Mon, 17 Nov 2025 10:53:15 +0000 (10:53 +0000)] 
Chores for RC1 (#39757)

32 hours agoAdd experimental musl support (#38825)
Zbigniew Jędrzejewski-Szmek [Mon, 17 Nov 2025 10:14:47 +0000 (11:14 +0100)] 
Add experimental musl support (#38825)

This adds experimental support of building systemd with musl. This
allows to build systemd with musl and run most of the unit tests.
Running integration tests is not yet supported, however. Hopefully, this
should be a good starting point to support musl.

This requires musl-1.2.5 with
https://github.com/kraj/musl/commit/fde29c04adbab9d5b081bf6717b5458188647f1c.
The patch is already backported to Alpine/postmarketOS's musl package
since musl-1.2.5-r11. See
https://gitlab.alpinelinux.org/alpine/aports/-/commit/333e50c2052c74bb372f821fdeea2e6814f2fe7a.

34 hours agoman: regenerate man/rules/meson.build 39757/head
Luca Boccassi [Mon, 17 Nov 2025 08:59:53 +0000 (08:59 +0000)] 
man: regenerate man/rules/meson.build

ninja -C build update-man-rules

34 hours agoTranslations: update systemd-po
Luca Boccassi [Mon, 17 Nov 2025 08:58:51 +0000 (08:58 +0000)] 
Translations: update systemd-po

ninja -C build systemd-update-po

34 hours agoTranslations: update systemd-pot
Luca Boccassi [Mon, 17 Nov 2025 08:57:55 +0000 (08:57 +0000)] 
Translations: update systemd-pot

ninja -C build systemd-pot

34 hours agoUpdate syscalls table
Luca Boccassi [Mon, 17 Nov 2025 08:56:39 +0000 (08:56 +0000)] 
Update syscalls table

ninja -C build update-syscall-tables update-syscall-header

34 hours agoNEWS: update contributors list
Luca Boccassi [Mon, 17 Nov 2025 08:55:28 +0000 (08:55 +0000)] 
NEWS: update contributors list

34 hours agoUpdate hwdb
Luca Boccassi [Mon, 17 Nov 2025 08:54:08 +0000 (08:54 +0000)] 
Update hwdb

ninja -C build update-hwdb

35 hours agoupdate TODO
Lennart Poettering [Mon, 17 Nov 2025 07:53:40 +0000 (08:53 +0100)] 
update TODO

38 hours agokeymap: Ignore brightness keys on Dell Inspiron 3505 to avoid double events
Armin Wolf [Mon, 17 Nov 2025 03:02:28 +0000 (04:02 +0100)] 
keymap: Ignore brightness keys on Dell Inspiron 3505 to avoid double events

On the Dell Inspiron 3505 both the atkbd and acpi-video input devices report
an event for pressing the brightness up / down keys, resulting in user
space seeing double events and increasing / decreasing the brightness 2 steps
for each keypress.

Fix this by adding the device to the already existing list of Dell
devices that suffer from the same problem.

Signed-off-by: Armin Wolf <W_Armin@gmx.de>
39 hours agomusl: ci: add build test and unit tests 38825/head
Yu Watanabe [Tue, 9 Sep 2025 04:42:24 +0000 (13:42 +0900)] 
musl: ci: add build test and unit tests

39 hours agomusl: glob-util: filter out . and .. even if GLOB_ALTDIRFUNC is not supported
Yu Watanabe [Mon, 25 Feb 2019 06:56:21 +0000 (14:56 +0800)] 
musl: glob-util: filter out . and .. even if GLOB_ALTDIRFUNC is not supported

musl neither support GLOB_ALTDIRFUNC nor GLOB_BRACE.
Let's make safe_glob() work even when GLOB_ALTDIRFUNC is not supported.
Currently, GLOB_BRACE is simply ignored when it is not supported.

39 hours agomusl: add fallback parse_printf_format() implementation
Emil Renner Berthing [Sat, 22 May 2021 18:26:24 +0000 (20:26 +0200)] 
musl: add fallback parse_printf_format() implementation

musl does not provide parse_printf_format(). Let's introduce a fallback
method.

Co-authored-by: Yu Watanabe <watanabe.yu+github@gmail.com>
39 hours agomusl: meson: add libutmps support
Yu Watanabe [Sun, 16 Nov 2025 21:57:44 +0000 (06:57 +0900)] 
musl: meson: add libutmps support

musl only provides fake functions, hence even with -Dutmp=true,
utmp/wtmp functionalities do not work. Let's allow to build with
libutmps.

40 hours agomusl: utmpx: add several missing definitions
Yu Watanabe [Mon, 17 Nov 2025 01:47:25 +0000 (10:47 +0900)] 
musl: utmpx: add several missing definitions

44 hours agoiovec-util: drop redundant ()
Lennart Poettering [Sun, 16 Nov 2025 07:11:07 +0000 (08:11 +0100)] 
iovec-util: drop redundant ()

44 hours agodissect-image,execute: switch root hash/root hash sig storage to struct iovec
Lennart Poettering [Sat, 15 Nov 2025 06:42:12 +0000 (07:42 +0100)] 
dissect-image,execute: switch root hash/root hash sig storage to struct iovec

let's go one step further on our iovec'ification journey.

No change in behaviour, just rework to make struct iovec used
everywhere.

45 hours agotest-network: several tweaks (#39752)
Yu Watanabe [Sun, 16 Nov 2025 21:39:45 +0000 (06:39 +0900)] 
test-network: several tweaks (#39752)

2 days agotest-network: drop two overly verbose outputs 39752/head
Yu Watanabe [Sun, 16 Nov 2025 13:14:53 +0000 (22:14 +0900)] 
test-network: drop two overly verbose outputs

Follow-up for 7f9c0c31d2f00f472c361868ac2184d77113db72.

2 days agotest-network: set TimeoutStopFailureMode=abort when running with sanitizers
Yu Watanabe [Sun, 16 Nov 2025 13:10:55 +0000 (22:10 +0900)] 
test-network: set TimeoutStopFailureMode=abort when running with sanitizers

Hopefully this provides useful data for issue #39631.

2 days agoRevert "test-network: disable several more sandbox features when running with sanitizers"
Yu Watanabe [Sun, 16 Nov 2025 13:08:11 +0000 (22:08 +0900)] 
Revert "test-network: disable several more sandbox features when running with sanitizers"

This reverts commit 454ce423050890bdc8c3c90add3713592a3cab38.

Unfortunately, it does not work.

2 days agologind-dbus: avoid assertion on HandlePowerKey=factory-reset
David Tardon [Tue, 21 Oct 2025 07:43:22 +0000 (09:43 +0200)] 
logind-dbus: avoid assertion on HandlePowerKey=factory-reset

The factory-reset action is handled together with the various
sleep/shutdown actions, but its not either one.

Fixes #39385

2 days agotree-wide: several cleanups (#39746)
Chris Down [Sun, 16 Nov 2025 07:40:39 +0000 (15:40 +0800)] 
tree-wide: several cleanups (#39746)

2 days agonetwork/dhcp: several follow-ups for recent change (#39744)
Chris Down [Sun, 16 Nov 2025 07:39:56 +0000 (15:39 +0800)] 
network/dhcp: several follow-ups for recent change (#39744)

Follow-ups for 7f9c0c31d2f00f472c361868ac2184d77113db72

2 days agoresolve: voidify one function call 39746/head
Yu Watanabe [Sun, 16 Nov 2025 05:06:24 +0000 (14:06 +0900)] 
resolve: voidify one function call

Fixes CID#1643235.

2 days agotree-wide: swap arguments for streq()
Yu Watanabe [Sun, 16 Nov 2025 02:19:02 +0000 (11:19 +0900)] 
tree-wide: swap arguments for streq()

We usually set a variable first, then constant.

2 days agotest-network: migrate to use ASSERT_OK() and friends
Yu Watanabe [Sun, 16 Nov 2025 02:25:47 +0000 (11:25 +0900)] 
test-network: migrate to use ASSERT_OK() and friends

2 days agonetwork-internal: do not save partially parsed values
Yu Watanabe [Sun, 16 Nov 2025 04:59:56 +0000 (13:59 +0900)] 
network-internal: do not save partially parsed values

2 days agoresolve: fix typo
Yu Watanabe [Sun, 16 Nov 2025 02:12:23 +0000 (11:12 +0900)] 
resolve: fix typo

Follow-up for 8209f4adcde08d225f56269e608ccd5f6704cd70.

2 days agoefivars: fix typo
Yu Watanabe [Sun, 16 Nov 2025 02:09:31 +0000 (11:09 +0900)] 
efivars: fix typo

Follow-up for ab69a04600fd34c152c44be6864eb3bc64568e17.

2 days agosd-dhcp-lease: use the last hostname option when multiple hostname is specified 39744/head
Yu Watanabe [Sat, 15 Nov 2025 21:10:58 +0000 (06:10 +0900)] 
sd-dhcp-lease: use the last hostname option when multiple hostname is specified

2 days agosd-dhcp-lease: drop ret_ prefixes from the parsers
Yu Watanabe [Sat, 15 Nov 2025 21:09:25 +0000 (06:09 +0900)] 
sd-dhcp-lease: drop ret_ prefixes from the parsers

2 days agonetwork: unify log messages
Yu Watanabe [Sat, 15 Nov 2025 20:59:56 +0000 (05:59 +0900)] 
network: unify log messages

2 days agosd-event: several follow-ups for recent change (#39743)
Daan De Meyer [Sat, 15 Nov 2025 21:47:42 +0000 (22:47 +0100)] 
sd-event: several follow-ups for recent change (#39743)

2 days agotest: add missing assertion 39743/head
Yu Watanabe [Sat, 15 Nov 2025 20:49:33 +0000 (05:49 +0900)] 
test: add missing assertion

Follow-up for 5a5cb6ba50594355734ff58487d2272a86b741b1.
Fixes CID#1643217.

2 days agosd-event: do not ignore result of callbacks
Yu Watanabe [Sat, 15 Nov 2025 20:43:59 +0000 (05:43 +0900)] 
sd-event: do not ignore result of callbacks

Follow-up for 4c8b6d636c92e84f4b40db5656db58f71f397a1d and
6aff6d3ffc8a481bb663ac4dd0cf479845a6e24f.
Fixes CID#1643218 and friends.

2 days agonspawn: Prevent invalid UIDs propagating in bind mounts (#39729)
Yu Watanabe [Sat, 15 Nov 2025 19:46:18 +0000 (04:46 +0900)] 
nspawn: Prevent invalid UIDs propagating in bind mounts (#39729)

Commit 88fce090263ba8944cf491346eae2e8022dfd88d modified the
mount_bind() function, causing it to perform arithmetic on the uid_shift
parameter. However, it performs this arithmetic even when uid_shift was
UID_INVALID, which was not intended. This typically occurred when
mount_custom() was called for a simple bind mount without user
namespaces (and thus no rootidmap mount option).

This arithmetic (e.g., uid_shift + m->destination_uid) then wraps
around, resulting in the invalid ID 4294967295 ((uid_t)-1).

This bug manifests for users running systemd-nspawn with
--link-journal=host and --volatile=yes (but without --private-users),
causing systemd-tmpfiles to fail.

Make mount_bind() robust by checking if uid_shift is valid before using
it in arithmetic. If it is UID_INVALID, it defaults to a shift of 0 for
the ownership calculation, restoring correct behavior for plain bind
mounts while preserving the intended logic for ID-mapped mounts.

Fixes: #39714
3 days agotest: Add nspawn regression test for --link-journal --volatile 39729/head
Chris Down [Fri, 14 Nov 2025 10:08:23 +0000 (18:08 +0800)] 
test: Add nspawn regression test for --link-journal --volatile

3 days agoresolved: add ability for external programs to hook into name resolution (for machine...
Lennart Poettering [Sat, 15 Nov 2025 11:12:37 +0000 (12:12 +0100)] 
resolved: add ability for external programs to hook into name resolution (for machined+networkd to synthesize records) (#39293)

Fixes: #8518
3 days agotest: add workaround for networkd downgrade issue 39293/head
Lennart Poettering [Fri, 14 Nov 2025 16:46:34 +0000 (17:46 +0100)] 
test: add workaround for networkd downgrade issue

3 days agoupdate TODO
Lennart Poettering [Mon, 13 Oct 2025 11:07:15 +0000 (13:07 +0200)] 
update TODO

3 days agounits: let's set a socket name for networkd rtnl socket
Lennart Poettering [Tue, 21 Oct 2025 13:56:25 +0000 (15:56 +0200)] 
units: let's set a socket name for networkd rtnl socket

Let's make our networkd sockets recognizable purely by name. It hink
already for debugging it's a good idea to always set socket names, in
particular for services that have multiple sockets they listen on.

This adds a name to the rtnl socket, which so far missed one. Note that
the C code won't look for it, for compat with older versions, but at
least things are a bit more debuggable.

3 days agonetwork: make use of LocalLeaseDomain= by default
Lennart Poettering [Mon, 13 Oct 2025 09:42:25 +0000 (11:42 +0200)] 
network: make use of LocalLeaseDomain= by default

Let's expose local VMs/containers under ._dhcp by default. Let's also
expose WIFI AP clients under .home.arpa (i.e. the RFC8375 domain for
home networks).

3 days agonetworkd: rename manager_connect_varlink() → manager_varlink_init()
Lennart Poettering [Mon, 13 Oct 2025 10:35:35 +0000 (12:35 +0200)] 
networkd: rename manager_connect_varlink() → manager_varlink_init()

This function doesn't "connect" to Varlink (i.e. it isn't a client) but
it binds a Varlink socket (i.e. it is server), hence let's remove the
verb "connect" from its name. let's copy how machined/resolved name the
counterpart for this function: manager_varlink_init()

3 days agonetworkd: add support for resolved hook for DHCP server
Lennart Poettering [Mon, 13 Oct 2025 07:57:48 +0000 (09:57 +0200)] 
networkd: add support for resolved hook for DHCP server

Let's synthesize DNS RRs for leases handed out by our DHCP server. This
way local VMs can have resolvable hostnames locally.

This does not implement reverse look ups for now. We can add this
later in similar fashion.

3 days agotest: always create networkd mock tmpfs for networkd-test.py
Luca Boccassi [Sat, 15 Nov 2025 00:37:58 +0000 (00:37 +0000)] 
test: always create networkd mock tmpfs for networkd-test.py

Match the behaviour of the other test classes that use sd-run and
always create the mock tmpfs runtime dirs.
This will be needed as the new resolve.hook directory won't exist
on boot but will be needed by the test case.

3 days agosd-dhcp-server: add api to get address from hostname, based on lease data
Lennart Poettering [Mon, 13 Oct 2025 09:25:50 +0000 (11:25 +0200)] 
sd-dhcp-server: add api to get address from hostname, based on lease data

3 days agomachined: implement resolve hook in machined
Lennart Poettering [Thu, 9 Oct 2025 20:01:04 +0000 (22:01 +0200)] 
machined: implement resolve hook in machined

This basically implements nss-myhostname, but natively in
systemd-resolved, so that the logic becomes available also for clients
using the local DNS stub for resolution or the D-Bus or Varlink APIs.

3 days agomachine: minor refactoring, making machine_send_signal() invocations more readable
Lennart Poettering [Thu, 9 Oct 2025 20:19:37 +0000 (22:19 +0200)] 
machine: minor refactoring, making machine_send_signal() invocations more readable

3 days agoresolved: add hook api
Lennart Poettering [Thu, 9 Oct 2025 09:04:58 +0000 (11:04 +0200)] 
resolved: add hook api

This introduces /run/systemd/resolve.hook/ as a new directory that local
(privileged) programs can bind a Varlink socket into. If they do they'll
get a method call for each attempted resolved lookup, which they can
then either process themselves (and generate new records for, or return
errors to block stuff) or let pass so that the regular resolution is
done.

Usecase for this is primarily two things:

1. in machined we can add local resolution of machine names to their IP
   addresses, similar in fashion to nss-mymachines, but working also if
   the non-NSS interfaces to name resolution are used, i.e. the local
   DNS responder. In fact, I think we should eventually remove
   nss-mymachines from our tree, as soon as this code in resolved is
   setlled.

2. in networkd we can add local resolution of names specified in DHCP
   leases we hand out.

But beyond that there should be many other uses, for example people
could write "dns firewalls" with this if they like where they
dynamically block certain names from resolution.

Fixes: #8518
3 days agoMake new sd-path configuration search functionality generic (#39684)
Yu Watanabe [Sat, 15 Nov 2025 01:09:19 +0000 (10:09 +0900)] 
Make new sd-path configuration search functionality generic (#39684)

Reverts systemd/systemd#38680

After taking a closer look I'm not convinced by the approach, see below.

First of all, all other SD_PATH_SEARCH_* are either somewhat generic,
i.e. encode the common prefix for configurations, binaries, etc., or are
subdirectories under systemd/ hence in our own "domain". The
tmpfiles/sysctl/binfmt we don't prefix with "systemd" precisely because
the concept is generic and there're actually other impls of them. A
specific SD_PATH_SEARCH_SYSCTL doesn't fit into our existing scheme.
Instead something along the lines of "SEARCH_SYSTEM_CONFIGURATION" shall
be introduced, and consumers will just suffix
sysctl.d/tmpfiles.d/binfmt.d for the final result.

And secondly, I don't grok why systemd-sysctl now unnecessarily calls
into sd-path to obtain the fixed search path. None of our other tools do
that.

-----------

An alternate approach, SD_PATH_SYSTEM_SEARCH_CONFIGURATION, which does
exactly above, will be introduced instead. It provides a universal
interface for querying any system config with our idiomatic
/etc/:/run/:/usr/local/lib/:/usr/lib/ hierarchy.

3 days agopath-util: add generic `ignore` extension to the hidden files (#39554)
Yu Watanabe [Sat, 15 Nov 2025 01:05:38 +0000 (10:05 +0900)] 
path-util: add generic `ignore` extension to the hidden files (#39554)

3 days agovarlink: say which socket failed to bind in log message
Luca Boccassi [Fri, 14 Nov 2025 23:01:36 +0000 (23:01 +0000)] 
varlink: say which socket failed to bind in log message

Makes it a lot easier to debug failures

3 days agofd-util: do not block O_TMPFILE with -EISDIR (#39736)
Yu Watanabe [Sat, 15 Nov 2025 01:01:19 +0000 (10:01 +0900)] 
fd-util: do not block O_TMPFILE with -EISDIR (#39736)

3 days ago5 TPM tweaks (#39712)
Lennart Poettering [Fri, 14 Nov 2025 22:54:45 +0000 (23:54 +0100)] 
5 TPM tweaks (#39712)

Fixes: #38939
Fixes: #39150
3 days agoupdate TODO
Lennart Poettering [Fri, 14 Nov 2025 22:05:24 +0000 (23:05 +0100)] 
update TODO

3 days agoTry to make TEST-75-RESOLVED less flaky (#39733)
Luca Boccassi [Fri, 14 Nov 2025 21:27:24 +0000 (21:27 +0000)] 
Try to make TEST-75-RESOLVED less flaky (#39733)

These tests unfortunately rely on polling in several areas. In some
cases, it appears the timeouts are too short (e.g. #39602, or
https://github.com/systemd/systemd/actions/runs/19369869943/job/55422626427?pr=39731#logs).

Try to adjust the timeouts to see if this makes things more reliable.

3 days agoman: add pcrproduct to man page header, too 39712/head
Lennart Poettering [Fri, 14 Nov 2025 21:06:53 +0000 (22:06 +0100)] 
man: add pcrproduct to man page header, too

3 days agounits: systemd-pcrproduct.service measures into an NvPCR, fix that in Description=
Lennart Poettering [Thu, 13 Nov 2025 14:33:47 +0000 (15:33 +0100)] 
units: systemd-pcrproduct.service measures into an NvPCR, fix that in Description=

Follow-up for: 0196abbd10331f89bd5ca7abc39225852dff7406

3 days agoman: document that ConditionSecurity=tpm2 means full UEFI/PC Client profile support
Lennart Poettering [Thu, 13 Nov 2025 08:42:43 +0000 (09:42 +0100)] 
man: document that ConditionSecurity=tpm2 means full UEFI/PC Client profile support

TPM2 support is not too useful if the firmware doesn't actually use it
for the boot chain, hence we require the full PC client profile support.
Let's make that clear in the docs.

Fixes: #38939
3 days agoboot: report missing GetActivePcrBanks() call in formware as UINT32_MAX PCR bank...
Lennart Poettering [Thu, 13 Nov 2025 08:30:43 +0000 (09:30 +0100)] 
boot: report missing GetActivePcrBanks() call in formware as UINT32_MAX PCR bank mask

Fixes: #39150
3 days agotpm2-util: use LoaderTpm2ActivePcrBanks efi var when figuring out best+good banks...
Lennart Poettering [Wed, 12 Nov 2025 22:34:52 +0000 (23:34 +0100)] 
tpm2-util: use LoaderTpm2ActivePcrBanks efi var when figuring out best+good banks to use

We nowadays have clear reporting which PCR banks the firmware is using
via LoaderTpm2ActivePcrBanks, hence rely on that.

3 days agounits: measure a separator event into PCR 9 after completing NvPCR initialization
Lennart Poettering [Thu, 13 Nov 2025 13:47:57 +0000 (14:47 +0100)] 
units: measure a separator event into PCR 9 after completing NvPCR initialization

We do this in a separate service (rather than inside of
systemd-tpm2-setup), since we want failures of this measurement to
result in an instant reboot, like for most our measurements.

Failures to initialize nvpcrs, or allocate an SRK are somewhat OK (and
more likely), as long as this separator communicates clearly where they
have to have taken place, if they worked.

3 days agopcrextend: allow setting the event type for the event log on the command line
Lennart Poettering [Thu, 13 Nov 2025 13:46:24 +0000 (14:46 +0100)] 
pcrextend: allow setting the event type for the event log on the command line

This makes the tool more powerful as we can invoke it for any type of
measurement correctly

3 days agotpm2-setup: measure information about NvPCR initialization to PCR 9
Lennart Poettering [Wed, 12 Nov 2025 21:35:30 +0000 (22:35 +0100)] 
tpm2-setup: measure information about NvPCR initialization to PCR 9

This locks down NvPCR initilization a bit more: we'll measure each
initialization of an NvPCR into PCR 9, thus chaining the NvPCRs to the
PCR set. After all NvPCRs are initialized we measure a barrier into PCR
9 as well.

This ensures that later additions of NvPCRs are clearly recognizable and
distuingishable from those done at boot.

3 days agotpm2-util: add missing entry in string table
Lennart Poettering [Wed, 12 Nov 2025 21:34:27 +0000 (22:34 +0100)] 
tpm2-util: add missing entry in string table

Follow-up for: e5a2e7866572614e66cbf6c1d3969128562d9552

3 days agofd-util: do not block O_TMPFILE with -EISDIR 39736/head
Mike Yuan [Fri, 14 Nov 2025 20:32:51 +0000 (21:32 +0100)] 
fd-util: do not block O_TMPFILE with -EISDIR

Follow-up for 7cf4f075670a81babf1501f063f6841cc4e866dd

3 days agofs-util: simplify open_parent_at() a bit
Mike Yuan [Fri, 14 Nov 2025 20:36:16 +0000 (21:36 +0100)] 
fs-util: simplify open_parent_at() a bit

Let's refrain from specifying any access mode when opening
a directory, which matches our usual style and allows us
to drop one condition.

3 days agomusl: stdio: check if stream is writable earlier in fputs() and friends
Yu Watanabe [Thu, 13 Nov 2025 04:40:19 +0000 (13:40 +0900)] 
musl: stdio: check if stream is writable earlier in fputs() and friends

3 days agotest: adjust timeouts for testcase_15_wait_online_dns 39733/head
Nick Rosbrook [Fri, 14 Nov 2025 19:13:07 +0000 (14:13 -0500)] 
test: adjust timeouts for testcase_15_wait_online_dns

Do not set a timeout on the wait-online call, since there are timeout
calls later that will prevent the test from blocking forever. Increase
those timeout calls for slower CI runs.

3 days agotest: increase timeout waiting for zone DS records setup
Nick Rosbrook [Fri, 14 Nov 2025 18:21:02 +0000 (13:21 -0500)] 
test: increase timeout waiting for zone DS records setup

This test is flaky on the infrastructure due to this setup step timing
out. As a naive step, just increase the timeout to 60s.

Part 1 of #39602

3 days agomusl: introduce two wrappers (#39700)
Yu Watanabe [Fri, 14 Nov 2025 19:18:48 +0000 (04:18 +0900)] 
musl: introduce two wrappers (#39700)

3 days agocore: add varlink Reload/Reexecute methods (#39561)
Yu Watanabe [Fri, 14 Nov 2025 19:17:01 +0000 (04:17 +0900)] 
core: add varlink Reload/Reexecute methods (#39561)

Same as the D-Bus ones

3 days agotest: wait for interface to come online before checking DNS scopes
Nick Rosbrook [Fri, 14 Nov 2025 14:37:21 +0000 (09:37 -0500)] 
test: wait for interface to come online before checking DNS scopes

The current test is flaky because it creates a new interface definition,
calls networkctl reload, and then calls resolvectl show-cache. If
resolved has not received the changes and setup the DNS scopes for the
interface, show-cache will be empty for that interface.

Part 2 of #39602

3 days agotree-wide: use SD_JSON_BUILD_PAIR_* macros if possible (#39732)
Yu Watanabe [Fri, 14 Nov 2025 19:02:51 +0000 (04:02 +0900)] 
tree-wide: use SD_JSON_BUILD_PAIR_* macros if possible (#39732)

4 days agomusl: make strtoll() accept strings start with dot 39700/head
Yu Watanabe [Tue, 9 Sep 2025 00:10:44 +0000 (09:10 +0900)] 
musl: make strtoll() accept strings start with dot

glibc accepts strings start with '.' and returns 0, but musl refuses
them. Let's accept them, as our code assumes the function accept such
strings.

4 days agomusl: test-bus-error: drop ._need_free flag checks
Yu Watanabe [Thu, 13 Nov 2025 23:26:47 +0000 (08:26 +0900)] 
musl: test-bus-error: drop ._need_free flag checks

Its value depends on how strerror_r() implemented, and the
implementations of the function in glibc and musl are actually
different. Let's drop the checks.

4 days agomusl: introduce GNU specific version of strerror_r()
Yu Watanabe [Tue, 24 Jan 2023 07:39:46 +0000 (23:39 -0800)] 
musl: introduce GNU specific version of strerror_r()

musl provides XSI compliant strerror_r(), and it is slightly different
from the one by glibc.
Let's introduce a tiny wrapper to convert XSI strerror_r() to GNU one.

The wrapper also patches musl's spurious catchall error message.

4 days agodocs: initial version of varlink guideline
Ivan Kruglov [Tue, 11 Nov 2025 19:22:20 +0000 (11:22 -0800)] 
docs: initial version of varlink guideline