]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
3 hours agoTODO: add item for btrfs subvolumes in tmpfiles main
Zbigniew Jędrzejewski-Szmek [Sat, 13 Jun 2026 08:25:05 +0000 (10:25 +0200)] 
TODO: add item for btrfs subvolumes in tmpfiles

4 hours agopo: Translated using Weblate (Kabyle)
ButterflyOfFire [Tue, 16 Jun 2026 18:13:01 +0000 (18:13 +0000)] 
po: Translated using Weblate (Kabyle)

Currently translated at 41.0% (117 of 285 strings)

Co-authored-by: ButterflyOfFire <butterflyoffire@users.noreply.translate.fedoraproject.org>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/kab/
Translation: systemd/main

7 hours agoTEST-64-UDEV-STORAGE: skip multipath test if multipathd.service does not exist
Yu Watanabe [Tue, 16 Jun 2026 14:58:44 +0000 (23:58 +0900)] 
TEST-64-UDEV-STORAGE: skip multipath test if multipathd.service does not exist

Rather than checking os-release, but let's check if we have necessary
service unit.

8 hours agomeson: bump version to v261~rc4 v261-rc4
Luca Boccassi [Tue, 16 Jun 2026 11:34:11 +0000 (12:34 +0100)] 
meson: bump version to v261~rc4

8 hours agoNEWS: update time and place
Luca Boccassi [Tue, 16 Jun 2026 11:33:48 +0000 (12:33 +0100)] 
NEWS: update time and place

8 hours agoNEWS: update contributors list
Luca Boccassi [Tue, 16 Jun 2026 11:33:33 +0000 (12:33 +0100)] 
NEWS: update contributors list

8 hours agoUpdate hwdb autosuspend
Luca Boccassi [Tue, 16 Jun 2026 11:31:34 +0000 (12:31 +0100)] 
Update hwdb autosuspend

ninja -C build update-hwdb-autosuspend

8 hours agoUpdate hwdb
Luca Boccassi [Tue, 16 Jun 2026 11:31:11 +0000 (12:31 +0100)] 
Update hwdb

ninja -C build update-hwdb

