]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
7 weeks agokernel-install: when listing kernels sort them by version 38983/head
Lennart Poettering [Thu, 18 Sep 2025 07:30:57 +0000 (09:30 +0200)] 
kernel-install: when listing kernels sort them by version

7 weeks agoformat-table: add TABLE_VERSION cell type
Lennart Poettering [Thu, 18 Sep 2025 07:29:27 +0000 (09:29 +0200)] 
format-table: add TABLE_VERSION cell type

This is exactly like TABLE_STRING, with one exception: it sorts via
strverscmp_improved().

7 weeks agosd-boot: allow configuration of log levels (#38701)
Yu Watanabe [Thu, 18 Sep 2025 03:06:48 +0000 (12:06 +0900)] 
sd-boot: allow configuration of log levels (#38701)

This allows for more liberal usage of logging functionality as messages
will no longer always show up on screen, regardless of urgency. The log
level to use can be configured through an SMBIOS type 11 string
(`io.systemd.boot.loglevel=`) or by using the `log-level` option in
loader.conf. Valid values are debug, info, notice, warning, err, crit,
alert, and emerg. By default, info will be used.

7 weeks agobasic/efivars: read EFI variables using one read(), not two (#38864)
Yu Watanabe [Thu, 18 Sep 2025 03:03:30 +0000 (12:03 +0900)] 
basic/efivars: read EFI variables using one read(), not two (#38864)

In https://github.com/systemd/systemd/issues/38842 it is reported that
we're again having trouble accessing EFI variables:
```
  [  292.212415] H (udev-worker)[253]: Reading EFI variable /sys/firmware/efi/efivars/LoaderDevicePartUUID-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
  ...
  [  344.397961] H (udev-worker)[253]: Detected slow EFI variable read access on LoaderDevicePartUUID-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f: 52.185510s
```

We don't know what causes the slowdown, but it seems reasonable to avoid
unnecessary read() calls. We would read the 4-byte attr first, and then
the actual value later. But our code always reads the value (and
discards the attr in all cases except one, when _writing_ the variable),
so let's optimize for the case where we read the value and read the
whole contents in one read().

7 weeks agoresolve: two cleanups for varlink method (#38467)
Yu Watanabe [Thu, 18 Sep 2025 02:57:04 +0000 (11:57 +0900)] 
resolve: two cleanups for varlink method (#38467)

7 weeks agomount-util: support 'atime' family of mount options for fsmount()
Luca Boccassi [Mon, 1 Sep 2025 20:51:53 +0000 (21:51 +0100)] 
mount-util: support 'atime' family of mount options for fsmount()

7 weeks agostub: fix file path handling for loaded kernel
Tobias Heider [Mon, 25 Aug 2025 14:07:54 +0000 (16:07 +0200)] 
stub: fix file path handling for loaded kernel

- Actually pass the new memory file path to parent_loaded_image->FilePath
- Restore old parent_loaded_image if Linux returns
- Pass the same kernel_file_path in load_via_boot_services path
- s/Re-use/Patch in comment explaining what we are doing

Fixes #38566

7 weeks agosystemd-repart: add encryption configs into repart.d/* (#38052)
Yu Watanabe [Thu, 18 Sep 2025 02:02:38 +0000 (11:02 +0900)] 
systemd-repart: add encryption configs into repart.d/* (#38052)

As explained in https://github.com/systemd/systemd/issues/37892, it
would be nice to define per-partition PCRs/key file to use.

The global default config will be still defined as cmdline options, and
`TPM2PCRs=` and `KeyFile=` will be overriden by them.

7 weeks agovmspawn: fix error handling
Yu Watanabe [Wed, 17 Sep 2025 23:37:36 +0000 (08:37 +0900)] 
vmspawn: fix error handling

Follow-up for 9b5ba882bd9ae4e0ed270289eada03c2040fefe2.

7 weeks agotest: several random cleanups and fixlets (#38877)
Yu Watanabe [Thu, 18 Sep 2025 00:13:17 +0000 (09:13 +0900)] 
test: several random cleanups and fixlets (#38877)

7 weeks agoresolve/varlink: use sd_json_dispatch_const_string() at more places 38467/head
Yu Watanabe [Sun, 3 Aug 2025 21:01:46 +0000 (06:01 +0900)] 
resolve/varlink: use sd_json_dispatch_const_string() at more places

7 weeks agoresolve/varlink: replace json_dispatch_address() with json_dispatch_byte_array_iovec()
Yu Watanabe [Sun, 3 Aug 2025 19:44:19 +0000 (04:44 +0900)] 
resolve/varlink: replace json_dispatch_address() with json_dispatch_byte_array_iovec()

7 weeks agosysupdate: use conf_files_list_strv_full() where possible (#38198)
Yu Watanabe [Wed, 17 Sep 2025 23:56:23 +0000 (08:56 +0900)] 
sysupdate: use conf_files_list_strv_full() where possible (#38198)

7 weeks agosd-boot: allow setting the log level through loader.conf 38701/head
Felix Pehla [Tue, 26 Aug 2025 18:13:00 +0000 (20:13 +0200)] 
sd-boot: allow setting the log level through loader.conf

Allow configuring the log level used by sd-boot by setting
`log-level=<level>` in loader.conf. `info` is used by default.

7 weeks agosd-boot: allow setting the log level through SMBIOS 11
Felix Pehla [Sun, 24 Aug 2025 20:22:59 +0000 (22:22 +0200)] 
sd-boot: allow setting the log level through SMBIOS 11

Allow configuring the log level used by sd-boot by setting
`io.systemd.boot.loglevel=<level>` as SMBIOS type 11 string.
`info` is used if unset.

7 weeks agosd-boot: allow setting the maximum log level
Felix Pehla [Sun, 24 Aug 2025 20:21:36 +0000 (22:21 +0200)] 
sd-boot: allow setting the maximum log level

7 weeks agosd-boot: efi-log: use log levels internally
Felix Pehla [Sat, 23 Aug 2025 15:27:20 +0000 (17:27 +0200)] 
sd-boot: efi-log: use log levels internally

Change log_internal() to receive a log level from which a text color is
derived, rather than the text color directly, and adjust various log_*
macros to use them internally.

7 weeks agocore/exec-credential: use CLEANUP_TMPFILE_AT
Mike Yuan [Wed, 17 Sep 2025 20:27:37 +0000 (22:27 +0200)] 
core/exec-credential: use CLEANUP_TMPFILE_AT

7 weeks agoFeature/homectl recovery key update (#38702)
Govind Venugopal [Wed, 17 Sep 2025 23:49:26 +0000 (16:49 -0700)] 
Feature/homectl recovery key update (#38702)

Implements the ability to add recovery keys to existing user accounts
via homectl update --recovery-key=yes. Previously, recovery keys could
only be configured during initial user creation, requiring users to
recreate their entire home directory to add recovery keys later.

Fixes: #23602
7 weeks agounits: don't force the loading of the loop and dm_mod modules in systemd-repart.service
Franck Bui [Wed, 10 Sep 2025 13:30:31 +0000 (15:30 +0200)] 
units: don't force the loading of the loop and dm_mod modules in systemd-repart.service

This avoids loading the aforementioned modules when systemd-repart is skipped
during the boot process, which is the case most of the time.

7 weeks agojournalctl: add -W as short for --no-hostname (#38704)
Yu Watanabe [Wed, 17 Sep 2025 23:45:44 +0000 (08:45 +0900)] 
journalctl: add -W as short for --no-hostname (#38704)

--no-hostname is one of the switches I use very often. In particular,
when looking at CI logs, the hostname is almost never interesting.

7 weeks agoAlign meson summary and gperf tables (#38578)
Yu Watanabe [Wed, 17 Sep 2025 23:44:08 +0000 (08:44 +0900)] 
Align meson summary and gperf tables (#38578)

No functional change, just refactoring.

7 weeks agoudev-rules: add OPTIONS="dump-json" to dump current status in JSON format
Yu Watanabe [Tue, 5 Aug 2025 18:08:05 +0000 (03:08 +0900)] 
udev-rules: add OPTIONS="dump-json" to dump current status in JSON format

This produces the output similar to 'udevadm test --json=short'.

7 weeks agosd-event: drop cgroupv1 support in memory pressure event source
Yu Watanabe [Fri, 1 Aug 2025 17:48:34 +0000 (02:48 +0900)] 
sd-event: drop cgroupv1 support in memory pressure event source

7 weeks agocreds-util: fix comment
Yu Watanabe [Wed, 17 Sep 2025 23:26:23 +0000 (08:26 +0900)] 
creds-util: fix comment

Follow-up for 444af9538f465f893c4d6bb5b4a7fad6c17b15a6.

7 weeks agocore/transaction: several cleanups (#38778)
Daan De Meyer [Wed, 17 Sep 2025 19:54:01 +0000 (21:54 +0200)] 
core/transaction: several cleanups (#38778)

7 weeks agomkosi: several cleanups (#38924)
Daan De Meyer [Wed, 17 Sep 2025 19:52:16 +0000 (21:52 +0200)] 
mkosi: several cleanups (#38924)

7 weeks agoudev-config: use secure_getenv() at one more place
Yu Watanabe [Fri, 29 Aug 2025 19:31:25 +0000 (04:31 +0900)] 
udev-config: use secure_getenv() at one more place

Follow-up for b16c6076cb334c9da9602d4bafbf60381d6d630e.

7 weeks agomacro: flip ONCE macro to make log_once() and friend actually log once
Yu Watanabe [Wed, 10 Sep 2025 23:39:17 +0000 (08:39 +0900)] 
macro: flip ONCE macro to make log_once() and friend actually log once

Previously, ONCE is false for the first time, and true for later times,
hence log_once() and log_once_errno() suppress logging in the first call,
rather than later calls.

Fortunately, ONCE macro is only used in log_once() and log_once_errno(),
hence this only fixes spurious logging.

7 weeks agotmpfile-util: introduce new CLEANUP_TMPFILE_AT() API
Lennart Poettering [Thu, 4 Sep 2025 16:24:58 +0000 (18:24 +0200)] 
tmpfile-util: introduce new CLEANUP_TMPFILE_AT() API

This should allow us to get rid of a bunch of "fail:" labels, because we
can clean up tmpfiles relative to some atfd this way.

This only ports over a small number of potential users, but there's more
work to be done.

7 weeks agovarlink: add IDL comments to basic Varlink service interface
Lennart Poettering [Thu, 11 Sep 2025 12:40:56 +0000 (14:40 +0200)] 
varlink: add IDL comments to basic Varlink service interface

7 weeks agocopy: calculate bytes per second while copying, and pass to progress info
Lennart Poettering [Tue, 9 Sep 2025 15:05:05 +0000 (17:05 +0200)] 
copy: calculate bytes per second while copying, and pass to progress info

Also, show it in import-fs/repart.

7 weeks agovmspawn: two small tweaks (#38957)
Luca Boccassi [Wed, 17 Sep 2025 18:46:34 +0000 (19:46 +0100)] 
vmspawn: two small tweaks (#38957)

7 weeks agoboot: Strip boot counter from entry id
Danilo Spinella [Thu, 11 Sep 2025 08:51:27 +0000 (10:51 +0200)] 
boot: Strip boot counter from entry id

When boot counter is found in the boot entry filename, strip it from the
id to match bootctl id.

Fixes #38813.

7 weeks agoExtend test-dlopen-so to also cover cases when built without support
Daan De Meyer [Fri, 23 May 2025 09:49:31 +0000 (11:49 +0200)] 
Extend test-dlopen-so to also cover cases when built without support

Let's make things more consistent and have all dlopen_xxx() functions
return EOPNOTSUPP on failure and verify this behavior in test-dlopen-so.

7 weeks agomeson: fix link-udev-shared option
Luca Boccassi [Wed, 17 Sep 2025 15:13:37 +0000 (16:13 +0100)] 
meson: fix link-udev-shared option

This doesn't work anymore, setting it to false still makes
udev link to libsystemd-shared, as an argument was mistakenly
dropped.

Follow-up for 6350d2dbd97746440b9c8303ddc140ffda568732

7 weeks agopcrextend: add documentation for varlink api
Lennart Poettering [Wed, 17 Sep 2025 07:35:54 +0000 (09:35 +0200)] 
pcrextend: add documentation for varlink api

7 weeks agosd-boot: rename "path" field to "directory"
Lennart Poettering [Tue, 16 Sep 2025 17:01:52 +0000 (19:01 +0200)] 
sd-boot: rename "path" field to "directory"

"path" sounds like a fully qualified complete string referencing some
terminal object. But here it's not like that, the field just stores the
directory the object we actually care about is placed in. Hence let's
change this field to be named "directory", to be less confusing for
readers.

7 weeks agomkosi: support the case /sbin/init is an absolute symbolic link 38924/head
Yu Watanabe [Sun, 14 Sep 2025 03:13:20 +0000 (12:13 +0900)] 
mkosi: support the case /sbin/init is an absolute symbolic link

In that case, the link points to the host file, thus we cannot update
the file.

7 weeks agomkosi: drop man package from global config
Yu Watanabe [Sun, 14 Sep 2025 03:12:04 +0000 (12:12 +0900)] 
mkosi: drop man package from global config

Some distributions does not have man package, but named man-db or so,
and most distribution specific mkosi.conf files already have them.
Let's drop man from the global config.

7 weeks agotest: rearrange test-cgroup and test-cgroup-util 38877/head
Yu Watanabe [Sat, 30 Aug 2025 12:59:44 +0000 (21:59 +0900)] 
test: rearrange test-cgroup and test-cgroup-util

7 weeks agotest: reenable test for cg_get_keyed_attribute()
Yu Watanabe [Fri, 29 Aug 2025 23:08:04 +0000 (08:08 +0900)] 
test: reenable test for cg_get_keyed_attribute()

The test case was mistakenly disabled by
a412a1b92ab234a57c646f6779471772b2c355ec.

Co-authored-by: Natalie Vock <natalie.vock@gmx.de>
7 weeks agotest: skip several test cases when running in chroot
Yu Watanabe [Tue, 9 Sep 2025 06:15:02 +0000 (15:15 +0900)] 
test: skip several test cases when running in chroot

When we are running in chroot, safe_fork() with FORK_MOUNTNS_SLAVE fails
with the following eror:
```
Failed to set mount propagation to MS_SLAVE for all mounts: Invalid argument
```
Let's skip the test cases when we are running in chroot.

7 weeks agotest-mount-util: several cleanups
Yu Watanabe [Sat, 6 Sep 2025 10:46:42 +0000 (19:46 +0900)] 
test-mount-util: several cleanups

- use safe_fork() with common flags,
- introduce macro for checking privilege.

7 weeks agotest-sysusers: show diffs in stderr
Yu Watanabe [Sun, 7 Sep 2025 04:32:51 +0000 (13:32 +0900)] 
test-sysusers: show diffs in stderr

Otherwise, the diffs are eaten by 'meson test' command unless --verbose
option is specified.

7 weeks agotest-udev: pass test_env to make the test use systemd-detect-virt in build directory
Yu Watanabe [Sun, 7 Sep 2025 04:55:45 +0000 (13:55 +0900)] 
test-udev: pass test_env to make the test use systemd-detect-virt in build directory

Otherwise, the test fails if the running host does not have
systemd-detect-virt.

7 weeks agotest-seccomp-util: several cleanups
Yu Watanabe [Sat, 6 Sep 2025 19:50:04 +0000 (04:50 +0900)] 
test-seccomp-util: several cleanups

- use safe_fork() with FORK_WAIT
- introduce CHECK_SECCOMP() macro about common checks,
- ignore ENOSYS from sched_setscheduler().

7 weeks agotest-parse-util: use newlocale() and freelocale() to set temporarl locale
Yu Watanabe [Sat, 6 Sep 2025 18:30:21 +0000 (03:30 +0900)] 
test-parse-util: use newlocale() and freelocale() to set temporarl locale

This also drops unnecessary call of strtod(), as it is a test for
safe_atod().

7 weeks agotest-efi-string: migrate to use ASSERT_OK() and friends
Yu Watanabe [Sat, 6 Sep 2025 18:00:39 +0000 (03:00 +0900)] 
test-efi-string: migrate to use ASSERT_OK() and friends

7 weeks agocore/transaction: coding style update 38778/head
Yu Watanabe [Thu, 4 Sep 2025 21:03:26 +0000 (06:03 +0900)] 
core/transaction: coding style update

7 weeks agocore/transaction: rebreak comments and append full-stop
Yu Watanabe [Thu, 4 Sep 2025 21:01:27 +0000 (06:01 +0900)] 
core/transaction: rebreak comments and append full-stop

7 weeks agocore/transaction: do not call job_is_conflicted_by() twice for the same job
Yu Watanabe [Sun, 31 Aug 2025 02:01:24 +0000 (11:01 +0900)] 
core/transaction: do not call job_is_conflicted_by() twice for the same job

The function searches the list, and it potentially takes O(n).
Let's cache the result and avoid duplicated calls.

This also rebreaks comments, and rewrites conditions in an equivalent
form that is easy to read and matches with the comment above.

No functional change, just refactoring.

7 weeks agosystemd-sysext: introduce a global config (#38250)
Zbigniew Jędrzejewski-Szmek [Wed, 17 Sep 2025 13:13:11 +0000 (15:13 +0200)] 
systemd-sysext: introduce a global config (#38250)

This PR implements what is proposed in
https://github.com/systemd/systemd/issues/37992.

Having a global config file that supports the same cmdline options for
sysext/confext allows the user to customize the behavior of
systemd-sysext.service unit too, without the need of hacking the service
manually.

The global config will live in
`CONF_PATHS_STRV()/systemd/{sysext/confext}.conf` and it will be
overridden by cmdline, so it is possible to customize a run if
`systemd-sysext` is executed manually.

For now support `--mutable=` (`Mutable`) and `--image-policy=`
(`ImagePolicy`).

7 weeks agoresolve: shorten conf parser name and realign gperf table 38578/head
Yu Watanabe [Thu, 14 Aug 2025 13:42:06 +0000 (22:42 +0900)] 
resolve: shorten conf parser name and realign gperf table

7 weeks agonetwork/netdev: realign gperf table
Yu Watanabe [Thu, 14 Aug 2025 13:37:49 +0000 (22:37 +0900)] 
network/netdev: realign gperf table

7 weeks agonetwork: shorten conf parser names and realign gperf table
Yu Watanabe [Thu, 14 Aug 2025 13:34:44 +0000 (22:34 +0900)] 
network: shorten conf parser names and realign gperf table

7 weeks agonspawn: realign gperf table
Yu Watanabe [Thu, 14 Aug 2025 12:51:45 +0000 (21:51 +0900)] 
nspawn: realign gperf table

7 weeks agomeson: realign summary
Yu Watanabe [Thu, 14 Aug 2025 12:48:43 +0000 (21:48 +0900)] 
meson: realign summary

7 weeks agocore: Add wall clock duration to CPU usage logging
gvenugo3 [Wed, 16 Jul 2025 05:31:46 +0000 (05:31 +0000)] 
core: Add wall clock duration to CPU usage logging

Enhance CPU time logging to include wall clock duration alongside
CPU consumption. When a unit transitions to inactive/failed state,
the log message now shows both CPU time consumed and the total wall
clock time since activation.

Changes:
- Calculate wall clock duration using active_enter_timestamp
- Update log format: "Consumed Xs CPU time over Ys wall clock time"
- Fallback to original format if no activation timestamp available
- Use monotonic clock for accurate duration calculation

This addresses issue #35738 by providing administrators better context
about service performance and resource efficiency.

Example output:
- With wall clock: "service: Consumed 30s CPU time over 5min wall clock time"
- Without timestamp: "service: Consumed 30s CPU time"

7 weeks agosysupdate: use conf_files_list_strv_full() to enumerate definitions 38198/head
Yu Watanabe [Tue, 15 Jul 2025 14:38:27 +0000 (23:38 +0900)] 
sysupdate: use conf_files_list_strv_full() to enumerate definitions

No functional change, just refactoring.

7 weeks agosysupdate: use conf_files_list_strv_full() to enumerate features
Yu Watanabe [Sun, 13 Jul 2025 01:50:27 +0000 (10:50 +0900)] 
sysupdate: use conf_files_list_strv_full() to enumerate features

No functional change, just refactoring.

7 weeks agosysupdate: use conf_files_list_strv_full() to enumerate components
Yu Watanabe [Sun, 13 Jul 2025 01:36:08 +0000 (10:36 +0900)] 
sysupdate: use conf_files_list_strv_full() to enumerate components

With this change, root directory is correctly supported, and symlinked
components are also correctly enumerated.

7 weeks agodoc: document /run/host/root/ as an optional bind mount for the host fs
Ryan Brue [Mon, 28 Jul 2025 16:46:22 +0000 (11:46 -0500)] 
doc: document /run/host/root/ as an optional bind mount for the host fs

Container managers may want to bind mount the root filesystem
somewhere within the container. Security-wise, this is very much not
recommended, but it may be something application containers may want
to do nonetheless.

Ref: https://github.com/flatpak/flatpak/pull/6125#issuecomment-2759378603

7 weeks agodissect: use blkid_probe filters to restrict probing to supported FSes and no raid
Luca Boccassi [Wed, 10 Sep 2025 17:13:37 +0000 (18:13 +0100)] 
dissect: use blkid_probe filters to restrict probing to supported FSes and no raid

We only support a subset of filesystems, and no RAID, for DDIs. blkid spends a lot
of time trying to probe for the filesystem type, so cut it short by using
the filtering options to restrict it to the filesystems we support, and to
exclude raid probing.

7 weeks agofd-util: several cleanups for close_all_fds() (#38878)
Zbigniew Jędrzejewski-Szmek [Wed, 17 Sep 2025 12:43:04 +0000 (14:43 +0200)] 
fd-util: several cleanups for close_all_fds() (#38878)

7 weeks agopam_systemd: fix error logs
Zbigniew Jędrzejewski-Szmek [Tue, 9 Sep 2025 16:18:54 +0000 (18:18 +0200)] 
pam_systemd: fix error logs

The code was of two minds about error_id: it was used directly in
pam_syslog_errno(), but in the next line checked with streq_ptr().
sd_varlink_callbo() may return negative and then it does not set the output
params, or it returns the error in ret_error_id. We cannot assume that error_id
is non-null. Also fix a select-and-paste mistake in one place.

7 weeks agosd-device: improve and downgrade error message
Zbigniew Jędrzejewski-Szmek [Tue, 9 Sep 2025 10:53:38 +0000 (12:53 +0200)] 
sd-device: improve and downgrade error message

I'm seeing this in the initrd (with the dev_ksmg_record line added to clarify
where the error is coming from):
[    6.114232] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.2
[    6.116842] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.2".
[    6.134115] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.2".
[    6.139427] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.3
[    6.144327] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.3".
[    6.149442] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.3".
[    6.155091] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.3
[    6.160118] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.3".
[    6.164814] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.3".
[    6.169201] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.3
[    6.173990] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.3".
[    6.183104] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.3".
[    6.187746] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.3
[    6.192825] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.3".
[    6.197733] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.3".
[    6.203015] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.3
[    6.207184] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.3".
[    6.211943] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.3".
[    6.216703] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.4
[    6.221944] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.4".
[    6.226803] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.4".
[    6.231238] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.4
[    6.236078] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.4".
[    6.241845] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.4".
[    6.247976] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.4
[    6.252545] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.4".
[    6.256146] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.4".
[    6.260651] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.4
[    6.265151] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.4".
[    6.269755] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.4".
[    6.276206] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.4
[    6.280034] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.4".
[    6.284603] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.4".
[    6.288710] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.5
[    6.293312] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.5".
[    6.297763] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.5".
[    6.302438] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.5
[    6.306948] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.5".
[    6.310797] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.5".
[    6.315097] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.5
[    6.319033] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.5".
[    6.323593] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.5".
[    6.328834] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.5
[    6.333057] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.5".
[    6.337644] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.5".
[    6.341152] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.5
[    6.345436] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.5".
[    6.349824] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.5".
[    6.354306] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.6
[    6.358131] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.6".
[    6.366568] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.6".
[    6.371139] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.6
[    6.375207] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.6".
[    6.378681] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.6".
[    6.382820] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.6
[    6.387143] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.6".
[    6.392192] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.6".
[    6.397109] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.6
[    6.400991] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.6".
[    6.405992] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.6".
[    6.410889] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.6
[    6.414730] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.6".
[    6.418266] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.6".
[    6.422575] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.7
[    6.429942] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.7".
[    6.433780] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.7".
[    6.438509] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.7
[    6.442293] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.7".
[    6.447236] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.7".
[    6.453336] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.7
[    6.458031] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.7".
[    6.461948] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.7".
[    6.465883] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.7
[    6.470072] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.7".
[    6.476196] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.7".
[    6.481182] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:02.7
[    6.484938] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:02.7".
[    6.491322] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:02.7".
[    6.497289] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:03.0
[    6.501935] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:03.0".
[    6.505217] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:03.0".
[    6.509819] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:03.0
[    6.516078] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:03.0".
[    6.520942] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:03.0".
[    6.525178] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:03.0
[    6.528505] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:03.0".
[    6.534669] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:03.0".
[    6.539353] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:03.0
[    6.543035] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:03.0".
[    6.547441] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:03.0".
[    6.553211] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:03.0
[    6.557452] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/class/pci/0000:00:03.0".
[    6.562468] systemd-journald[251]: sd-device: Failed to chase symlinks in "/sys/firmware/pci/0000:00:03.0".
[    6.566955] systemd-journald[251]: dev_kmsg_record: kernel_device=+pci:0000:00:03.1
[    6.570846] systemd-journald[251]: Too many messages being logged to kmsg, ignoring

The error message was misleading, since it sounds like there's an issue with
symlinks, but the device simply doesn't exist. But I think we should suppress
the message altogether. journald spewing messages like this fills up the logs
for no benefit. The sd_device_new* functions can legitimately be used for
"invalid" devices, e.g. to check if they even exist. We have no idea for what
purpose the caller is creating the device object, so let's not log this at all.
The caller can log if appropriate.

7 weeks agonetworkctl: list drop unused dbus connection
Anton Tiurin [Sat, 6 Sep 2025 09:51:21 +0000 (02:51 -0700)] 
networkctl: list drop unused dbus connection

Do not acquire dbus connection as it is unused in list_links

7 weeks agoTwo logging fixups (#38794)
Zbigniew Jędrzejewski-Szmek [Wed, 17 Sep 2025 12:38:40 +0000 (14:38 +0200)] 
Two logging fixups (#38794)

7 weeks agocore: drop dead code
Luca Boccassi [Thu, 28 Aug 2025 18:46:41 +0000 (19:46 +0100)] 
core: drop dead code

Variable is not used anymore

7 weeks agocore/bpf-foreign: use RET_GATHER()
Yu Watanabe [Tue, 26 Aug 2025 18:45:41 +0000 (03:45 +0900)] 
core/bpf-foreign: use RET_GATHER()

7 weeks agobootctl: drop unnecessary verb_unlink()
Yu Watanabe [Mon, 25 Aug 2025 15:33:40 +0000 (00:33 +0900)] 
bootctl: drop unnecessary verb_unlink()

It is a trivial wrapper for verb_list(). Let's directly use verb_list()
and drop verb_unlink().

Follow-up for 8702496bfb0205764569782a9a2ebd11fd80e5e8.

7 weeks agopull: fix SHA256SUMS fallback for file:// URLs
Lennart Poettering [Mon, 25 Aug 2025 15:05:09 +0000 (17:05 +0200)] 
pull: fix SHA256SUMS fallback for file:// URLs

For file:// there's no http error code 404, but there's
CURLE_FILE_COULDNT_READ_FILE hence call ->on_not_found() in that case
too.

Follow-up for: c456862f87237831ce2bbaeb53a37d1b3d669285

7 weeks agojournalctl: add -W as short for --no-hostname 38704/head
Zbigniew Jędrzejewski-Szmek [Mon, 25 Aug 2025 12:01:25 +0000 (14:01 +0200)] 
journalctl: add -W as short for --no-hostname

--no-hostname is one of the switches I use very often. In particular,
when looking at CI logs, the hostname is almost never interesting.
-H is not yet used in journalctl, because journal operates locally, but
will want it if display of remote journals is implemented. Use -W.

7 weeks agojournalctl: fix erroneuous mention of "local" hostnames
Zbigniew Jędrzejewski-Szmek [Tue, 26 Aug 2025 09:08:12 +0000 (11:08 +0200)] 
journalctl: fix erroneuous mention of "local" hostnames

--no-hostname applies equally to remote and local logs.

This change is a separate commit to make it easy to backport.

7 weeks agorepart: do not fail when CopyBlocks= is used in the initrd
Luca Boccassi [Sun, 24 Aug 2025 19:51:23 +0000 (20:51 +0100)] 
repart: do not fail when CopyBlocks= is used in the initrd

When running in the initrd --root= is automatically set to /sysroot or /sysusr
but then using CopyBlocks fails due to a security measure:

root@particle-caba-1e47:~# systemd-repart --dry-run=no /dev/vda
No machine ID set, using randomized partition UUIDs.
Automatic discovery of backing block devices not permitted in --root= mode, refusing.

Follow-up for 5c08da586fc8fe7cda4010e0057cb79ba1d74335

7 weeks agoSome post unmerged-usr cleanups (#38696)
Zbigniew Jędrzejewski-Szmek [Wed, 17 Sep 2025 12:22:05 +0000 (14:22 +0200)] 
Some post unmerged-usr  cleanups (#38696)

I noticed in our NixOS packaging that we were working around the fact
that core/swap.c looks for swapon and swapoff in /sbin

Lets make it configurable just like all the other util-linux binaries
through meson and make it default to /usr/sbin/{swapon,swapoff}

This way mounts work on a systemd without the /sbin -> /usr/sbin
compatibility symlink. (And as a side-effect has NixOS be able to have
it in /nix/store too like the other util-linux tools).

Given that `unmerged-usr` support was dropped in 255 I think this is a
safe change?

7 weeks agoboot: add assertions
Yu Watanabe [Wed, 20 Aug 2025 07:49:32 +0000 (16:49 +0900)] 
boot: add assertions

To silence coverity.

Closes CID#1620098.

7 weeks agofd-util: fix path_is_root_at() when dealing with detached mounts (#38636)
Zbigniew Jędrzejewski-Szmek [Wed, 17 Sep 2025 12:14:58 +0000 (14:14 +0200)] 
fd-util: fix path_is_root_at() when dealing with detached mounts (#38636)

path_is_root_at() is supposed to detect if the inode referenced by the
specified fd is the "root inode". For that it checks if the inode and
its parent are the same inode and the same mount. Traditionally this
check was correct. But these days we actually have detached mounts (i.e.
those returned by fsmount() and related calls), whose root inode also
behaves like that.

Our uses for path_is_root_at() use the function to detect if an absolute
path would be identical to a relative path based on the specified fd
(sepifically: chaseat()), which goes really wrong if used on a detached
mount.

hence, let's adjust the function a bit, and let's go by path to "/" to
check if the referenced inode is the actual root inode in our chroot.

7 weeks agonspawn: add NamespacePath support for nspawn files
Alan Brady [Wed, 6 Aug 2025 17:38:59 +0000 (20:38 +0300)] 
nspawn: add NamespacePath support for nspawn files

Commit d7bea6b6 ("nspawn: introduce an option for specifying network
namespace path") already did most of the work here enabling a command
line option for specifying the namespace path for a given container.
Someone even took care of the merging code in merge_settings as though
this already worked. All that's then needed is to add a line to the
nspawn-gperf.gperf file to actually enable being able to specify
NamespacePath from nspawn files as well.

This greatly simplifies how we configure nspawn containers by being able
to give all the options we need in .nspawn files instead of needing to
also use command line parameters.

Closes: #27188
7 weeks agosysext: do not attempt to unlock images interactively
Luca Boccassi [Tue, 26 Aug 2025 18:12:53 +0000 (19:12 +0100)] 
sysext: do not attempt to unlock images interactively

These images are not using a passphrase, they are using keys
or at most TPM-based sealing (not yet implemented, for contexts).

Do not use the interactive helper, as it will block and ask the
user for a password if it fails to find the signing cert, which
is not useful for this tool.

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

7 weeks agomeson: bump version to 259~devel for next cycle
Luca Boccassi [Wed, 17 Sep 2025 12:06:07 +0000 (13:06 +0100)] 
meson: bump version to 259~devel for next cycle

7 weeks agoFinalize NEWS and meson.version for v258 v258
Luca Boccassi [Wed, 17 Sep 2025 12:00:20 +0000 (13:00 +0100)] 
Finalize NEWS and meson.version for v258

7 weeks agoChores for release (#38958)
Luca Boccassi [Wed, 17 Sep 2025 11:58:15 +0000 (12:58 +0100)] 
Chores for release (#38958)

7 weeks agoNEWS: update time and place 38958/head
Luca Boccassi [Wed, 17 Sep 2025 08:48:51 +0000 (09:48 +0100)] 
NEWS: update time and place

7 weeks agoNEWS: update contributors list
Luca Boccassi [Wed, 17 Sep 2025 08:48:38 +0000 (09:48 +0100)] 
NEWS: update contributors list

ninja -C build git-contrib

[zjs: deduplicate Daan]

7 weeks agomailmap: deduplicate Daan
Zbigniew Jędrzejewski-Szmek [Wed, 17 Sep 2025 10:07:49 +0000 (12:07 +0200)] 
mailmap: deduplicate Daan

7 weeks agoUpdate syscall numbers
Luca Boccassi [Wed, 17 Sep 2025 08:48:00 +0000 (09:48 +0100)] 
Update syscall numbers

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

7 weeks agohwdb: update
Luca Boccassi [Wed, 17 Sep 2025 08:41:25 +0000 (09:41 +0100)] 
hwdb: update

ninja -C build update-hwdb

7 weeks agovmspawn: support specfiying relative paths to tpm state dir, by prefixing with ./ 38957/head
Lennart Poettering [Wed, 17 Sep 2025 07:36:29 +0000 (09:36 +0200)] 
vmspawn: support specfiying relative paths to tpm state dir, by prefixing with ./

7 weeks agovmspawn: initialize block device "serials" from backing file name
Lennart Poettering [Tue, 16 Sep 2025 20:25:06 +0000 (22:25 +0200)] 
vmspawn: initialize block device "serials" from backing file name

If we pass multiple block devices into a VM it's really useful to pass
recognizable serial numbers on them, so that we know which one is which.
qemu allows setting them, hence initialize them automatically from the
filename of the backing file, as a convenience feature.

Inside of a VM this means /dev/disk/by-id/… symlinks will be generated
with useful identifiers.

7 weeks agoefivars: drop unused "optimization" 38864/head
Zbigniew Jędrzejewski-Szmek [Wed, 17 Sep 2025 07:45:47 +0000 (09:45 +0200)] 
efivars: drop unused "optimization"

This was added in c242a082793df77a1dc0bce7f470660ab0a86fe5, and AFAICT, the
code was never exercised, not even in the tests. With this chunk gone, if
anyone ever calls the function without any output params, we'll do open + fstat
instead of access, which will work just fine too.

7 weeks agoefivars: adjust location of variable attribute
Zbigniew Jędrzejewski-Szmek [Wed, 17 Sep 2025 07:37:03 +0000 (09:37 +0200)] 
efivars: adjust location of variable attribute

I also thought about converting efi_set_variable() to use writev, but we don't
have loop_writev. I'm not sure if the loop around write here is important.
Coinceivably, it could make a difference it we were writing a long value.
The loop was introduced in b7749eb517ff5dd379cf61ee9fb50a0105ab2c0f, without
much comment unfortunately. So it doesn't seem worth the risk of changing this
to not use a loop, and writing loop_writev just for this also seems overkill.

7 weeks agobasic/efivars: read EFI variables using one read(), not two
Zbigniew Jędrzejewski-Szmek [Tue, 9 Sep 2025 09:39:35 +0000 (11:39 +0200)] 
basic/efivars: read EFI variables using one read(), not two

In https://github.com/systemd/systemd/issues/38842 it is reported that we're again
having trouble accessing EFI variables:
  [  292.212415] H (udev-worker)[253]: Reading EFI variable /sys/firmware/efi/efivars/LoaderDevicePartUUID-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f.
  ...
  [  344.397961] H (udev-worker)[253]: Detected slow EFI variable read access on LoaderDevicePartUUID-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f: 52.185510s

We don't know what causes the slowdown, but it seems reasonable to avoid
unnecessary read() calls. We would read the 4-byte attr first, and then the
actual value later. But our code always reads the value (and discards the attr
in all cases except one, when _writing_ the variable), so let's optimize for
the case where we read the value and read the whole contents in one readv().

7 weeks agomachine: do not allow unprivileged users to register other users' processes as machin...
Luca Boccassi [Tue, 16 Sep 2025 16:59:45 +0000 (17:59 +0100)] 
machine: do not allow unprivileged users to register other users' processes as machines (#38911)

Registering a process as a machine means a caller can get machined to
send sigterm to it, and more. If an unpriv user is registering, ensure
the registered process has the same uid.

Follow-up for adaff8eb35d9c471af81fddaa4403bc5843a256f

7 weeks agomkosi conf opensuse: ukify from systemd-ukify (#38942)
Luca Boccassi [Tue, 16 Sep 2025 16:58:56 +0000 (17:58 +0100)] 
mkosi conf opensuse: ukify from systemd-ukify (#38942)

* openSUSE tumbleweed moves ukify tool from systemd-experimental to
systemd-ukify.

This is needed to for the TEST-86-MULTI-PROFILE-UKI

7 weeks agomkosi conf opensuse: ukify from systemd-ukify 38942/head
val4oss [Mon, 15 Sep 2025 14:01:19 +0000 (16:01 +0200)] 
mkosi conf opensuse: ukify from systemd-ukify

* openSUSE tumbleweed moves ukify tool from systemd-experimental to
  systemd-ukify.

Signed-off-by: val4oss <github.widget541@passmail.net>
7 weeks agomkosi: update opensuse commit reference to 7d9cf5c934705c175766eaa688baa503da84e06a
val4oss [Tue, 16 Sep 2025 15:09:28 +0000 (17:09 +0200)] 
mkosi: update opensuse commit reference to 7d9cf5c934705c175766eaa688baa503da84e06a

7d9cf5c9347 Update systemd to version 257.9 / rev 456 via SR 1303345
439d743e5d6 Update systemd to version 257.7 / rev 455 via SR 1297651
4f72c6a6279 Update systemd to version 257.7 / rev 454 via SR 1296831
3b0afa5c6d1 Update systemd to version 257.7 / rev 453 via SR 1294979
d0eccd20f5a Update systemd to version 257.7 / rev 452 via SR 1292221
f9d183f8c57 Update systemd to version 257.7 / rev 451 via SR 1291008
cbd6908247d Update systemd to version 257.7 / rev 450 via SR 1289968
6e5c00f9f92 Update systemd to version 257.6 / rev 449 via SR 1286997

Signed-off-by: val4oss <github.widget541@passmail.net>
7 weeks agomachine: add a comment to clarify that root_directory is informational only 38911/head
Luca Boccassi [Tue, 16 Sep 2025 14:51:08 +0000 (15:51 +0100)] 
machine: add a comment to clarify that root_directory is informational only

To avoid any possible mistakes in the future, add a comment in the
object declaration

7 weeks agoman: clarify that machined RootDirectory parameter is informational only
Luca Boccassi [Tue, 16 Sep 2025 14:49:26 +0000 (15:49 +0100)] 
man: clarify that machined RootDirectory parameter is informational only

It's basically just a label, it is not used for any purpose