8 hours agoLUO: only deserialize on boot, add version and structure to JSON payload (#42607)
Luca Boccassi [Tue, 16 Jun 2026 16:55:56 +0000 (17:55 +0100)] 
LUO: only deserialize on boot, add version and structure to JSON payload (#42607)

10 hours agohomectl: actually honour --mute-console= (#42617)
Lennart Poettering [Tue, 16 Jun 2026 15:13:29 +0000 (17:13 +0200)] 
homectl: actually honour --mute-console= (#42617)

11 hours agocore: fix unit_merge() load state check evaluating after state overwrite
dongshengyuan [Thu, 11 Jun 2026 07:14:49 +0000 (15:14 +0800)] 
core: fix unit_merge() load state check evaluating after state overwrite

The condition on line 1206 checks other->load_state != UNIT_STUB to
decide whether to call the vtable done() callback, but the state was
already overwritten to UNIT_MERGED on line 1198, making the condition
always true.

Save the original load_state before overwriting it, so that units in
UNIT_STUB state (which never went through a load attempt) correctly
skip the done() call.

Signed-off-by: dongshengyuan <dongshengyuan@uniontech.com>
Co-developed-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
12 hours agonsresourced: reclaim ranges from dead namespaces during allocation
Daan De Meyer [Wed, 10 Jun 2026 10:06:14 +0000 (10:06 +0000)] 
nsresourced: reclaim ranges from dead namespaces during allocation

The only runtime trigger for registry cleanup is the BPF kprobe that fires
on user namespace destruction; when it is missed (ring buffer overflow,
kprobe missing, fdstore entry dropped), the dead namespace's registry entry
survives and keeps its UID/GID ranges blocked until the manager restarts and
its startup sweep runs. The allocation hot path checked whether a candidate
range was already taken but never whether the namespace holding it was still
alive, so a single dead namespace could permanently starve an allocation.
This is most visible when a parent delegates its entire container UID window
to a child that then dies: every subsequent allocation from the parent fails
with NoDynamicRange even though the ranges are reclaimable.

Add userns_registry_reap_if_dead(), which probes a registered namespace's
liveness via the kernel namespace identifier recorded at allocation time and,
if it is authoritatively dead, releases its registry entry — restoring any
ranges it received via delegation to their ancestors. Call it from the
allocation availability check for both transient registrations and delegated
ranges, walking a chain of dead ancestors in the delegation case. This
mirrors the existing inode-slot stale cleanup and makes allocation
self-healing without waiting for a restart.

The startup sweep grew the same load-probe-release logic, so route it through
the new helper too; its errno return distinguishes alive, no-recorded-id, and
unprobeable-environment cases so the sweep keeps its early-out when lookup by
id isn't possible at all.

Co-developed-by: Claude Opus 4.8 <noreply@anthropic.com>
13 hours agocore: add version and structure to LUO json payload 42607/head
Luca Boccassi [Mon, 15 Jun 2026 20:33:08 +0000 (21:33 +0100)] 
core: add version and structure to LUO json payload

We might want to add more state to the LUO session json payload,
so add a version (to allow clean compat breaks if needed) and nest
the current fdstore contents under a 'units' object, so that more
top-level data can be added in the future without breaking
backward compatibility.

Follow-up for 257c35c1a3936f53b80f16397a6909f4cd81124d

14 hours agomkosi: fix escape in suse repackaging script
Luca Boccassi [Tue, 16 Jun 2026 09:31:38 +0000 (10:31 +0100)] 
mkosi: fix escape in suse repackaging script

Otherwise it trips on files such as:

 Installed (but unpackaged) file(s) found:
 /usr/lib/udev/hwdb.d/70-debug-appliance.hwdb

Follow-up for 4d0f1451b58dbd4b94da579b800adef4f4e42c34

15 hours agomisc: fix minor error handling issues
dongshengyuan [Tue, 16 Jun 2026 06:44:15 +0000 (14:44 +0800)] 
misc: fix minor error handling issues

fstab-generator: pass k instead of r to bus_error_message() so the
fallback error string reflects the actual bus call failure, not the
accumulated result that was reset to 0 earlier.

networkd-ndisc: return -ENOMEM when newdup() fails, since r is 0 at
that point and the OOM would otherwise be reported as success.

storagetm: add missing NULL check after strndup() for attr_model,
matching the pattern already used for attr_firmware and attr_serial.

Signed-off-by: dongshengyuan <dongshengyuan@uniontech.com>
Co-developed-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
15 hours agocore: only attempt to deserialize state from LUO on boot
Luca Boccassi [Mon, 15 Jun 2026 20:34:56 +0000 (21:34 +0100)] 
core: only attempt to deserialize state from LUO on boot

Avoid trying to query for our LUO session on reexec/softreboot/reload/etc.
Currently /dev/liveupdate is only accessible to root so it's not a big
issue, but this might change in the future, so make sure nobody can
play games with us.

Follow-up for 257c35c1a3936f53b80f16397a6909f4cd81124d

15 hours agoobs: prepare ParticleOS images in workflow
Luca Boccassi [Thu, 4 Jun 2026 19:20:51 +0000 (20:20 +0100)] 
obs: prepare ParticleOS images in workflow

Link ParticleOS images in the workflow subproject for the PR,
so that they can be enabled with a click when needed.
But keep disabled by default, as they take a lot of resources,
especially disk space.

17 hours agogpt-auto-generator: fix error propagation in add_root_mount()
dongshengyuan [Tue, 16 Jun 2026 01:07:25 +0000 (09:07 +0800)] 
gpt-auto-generator: fix error propagation in add_root_mount()

When generator_write_initrd_root_device_deps() fails, the error was
swallowed by returning 0 (success) instead of r. The two subsequent
calls in the same block correctly return r on failure.

Signed-off-by: dongshengyuan <dongshengyuan@uniontech.com>
Co-developed-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
17 hours agomount: log control command before clearing it in mount_sigchld_event()
dongshengyuan [Tue, 16 Jun 2026 02:38:17 +0000 (10:38 +0800)] 
mount: log control command before clearing it in mount_sigchld_event()

control_command and control_command_id were cleared before being passed
to unit_log_process_exit(), so the log always showed an invalid/unknown
command name.

Move both clears after the log call, matching the ordering in
socket_sigchld_event() and service_sigchld_event().

Signed-off-by: dongshengyuan <dongshengyuan@uniontech.com>
Co-developed-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
17 hours agoAdd Elecom Huge Plus information for wired usb, wireless usb, and bluetooth
guido [Tue, 16 Jun 2026 03:16:22 +0000 (23:16 -0400)] 
Add Elecom Huge Plus information for wired usb, wireless usb, and bluetooth

26 hours agoloop-util: shortcut block device fd when it carries no partition table
Daan De Meyer [Mon, 15 Jun 2026 09:06:42 +0000 (09:06 +0000)] 
loop-util: shortcut block device fd when it carries no partition table

663f0bf5cb stopped reusing the original block device fd whenever
partition scanning was requested (LO_FLAGS_PARTSCAN) but couldn't be
enabled on the device, so that nested partition tables on devices the
kernel won't scan (e.g. the pmOS/android case) get exposed via a real
loop device.

However that also forced a pointless loop device for any partition that
carries a file system directly, e.g. a btrfs subvolume mounted via
MountImages=. For multi-device btrfs this is fatal: the kernel rejects
seeing the same member via both the original partition and the loop
device, and the mount fails.

A loop device is only ever needed here to expose a nested partition
table. So only refuse the shortcut when the device actually carries one,
probed via gpt_probe(), instead of whenever partition scanning is
disabled. Devices carrying a file system directly (or nothing) take the
shortcut as before.

Add an integration test to cover the failure scenario of the original
issue.

Fixes: https://github.com/systemd/systemd/issues/42520
Replaces: https://github.com/systemd/systemd/pull/42576
Follow-up for 663f0bf5cb79ecaf6dd71441ecdc9dc401e7eae6

Co-Authored-By: Luca Boccassi <luca.boccassi@gmail.com>
Co-developed-by: Claude Opus 4.8 <noreply@anthropic.com>
28 hours agoreport: place Upload() on io.systemd.Report.Uploader rather than io.systemd.Report...
Luca Boccassi [Mon, 15 Jun 2026 21:05:18 +0000 (22:05 +0100)] 
report: place Upload() on io.systemd.Report.Uploader rather than io.systemd.Report interface (#42584)

We really want to use io.systemd.Report for the interface provided by
systemd-report itself, not by its backend. hence, rename the interface
that uploading plugins shall implement to io.systemd.Report.Uploader.

Note that we ideally should have a varlink interface definition for that
interface. if we had, we'd have noticed that earlier.

30 hours agotools: add script to print blurb for SPI yearly report
Luca Boccassi [Mon, 15 Jun 2026 17:45:37 +0000 (18:45 +0100)] 
tools: add script to print blurb for SPI yearly report

Co-developed-by: Claude Opus 4.8 <noreply@anthropic.com>
31 hours agoreport: rename varlink dir for upload plugins 42584/head
Lennart Poettering [Sun, 14 Jun 2026 19:44:34 +0000 (21:44 +0200)] 
report: rename varlink dir for upload plugins

let's name the dir "/run/systemd/report.upload/" (rather than
"/run/systemd/metrics-upload/"). After all, these are reports that we
upload, not indiviudual metrics. And it would be particular confusing
since the dir to pick up metrics is called /run/systemd/report/, rather
than /run/systemd/metrics/. Hence the thing that deals with reports is
nmamed metrics, and the thing that deals in metrics is named reports...

31 hours agoreport: place Upload() on io.systemd.Report.Uploader rather than io.systemd.Report...
Lennart Poettering [Sun, 14 Jun 2026 19:37:31 +0000 (21:37 +0200)] 
report: place Upload() on io.systemd.Report.Uploader rather than io.systemd.Report interface

We really want to use io.systemd.Report for the interface
provided by systemd-report itself, not by its backend. hence, rename the
interface that uploading plugins shall implement to
io.systemd.Report.Uploader.

Note that we ideally should have a varlink interface definition for that
interface. if we had, we'd have noticed that earlier.

33 hours agoci/mkosi: set default values on use
Yu Watanabe [Fri, 5 Jun 2026 21:42:44 +0000 (06:42 +0900)] 
ci/mkosi: set default values on use

35 hours agoudev: only trigger the boot-disk loop device for optical drives
Daan De Meyer [Mon, 15 Jun 2026 07:55:22 +0000 (07:55 +0000)] 
udev: only trigger the boot-disk loop device for optical drives

probe_gpt_boot_disk_needs_loop() sets ID_PART_GPT_AUTO_ROOT_DISK_NEEDS_LOOP
for any whole disk that holds the boot ESP/XBOOTLDR but whose partition table
the kernel cannot parse. Until now the udev rule turned that into a
systemd-loop@.service for every block device.

That is too broad: device-mapper devices also report kernel partition
scanning as disabled, but their partitions are managed in userspace by kpartx
(see 66-kpartx.rules). Setting up a loop device on top of them re-exposes the
same partition table a second time and only causes trouble.

Restrict the rule to optical drives, the one class that genuinely needs a
kernel-side loop device (El Torito GPT sector size mismatch, or drives that do
not support partition scanning) and that has no userspace partition manager of
its own.

Co-developed-by: Claude Fable 5 <noreply@anthropic.com>
35 hours agoudev-builtin-blkid: keep probing the boot disk when it needs a loop device
Daan De Meyer [Mon, 15 Jun 2026 07:45:46 +0000 (07:45 +0000)] 
udev-builtin-blkid: keep probing the boot disk when it needs a loop device

Since 4e0eabd40118 ("udev: also trigger loop device for boot disk when
partition scanning is unsupported"), builtin_blkid() bails out entirely as
soon as probe_gpt_boot_disk_needs_loop() reports that a loop device is
needed, skipping all superblock probing. As a result whole-disk properties
such as ID_PART_TABLE_UUID and ID_FS_* are no longer set.

This regresses any whole disk whose partitions the kernel cannot expose
itself but which is otherwise perfectly probeable, most notably
device-mapper multipath disks: kernel partition scanning is disabled on them
(their partitions are managed in userspace by kpartx), so they are now
flagged as needing a loop device and lose their ID_PART_TABLE_UUID.

The early return was never necessary. The original intent was only to skip
root partition discovery on the device, and that already happens on the loop
device instead: find_gpt_root() bails when the kernel can't scan partitions,
blkid probes at the device's own logical sector size so a GPT written for a
different sector size is simply not detected, and PART_ENTRY_* is only
emitted for partitions the kernel actually registered, of which a
loop-needing whole disk has none. So keep probing the device for its
whole-disk properties unconditionally and let partition and root discovery
happen on the loop device.

Co-developed-by: Claude Fable 5 <noreply@anthropic.com>
36 hours agoportable: fix double-free in normalize_portable_changes()
dongshengyuan [Mon, 15 Jun 2026 08:28:02 +0000 (16:28 +0800)] 
portable: fix double-free in normalize_portable_changes()

Now that the fast path performs a deep copy identical to the general
loop (when n_changes_attached==0, found stays false for all entries),
the block is redundant. Remove it and let the general loop handle this
case.

Signed-off-by: dongshengyuan <dongshengyuan@uniontech.com>
Co-developed-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
37 hours agorandom-seed: fix wrong error variable in log_error_errno()
dongshengyuan [Mon, 15 Jun 2026 07:43:51 +0000 (15:43 +0800)] 
random-seed: fix wrong error variable in log_error_errno()

At line 285, ftruncate() failure was logged using 'r' which is 0
from the preceding successful loop_write() call. log_error_errno(0, ...)
triggers an assertion crash in developer builds (ASSERT_NON_ZERO) and
silently returns success in release builds, swallowing the ftruncate error.

Replace with errno which is set by ftruncate() on failure.

Signed-off-by: dongshengyuan <dongshengyuan@uniontech.com>
Co-developed-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
37 hours agomusl: fix build on 32-bit architecture
Yu Watanabe [Mon, 15 Jun 2026 04:03:00 +0000 (13:03 +0900)] 
musl: fix build on 32-bit architecture

```
../src/boot/test-efi-string.c: In function 'test_xvasprintf_status':
../src/boot/test-efi-string.c:744:34: error: format '%zi' expects argument of type 'signed size_t', but argument 4 has type 'long int' [-Werror=format=]
  744 |         test_printf_one("%i %i %zi", INT_MIN, INT_MAX, SSIZE_MAX);
      |                                ~~^
      |                                  |
      |                                  int
      |                                %li
cc1: some warnings being treated as errors
ninja: subcommand failed
```

37 hours agobootctl: Respect --variables from the command line
Samuel Holland [Sun, 7 Jun 2026 18:54:21 +0000 (13:54 -0500)] 
bootctl: Respect --variables from the command line

A previous refactoring failed to copy the flag from the command line
argument to the installation context object, so the flag was ignored.

Closes: https://github.com/systemd/systemd/issues/41488
Fixes: 38433a6d06ef ("bootctl: rework bootctl-install.c in preparation of varlinkification")
41 hours agoci/unit-tests: drop unnecessary RepositoryKeyFetch=yes for postmarketOS
Yu Watanabe [Mon, 15 Jun 2026 00:05:26 +0000 (09:05 +0900)] 
ci/unit-tests: drop unnecessary RepositoryKeyFetch=yes for postmarketOS

It is enabled by default since
https://github.com/systemd/mkosi/commit/c4af878bcb8c79bf0494d022b8580bdcef4edf47

41 hours agorepart: Rescan after writing partition table on factory reset
Valentin David [Sun, 7 Jun 2026 10:46:09 +0000 (12:46 +0200)] 
repart: Rescan after writing partition table on factory reset

If a partition gets removed due to factory reset, we will recreate it
as blkpg later. So it needs to get removed. So rescan is needed to be
done after we write the partition table for factory reset.

Fixes #42453

2 days agohwdb: Make Samsung download mode work out-of-the-box
LuK1337 [Sun, 14 Jun 2026 15:55:13 +0000 (17:55 +0200)] 
hwdb: Make Samsung download mode work out-of-the-box

https://github.com/Benjamin-Dobell/Heimdall/blob/3997d5cc607e6c603c6e7c0d07e42e9868c62af2/heimdall/source/BridgeManager.h#L69-L79

2 days agoboot: Fix gdb support for RISC-V
Marcel Ziswiler [Thu, 11 Jun 2026 07:16:00 +0000 (09:16 +0200)] 
boot: Fix gdb support for RISC-V

This will also allow debugging systemd-boot easily on RISC-V.

Note that the following much simpler variant won't work, as we might be missing
the optional 'zihintpause' extension:

    asm volatile("pause");

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@codethink.co.uk>
2 days agonetwork: ignore stale interface renames (#42545)
Yu Watanabe [Sun, 14 Jun 2026 22:20:52 +0000 (07:20 +0900)] 
network: ignore stale interface renames (#42545)

Fixes #20203.
Fixes #42527.

2 days agotest-varlink-idl: add missing IDL files to test-varlink-idl
Lennart Poettering [Sun, 14 Jun 2026 20:07:22 +0000 (22:07 +0200)] 
test-varlink-idl: add missing IDL files to test-varlink-idl

The test case is supposed to validate all IDLs we ship. But a bunch were
added to the tree without hooking them up here. Fix that.

2 days agosysupdate: reject short manifest hashes
Luca Boccassi [Thu, 11 Jun 2026 17:38:59 +0000 (18:38 +0100)] 
sysupdate: reject short manifest hashes

unhexmem_full() ignores whitespace, so a 64-byte manifest digest field
can decode to fewer than 32 bytes. Reject that while parsing instead.

[   83.883087] TEST-72-SYSUPDATE.sh[5995]: systemd-sysupdate: ../src/src/sysupdate/sysupdate-resource.c:581: resource_load_from_web: Assertion `h.iov_len == sizeof(instance->metadata.sha256sum)' failed.

Follow-up for 43cc7a3ef4f6a89946e7ffd6a3112a0c1740b1ef

Assisted-by: kres (claude-opus-4-7)
Co-developed-by: Claude Opus 4.8 <noreply@anthropic.com>
2 days agohwdb: add IMDS properties for Vultr
Chitoku [Sat, 13 Jun 2026 13:21:32 +0000 (22:21 +0900)] 
hwdb: add IMDS properties for Vultr

2 days agoupdate TODO
Lennart Poettering [Sun, 14 Jun 2026 05:13:10 +0000 (07:13 +0200)] 
update TODO

3 days agoAssorted fixes (#40987)
Luca Boccassi [Sat, 13 Jun 2026 17:24:54 +0000 (18:24 +0100)] 
Assorted fixes (#40987)

3 days agosd-daemon: escape notification msg using shell_escape() 40987/head
Mike Yuan [Sat, 7 Mar 2026 04:37:30 +0000 (05:37 +0100)] 
sd-daemon: escape notification msg using shell_escape()

Follow-up for f9e0a62392fa62364bb7ac31a1cd4a8cc521cced

xescape() would unconditionally emit hex escapes, rendering
\n unreadable.

3 days agocore/execute-serialize: fix error handling
Mike Yuan [Sat, 7 Mar 2026 04:53:14 +0000 (05:53 +0100)] 
core/execute-serialize: fix error handling

3 days agocore/unit: refuse PrivatePIDs= + PAMName=
Mike Yuan [Fri, 6 Mar 2026 18:22:44 +0000 (19:22 +0100)] 
core/unit: refuse PrivatePIDs= + PAMName=

Fixes #40928

3 days agocore/manager: add missing assertion on stop_notify_queue being empty
Mike Yuan [Wed, 21 Jan 2026 18:58:41 +0000 (19:58 +0100)] 
core/manager: add missing assertion on stop_notify_queue being empty

Follow-up for 1b4ab5a209c4874e01cf9577c740b82567458b09

3 days agonamespace-util: add missing half of the assertion in is_our_namespace()
Mike Yuan [Tue, 17 Feb 2026 08:26:20 +0000 (09:26 +0100)] 
namespace-util: add missing half of the assertion in is_our_namespace()

3 days agocore: clear pending_reload_message_vl on manager varlink teardown
Luca Boccassi [Thu, 11 Jun 2026 15:55:45 +0000 (16:55 +0100)] 
core: clear pending_reload_message_vl on manager varlink teardown

manager_varlink_done() tore down the varlink server without dropping the
queued reload reply, unlike bus_done_api() which unrefs
pending_reload_message_dbus. Unref it here too, so the slot consistently
mirrors the D-Bus side at teardown.

Follow-up for 55a1b36e91944dd1bc7c0861b69cff20aff8554d

Assisted-by: kres (claude-opus-4-7)
Co-developed-by: Claude Opus 4.8 <noreply@anthropic.com>
3 days agovsock-util: allow VMADDR_CID_ANY as local CID if enabled in hwdb
Chitoku [Wed, 10 Jun 2026 15:06:33 +0000 (00:06 +0900)] 
vsock-util: allow VMADDR_CID_ANY as local CID if enabled in hwdb

On Hyper-V guests, `VMADDR_CID_ANY` is valid as per implementation in
kernel driver: net/vmw_vsock/hyperv_transport.c.

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

Follow-up for 83359c4da02a82d2972cf957d9855ea957359287

3 days agonetwork: ignore stale interface renames 42545/head
Yu Watanabe [Thu, 11 Jun 2026 02:02:40 +0000 (11:02 +0900)] 
network: ignore stale interface renames

After enumeration, networkd may receive RTM_NEWLINK messages carrying a
stale interface name. This can happen when interface rename notifications
are queued before link enumeration and processed afterwards.

Previously, networkd could become confused by such a message and put the
corresponding Link into the failed state. Avoid this by checking whether
the new interface name is already in use by another interface and ignoring
the rename if so.

Fixes #20203.

3 days agonetwork: use hashmap_remove_value() on updating mapping for Link objects
Yu Watanabe [Thu, 11 Jun 2026 02:06:09 +0000 (11:06 +0900)] 
network: use hashmap_remove_value() on updating mapping for Link objects

E.g. on issue #20203, we may wrongly remove entry for another interface.
Let's mitigate issue on such situation for safety, though this does not
solve the issue.

3 days agoRevert "network: check the received interface name is actually new"
Yu Watanabe [Thu, 11 Jun 2026 00:49:41 +0000 (09:49 +0900)] 
Revert "network: check the received interface name is actually new"

This reverts commit 176b8be10ffce2f8c1fc931a37904a528057016f.

The check introduced by the commit is racy, as when format_ifname() is
called, the interface may be already renamed (again) to another name.

This is typically problematic when we swap interface names:
```
ip link set aaa name tmpname
ip link set bbb name aaa
ip link set tmpname bbb
```
When networkd received the notification about name change aaa -> tmpname,
the interface is already renamed from tmpname to bbb. So, the reverted
logic skips updating Link.ifname:
```
aaa: New interface name 'tmpname' received from the kernel does not correspond with the name currently configured on the actual interface 'bbb'. Ignoring.
```
On the second notification about name change bbb -> aaa, networkd fails to
update the mapping Manager.links_by_name, as we skipped previous renaming
and the mapping still has an outdated entry for 'aaa'.
```
bbb: Interface name change detected, renamed to aaa.
aaa: Failed to manage link by its new name: File exists
aaa: Could not process link message: File exists
aaa: Failed
aaa: State changed: configured -> failed
```

By reverting the commit, the issue is fixed. But the commit intended to
fix another issue #20203. So this reintroduces #20203. Let's fix it
in a later commit.

Fixes #42527.
Reintroduces #20203.

3 days agoask-password: do not reuse flags across Varlink calls
Luca Boccassi [Thu, 11 Jun 2026 15:13:11 +0000 (16:13 +0100)] 
ask-password: do not reuse flags across Varlink calls

The flags parameter is parsed into a global variable, which means
when there are multiple consecutive calls it is reused. Switch to
a local copy.

Follow-up for 066f6bfb6278962e288cce2ba522a2e400980e7c

Assisted-by: kres (claude-opus-4-7)
Co-developed-by: Claude Opus 4.8 <noreply@anthropic.com>
3 days agojournal: fix byte-order conversion in journal_file_append_data()
dongshengyuan [Fri, 12 Jun 2026 05:41:33 +0000 (13:41 +0800)] 
journal: fix byte-order conversion in journal_file_append_data()

head_data_offset is declared as le64_t in journal-def.h, so it must be
assigned with htole64(p), not le64toh(p). All other le64_t field
assignments in this file (hash, next_hash_offset) consistently use
htole64().

On little-endian systems this makes no difference, but on big-endian
systems the field->data link would be stored with incorrect byte order,
corrupting journal file traversal.

Assisted-by: claude-opus-4-8 <noreply@anthropic.com>
4 days agopcrextend: skip measurement gracefully when the TPM can't be used
Ivan Kruglov [Wed, 10 Jun 2026 15:12:50 +0000 (08:12 -0700)] 
pcrextend: skip measurement gracefully when the TPM can't be used

So far --graceful only short-circuited when no TPM was present at all (the
!tpm2_is_mostly_supported() check). If a TPM is present but can't actually be
used for the measurement we want, the measurement still failed hard. For
systemd-pcrextend instances ordered before sysinit.target this pushes the
system to degraded and blocks boot, which defeats the purpose of --graceful.

Make the two extend helpers report every "TPM is present-or-absent but cannot
be used for this measurement" condition with a single errno, -EOPNOTSUPP: no
usable PCR bank, no TPM device, missing crypto (e.g. AES-128-CFB), no NvPCR
support, and OpenSSL-less builds. tpm2_context_new_or_warn() reports a missing
device as -ENOENT, so each helper translates that to -EOPNOTSUPP at the call
site, keeping every errno single-meaning.

Co-developed-by: Claude Opus 4.8 <noreply@anthropic.com>
4 days agoupdate TODO
Lennart Poettering [Fri, 12 Jun 2026 10:26:06 +0000 (12:26 +0200)] 
update TODO

4 days agopo: Translated using Weblate (Chinese (Simplified) (zh_CN))
Luke Na [Fri, 12 Jun 2026 09:22:22 +0000 (09:22 +0000)] 
po: Translated using Weblate (Chinese (Simplified) (zh_CN))

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Luke Na <narukeu@outlook.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/zh_CN/
Translation: systemd/main

4 days agopo: Translated using Weblate (Chinese (Simplified) (zh_CN))
Luke Na [Fri, 12 Jun 2026 07:36:36 +0000 (07:36 +0000)] 
po: Translated using Weblate (Chinese (Simplified) (zh_CN))

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Luke Na <narukeu@outlook.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/zh_CN/
Translation: systemd/main

4 days agobasic: use assert_se in alloca_safe()
Luca Boccassi [Thu, 11 Jun 2026 19:12:57 +0000 (20:12 +0100)] 
basic: use assert_se in alloca_safe()

Ensure it cannot get compiled out regardless of build options

Follow-up for 9e1a759903a3ff9943334d25de19b06afc40c11e

Assisted-by: kres (claude-opus-4-7)
5 days agonetwork: fix log message
Yu Watanabe [Thu, 11 Jun 2026 11:14:00 +0000 (20:14 +0900)] 
network: fix log message

Use passed message string, rather than fixed "Forgetting".

Follow-up for a4feabd85d4d136d68ee9c8438eeac86bfd174f6.

5 days agotest: fix check for updatectl
Nick Rosbrook [Sun, 10 May 2026 14:49:36 +0000 (10:49 -0400)] 
test: fix check for updatectl

The have_updatectl variable is meant to gracefully handle the case where
updatectl is missing. But, because the script runs with -e, it fails
immediately in that case instead. Moreover, expanding $have_updatectl
when it is present actually executes updatectl, rather than simply
checking for its existence.

Re-factor this check so that it does handle a missing updatectl.

5 days agopo: update-uyghur-translation
dongshengyuan [Thu, 11 Jun 2026 08:23:42 +0000 (16:23 +0800)] 
po: update-uyghur-translation

5 days agopo: update-tibetan-translation
dongshengyuan [Thu, 11 Jun 2026 08:12:06 +0000 (16:12 +0800)] 
po: update-tibetan-translation

5 days agopo: Translated using Weblate (Kabyle)
ButterflyOfFire [Thu, 11 Jun 2026 08:01:46 +0000 (08:01 +0000)] 
po: Translated using Weblate (Kabyle)

Currently translated at 39.6% (113 of 285 strings)

Co-authored-by: ButterflyOfFire <butterflyoffire@users.noreply.translate.fedoraproject.org>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/kab/
Translation: systemd/main

5 days agomkosi: extract common build settings
Yu Watanabe [Fri, 5 Jun 2026 19:41:21 +0000 (04:41 +0900)] 
mkosi: extract common build settings

This also makes mkosi.functions included after the trivial execution checks.

5 days agoRevert "ci: migrate Claude review workflow to Fable 5"
Daan De Meyer [Thu, 11 Jun 2026 07:54:54 +0000 (07:54 +0000)] 
Revert "ci: migrate Claude review workflow to Fable 5"

This reverts commit 487770118f42e96e41d46f5c288409c594eb377f.

We need a setting change in AWS bedrock before Fable can be
enabled, so revert for now.

5 days agosd-netlink: fix use-after-free
Yu Watanabe [Thu, 11 Jun 2026 01:18:33 +0000 (10:18 +0900)] 
sd-netlink: fix use-after-free

When a slot is disconnected, previously we tried to remove the slot from
the hashmap with a wrong key. Hence, the pointer to the freed slot object
remained in the hashmap.

5 days agosd-varlink: disable event source in varlink_server_socket_free()
Luca Boccassi [Wed, 10 Jun 2026 13:17:11 +0000 (14:17 +0100)] 
sd-varlink: disable event source in varlink_server_socket_free()

The cleanup destructor for VarlinkServerSocket only freed ss->address and
the struct, leaking ss->event_source. If sd_varlink_server_listen_address()
hits OOM at free_and_strdup() after the io-source was already armed, the
source stays registered in the event loop with userdata pointing at the
freed socket. Disable it before freeing; the call is a no-op when the
source was never armed, so the other freep sites are unaffected.

Follow-up for c14e841f31682a383edce68a9142a01589a95f50

Co-developed-by: Claude Opus 4.8 <noreply@anthropic.com>
5 days agonetwork: drop nonexisting section name
Yu Watanabe [Tue, 9 Jun 2026 07:49:08 +0000 (16:49 +0900)] 
network: drop nonexisting section name

Follow-up for a0e5c15d4f5eb47ddb26850c6b99b1e110e0c270.

5 days agobus-map-properties: reject wrong variant type
Luca Boccassi [Wed, 10 Jun 2026 15:17:02 +0000 (16:17 +0100)] 
bus-map-properties: reject wrong variant type

bus_message_map_all_properties() fed the peer-supplied wire signature straight
into the variant dispatch and never compared it against the declared
prop->signature, so map_basic() wrote at the wire type's native width into a
slot sized for the declared type (over-wide numeric writes, peer-controlled
pointers into char** slots later freed by strv_free()). Compare against
prop->signature and skip the variant on mismatch.

This is in practice not a problem as the servers are trusted, and this
only affects clients.

Follow-up for 9f6eb1cd58f2ddf2eb6ba0e4de056e13d938af75

Assisted-by: kres (claude-opus-4-7)
Co-developed-by: Claude Opus 4.8 <noreply@anthropic.com>
5 days agonetwork: fix modem Bearers/Ports property signatures
Luca Boccassi [Wed, 10 Jun 2026 19:04:33 +0000 (20:04 +0100)] 
network: fix modem Bearers/Ports property signatures

The Bearers and Ports entries in the WWAN modem property maps declared
signatures "a{sv}" and "a{su}", but the callbacks read "ao" and "a(su)".
The mismatch was harmless while the declared signature was never checked,
but becomes a dropped property once it is enforced. Declare the actual
signatures.

Follow-up for f8a4c3d375b83f3ee249ca3f4b7f407b618a9491

5 days agoanalyze: fix SoftRebootsCount property signature
Luca Boccassi [Wed, 10 Jun 2026 17:56:38 +0000 (18:56 +0100)] 
analyze: fix SoftRebootsCount property signature

The SoftRebootsCount entry in the boot-times map declared signature "t" but the
manager exports it as "u". The mismatch was harmless while the declared signature
was never checked, but becomes a dropped property once it is enforced. Declare "u".

Follow-up for 259046cfe8de29c44070b596fe9e0471e931cbc4

5 days agoanalyze: fix SystemCallFilter property signature
Luca Boccassi [Wed, 10 Jun 2026 17:25:33 +0000 (18:25 +0100)] 
analyze: fix SystemCallFilter property signature

The SystemCallFilter entry in the security info map declared signature "(as)" but
its property_read_system_call_filter callback reads a "(bas)" (the manager exports
it as "(bas)"), matching the sibling RestrictAddressFamilies entry. The mismatch was
harmless while the declared signature was never checked, but becomes a dropped
property once it is enforced. Declare "(bas)".

Follow-up for ec16f3b6dd8b03e3ce6eff1fa9f21432208ef42b

5 days agosystemctl: fix InvocationID property signature
Luca Boccassi [Wed, 10 Jun 2026 15:53:21 +0000 (16:53 +0100)] 
systemctl: fix InvocationID property signature

The InvocationID entry in status_map declared signature "s" but its bus_map_id128
callback reads an "ay" (the manager exports it as "ay"), matching the other
bus_map_id128 callers. The mismatch was harmless while the declared signature was
never checked, but becomes a dropped property once it is enforced. Declare "ay".

Follow-up for f1d345ed76f5d4f46b67b7a2d3df2db1a9f51840

6 days agoci: migrate Claude review workflow to Fable 5
Daan De Meyer [Wed, 10 Jun 2026 10:22:49 +0000 (10:22 +0000)] 
ci: migrate Claude review workflow to Fable 5

Switch the model used by the Claude review workflow from Opus 4.8 to
Fable 5, both for the top-level invocation and the review subagents.

Co-developed-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
6 days agooom: use cgroup.kill if available (#42373)
Christian Brauner [Wed, 10 Jun 2026 19:56:01 +0000 (21:56 +0200)] 
oom: use cgroup.kill if available (#42373)

The log message is informational only, same as the count of killed
processes, so we can safely use cgroup.kill when available instead
of manually recursing through the cgroup tree.

6 days agoUpdate 60-sensor.hwdb - Add support for Juno Tab 4 (Wifi)
mburucuyapy [Wed, 10 Jun 2026 14:17:12 +0000 (10:17 -0400)] 
Update 60-sensor.hwdb - Add support for Juno Tab 4 (Wifi)

7 days agoTranslations update from Fedora Weblate (#42525)
Luca Boccassi [Tue, 9 Jun 2026 10:26:16 +0000 (11:26 +0100)] 
Translations update from Fedora Weblate (#42525)

Translations update from [Fedora
Weblate](https://translate.fedoraproject.org) for
[systemd/main](https://translate.fedoraproject.org/projects/systemd/main/).

Current translation status:

![Weblate translation
status](https://translate.fedoraproject.org/widget/systemd/main/horizontal-auto.svg)

7 days agopo: Translated using Weblate (French) 42525/head
Léane GRASSER [Tue, 9 Jun 2026 09:04:22 +0000 (09:04 +0000)] 
po: Translated using Weblate (French)

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Léane GRASSER <leane.grasser@proton.me>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/fr/
Translation: systemd/main

7 days agopo: Translated using Weblate (Kabyle)
ButterflyOfFire [Tue, 9 Jun 2026 09:04:22 +0000 (09:04 +0000)] 
po: Translated using Weblate (Kabyle)

Currently translated at 37.8% (108 of 285 strings)

Co-authored-by: ButterflyOfFire <butterflyoffire@users.noreply.translate.fedoraproject.org>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/kab/
Translation: systemd/main

7 days agoman: fix systemd-stub .hwids section to be a singleton
Paul Meyer [Sun, 7 Jun 2026 17:18:33 +0000 (19:18 +0200)] 
man: fix systemd-stub .hwids section to be a singleton

Only .dtbauto and .efifw may appear more than once, .hwids is a
singleton per the UKI specification and the stub reads a single .hwids
section (per profile), matching hardware IDs against entries within it.

Co-developed-by: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Paul Meyer <katexochen0@gmail.com>
7 days agoresolve: use correct hostname for Cloudflare DNS-over-TLS
Liu Zhangjian [Mon, 8 Jun 2026 09:00:03 +0000 (17:00 +0800)] 
resolve: use correct hostname for Cloudflare DNS-over-TLS

The Cloudflare DNS-over-TLS service should use 'one.one.one.one'
as the TLS hostname, not 'cloudflare-dns.com' (which is only
correct for DNS-over-HTTPS).

This matches Cloudflare's official documentation:
https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-tls/

Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com>
Fixes #42287

Signed-off-by: Liu Zhangjian <liuzhangjian@uniontech.com>
8 days agofuzz-dhcp-client: do not trigger assertion on building payload
Yu Watanabe [Mon, 8 Jun 2026 17:21:02 +0000 (02:21 +0900)] 
fuzz-dhcp-client: do not trigger assertion on building payload

Fixes oss-fuzz#521277316 (https://issues.oss-fuzz.com/issues/521277316).
Fixes #42516.

8 days agoboot: enable only IMAFDCZicsrZifencei for RISC-V
Icenowy Zheng [Wed, 3 Jun 2026 16:35:41 +0000 (00:35 +0800)] 
boot: enable only IMAFDCZicsrZifencei for RISC-V

The UEFI specification only defines A/C/I/M/Zicsr/Zifencei as mandatory
extensions in boot services. However, on systems with everything built
with F/D support, its difficult to disable F/D without changing a
toolchain. In addition, both EDK2 and U-Boot enable F/D on boot,
although they neither enable nor disable V. EDK2 comments even claim the
enablement of FPU is "to be compliant with UEFI spec" despite the spec
requires dynamic detection before using F/D.

Add corresponding -march flags to prevent systemd-boot from using other
extensions on RISC-V, and a comment for the temporary enablement of F/D.

Signed-off-by: Icenowy Zheng <zhengxingda@iscas.ac.cn>
8 days agocore: Don't silently succeed on UserNamespacePath= join failures (#42512)
Chris Down [Mon, 8 Jun 2026 11:34:20 +0000 (20:34 +0900)] 
core: Don't silently succeed on UserNamespacePath= join failures (#42512)

These also need to set exit_status so that sd-executor returns the right
thing to pid1.

8 days agoTranslations update from Fedora Weblate (#42503)
Yu Watanabe [Mon, 8 Jun 2026 07:45:56 +0000 (16:45 +0900)] 
Translations update from Fedora Weblate (#42503)

Translations update from [Fedora
Weblate](https://translate.fedoraproject.org) for
[systemd/main](https://translate.fedoraproject.org/projects/systemd/main/).

8 days agocore: Update stale UserNamespacePath= failure message 42512/head
Chris Down [Mon, 8 Jun 2026 07:34:13 +0000 (16:34 +0900)] 
core: Update stale UserNamespacePath= failure message

The message is stale (this is about UserNamespacePath=, not PrivateUsers=) and
this should be an error, not notice given we are going to fail.

8 days agocore: Don't silently succeed on UserNamespacePath= join failures
Chris Down [Mon, 8 Jun 2026 06:51:33 +0000 (15:51 +0900)] 
core: Don't silently succeed on UserNamespacePath= join failures

These also need to set exit_status so that sd-executor returns the right
thing to pid1.

8 days agopo: Translated using Weblate (Punjabi) 42503/head
A S Alam [Sun, 7 Jun 2026 14:06:49 +0000 (14:06 +0000)] 
po: Translated using Weblate (Punjabi)

Currently translated at 32.6% (93 of 285 strings)

Co-authored-by: A S Alam <aalam@users.noreply.translate.fedoraproject.org>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/pa/
Translation: systemd/main

8 days agopo: Translated using Weblate (Interlingua)
Emilio Sepulveda [Sun, 7 Jun 2026 14:06:49 +0000 (14:06 +0000)] 
po: Translated using Weblate (Interlingua)

Currently translated at 0.3% (1 of 285 strings)

Co-authored-by: Emilio Sepulveda <emism.translations@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/ia/
Translation: systemd/main

8 days agopo: Translated using Weblate (Esperanto)
Kristjan Schmidt [Sun, 7 Jun 2026 14:06:48 +0000 (14:06 +0000)] 
po: Translated using Weblate (Esperanto)

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Kristjan Schmidt <kristjan.schmidt@googlemail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/eo/
Translation: systemd/main

8 days agopo: Translated using Weblate (Estonian)
Priit Jõerüüt [Sun, 7 Jun 2026 14:06:47 +0000 (14:06 +0000)] 
po: Translated using Weblate (Estonian)

Currently translated at 84.5% (241 of 285 strings)

Co-authored-by: Priit Jõerüüt <jrtkbfdr@users.noreply.translate.fedoraproject.org>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/et/
Translation: systemd/main

8 days agopo: Translated using Weblate (Estonian)
Henri Aunin [Sun, 7 Jun 2026 14:06:47 +0000 (14:06 +0000)] 
po: Translated using Weblate (Estonian)

Currently translated at 84.5% (241 of 285 strings)

Co-authored-by: Henri Aunin <contact+fedora@hen.ee>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/et/
Translation: systemd/main

8 days agopo: Translated using Weblate (Punjabi)
Weblate [Sun, 7 Jun 2026 14:06:46 +0000 (14:06 +0000)] 
po: Translated using Weblate (Punjabi)

Currently translated at 32.6% (93 of 285 strings)

po: Translated using Weblate (Interlingua)

Currently translated at 0.3% (1 of 285 strings)

po: Translated using Weblate (Estonian)

Currently translated at 84.5% (241 of 285 strings)

po: Translated using Weblate (Slovenian)

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/et/
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/ia/
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/pa/
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/sl/
Translation: systemd/main

8 days agopo: Translated using Weblate (Slovenian)
Weblate Translation Memory [Sun, 7 Jun 2026 14:06:45 +0000 (14:06 +0000)] 
po: Translated using Weblate (Slovenian)

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/sl/
Translation: systemd/main

8 days agopo: Translated using Weblate (Slovenian)
Martin Srebotnjak [Sun, 7 Jun 2026 14:06:45 +0000 (14:06 +0000)] 
po: Translated using Weblate (Slovenian)

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Martin Srebotnjak <miles@filmsi.net>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/sl/
Translation: systemd/main

8 days agopo: Translated using Weblate (Hungarian)
Balázs Meskó [Sun, 7 Jun 2026 14:06:44 +0000 (14:06 +0000)] 
po: Translated using Weblate (Hungarian)

Currently translated at 92.6% (264 of 285 strings)

Co-authored-by: Balázs Meskó <meskobalazs@mailbox.org>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/hu/
Translation: systemd/main

8 days agopo: Translated using Weblate (Hungarian)
Balázs Úr [Sun, 7 Jun 2026 14:06:44 +0000 (14:06 +0000)] 
po: Translated using Weblate (Hungarian)

Currently translated at 92.6% (264 of 285 strings)

Co-authored-by: Balázs Úr <balazs@urbalazs.hu>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/hu/
Translation: systemd/main

8 days agopo: Translated using Weblate (Turkish)
Emir SARI [Sun, 7 Jun 2026 14:06:43 +0000 (14:06 +0000)] 
po: Translated using Weblate (Turkish)

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Emir SARI <emir_sari@icloud.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/tr/
Translation: systemd/main

8 days agopo: Translated using Weblate (Belarusian (Latin script))
Weblate [Sun, 7 Jun 2026 14:06:43 +0000 (14:06 +0000)] 
po: Translated using Weblate (Belarusian (Latin script))

Currently translated at 37.1% (106 of 285 strings)

po: Translated using Weblate (Hungarian)

Currently translated at 92.6% (264 of 285 strings)

po: Translated using Weblate (Turkish)

Currently translated at 100.0% (285 of 285 strings)

Co-authored-by: Anonymous <noreply@weblate.org>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/be_Latn/
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/hu/
Translate-URL: https://translate.fedoraproject.org/projects/systemd/main/tr/
Translation: systemd/main